{
  "$schema": "https://lumeo.nativ.sh/components-api-schema.json",
  "version": "2.2.1",
  "generated": "2026-05-21T06:16:48.1021099Z",
  "stats": {
    "componentCount": 149,
    "totalParameters": 3510,
    "totalEnums": 104,
    "totalRecords": 59,
    "thinFallbacks": []
  },
  "themeTokens": [
    {
      "token": "accent",
      "cssVar": "--color-accent"
    },
    {
      "token": "accent-foreground",
      "cssVar": "--color-accent-foreground"
    },
    {
      "token": "background",
      "cssVar": "--color-background"
    },
    {
      "token": "border",
      "cssVar": "--color-border"
    },
    {
      "token": "card",
      "cssVar": "--color-card"
    },
    {
      "token": "card-foreground",
      "cssVar": "--color-card-foreground"
    },
    {
      "token": "chart-1",
      "cssVar": "--color-chart-1"
    },
    {
      "token": "chart-2",
      "cssVar": "--color-chart-2"
    },
    {
      "token": "chart-3",
      "cssVar": "--color-chart-3"
    },
    {
      "token": "chart-4",
      "cssVar": "--color-chart-4"
    },
    {
      "token": "chart-5",
      "cssVar": "--color-chart-5"
    },
    {
      "token": "destructive",
      "cssVar": "--color-destructive"
    },
    {
      "token": "destructive-foreground",
      "cssVar": "--color-destructive-foreground"
    },
    {
      "token": "destructive-light",
      "cssVar": "--color-destructive-light"
    },
    {
      "token": "destructive-text",
      "cssVar": "--color-destructive-text"
    },
    {
      "token": "foreground",
      "cssVar": "--color-foreground"
    },
    {
      "token": "info",
      "cssVar": "--color-info"
    },
    {
      "token": "info-foreground",
      "cssVar": "--color-info-foreground"
    },
    {
      "token": "info-light",
      "cssVar": "--color-info-light"
    },
    {
      "token": "info-text",
      "cssVar": "--color-info-text"
    },
    {
      "token": "input",
      "cssVar": "--color-input"
    },
    {
      "token": "muted",
      "cssVar": "--color-muted"
    },
    {
      "token": "muted-foreground",
      "cssVar": "--color-muted-foreground"
    },
    {
      "token": "overlay-backdrop",
      "cssVar": "--color-overlay-backdrop"
    },
    {
      "token": "popover",
      "cssVar": "--color-popover"
    },
    {
      "token": "popover-foreground",
      "cssVar": "--color-popover-foreground"
    },
    {
      "token": "positive",
      "cssVar": "--color-positive"
    },
    {
      "token": "positive-foreground",
      "cssVar": "--color-positive-foreground"
    },
    {
      "token": "positive-light",
      "cssVar": "--color-positive-light"
    },
    {
      "token": "positive-text",
      "cssVar": "--color-positive-text"
    },
    {
      "token": "primary",
      "cssVar": "--color-primary"
    },
    {
      "token": "primary-foreground",
      "cssVar": "--color-primary-foreground"
    },
    {
      "token": "progress-stripe",
      "cssVar": "--color-progress-stripe"
    },
    {
      "token": "radius",
      "cssVar": "--radius"
    },
    {
      "token": "radius-lg",
      "cssVar": "--radius-lg"
    },
    {
      "token": "radius-md",
      "cssVar": "--radius-md"
    },
    {
      "token": "radius-sm",
      "cssVar": "--radius-sm"
    },
    {
      "token": "radius-xl",
      "cssVar": "--radius-xl"
    },
    {
      "token": "rating",
      "cssVar": "--color-rating"
    },
    {
      "token": "ring",
      "cssVar": "--color-ring"
    },
    {
      "token": "secondary",
      "cssVar": "--color-secondary"
    },
    {
      "token": "secondary-foreground",
      "cssVar": "--color-secondary-foreground"
    },
    {
      "token": "sidebar",
      "cssVar": "--color-sidebar"
    },
    {
      "token": "sidebar-accent",
      "cssVar": "--color-sidebar-accent"
    },
    {
      "token": "sidebar-accent-foreground",
      "cssVar": "--color-sidebar-accent-foreground"
    },
    {
      "token": "sidebar-border",
      "cssVar": "--color-sidebar-border"
    },
    {
      "token": "sidebar-foreground",
      "cssVar": "--color-sidebar-foreground"
    },
    {
      "token": "sidebar-primary",
      "cssVar": "--color-sidebar-primary"
    },
    {
      "token": "sidebar-primary-foreground",
      "cssVar": "--color-sidebar-primary-foreground"
    },
    {
      "token": "sidebar-ring",
      "cssVar": "--color-sidebar-ring"
    },
    {
      "token": "success",
      "cssVar": "--color-success"
    },
    {
      "token": "success-foreground",
      "cssVar": "--color-success-foreground"
    },
    {
      "token": "success-light",
      "cssVar": "--color-success-light"
    },
    {
      "token": "success-text",
      "cssVar": "--color-success-text"
    },
    {
      "token": "warning",
      "cssVar": "--color-warning"
    },
    {
      "token": "warning-foreground",
      "cssVar": "--color-warning-foreground"
    },
    {
      "token": "warning-light",
      "cssVar": "--color-warning-light"
    },
    {
      "token": "warning-text",
      "cssVar": "--color-warning-text"
    }
  ],
  "patterns": [
    {
      "title": "Analytics",
      "route": "/blocks/analytics",
      "description": "A KPI analytics dashboard with metric overview cards, traffic source breakdown, page views trend, top pages table, device split bars, and geographic distribution.",
      "examples": [
        {
          "title": "Analytics Dashboard",
          "code": "<Tabs @bind-ActiveValue=\"_activeTab\" Orientation=\"Tabs.TabsOrientation.Vertical\" Class=\"gap-6\">\n\n    <TabsList Class=\"flex-col h-auto w-48 shrink-0 justify-start items-stretch gap-0.5 bg-muted/40 border border-border/40 p-2 rounded-[var(--radius-lg)]\">\n        <TabsTrigger Value=\"overview\" Class=\"justify-start text-sm h-8\">\n            <DynamicIcon Name=\"LayoutDashboard\" Class=\"h-3.5 w-3.5 mr-2\" />\n            Overview\n        </TabsTrigger>\n        <TabsTrigger Value=\"traffic\" Class=\"justify-start text-sm h-8\">\n            <DynamicIcon Name=\"Globe\" Class=\"h-3.5 w-3.5 mr-2\" />\n            Traffic Sources\n        </TabsTrigger>\n        <TabsTrigger Value=\"pages\" Class=\"justify-start text-sm h-8\">\n            <DynamicIcon Name=\"FileText\" Class=\"h-3.5 w-3.5 mr-2\" />\n            Top Pages\n        </TabsTrigger>\n        <TabsTrigger Value=\"devices\" Class=\"justify-start text-sm h-8\">\n            <DynamicIcon Name=\"Monitor\" Class=\"h-3.5 w-3.5 mr-2\" />\n            Devices\n        </TabsTrigger>\n    </TabsList>\n\n    <Stack Class=\"flex-1 min-w-0\" Gap=\"0\">\n\n        <!-- Overview Tab -->\n        <TabsContent Value=\"overview\">\n            <!-- KPI Row -->\n            <Grid Class=\"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n                @foreach (var kpi in _kpis) {\n                    <Card>\n                        <CardHeader><Lumeo.Text Class=\"text-xs text-muted-foreground\">@kpi.Label</Lumeo.Text></CardHeader>\n                        <CardContent>\n                            <Lumeo.Text Class=\"text-2xl font-bold\">@kpi.Value</Lumeo.Text>\n                            <Progress Value=\"@kpi.Percent\" Class=\"mt-3 h-1\" Variant=\"@kpi.Variant\" />\n                        </CardContent>\n                    </Card>\n                }\n            </Grid>\n            <!-- Line Chart -->\n            <Card>\n                <CardHeader><Heading Level=\"3\">Page Views</Heading></CardHeader>\n                <CardContent>\n                    <LineChart Categories=\"@_lineCategories\" Series=\"@_lineSeries\" Smooth=\"true\" ShowDots=\"true\" Height=\"240px\" />\n                </CardContent>\n            </Card>\n        </TabsContent>\n\n        <!-- Traffic Tab -->\n        <TabsContent Value=\"traffic\">\n            <Grid Class=\"grid-cols-1 lg:grid-cols-2 gap-4\">\n                <Card>\n                    <CardHeader><Heading Level=\"3\">Traffic by Source</Heading></CardHeader>\n                    <CardContent>\n                        <DonutChart Data=\"@_trafficDonut\" CenterLabel=\"148.4K\" InnerRadius=\"52%\" OuterRadius=\"72%\" Height=\"260px\" />\n                    </CardContent>\n                </Card>\n                <Card>\n                    <CardHeader><Heading Level=\"3\">Source Breakdown</Heading></CardHeader>\n                    <CardContent>\n                        @foreach (var src in _trafficSources) {\n                            <Flex Class=\"py-2.5 border-b last:border-0 hover:bg-muted/30\">\n                                <Lumeo.Text Class=\"flex-1 text-sm\">@src.Name</Lumeo.Text>\n                                <Lumeo.Text Class=\"text-sm font-medium\">@src.Sessions</Lumeo.Text>\n                            </Flex>\n                        }\n                    </CardContent>\n                </Card>\n            </Grid>\n        </TabsContent>\n\n        <!-- Pages Tab -->\n        <TabsContent Value=\"pages\">\n            <Card>\n                <CardHeader><Heading Level=\"3\">Top Pages</Heading></CardHeader>\n                <CardContent Class=\"px-0\">\n                    <Table>\n                        <TableHeader>\n                            <TableRow>\n                                <TableHead>Page</TableHead>\n                                <TableHead Class=\"text-right\">Views</TableHead>\n                                <TableHead Class=\"text-right\">Bounce</TableHead>\n                                <TableHead Class=\"text-right\">Avg. Time</TableHead>\n                            </TableRow>\n                        </TableHeader>\n                        <TableBody>\n                            @foreach (var page in _topPages) {\n                                <TableRow Class=\"hover:bg-muted/40\">\n                                    <TableCell Class=\"font-medium\">@page.Title</TableCell>\n                                    <TableCell Class=\"text-right\">@page.Views</TableCell>\n                                    <TableCell Class=\"text-right\"><Badge Variant=\"@page.BounceVariant\">@page.Bounce</Badge></TableCell>\n                                    <TableCell Class=\"text-right text-muted-foreground\">@page.AvgTime</TableCell>\n                                </TableRow>\n                            }\n                        </TableBody>\n                    </Table>\n                </CardContent>\n            </Card>\n        </TabsContent>\n\n        <!-- Devices Tab -->\n        <TabsContent Value=\"devices\">\n            <Grid Class=\"grid-cols-1 lg:grid-cols-2 gap-4\">\n                <Card>\n                    <CardHeader><Heading Level=\"3\">Device Type</Heading></CardHeader>\n                    <CardContent>\n                        @foreach (var d in _devices) {\n                            <Stack Gap=\"1.5\" Class=\"mb-3\">\n                                <Flex Class=\"items-center justify-between\">\n                                    <Lumeo.Text Class=\"text-sm font-medium\">@d.Name</Lumeo.Text>\n                                    <Lumeo.Text Class=\"text-sm\">@d.Sessions</Lumeo.Text>\n                                </Flex>\n                                <Progress Value=\"@d.Pct\" Class=\"h-1.5\" />\n                            </Stack>\n                        }\n                    </CardContent>\n                </Card>\n                <Card>\n                    <CardHeader><Heading Level=\"3\">Top Countries</Heading></CardHeader>\n                    <CardContent>\n                        @foreach (var c in _countries) {\n                            <Flex Class=\"py-2 border-b border-border/40 last:border-0 items-center gap-2\">\n                                <Lumeo.Text As=\"span\" Class=\"text-base\">@c.Flag</Lumeo.Text>\n                                <Lumeo.Text Class=\"flex-1 text-sm\">@c.Name</Lumeo.Text>\n                                <Lumeo.Text Class=\"text-sm font-medium\">@c.Sessions</Lumeo.Text>\n                            </Flex>\n                        }\n                    </CardContent>\n                </Card>\n            </Grid>\n        </TabsContent>\n\n    </Stack>\n\n</Tabs>"
        }
      ]
    },
    {
      "title": "Authentication",
      "route": "/blocks/authentication",
      "description": "Three production-ready auth screens: Sign In with social providers, Sign Up with password strength, and Two-Factor OTP verification.",
      "examples": [
        {
          "title": "Sign In",
          "code": "<!-- Sign In card with branding panel, social providers, email/password, remember me -->\n<Flex Class=\"rounded-[var(--radius-lg)] overflow-hidden border border-border/40\">\n    <!-- Left branding panel -->\n    <Stack Class=\"w-80 bg-primary p-10\" Gap=\"6\">\n        <DynamicIcon Name=\"Zap\" Class=\"h-5 w-5 text-primary-foreground\" />\n        <Heading Level=\"2\" Class=\"text-2xl font-bold text-primary-foreground\">\n            The fastest way to ship products.\n        </Heading>\n    </Stack>\n\n    <!-- Right form -->\n    <Flex Class=\"flex-1 items-center justify-center bg-card p-12\">\n        <Stack Class=\"w-full max-w-sm\" Gap=\"6\">\n            <Heading Level=\"2\">Sign in</Heading>\n\n            <!-- Social providers -->\n            <Grid Class=\"grid-cols-3 gap-2\">\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"gap-2\">\n                    <DynamicIcon Name=\"Chrome\" Class=\"h-4 w-4\" /> Google\n                </Button>\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"gap-2\">\n                    <DynamicIcon Name=\"Github\" Class=\"h-4 w-4\" /> GitHub\n                </Button>\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"gap-2\">\n                    <DynamicIcon Name=\"Apple\" Class=\"h-4 w-4\" /> Apple\n                </Button>\n            </Grid>\n\n            <!-- Email / Password -->\n            <Stack Gap=\"4\">\n                <Lumeo.Input type=\"email\" placeholder=\"jordan@acme.com\">\n                    <Prefix><DynamicIcon Name=\"Mail\" Class=\"h-4 w-4 text-muted-foreground\" /></Prefix>\n                </Lumeo.Input>\n                <PasswordInput Placeholder=\"Enter your password\" />\n                <Flex Align=\"center\" Gap=\"2\">\n                    <Checkbox @bind-Checked=\"_remember\" />\n                    <Label>Remember me for 30 days</Label>\n                </Flex>\n                <Button Class=\"w-full\">\n                    <DynamicIcon Name=\"LogIn\" Class=\"h-4 w-4\" /> Sign in\n                </Button>\n            </Stack>\n        </Stack>\n    </Flex>\n</Flex>"
        },
        {
          "title": "Sign Up",
          "code": "<!-- Sign Up with name fields, email, PasswordInput with strength meter, terms checkbox -->\n<Flex Class=\"rounded-[var(--radius-lg)] overflow-hidden border border-border/40\">\n    <Flex Class=\"flex-1 items-center justify-center bg-card p-12\">\n        <Stack Class=\"w-full max-w-sm\" Gap=\"6\">\n            <Heading Level=\"2\">Create an account</Heading>\n            <Grid Class=\"grid-cols-2 gap-2\">\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"gap-2\">\n                    <DynamicIcon Name=\"Chrome\" Class=\"h-4 w-4\" /> Google\n                </Button>\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"gap-2\">\n                    <DynamicIcon Name=\"Github\" Class=\"h-4 w-4\" /> GitHub\n                </Button>\n            </Grid>\n            <Stack Gap=\"4\">\n                <Grid Class=\"grid-cols-2 gap-3\">\n                    <Input placeholder=\"First name\" />\n                    <Input placeholder=\"Last name\" />\n                </Grid>\n                <Input type=\"email\" placeholder=\"jordan@acme.com\" />\n                <PasswordInput Placeholder=\"Minimum 8 characters\" ShowStrength=\"true\" />\n                <PasswordInput Placeholder=\"Re-enter password\" />\n                <Flex Align=\"start\" Gap=\"2\">\n                    <Checkbox @bind-Checked=\"_terms\" />\n                    <Lumeo.Text Size=\"sm\" Color=\"muted\">I agree to the Terms and Privacy Policy</Lumeo.Text>\n                </Flex>\n                <Button Class=\"w-full\" Disabled=\"@(!_terms)\">\n                    <DynamicIcon Name=\"UserPlus\" Class=\"h-4 w-4\" /> Create account\n                </Button>\n            </Stack>\n        </Stack>\n    </Flex>\n    <!-- Right feature panel with icon list -->\n    <Stack Class=\"w-72 bg-muted/50 border-l border-border/40 p-8\" Gap=\"4\">\n        <!-- Feature bullets -->\n    </Stack>\n</Flex>"
        },
        {
          "title": "Two-Factor Verification",
          "code": "<!-- OTP Two-Factor card with countdown, backup code link, and trust badges -->\n<Stack Class=\"max-w-md mx-auto\" Gap=\"0\">\n    <Card Class=\"border-border/40\">\n        <CardHeader>\n            <Flex Align=\"center\" Gap=\"3\">\n                <Flex Class=\"h-10 w-10 items-center justify-center rounded-[var(--radius-lg)] bg-primary/10\">\n                    <DynamicIcon Name=\"ShieldCheck\" Class=\"h-5 w-5 text-primary\" />\n                </Flex>\n                <Stack>\n                    <Heading Level=\"2\">Two-factor auth</Heading>\n                    <Lumeo.Text Size=\"sm\" Color=\"muted\">Code sent to j••••@acme.com</Lumeo.Text>\n                </Stack>\n            </Flex>\n        </CardHeader>\n        <CardContent>\n            <Stack Gap=\"6\">\n                <Flex Class=\"rounded-[var(--radius-lg)] bg-muted/50 border border-border/40 px-4 py-3\" Gap=\"3\">\n                    <DynamicIcon Name=\"Info\" Class=\"h-4 w-4 text-muted-foreground\" />\n                    <Lumeo.Text Size=\"sm\" Color=\"muted\">Enter the 6-digit code. Expires in 5:00.</Lumeo.Text>\n                </Flex>\n\n                <Flex Justify=\"center\">\n                    <OtpInput Length=\"6\" @bind-Value=\"_otp\" OnComplete=\"HandleOtpComplete\" />\n                </Flex>\n\n                <Button Class=\"w-full\" IsLoading=\"_otpLoading\" OnClick=\"HandleOtpVerify\">\n                    <DynamicIcon Name=\"ShieldCheck\" Class=\"h-4 w-4\" /> Verify code\n                </Button>\n\n                <Flex Justify=\"between\">\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" OnClick=\"GoBack\">Back</Button>\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" OnClick=\"ResendCode\">Resend code</Button>\n                </Flex>\n            </Stack>\n        </CardContent>\n    </Card>\n</Stack>\n\n@code {\n    private string _otp = \"\";\n    private bool _otpLoading;\n\n    private async Task HandleOtpComplete(string otp) { if (otp.Length == 6) await HandleOtpVerify(); }\n    private async Task HandleOtpVerify()\n    {\n        _otpLoading = true;\n        await Task.Delay(1400);\n        _otpLoading = false;\n        ToastService.Success(\"Verified\", \"Welcome back!\");\n    }\n    private void ResendCode() { _otp = \"\"; ToastService.Info(\"Resent\", \"New code sent.\"); }\n    private void GoBack() { _otp = \"\"; }\n}"
        }
      ]
    },
    {
      "title": "Calendar / Scheduling",
      "route": "/blocks/calendar",
      "description": "A full-featured calendar view with event chips, category filters, a mini-calendar sidebar, upcoming list, and an inline event composer.",
      "examples": [
        {
          "title": "Calendar View",
          "code": "<!-- Full calendar with event chips, filters, mini-calendar, upcoming list, and event composer -->\n<Flex Gap=\"4\" Class=\"min-w-[780px]\">\n\n    <!-- Main Month Grid -->\n    <Card Class=\"flex-1\">\n        <CardHeader>\n            <Flex Align=\"center\" Justify=\"between\">\n                <Flex Align=\"center\" Gap=\"2\">\n                    <Button Variant=\"Outline\" Size=\"Icon\" OnClick=\"PrevMonth\">\n                        <DynamicIcon Name=\"ChevronLeft\" Class=\"h-4 w-4\" />\n                    </Button>\n                    <Heading Level=\"3\">@_currentMonth.ToString(\"MMMM yyyy\")</Heading>\n                    <Button Variant=\"Outline\" Size=\"Icon\" OnClick=\"NextMonth\">\n                        <DynamicIcon Name=\"ChevronRight\" Class=\"h-4 w-4\" />\n                    </Button>\n                </Flex>\n                <Flex Gap=\"2\">\n                    <Button Variant=\"Ghost\" Size=\"Sm\" OnClick=\"GoToToday\">Today</Button>\n                    <Button Variant=\"Default\" Size=\"Sm\" OnClick=\"() => _showComposer = true\">\n                        <DynamicIcon Name=\"Plus\" Class=\"h-4 w-4\" /> New Event\n                    </Button>\n                </Flex>\n            </Flex>\n        </CardHeader>\n        <CardContent>\n            <!-- 7-column grid with event chips -->\n            <div class=\"grid grid-cols-7 gap-px bg-border/40 rounded-lg overflow-hidden border border-border/40\">\n                @for (int i = 0; i < totalCells; i++)\n                {\n                    <div class=\"bg-background p-1.5 min-h-[80px] hover:bg-accent/60 transition-colors\">\n                        <!-- Day number with today highlight -->\n                        <span class=\"text-xs font-medium w-6 h-6 flex items-center justify-center rounded-full\">@dayNum</span>\n                        <!-- Event chips colored by category -->\n                        <div class=\"flex flex-col gap-0.5\">\n                            <div class=\"rounded px-1 py-0.5 text-[10px] font-medium bg-primary/15 text-primary truncate\">\n                                9:00 Q2 All-hands\n                            </div>\n                        </div>\n                    </div>\n                }\n            </div>\n            <!-- Category legend with filter toggles -->\n            <Flex Class=\"items-center gap-4 flex-wrap mt-4 pt-3 border-t border-border/40\">\n                <button class=\"flex items-center gap-1.5 text-xs\">\n                    <span class=\"h-2.5 w-2.5 rounded-full bg-primary\"></span>\n                    <span class=\"text-muted-foreground\">Work</span>\n                </button>\n                <!-- ... more categories -->\n            </Flex>\n        </CardContent>\n    </Card>\n\n    <!-- Sidebar: mini-calendar, upcoming events, event detail/composer -->\n    <Stack Gap=\"4\" Class=\"w-[280px]\">\n        <!-- Mini calendar, upcoming list, event composer shown here -->\n    </Stack>\n</Flex>\n\n@code {\n    private DateTime _currentMonth = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);\n    private DateTime _selectedDate = DateTime.Today;\n\n    private void PrevMonth() => _currentMonth = _currentMonth.AddMonths(-1);\n    private void NextMonth() => _currentMonth = _currentMonth.AddMonths(1);\n    private void GoToToday() { _currentMonth = new(DateTime.Today.Year, DateTime.Today.Month, 1); _selectedDate = DateTime.Today; }\n}"
        }
      ]
    },
    {
      "title": "Chat",
      "route": "/blocks/chat",
      "description": "A full messaging interface with contact list, conversation view, time-grouped messages, and message input bar.",
      "examples": [
        {
          "title": "Chat Messaging Interface",
          "code": "<!-- Chat layout: contact sidebar | message thread -->\n<Stack Class=\"w-full border border-border/40 rounded-xl overflow-hidden\" style=\"height: 600px;\">\n    <Flex Class=\"h-full\">\n\n        <!-- Contact Sidebar -->\n        <Flex Direction=\"col\" Class=\"w-72 border-r border-border/40 bg-card\">\n            <Flex Class=\"items-center justify-between px-4 pt-4 pb-3 border-b border-border/40\">\n                <Lumeo.Text As=\"span\" Class=\"text-base font-bold text-foreground\">Messages</Lumeo.Text>\n                <Flex Class=\"items-center gap-1\">\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                        <DynamicIcon Name=\"Search\" Class=\"h-4 w-4\" />\n                    </Button>\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                        <DynamicIcon Name=\"SquarePen\" Class=\"h-4 w-4\" />\n                    </Button>\n                </Flex>\n            </Flex>\n            <Stack Class=\"flex-1 overflow-y-auto\">\n                @foreach (var contact in _contacts)\n                {\n                    <button class=\"flex items-start gap-3 w-full px-3 py-2.5 hover:bg-muted/40 transition-colors\" @onclick=\"@(() => SelectContact(contact))\">\n                        <Stack Class=\"relative shrink-0\">\n                            <Avatar Size=\"Avatar.AvatarSize.Sm\">\n                                <AvatarFallback>@contact.Initials</AvatarFallback>\n                            </Avatar>\n                            @if (contact.IsOnline)\n                            {\n                                <Lumeo.Text As=\"span\" Class=\"absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full bg-primary border-2 border-card block\"></Lumeo.Text>\n                            }\n                        </Stack>\n                        <Stack Class=\"flex-1 min-w-0 gap-0.5\">\n                            <Flex Class=\"items-center justify-between\">\n                                <Lumeo.Text As=\"span\" Class=\"text-sm font-semibold text-foreground truncate\">@contact.Name</Lumeo.Text>\n                                <Lumeo.Text As=\"span\" Class=\"text-xs text-muted-foreground\">@contact.Timestamp</Lumeo.Text>\n                            </Flex>\n                            <Flex Class=\"items-center justify-between\">\n                                <Lumeo.Text Class=\"text-xs text-muted-foreground truncate\">@contact.LastMessage</Lumeo.Text>\n                                @if (contact.UnreadCount > 0) { <Badge Class=\"ml-1 shrink-0 h-4 min-w-4 text-[10px] px-1\">@contact.UnreadCount</Badge> }\n                            </Flex>\n                        </Stack>\n                    </button>\n                }\n            </Stack>\n        </Flex>\n\n        <!-- Chat Area -->\n        <Flex Direction=\"col\" Class=\"flex-1 overflow-hidden bg-background\">\n            <!-- Header -->\n            <Flex Class=\"items-center gap-3 px-4 py-3 border-b border-border/40 bg-card\">\n                <Stack Class=\"relative\">\n                    <Avatar Size=\"Avatar.AvatarSize.Sm\"><AvatarFallback>PK</AvatarFallback></Avatar>\n                    <Lumeo.Text As=\"span\" Class=\"absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full bg-primary border-2 border-card block\"></Lumeo.Text>\n                </Stack>\n                <Stack>\n                    <Lumeo.Text Class=\"text-sm font-semibold text-foreground\">Priya Kapoor</Lumeo.Text>\n                    <Lumeo.Text Class=\"text-xs text-primary\">Active now</Lumeo.Text>\n                </Stack>\n                <Flex Class=\"ml-auto items-center gap-1\">\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                        <DynamicIcon Name=\"Phone\" Class=\"h-4 w-4\" />\n                    </Button>\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                        <DynamicIcon Name=\"Video\" Class=\"h-4 w-4\" />\n                    </Button>\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                        <DynamicIcon Name=\"Ellipsis\" Class=\"h-4 w-4\" />\n                    </Button>\n                </Flex>\n            </Flex>\n\n            <!-- Messages -->\n            <Stack Class=\"flex-1 overflow-y-auto px-4 py-4 gap-1\">\n                <!-- Time group separator -->\n                <Flex Class=\"items-center gap-3 my-3\">\n                    <Lumeo.Text As=\"span\" Class=\"flex-1 h-px bg-border/40 block\"></Lumeo.Text>\n                    <Lumeo.Text As=\"span\" Class=\"text-xs text-muted-foreground\">Today</Lumeo.Text>\n                    <Lumeo.Text As=\"span\" Class=\"flex-1 h-px bg-border/40 block\"></Lumeo.Text>\n                </Flex>\n                @foreach (var msg in _messages)\n                {\n                    <Flex Class=\"@(msg.IsSent ? \\\"items-end gap-2 justify-end\\\" : \\\"items-end gap-2 justify-start\\\")\">\n                        @if (!msg.IsSent)\n                        {\n                            <Avatar Size=\"Avatar.AvatarSize.Sm\" Class=\"shrink-0 mb-1\"><AvatarFallback>PK</AvatarFallback></Avatar>\n                        }\n                        <Stack Class=\"max-w-sm gap-1\">\n                            <Lumeo.Text As=\"div\" Class=\"@(msg.IsSent ? \\\"rounded-2xl rounded-br-sm px-3.5 py-2.5 text-sm bg-primary text-primary-foreground\\\" : \\\"rounded-2xl rounded-bl-sm px-3.5 py-2.5 text-sm bg-muted text-foreground\\\")\">@msg.Text</Lumeo.Text>\n                            <Lumeo.Text Class=\"text-xs text-muted-foreground px-1\">@msg.Time</Lumeo.Text>\n                        </Stack>\n                        @if (msg.IsSent)\n                        {\n                            <Avatar Size=\"Avatar.AvatarSize.Sm\" Class=\"shrink-0 mb-1\"><AvatarFallback>ME</AvatarFallback></Avatar>\n                        }\n                    </Flex>\n                }\n            </Stack>\n\n            <!-- Input -->\n            <Stack Class=\"border-t border-border/40 bg-card px-4 py-3 gap-2\">\n                <Flex Class=\"items-center gap-2 rounded-xl border border-border/40 bg-background px-3 py-2\">\n                    <Input placeholder=\"Type a message...\" @bind-Value=\"_newMessage\" Class=\"flex-1 border-0 shadow-none bg-transparent text-sm p-0 h-auto focus-visible:ring-0\" />\n                </Flex>\n                <Flex Class=\"items-center justify-between\">\n                    <Flex Class=\"items-center gap-1\">\n                        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                            <DynamicIcon Name=\"Paperclip\" Class=\"h-4 w-4\" />\n                        </Button>\n                        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                            <DynamicIcon Name=\"Smile\" Class=\"h-4 w-4\" />\n                        </Button>\n                        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                            <DynamicIcon Name=\"Mic\" Class=\"h-4 w-4\" />\n                        </Button>\n                    </Flex>\n                    <Button Size=\"Button.ButtonSize.Sm\" @onclick=\"SendMessage\">\n                        <DynamicIcon Name=\"Send\" Class=\"h-3.5 w-3.5 mr-1.5\" /> Send\n                    </Button>\n                </Flex>\n            </Stack>\n        </Flex>\n    </Flex>\n</Stack>\n\n@code {\n    private void SendMessage()\n    {\n        if (string.IsNullOrWhiteSpace(_newMessage)) return;\n        _messages.Add(new Message(_newMessage, true, DateTime.Now.ToString(\"h:mm tt\")));\n        _newMessage = string.Empty;\n    }\n}"
        }
      ]
    },
    {
      "title": "Dashboard",
      "route": "/blocks/dashboard",
      "description": "A complete analytics dashboard built with Lumeo components. Includes a top bar, stats cards, revenue chart, activity feed, data table, and mini charts.",
      "examples": [
        {
          "title": "Analytics Dashboard",
          "code": "<!-- Top Bar -->\n<Flex Class=\"items-center justify-between gap-4 rounded-[var(--radius-lg)] bg-card px-4 py-3 shadow-sm\">\n    <Flex Class=\"items-center gap-3\">\n        <Flex Class=\"h-8 w-8 items-center justify-center rounded-md bg-primary\">\n            <DynamicIcon Name=\"BarChart3\" Class=\"h-4 w-4 text-primary-foreground\" />\n        </Flex>\n        <Lumeo.Text As=\"span\" Class=\"text-sm font-semibold text-foreground\">Nexara</Lumeo.Text>\n    </Flex>\n    <Flex Class=\"flex-1 max-w-sm items-center gap-2 rounded-md border border-border/40 bg-background px-3 h-9\">\n        <DynamicIcon Name=\"Search\" Class=\"h-3.5 w-3.5 text-muted-foreground\" />\n        <Input Placeholder=\"Search...\" Class=\"h-8 flex-1 bg-transparent border-0 shadow-none\" />\n    </Flex>\n    <Flex Class=\"items-center gap-1.5\">\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n            <DynamicIcon Name=\"Bell\" Class=\"h-4 w-4\" />\n        </Button>\n        <Avatar Size=\"Avatar.AvatarSize.Sm\">\n            <AvatarFallback>PK</AvatarFallback>\n        </Avatar>\n        <DynamicIcon Name=\"ChevronDown\" Class=\"h-3.5 w-3.5 text-muted-foreground\" />\n    </Flex>\n</Flex>\n\n<!-- Stats Row -->\n<Grid Class=\"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n    @foreach (var stat in _stats)\n    {\n        <Card Class=\"rounded-[var(--radius-lg)] border-border/40\">\n            <CardHeader Class=\"pb-2\">\n                <Flex Class=\"items-center justify-between\">\n                    <Lumeo.Text Class=\"text-xs font-medium text-muted-foreground uppercase tracking-wider\">@stat.Label</Lumeo.Text>\n                    <DynamicIcon Name=\"@stat.IconName\" Class=\"h-3.5 w-3.5 text-muted-foreground\" />\n                </Flex>\n            </CardHeader>\n            <CardContent Class=\"pt-0\">\n                <Lumeo.Text Class=\"text-2xl font-bold text-foreground\">@stat.Value</Lumeo.Text>\n                <Flex Class=\"mt-1.5 items-center gap-1.5\">\n                    <DynamicIcon Name=\"@(stat.IsPositive ? \"TrendingUp\" : \"TrendingDown\")\" Class=\"h-3.5 w-3.5\" />\n                    <Lumeo.Text As=\"span\" Class=\"text-xs font-semibold\">@stat.Trend</Lumeo.Text>\n                    <Lumeo.Text As=\"span\" Class=\"text-xs text-muted-foreground\">vs last month</Lumeo.Text>\n                </Flex>\n                <Progress Value=\"@stat.ProgressValue\" Class=\"mt-3 h-1\" Variant=\"@stat.ProgressVariant\" />\n            </CardContent>\n        </Card>\n    }\n</Grid>\n\n<!-- Revenue Chart + Activity -->\n<Grid Class=\"grid-cols-1 lg:grid-cols-7 gap-4\">\n    <Card Class=\"lg:col-span-5\">\n        <CardHeader>\n            <Heading Level=\"3\">Revenue Overview</Heading>\n            <Lumeo.Text Class=\"text-sm text-muted-foreground\">12-month revenue vs. expenses</Lumeo.Text>\n        </CardHeader>\n        <CardContent>\n            <AreaChart Categories=\"@_areaCategories\" Series=\"@_areaSeries\" Smooth=\"true\" Gradient=\"true\" Height=\"340px\" />\n        </CardContent>\n    </Card>\n    <Card Class=\"lg:col-span-2\">\n        <CardHeader>\n            <Heading Level=\"3\">Activity</Heading>\n        </CardHeader>\n        <CardContent>\n            @foreach (var a in _activities)\n            {\n                <Flex Class=\"gap-2.5 py-2.5 border-b border-border/40 last:border-0 items-start hover:bg-muted/30 transition-colors\">\n                    <Avatar Class=\"h-7 w-7 shrink-0\"><AvatarFallback Class=\"text-[9px]\">@a.Initials</AvatarFallback></Avatar>\n                    <Stack Gap=\"0\">\n                        <Lumeo.Text Class=\"text-xs\">@a.Text</Lumeo.Text>\n                        <Lumeo.Text Class=\"text-[10px] text-muted-foreground\">@a.Time</Lumeo.Text>\n                    </Stack>\n                </Flex>\n            }\n        </CardContent>\n    </Card>\n</Grid>"
        }
      ]
    },
    {
      "title": "E-Commerce",
      "route": "/blocks/ecommerce",
      "description": "An e-commerce admin dashboard with KPI cards, revenue chart, recent orders, top products, inventory alerts, and customer segment breakdown.",
      "examples": [
        {
          "title": "E-Commerce Admin Dashboard",
          "code": "<!-- E-Commerce Admin Dashboard -->\n<Stack Gap=\"6\">\n    <!-- KPI Row -->\n    <Grid Class=\"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n        @foreach (var kpi in _kpis)\n        {\n            <Card>\n                <CardHeader>\n                    <Flex Class=\"items-center justify-between\">\n                        <Lumeo.Text Class=\"text-sm font-medium text-muted-foreground\">@kpi.Label</Lumeo.Text>\n                        <DynamicIcon Name=\"@kpi.Icon\" Class=\"h-4 w-4 text-muted-foreground\" />\n                    </Flex>\n                </CardHeader>\n                <CardContent>\n                    <Lumeo.Text Class=\"text-2xl font-bold text-foreground\">@kpi.Value</Lumeo.Text>\n                    <Badge Variant=\"@kpi.TrendVariant\">@kpi.Trend</Badge>\n                    <Progress Value=\"@kpi.Progress\" Class=\"mt-3 h-1\" />\n                </CardContent>\n            </Card>\n        }\n    </Grid>\n    <!-- Revenue Chart -->\n    <Card>\n        <CardHeader><Heading Level=\"3\">Revenue Overview</Heading></CardHeader>\n        <CardContent>\n            <AreaChart Categories=\"@_revenueMonths\" Series=\"@_revenueSeries\" Height=\"240px\" />\n        </CardContent>\n    </Card>\n    <!-- Orders Table -->\n    <Table>\n        <TableHeader>\n            <TableRow>\n                <TableHead>Order</TableHead>\n                <TableHead>Customer</TableHead>\n                <TableHead>Status</TableHead>\n                <TableHead>Total</TableHead>\n            </TableRow>\n        </TableHeader>\n        <TableBody>\n            @foreach (var o in _orders)\n            {\n                <TableRow>\n                    <TableCell Class=\"font-mono\">@o.Id</TableCell>\n                    <TableCell>@o.Customer</TableCell>\n                    <TableCell><Badge Variant=\"@o.StatusVariant\">@o.Status</Badge></TableCell>\n                    <TableCell Class=\"font-semibold\">@o.Total</TableCell>\n                </TableRow>\n            }\n        </TableBody>\n    </Table>\n</Stack>"
        }
      ]
    },
    {
      "title": "File Manager",
      "route": "/blocks/file-manager",
      "description": "A Dropbox-inspired file manager with workspace navigation, pinned folders, recent files grid, full file table, and contextual hover actions.",
      "examples": [
        {
          "title": "File Browser",
          "code": "<!-- File Manager — Lumeo pattern -->\n<div class=\"flex rounded-[var(--radius-lg)] border border-border/40 overflow-hidden\" style=\"min-height:620px;\">\n\n  <!-- Sidebar w-60 -->\n  <div class=\"w-60 shrink-0 flex flex-col border-r border-border/40 bg-muted/20\">\n    <!-- Workspace badge -->\n    <div class=\"flex items-center gap-2.5 px-4 py-3.5 border-b border-border/40\">\n      <div class=\"h-7 w-7 rounded-md bg-primary flex items-center justify-center\">\n        <DynamicIcon Name=\"Layers\" Class=\"h-4 w-4 text-primary-foreground\" />\n      </div>\n      <Lumeo.Text Class=\"text-sm font-semibold truncate\">Lumeo Design</Lumeo.Text>\n    </div>\n    <!-- Nav items -->\n    @foreach (var n in _navItems) {\n      <button class=\"flex items-center gap-2.5 rounded-md px-2.5 py-2 text-sm text-muted-foreground hover:bg-accent/50\">\n        <DynamicIcon Name=\"@n.Icon\" Class=\"h-4 w-4 shrink-0\" /> @n.Label\n      </button>\n    }\n    <!-- Storage -->\n    <Progress Value=\"28\" Class=\"h-1.5\" />\n    <Lumeo.Text Class=\"text-xs text-muted-foreground\">14.2 / 50 GB</Lumeo.Text>\n    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\" Class=\"w-full\">Upgrade plan</Button>\n  </div>\n\n  <!-- Main -->\n  <div class=\"flex-1 flex flex-col\">\n    <!-- Toolbar: breadcrumb, search, view toggle, sort, New button -->\n    <div class=\"flex items-center gap-3 px-5 py-3 border-b border-border/40\">\n      <Breadcrumb Class=\"flex-1\">...</Breadcrumb>\n      <Input placeholder=\"Search files…\" Class=\"h-8 w-48\" />\n      <!-- grid/list toggle, sort select, New dropdown -->\n    </div>\n\n    <!-- Content area -->\n    <div class=\"flex-1 overflow-auto p-5 space-y-6\">\n      <!-- Pinned folders: 4-col grid of folder cards -->\n      <!-- Recent files: 4-col thumbnail grid with hover actions -->\n      <!-- All files: full Table with owner, modified, size, action icons -->\n    </div>\n  </div>\n</div>"
        }
      ]
    },
    {
      "title": "Filters",
      "route": "/blocks/filters",
      "description": "A full faceted-search product browser with a sticky filter sidebar, live category/brand/rating/price/date/stock filters, active chips, and a responsive product grid with favorites.",
      "examples": [
        {
          "title": "Product Filter &amp; Browse",
          "code": "<!-- Filters + Product grid — Lumeo pattern -->\n<div class=\"w-full\">\n  <!-- Active chip row -->\n  <div class=\"flex flex-wrap gap-2 mb-4 items-center\">\n    <FilterPill Label=\"Category\" Value=\"Audio\" OnDismiss=\"@(() => {})\" />\n    <FilterPill Label=\"Price\" Value=\"$0–$300\" OnDismiss=\"@(() => {})\" />\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\" Class=\"text-muted-foreground hover:text-destructive\">\n      <DynamicIcon Name=\"X\" Class=\"h-3 w-3 mr-1\" /> Clear all\n    </Button>\n  </div>\n\n  <div class=\"flex gap-6\">\n    <!-- Filter sidebar w-64 -->\n    <div class=\"w-64 shrink-0 space-y-5\">\n      <!-- Search -->\n      <Input placeholder=\"Search products…\" Class=\"pl-9\" />\n      <Separator />\n      <!-- Category checkboxes with live counts -->\n      @foreach (var cat in _allCategories) {\n        <div class=\"flex items-center gap-2.5\">\n          <Checkbox Checked=\"@_selectedCategories.Contains(cat)\" CheckedChanged=\"@(v => ToggleItem(_selectedCategories, cat, v))\" />\n          <label class=\"text-sm text-foreground\">@cat</label>\n        </div>\n      }\n      <Separator />\n      <!-- Dual price sliders -->\n      <Slider Value=\"@_priceMin\" ValueChanged=\"@(v => _priceMin = v)\" Min=\"0\" Max=\"1000\" Step=\"10\" />\n      <Slider Value=\"@_priceMax\" ValueChanged=\"@(v => _priceMax = v)\" Min=\"0\" Max=\"1000\" Step=\"10\" />\n      <Separator />\n      <!-- Star rating radios -->\n      @foreach (var r in new[]{5,4,3,2}) {\n        <input type=\"radio\" name=\"rating\" class=\"accent-primary\" @onchange=\"@(() => _selectedRating = r)\" />\n      }\n      <Separator />\n      <!-- Brand checkboxes, Availability switch, Color chips, Date range picker ... -->\n      <Switch @bind-Checked=\"_inStockOnly\" /><label>In stock only</label>\n      <DateRangePicker @bind-StartDate=\"_dateFrom\" @bind-EndDate=\"_dateTo\" Clearable=\"true\" />\n    </div>\n\n    <!-- Product grid 3-col, hover scale, Unsplash images, star rating, discount badge -->\n    <div class=\"flex-1 grid grid-cols-3 gap-4\">\n      @foreach (var p in SortedProducts) { /* product card ... */ }\n    </div>\n  </div>\n</div>"
        }
      ]
    },
    {
      "title": "Multi-Step Form Wizard",
      "route": "/blocks/form-wizard",
      "description": "A polished four-step onboarding wizard with progress steps, real field inputs, preferences, and a review summary before submission.",
      "examples": [
        {
          "title": "Onboarding Wizard",
          "code": "<!-- 4-step onboarding wizard with Steps progress bar, side illustration, and review summary -->\n<Stack Class=\"max-w-3xl mx-auto\" Gap=\"4\">\n\n    <!-- Steps progress indicator -->\n    <Card>\n        <CardContent Class=\"py-4\">\n            <Steps CurrentStep=\"@(_currentStep - 1)\" Class=\"w-full\">\n                <StepsItem Title=\"Account\" Description=\"Credentials\" />\n                <StepsItem Title=\"Profile\" Description=\"About you\" />\n                <StepsItem Title=\"Preferences\" Description=\"Customize\" />\n                <StepsItem Title=\"Review\" Description=\"Confirm\" />\n            </Steps>\n        </CardContent>\n    </Card>\n\n    <Flex Gap=\"4\" Class=\"lg:flex-row\">\n        <!-- Form Card -->\n        <Card Class=\"flex-1\">\n            <CardHeader>\n                <Flex Align=\"center\" Gap=\"3\">\n                    <Flex Class=\"h-9 w-9 items-center justify-center rounded-[var(--radius)] bg-primary/10\">\n                        <DynamicIcon Name=\"UserPlus\" Class=\"h-4 w-4 text-primary\" />\n                    </Flex>\n                    <Stack>\n                        <Heading Level=\"3\">Create your account</Heading>\n                        <Lumeo.Text Size=\"sm\" Color=\"muted\">Set up your login credentials</Lumeo.Text>\n                    </Stack>\n                </Flex>\n            </CardHeader>\n            <CardContent>\n                @if (_currentStep == 1)\n                {\n                    <!-- Step 1: First/Last name, Email, Password + PasswordInput with ShowStrength -->\n                }\n                @if (_currentStep == 2)\n                {\n                    <!-- Step 2: Job title, Department Select, Company, Country, Timezone, Bio Textarea -->\n                }\n                @if (_currentStep == 3)\n                {\n                    <!-- Step 3: Notification switches, Use-case RadioGroup in styled cards, Interest checkboxes -->\n                }\n                @if (_currentStep == 4)\n                {\n                    <!-- Step 4: Review sections with Edit links, Terms checkbox, Submit -->\n                }\n            </CardContent>\n            <CardFooter>\n                <Flex Justify=\"between\" Class=\"w-full\">\n                    <Button Variant=\"Button.ButtonVariant.Outline\" OnClick=\"PreviousStep\" Disabled=\"@(_currentStep == 1)\">\n                        <DynamicIcon Name=\"ChevronLeft\" Class=\"h-4 w-4\" /> Back\n                    </Button>\n                    @if (_currentStep < 4)\n                    {\n                        <Button Variant=\"Button.ButtonVariant.Default\" OnClick=\"NextStep\">\n                            Continue <DynamicIcon Name=\"ChevronRight\" Class=\"h-4 w-4\" />\n                        </Button>\n                    }\n                    else\n                    {\n                        <Button Variant=\"Button.ButtonVariant.Default\" OnClick=\"Submit\" Disabled=\"@(!_confirmed)\">\n                            <DynamicIcon Name=\"Check\" Class=\"h-4 w-4\" /> Create Account\n                        </Button>\n                    }\n                </Flex>\n            </CardFooter>\n        </Card>\n\n        <!-- Side illustration / tips panel -->\n        <Card Class=\"w-64 bg-muted/30 border-border/40\">\n            <CardContent Class=\"py-6\">\n                <!-- Step-specific icon, title, body copy, and tip bullets -->\n            </CardContent>\n        </Card>\n    </Flex>\n</Stack>\n\n@code {\n    private int _currentStep = 1;\n    private bool _confirmed = false;\n\n    private void NextStep() { if (_currentStep < 4) _currentStep++; }\n    private void PreviousStep() { if (_currentStep > 1) _currentStep--; }\n    private void Submit() { if (_confirmed) { /* create account */ } }\n}"
        }
      ]
    },
    {
      "title": "Kanban Board",
      "route": "/blocks/kanban",
      "description": "A sprint board with polished task cards and native HTML5 drag-and-drop between columns.",
      "examples": []
    },
    {
      "title": "Mail",
      "route": "/blocks/mail",
      "description": "A three-column inbox with folder rail, message list, reading pane, and reply composer.",
      "examples": [
        {
          "title": "Mail / Inbox",
          "code": "<!-- 3-column mail layout: icon rail | message list | reading pane -->\n<Stack Class=\"w-full border border-border/40 rounded-xl overflow-hidden\" style=\"height: 580px;\">\n    <Flex Class=\"h-full\">\n\n        <!-- Icon Rail -->\n        <Flex Direction=\"col\" Class=\"w-14 border-r border-border/40 bg-card items-center py-3 gap-1\">\n            <Stack Class=\"relative\">\n                <Button Variant=\"Button.ButtonVariant.Default\" Size=\"Button.ButtonSize.Icon\" Class=\"h-9 w-9\">\n                    <DynamicIcon Name=\"Inbox\" Class=\"h-4 w-4\" />\n                </Button>\n                <Lumeo.Text As=\"span\" Class=\"absolute -top-1 -right-1 h-4 min-w-4 rounded-full bg-primary text-primary-foreground text-[10px] flex items-center justify-center px-1\">3</Lumeo.Text>\n            </Stack>\n            <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-9 w-9\">\n                <DynamicIcon Name=\"Send\" Class=\"h-4 w-4\" />\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-9 w-9\">\n                <DynamicIcon Name=\"FileEdit\" Class=\"h-4 w-4\" />\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-9 w-9\">\n                <DynamicIcon Name=\"Star\" Class=\"h-4 w-4\" />\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-9 w-9\">\n                <DynamicIcon Name=\"Trash2\" Class=\"h-4 w-4\" />\n            </Button>\n        </Flex>\n\n        <!-- Message List -->\n        <Flex Direction=\"col\" Class=\"w-72 border-r border-border/40 bg-card\">\n            <Stack Gap=\"2\" Class=\"p-3 border-b border-border/40\">\n                <Flex Class=\"relative items-center\">\n                    <DynamicIcon Name=\"Search\" Class=\"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground\" />\n                    <Input placeholder=\"Search mail...\" Class=\"pl-8 h-8 text-xs w-full\" />\n                </Flex>\n                <Flex Class=\"items-center gap-1\">\n                    <Button Variant=\"Button.ButtonVariant.Default\" Size=\"Button.ButtonSize.Sm\" Class=\"h-7 text-xs\">All</Button>\n                    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\" Class=\"h-7 text-xs\">Unread</Button>\n                    <Badge Class=\"ml-auto\">3</Badge>\n                </Flex>\n            </Stack>\n            <Stack Class=\"flex-1 overflow-y-auto\">\n                @foreach (var mail in _mailItems)\n                {\n                    <Stack Class=\"gap-1 px-3 py-2.5 border-b border-border/40 cursor-pointer hover:bg-muted/40\">\n                        <Flex Class=\"items-center justify-between gap-2\">\n                            <Flex Class=\"items-center gap-2 min-w-0\">\n                                @if (!mail.IsRead) { <Lumeo.Text As=\"span\" Class=\"h-2 w-2 rounded-full bg-primary shrink-0 block\"></Lumeo.Text> }\n                                <Avatar Class=\"h-7 w-7\"><AvatarFallback Class=\"text-[10px]\">@mail.Initials</AvatarFallback></Avatar>\n                                <Lumeo.Text As=\"span\" Class=\"text-sm font-semibold text-foreground truncate\">@mail.Sender</Lumeo.Text>\n                            </Flex>\n                            <Lumeo.Text As=\"span\" Class=\"text-xs text-muted-foreground shrink-0\">@mail.Time</Lumeo.Text>\n                        </Flex>\n                        <Lumeo.Text Class=\"text-xs font-semibold text-foreground pl-4 truncate\">@mail.Subject</Lumeo.Text>\n                        <Lumeo.Text Class=\"text-xs text-muted-foreground pl-4 truncate\">@mail.Preview</Lumeo.Text>\n                    </Stack>\n                }\n            </Stack>\n        </Flex>\n\n        <!-- Reading Pane -->\n        <Flex Direction=\"col\" Class=\"flex-1 bg-background\">\n            <Stack Class=\"p-4 border-b border-border/40 bg-card\">\n                <Flex Class=\"items-start justify-between gap-4\">\n                    <Flex Class=\"items-start gap-3\">\n                        <Avatar><AvatarFallback>PK</AvatarFallback></Avatar>\n                        <Stack>\n                            <Lumeo.Text As=\"span\" Class=\"text-sm font-semibold text-foreground\">Priya Kapoor</Lumeo.Text>\n                            <Lumeo.Text Class=\"text-base font-semibold text-foreground mt-1\">Re: Q2 roadmap review</Lumeo.Text>\n                            <Lumeo.Text Class=\"text-xs text-muted-foreground mt-0.5\">Apr 17, 2026, 9:42 AM</Lumeo.Text>\n                        </Stack>\n                    </Flex>\n                    <Flex Class=\"items-center gap-1\">\n                        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                            <DynamicIcon Name=\"Archive\" Class=\"h-4 w-4\" />\n                        </Button>\n                        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-8 w-8\">\n                            <DynamicIcon Name=\"Trash2\" Class=\"h-4 w-4\" />\n                        </Button>\n                    </Flex>\n                </Flex>\n            </Stack>\n            <Stack Class=\"flex-1 overflow-y-auto p-5\">\n                <Lumeo.Text Class=\"text-sm text-foreground leading-relaxed\">Email body content...</Lumeo.Text>\n            </Stack>\n            <Separator />\n            <Stack Gap=\"2\" Class=\"p-3 bg-card\">\n                <Lumeo.Text Class=\"text-xs font-medium text-muted-foreground\">Reply to Priya Kapoor</Lumeo.Text>\n                <Textarea placeholder=\"Write your reply...\" Class=\"min-h-[70px] text-sm resize-none\" />\n                <Flex Class=\"justify-end gap-2\">\n                    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">\n                        <DynamicIcon Name=\"Forward\" Class=\"h-3.5 w-3.5 mr-1.5\" /> Forward\n                    </Button>\n                    <Button Size=\"Button.ButtonSize.Sm\">\n                        <DynamicIcon Name=\"Send\" Class=\"h-3.5 w-3.5 mr-1.5\" /> Send\n                    </Button>\n                </Flex>\n            </Stack>\n        </Flex>\n    </Flex>\n</Stack>"
        }
      ]
    },
    {
      "title": "Music Player",
      "route": "/blocks/music",
      "description": "A full-screen music application with sidebar library navigation, album grid browsing, a 'Made for You' row, and a persistent bottom playback bar with progress and volume controls.",
      "examples": [
        {
          "title": "Music Player App",
          "code": "<!-- Music Player Layout -->\n<Stack Class=\"border border-border/40 rounded-[var(--radius-lg)] overflow-hidden\" style=\"height:620px\">\n<Flex Class=\"h-full\">\n\n  <!-- Sidebar -->\n  <Flex Direction=\"col\" Class=\"w-60 border-r border-border/40 bg-card shrink-0\">\n    <Flex Class=\"items-center gap-2.5 px-5 py-4 border-b border-border/40\">\n      <Flex Class=\"h-7 w-7 items-center justify-center rounded-md bg-primary shrink-0\">\n        <DynamicIcon Name=\"Music\" Class=\"h-4 w-4 text-primary-foreground\" />\n      </Flex>\n      <Lumeo.Text Class=\"text-base font-bold text-foreground\">Wavefront</Lumeo.Text>\n    </Flex>\n    <Stack Class=\"px-3 py-3 flex-1 overflow-y-auto\">\n      <!-- Nav items with hover:bg-accent transition-colors -->\n      <button class=\"...active\">Home</button>\n      <button class=\"...muted hover\">Browse</button>\n      <Separator Class=\"my-3\" />\n      <!-- Library + Playlists sections ... -->\n    </Stack>\n  </Flex>\n\n  <!-- Main -->\n  <Flex Direction=\"col\" Class=\"flex-1 overflow-hidden bg-background\">\n    <Stack Class=\"flex-1 overflow-y-auto p-6\">\n\n      <!-- Recently Played grid -->\n      <Heading Level=\"3\">Recently Played</Heading>\n      <Grid Class=\"grid-cols-4 gap-4\">\n        @foreach (var album in _featuredAlbums)\n        {\n          <div class=\"group cursor-pointer\" @onclick=\"() => SelectSong(album)\">\n            <div class=\"relative rounded-[var(--radius-md)] @album.BgClass overflow-hidden\" style=\"aspect-ratio:1\">\n              <!-- Play overlay on group-hover -->\n              <div class=\"absolute inset-0 bg-black/30 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center\">\n                <div class=\"h-10 w-10 rounded-full bg-primary flex items-center justify-center\">\n                  <DynamicIcon Name=\"Play\" Class=\"h-5 w-5 text-primary-foreground\" />\n                </div>\n              </div>\n            </div>\n            <Lumeo.Text Class=\"text-sm font-semibold text-foreground\">@album.Title</Lumeo.Text>\n            <Lumeo.Text Class=\"text-xs text-muted-foreground\">@album.Artist</Lumeo.Text>\n          </div>\n        }\n      </Grid>\n\n      <!-- Made For You row -->\n      <Heading Level=\"3\">Made For You</Heading>\n      <Grid Class=\"grid-cols-6 gap-3\"><!-- mix tiles --></Grid>\n\n    </Stack>\n\n    <!-- Player Bar -->\n    <Stack Class=\"border-t border-border/40 bg-card px-5 py-3 shrink-0\">\n      <Flex Class=\"items-center gap-4\">\n        <!-- Track info (w-52) -->\n        <!-- Playback controls (flex-1 center, gap-1) -->\n        <!--   Shuffle | SkipBack | Play/Pause (rounded-full) | SkipForward | Repeat -->\n        <!--   Progress slider with time labels -->\n        <!-- Volume (w-28) -->\n      </Flex>\n    </Stack>\n  </Flex>\n\n</Flex>\n</Stack>\n\n@code {\n  private string _currentSong = \"Neon Bloom\";\n  private string _currentArtist = \"Hollow Echoes\";\n  private bool _isPlaying = false;\n  private bool _isLiked = false;\n  private double _progress = 67;\n  private double _volume = 72;\n\n  private void TogglePlay() => _isPlaying = !_isPlaying;\n  private string FormatTime(double s) => $\"{(int)(s/60)}:{((int)s%60):D2}\";\n}"
        }
      ]
    },
    {
      "title": "Notifications",
      "route": "/blocks/notifications",
      "description": "A full notification center with tabbed inbox (All / Mentions / Activity / Followers / Security), time-grouped items with unread indicators, preference toggles, and live toast demos.",
      "examples": [
        {
          "title": "Notification Center",
          "code": "<!-- Notifications with tabs, groups, unread indicators -->\n\n<!-- Tabs bar -->\n<Flex Class=\"gap-0 border-b border-border/30\">\n    @foreach (var tab in _tabs)\n    {\n        <button class=\"@(activeTab==tab ? 'border-b-2 border-primary text-foreground' : 'text-muted-foreground hover:text-foreground')\" @onclick=\"() => activeTab = tab\">\n            @tab\n            @if (GetTabUnreadCount(tab) > 0)\n            {\n                <span class=\"ml-1.5 inline-flex h-4 px-1 rounded-full bg-primary text-primary-foreground text-[10px]\">@GetTabUnreadCount(tab)</span>\n            }\n        </button>\n    }\n</Flex>\n\n<!-- Grouped notification list -->\n@foreach (var group in GroupedNotifications)\n{\n    <Lumeo.Text Class=\"text-[11px] font-semibold text-muted-foreground uppercase tracking-wide\">@group.Key</Lumeo.Text>\n    @foreach (var n in group.Value)\n    {\n        <div class=\"@(!n.IsRead ? 'bg-primary/5' : 'hover:bg-muted/50') flex items-start gap-3 rounded-lg px-3 py-3 cursor-pointer transition-colors\" @onclick=\"() => MarkRead(n)\">\n            <!-- Color-coded type icon -->\n            <div class=\"h-8 w-8 rounded-full flex items-center justify-center @n.IconBg\">\n                <DynamicIcon Name=\"@n.Icon\" Class=\"h-4 w-4 @n.IconColor\" />\n            </div>\n            <Stack Class=\"flex-1 min-w-0\">\n                <Flex Class=\"items-center gap-1.5\">\n                    @if (!n.IsRead) { <div class=\"h-1.5 w-1.5 rounded-full bg-primary\" /> }\n                    <Lumeo.Text Class=\"text-sm font-medium\">@n.Title</Lumeo.Text>\n                    <Lumeo.Text As=\"span\" Class=\"text-[11px] text-muted-foreground ml-auto\">@n.Time</Lumeo.Text>\n                </Flex>\n                <Lumeo.Text Class=\"text-xs text-muted-foreground\">@n.Description</Lumeo.Text>\n                @if (n.ActionLabel is not null)\n                {\n                    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\" Class=\"mt-2 h-6 text-xs w-fit\">@n.ActionLabel</Button>\n                }\n            </Stack>\n        </div>\n    }\n}\n\n<!-- Empty state -->\n@if (VisibleNotifications.Count == 0)\n{\n    <Flex Direction=\"col\" Class=\"items-center py-16\">\n        <div class=\"h-14 w-14 rounded-full bg-muted flex items-center justify-center mb-4\">\n            <DynamicIcon Name=\"BellOff\" Class=\"h-7 w-7 text-muted-foreground\" />\n        </div>\n        <Lumeo.Text Class=\"text-sm font-medium\">All caught up</Lumeo.Text>\n    </Flex>\n}"
        }
      ]
    },
    {
      "title": "Settings Page",
      "route": "/blocks/settings",
      "description": "A full settings layout with sidebar navigation, profile, account security, billing, notifications, team management, and danger zone.",
      "examples": [
        {
          "title": "Settings",
          "code": "<!-- Settings Layout -->\n<Flex Class=\"gap-8\">\n    <!-- Sidebar Nav -->\n    <Stack Class=\"w-52 shrink-0 space-y-0.5\">\n        @foreach (var item in _sections) {\n            <Button Variant=\"Button.ButtonVariant.Ghost\"\n                    Class=\"w-full justify-start gap-3\"\n                    @onclick=\"@(() => _activeSection = item.Id)\">\n                <DynamicIcon Name=\"@item.Icon\" Class=\"h-4 w-4\" />\n                @item.Label\n            </Button>\n        }\n    </Stack>\n    <!-- Content -->\n    <Stack Class=\"flex-1\" Gap=\"6\">\n        @if (_activeSection == \"profile\") { /* Profile form */ }\n        @if (_activeSection == \"billing\") { /* Plan, payment, invoices */ }\n        @if (_activeSection == \"team\")    { /* Members, pending invites */ }\n        @if (_activeSection == \"account\") {\n            /* Password change, 2FA, sessions, danger zone */\n            <Card>\n                <CardHeader><Heading Level=\"3\">Danger Zone</Heading></CardHeader>\n                <CardContent>\n                    <Button Variant=\"Button.ButtonVariant.Destructive\">Delete my account</Button>\n                </CardContent>\n            </Card>\n        }\n    </Stack>\n</Flex>"
        }
      ]
    },
    {
      "title": "Social Feed",
      "route": "/blocks/social-feed",
      "description": "A three-column social media layout with navigation rail, timeline feed with posts and interactions, and a right sidebar with trending topics and follow suggestions.",
      "examples": [
        {
          "title": "Social Media Timeline",
          "code": "<!-- Three-column social feed layout -->\n<Flex Class=\"w-full gap-0\">\n\n  <!-- Left Rail -->\n  <Flex Direction=\"col\" Class=\"w-56 shrink-0 pr-4 border-r border-border/40\">\n    <Flex Class=\"items-center gap-3 px-2 py-3\">\n      <Avatar><AvatarFallback>ME</AvatarFallback></Avatar>\n      <Lumeo.Text Class=\"text-sm font-semibold\">You</Lumeo.Text>\n    </Flex>\n    <Separator />\n    @foreach (var nav in _navItems)\n    {\n      <button class=\"flex items-center gap-3 w-full rounded-lg px-3 py-2 text-sm font-medium transition-colors\n                      @(nav.IsActive ? 'bg-accent text-accent-foreground' : 'text-muted-foreground hover:bg-accent')\">\n        <DynamicIcon Name=\"@nav.Icon\" Class=\"h-4 w-4\" />\n        @nav.Label\n        @if (nav.Badge > 0) { <Badge Class=\"ml-auto\">@nav.Badge</Badge> }\n      </button>\n    }\n    <Button Class=\"w-full mt-2\" Size=\"Button.ButtonSize.Sm\">\n      <DynamicIcon Name=\"PenLine\" Class=\"h-4 w-4 mr-2\" /> New Post\n    </Button>\n  </Flex>\n\n  <!-- Center Feed -->\n  <Stack Class=\"flex-1 px-6 min-w-0\">\n    <!-- Compose card -->\n    <Card Class=\"mb-4 border-border/40\">\n      <CardContent Class=\"pt-4\">\n        <Flex Gap=\"3\">\n          <Avatar><AvatarFallback>ME</AvatarFallback></Avatar>\n          <Stack Class=\"flex-1 gap-3\">\n            <Textarea AutoResize=\"true\" placeholder=\"What's on your mind?\" />\n            <Button IsLoading=\"@_isPosting\" OnClick=\"HandlePost\">\n              <DynamicIcon Name=\"Send\" Class=\"h-4 w-4 mr-1.5\" /> Post\n            </Button>\n          </Stack>\n        </Flex>\n      </CardContent>\n    </Card>\n\n    <!-- Post cards with like/comment/share/bookmark -->\n    @foreach (var post in _posts) { /* ... */ }\n  </Stack>\n\n  <!-- Right Rail -->\n  <Stack Class=\"w-64 shrink-0 pl-4 border-l border-border/40 gap-4\">\n    <Input placeholder=\"Search...\" Class=\"pl-9\" />\n\n    <!-- Trending topics -->\n    <Card Class=\"border-border/40\">\n      <CardHeader><Heading Level=\"4\">Trending</Heading></CardHeader>\n      <CardContent>\n        @foreach (var t in _trending) { /* tag + post count */ }\n      </CardContent>\n    </Card>\n\n    <!-- Who to follow -->\n    <Card Class=\"border-border/40\">\n      <CardHeader><Heading Level=\"4\">Who to Follow</Heading></CardHeader>\n      <CardContent>\n        @foreach (var s in _suggestions)\n        {\n          <Flex Class=\"items-center gap-3 py-2.5\">\n            <Avatar Size=\"Avatar.AvatarSize.Sm\"><AvatarFallback>@s.Initials</AvatarFallback></Avatar>\n            <Stack Class=\"flex-1 min-w-0\">\n              <Lumeo.Text Class=\"text-sm font-medium\">@s.Name</Lumeo.Text>\n              <Lumeo.Text Class=\"text-xs text-muted-foreground\">@s.Followers followers</Lumeo.Text>\n            </Stack>\n            <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">Follow</Button>\n          </Flex>\n        }\n      </CardContent>\n    </Card>\n  </Stack>\n\n</Flex>"
        }
      ]
    },
    {
      "title": "Task Tracker",
      "route": "/blocks/task-tracker",
      "description": "A Linear-inspired task tracker with grouped status lanes, priority icons, label badges, subtask progress, multi-select with bulk actions, and a left navigation rail.",
      "examples": [
        {
          "title": "Task Tracker",
          "code": "<!-- Task Tracker — Lumeo pattern -->\n<div class=\"flex flex-col rounded-[var(--radius-lg)] border border-border/40 overflow-hidden\" style=\"min-height:640px;\">\n\n  <!-- Top bar: breadcrumb, view tabs, search, filter, new issue -->\n  <div class=\"flex items-center gap-3 px-4 py-3 border-b border-border/40\">\n    <Lumeo.Text Class=\"font-semibold text-foreground\">Lumeo</Lumeo.Text>\n    <DynamicIcon Name=\"ChevronRight\" Class=\"h-3.5 w-3.5 text-muted-foreground\" />\n    <Lumeo.Text Class=\"text-muted-foreground\">Q2 Sprint</Lumeo.Text>\n\n    <Tabs ActiveValue=\"@_activeView\" ActiveValueChanged=\"@(v => _activeView = v)\" Class=\"flex-1\">\n      <TabsList Class=\"h-8\">\n        <TabsTrigger Value=\"all\">All</TabsTrigger>\n        <TabsTrigger Value=\"mine\">My Issues</TabsTrigger>\n        <TabsTrigger Value=\"active\">Active</TabsTrigger>\n        <TabsTrigger Value=\"backlog\">Backlog</TabsTrigger>\n        <TabsTrigger Value=\"done\">Done</TabsTrigger>\n      </TabsList>\n    </Tabs>\n\n    <Input placeholder=\"Search issues…\" Class=\"h-8 w-44\" />\n    <Button Size=\"Button.ButtonSize.Sm\" Class=\"h-8\"><DynamicIcon Name=\"Plus\" Class=\"h-4 w-4\" /> New issue</Button>\n  </div>\n\n  <!-- Body: nav rail + task list -->\n  <div class=\"flex flex-1 overflow-hidden\">\n\n    <!-- Left nav rail w-56 -->\n    <div class=\"w-56 shrink-0 border-r border-border/40 bg-muted/10 flex flex-col p-2 gap-0.5\">\n      @foreach (var n in _navRail) {\n        <button class=\"flex items-center gap-2.5 rounded-md px-2.5 py-2 text-sm text-muted-foreground hover:bg-accent/40\">\n          <DynamicIcon Name=\"@n.Icon\" Class=\"h-4 w-4 shrink-0\" /> @n.Label\n          @if (n.Count > 0) { <span class=\"ml-auto text-xs\">@n.Count</span> }\n        </button>\n      }\n    </div>\n\n    <!-- Task list, grouped by Status -->\n    <div class=\"flex-1 overflow-auto\">\n      @foreach (var group in VisibleTasks.GroupBy(t => t.Status).OrderBy(g => StatusOrder(g.Key))) {\n        <!-- Group header with collapse toggle -->\n        <div class=\"flex items-center gap-2.5 px-4 py-2.5 border-b bg-muted/20 sticky top-0\">\n          <DynamicIcon Name=\"ChevronDown\" Class=\"h-3.5 w-3.5 text-muted-foreground\" />\n          <DynamicIcon Name=\"@StatusIcon(group.Key)\" Class=\"h-4 w-4\" />\n          <Lumeo.Text Class=\"text-sm font-semibold\">@group.Key</Lumeo.Text>\n          <Badge Variant=\"Badge.BadgeVariant.Secondary\">@group.Count()</Badge>\n        </div>\n        <!-- Task rows -->\n        @foreach (var t in group) {\n          <div class=\"group flex items-center gap-3 px-4 py-2.5 border-b hover:bg-accent/30 transition-colors cursor-pointer\">\n            <Checkbox Class=\"opacity-0 group-hover:opacity-100\" />\n            <DynamicIcon Name=\"@PriorityIcon(t.Priority)\" Class=\"@PriorityColor(t.Priority)\" />\n            <Lumeo.Text Class=\"text-xs text-muted-foreground font-mono w-16\">@t.Id</Lumeo.Text>\n            <Lumeo.Text Class=\"flex-1 text-sm font-medium truncate\">@t.Title</Lumeo.Text>\n            @foreach (var label in t.Labels.Take(3)) { <Badge Variant=\"Badge.BadgeVariant.Secondary\">@label</Badge> }\n            <Avatar Size=\"Avatar.AvatarSize.Sm\"><AvatarFallback>@t.AssigneeInitials</AvatarFallback></Avatar>\n            <Lumeo.Text Class=\"text-xs text-muted-foreground\">@t.DueDate.ToString(\"MMM d\")</Lumeo.Text>\n          </div>\n        }\n      }\n    </div>\n  </div>\n\n  <!-- Bulk action bar (shown when _selectedTasks.Count > 0) -->\n  @if (_selectedTasks.Count > 0) {\n    <div class=\"flex items-center gap-3 px-4 py-3 border-t border-border/40 bg-accent/20\">\n      <Lumeo.Text Class=\"text-sm font-medium\">@_selectedTasks.Count selected</Lumeo.Text>\n      <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\" @onclick=\"@(() => _selectedTasks.Clear())\">Deselect</Button>\n      <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">Assign to</Button>\n      <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">Set priority</Button>\n      <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\" Class=\"text-destructive ml-auto\">Delete</Button>\n    </div>\n  }\n</div>"
        }
      ]
    }
  ],
  "components": {
    "Accordion": {
      "name": "Accordion",
      "category": "Navigation",
      "subcategory": null,
      "description": "Vertically stacked collapsible sections that expand to reveal content.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Accordion/Accordion.razor",
        "UI/Accordion/AccordionContent.razor",
        "UI/Accordion/AccordionItem.razor",
        "UI/Accordion/AccordionTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Type",
          "type": "AccordionType",
          "default": "AccordionType.Single",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DefaultValues",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "AccordionType",
          "values": [
            "Single",
            "Multiple"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "AccordionContext",
          "signature": "AccordionContext(AccordionType Type, HashSet<string> OpenItems, EventCallback<string> Toggle)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Single (Default)",
          "code": "<Accordion Type=\"Accordion.AccordionType.Single\">\n    <AccordionItem Value=\"item-1\">\n        <AccordionTrigger>Is it accessible?</AccordionTrigger>\n        <AccordionContent>Yes. It adheres to the WAI-ARIA design pattern.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"item-2\">\n        <AccordionTrigger>Is it styled?</AccordionTrigger>\n        <AccordionContent>Yes. It comes with default styles that match the other components' aesthetic.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"item-3\">\n        <AccordionTrigger>Is it animated?</AccordionTrigger>\n        <AccordionContent>Yes. It's animated by default, but you can disable it if you prefer.</AccordionContent>\n    </AccordionItem>\n</Accordion>"
        },
        {
          "title": "FAQ",
          "code": "<Accordion Type=\"Accordion.AccordionType.Single\">\n    <AccordionItem Value=\"q1\">\n        <AccordionTrigger>What payment methods do you accept?</AccordionTrigger>\n        <AccordionContent>We accept all major credit cards, PayPal, and bank transfers.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"q2\">\n        <AccordionTrigger>Can I cancel my subscription at any time?</AccordionTrigger>\n        <AccordionContent>Yes, cancel anytime. Access continues until end of billing period.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"q3\">\n        <AccordionTrigger>Do you offer a free trial?</AccordionTrigger>\n        <AccordionContent>14-day free trial, no credit card required.</AccordionContent>\n    </AccordionItem>\n</Accordion>"
        },
        {
          "title": "Multiple",
          "code": "<Accordion Type=\"Accordion.AccordionType.Multiple\">\n    <AccordionItem Value=\"item-1\">\n        <AccordionTrigger>What is Lumeo?</AccordionTrigger>\n        <AccordionContent>Lumeo is a Blazor component library inspired by shadcn/ui, built with Tailwind CSS.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"item-2\">\n        <AccordionTrigger>Which .NET version?</AccordionTrigger>\n        <AccordionContent>Lumeo targets .NET 10 and uses Tailwind CSS v4 for styling.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"item-3\">\n        <AccordionTrigger>Can I customize it?</AccordionTrigger>\n        <AccordionContent>Absolutely. All components accept a Class parameter for additional CSS classes.</AccordionContent>\n    </AccordionItem>\n</Accordion>"
        },
        {
          "title": "Type — interactive",
          "code": "<Segmented @bind-Value=\"_accordionTypeSel\" Options=\"_accordionTypeOptions\" />\n<Accordion Type=\"@_activeAccordionType\">\n    <AccordionItem Value=\"a\">\n        <AccordionTrigger>Is it accessible?</AccordionTrigger>\n        <AccordionContent>Yes. It adheres to the WAI-ARIA design pattern.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"b\">\n        <AccordionTrigger>Is it styled?</AccordionTrigger>\n        <AccordionContent>Yes. It comes with default styles.</AccordionContent>\n    </AccordionItem>\n    <AccordionItem Value=\"c\">\n        <AccordionTrigger>Is it animated?</AccordionTrigger>\n        <AccordionContent>Yes. Animated by default.</AccordionContent>\n    </AccordionItem>\n</Accordion>\n\n@code {\n    private string _accordionTypeSel = \"Single\";\n    private Accordion.AccordionType _activeAccordionType => Enum.Parse<Accordion.AccordionType>(_accordionTypeSel);\n    private List<Segmented.SegmentedOption> _accordionTypeOptions = new()\n    {\n        new() { Label = \"Single\", Value = \"Single\" },\n        new() { Label = \"Multiple\", Value = \"Multiple\" },\n    };\n}"
        }
      ],
      "subComponents": {
        "AccordionContent": {
          "componentName": "AccordionContent",
          "fileName": "AccordionContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Accordion.AccordionContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ItemContext",
              "type": "AccordionItem.AccordionItemContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ForceMount",
              "type": "bool",
              "default": null,
              "description": "When true, this panel is always rendered into the DOM (with the hidden attribute when closed) instead of being unmounted. Use when child state (form inputs, scroll position, expensive component init) must survive closing the accordion item. Default false preserves the original unmount behaviour.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AccordionItem": {
          "componentName": "AccordionItem",
          "fileName": "AccordionItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "AccordionItemContext",
              "signature": "AccordionItemContext(string Value, bool Disabled)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "AccordionTrigger": {
          "componentName": "AccordionTrigger",
          "fileName": "AccordionTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Accordion.AccordionContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ItemContext",
              "type": "AccordionItem.AccordionItemContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Affix": {
      "name": "Affix",
      "category": "Navigation",
      "subcategory": null,
      "description": "Pins an element to the viewport edge as the user scrolls.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Affix/Affix.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OffsetTop",
          "type": "int",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OffsetBottom",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Target",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnChange",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnChange",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic Affix",
          "code": "<Affix OffsetTop=\"80\">\n    <div class=\"bg-background border rounded-lg p-4 shadow-sm\">\n        This content sticks at 80px from top.\n    </div>\n</Affix>"
        },
        {
          "title": "Interactive: Anchor & Offset",
          "code": "@* Top anchor *@\n<Affix OffsetTop=\"80\">\n    <Badge Class=\"px-4 py-1.5 text-sm shadow\">Affixed — Top 80px</Badge>\n</Affix>\n\n@* Bottom anchor *@\n<Affix OffsetBottom=\"40\">\n    <Badge Class=\"px-4 py-1.5 text-sm shadow\">Affixed — Bottom 40px</Badge>\n</Affix>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "AgentMessageList": {
      "name": "AgentMessageList",
      "category": "AI",
      "subcategory": null,
      "description": "Chat message stream for AI agents with role-based styling.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/AgentMessageList/AgentMessage.razor",
        "UI/AgentMessageList/AgentMessageList.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AutoScroll",
          "type": "bool",
          "default": "true",
          "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-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--radius"
      ],
      "examples": [],
      "subComponents": {
        "AgentMessage": {
          "componentName": "AgentMessage",
          "fileName": "AgentMessage.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Role",
              "type": "AgentMessageRole",
              "default": "AgentMessageRole.Assistant",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Avatar",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Name",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Timestamp",
              "type": "DateTimeOffset?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsStreaming",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [
            {
              "name": "AgentMessageRole",
              "values": [
                "User",
                "Assistant",
                "System",
                "Tool"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Alert": {
      "name": "Alert",
      "category": "Feedback",
      "subcategory": null,
      "description": "Inline callout for status, warning, or informational messages.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Alert/Alert.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "AlertVariant",
          "default": "AlertVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "AlertSize",
          "default": "AlertSize.Medium",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDismissible",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDismiss",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Title",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "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": "ShowIcon",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AutoDismissMs",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnDismiss",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "AlertVariant",
          "values": [
            "Default",
            "Destructive",
            "Success",
            "Warning",
            "Info"
          ],
          "description": null
        },
        {
          "name": "AlertSize",
          "values": [
            "Small",
            "Medium",
            "Large"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Alert>\n    <Heading Level=\"5\" Size=\"sm\" Weight=\"medium\" Class=\"mb-1 leading-none tracking-tight\">Heads up!</Heading>\n    <Lumeo.Text Size=\"sm\" Leading=\"relaxed\">You can add components to your app using the CLI.</Lumeo.Text>\n</Alert>"
        },
        {
          "title": "Destructive",
          "code": "<Alert Variant=\"Alert.AlertVariant.Destructive\">\n    <Heading Level=\"5\" Size=\"sm\" Weight=\"medium\" Class=\"mb-1 leading-none tracking-tight\">Error</Heading>\n    <Lumeo.Text Size=\"sm\" Leading=\"relaxed\">Your session has expired. Please log in again.</Lumeo.Text>\n</Alert>"
        },
        {
          "title": "With Icon",
          "code": "<Alert>\n    <Flex Gap=\"3\">\n        <Blazicon Svg=\"Lucide.Info\" class=\"h-4 w-4 mt-0.5\" />\n        <Stack Gap=\"0\">\n            <Heading Level=\"5\" Size=\"sm\" Weight=\"medium\" Class=\"mb-1 leading-none tracking-tight\">Information</Heading>\n            <Lumeo.Text Size=\"sm\" Leading=\"relaxed\">This action will update your preferences.</Lumeo.Text>\n        </Stack>\n    </Flex>\n</Alert>\n<Alert Variant=\"Alert.AlertVariant.Destructive\">\n    <Flex Gap=\"3\">\n        <Blazicon Svg=\"Lucide.CircleAlert\" class=\"h-4 w-4 mt-0.5\" />\n        <Stack Gap=\"0\">\n            <Heading Level=\"5\" Size=\"sm\" Weight=\"medium\" Class=\"mb-1 leading-none tracking-tight\">Something went wrong</Heading>\n            <Lumeo.Text Size=\"sm\" Leading=\"relaxed\">Could not save your changes. Please try again.</Lumeo.Text>\n        </Stack>\n    </Flex>\n</Alert>"
        },
        {
          "title": "With Action",
          "code": "<Alert>\n    <Flex Align=\"start\" Justify=\"between\" Gap=\"4\">\n        <Flex Gap=\"3\">\n            <Blazicon Svg=\"Lucide.Bell\" class=\"h-4 w-4 mt-0.5 text-primary\" />\n            <Stack Gap=\"0\">\n                <Heading Level=\"5\" Size=\"sm\" Weight=\"medium\" Class=\"mb-1 leading-none tracking-tight\">New feature available</Heading>\n                <Lumeo.Text Size=\"sm\" Leading=\"relaxed\">Dark mode is now available for all users.</Lumeo.Text>\n            </Stack>\n        </Flex>\n        <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">Try it</Button>\n    </Flex>\n</Alert>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "AlertDialog": {
      "name": "AlertDialog",
      "category": "Overlay",
      "subcategory": null,
      "description": "Modal confirmation dialog that interrupts the user for destructive actions.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/AlertDialog/AlertDialog.razor",
        "UI/AlertDialog/AlertDialogAction.razor",
        "UI/AlertDialog/AlertDialogCancel.razor",
        "UI/AlertDialog/AlertDialogContent.razor",
        "UI/AlertDialog/AlertDialogDescription.razor",
        "UI/AlertDialog/AlertDialogFooter.razor",
        "UI/AlertDialog/AlertDialogHeader.razor",
        "UI/AlertDialog/AlertDialogTitle.razor",
        "UI/AlertDialog/AlertDialogTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "AlertDialogContext",
          "signature": "AlertDialogContext(bool IsOpen, EventCallback<bool> SetOpen, string TitleId, string DescriptionId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-destructive",
        "--color-destructive-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<AlertDialog @bind-Open=\"_isOpen\">\n    <AlertDialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Delete Account</Button>\n    </AlertDialogTrigger>\n    <AlertDialogContent>\n        <AlertDialogHeader>\n            <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n            <AlertDialogDescription>\n                This action cannot be undone. This will permanently delete your account\n                and remove your data from our servers.\n            </AlertDialogDescription>\n        </AlertDialogHeader>\n        <AlertDialogFooter>\n            <AlertDialogCancel>Cancel</AlertDialogCancel>\n            <AlertDialogAction>Continue</AlertDialogAction>\n        </AlertDialogFooter>\n    </AlertDialogContent>\n</AlertDialog>\n\n@code {\n    private bool _isOpen;\n}"
        },
        {
          "title": "With Action Handler",
          "code": "<AlertDialog @bind-Open=\"_isOpen\">\n    <AlertDialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Destructive\">Remove Item</Button>\n    </AlertDialogTrigger>\n    <AlertDialogContent>\n        <AlertDialogHeader>\n            <AlertDialogTitle>Remove this item?</AlertDialogTitle>\n            <AlertDialogDescription>\n                This item will be permanently removed from your collection.\n            </AlertDialogDescription>\n        </AlertDialogHeader>\n        <AlertDialogFooter>\n            <AlertDialogCancel>Keep It</AlertDialogCancel>\n            <AlertDialogAction OnAction=\"HandleRemove\">Yes, Remove</AlertDialogAction>\n        </AlertDialogFooter>\n    </AlertDialogContent>\n</AlertDialog>\n\n@code {\n    private bool _isOpen;\n    private void HandleRemove() { /* handle removal */ }\n}"
        },
        {
          "title": "Unsaved Changes",
          "code": "<AlertDialog @bind-Open=\"_isOpen\">\n    <AlertDialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Ghost\">\n            <Blazicon Svg=\"Lucide.X\" class=\"h-4 w-4\" /> Close Editor\n        </Button>\n    </AlertDialogTrigger>\n    <AlertDialogContent>\n        <AlertDialogHeader>\n            <AlertDialogTitle>Discard unsaved changes?</AlertDialogTitle>\n            <AlertDialogDescription>\n                You have unsaved changes. If you close now, your changes will be lost.\n            </AlertDialogDescription>\n        </AlertDialogHeader>\n        <AlertDialogFooter>\n            <AlertDialogCancel>Keep Editing</AlertDialogCancel>\n            <AlertDialogAction>Discard Changes</AlertDialogAction>\n        </AlertDialogFooter>\n    </AlertDialogContent>\n</AlertDialog>"
        },
        {
          "title": "Loading Action",
          "code": "<AlertDialog @bind-Open=\"_loadingDialogOpen\">\n    <AlertDialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Destructive\">Delete Account</Button>\n    </AlertDialogTrigger>\n    <AlertDialogContent>\n        <AlertDialogHeader>\n            <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n            <AlertDialogDescription>This action cannot be undone. This will permanently delete your account.</AlertDialogDescription>\n        </AlertDialogHeader>\n        <AlertDialogFooter>\n            <AlertDialogCancel>Cancel</AlertDialogCancel>\n            <AlertDialogAction IsLoading=\"@_isDeleting\" OnAction=\"HandleDelete\">\n                @(_isDeleting ? \"Deleting...\" : \"Delete\")\n            </AlertDialogAction>\n        </AlertDialogFooter>\n    </AlertDialogContent>\n</AlertDialog>\n\n@code {\n    private bool _loadingDialogOpen;\n    private bool _isDeleting;\n\n    private async Task HandleDelete()\n    {\n        _isDeleting = true;\n        await Task.Delay(2000);\n        _isDeleting = false;\n        _loadingDialogOpen = false;\n    }\n}"
        }
      ],
      "subComponents": {
        "AlertDialogAction": {
          "componentName": "AlertDialogAction",
          "fileName": "AlertDialogAction.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnAction",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnAction",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogCancel": {
          "componentName": "AlertDialogCancel",
          "fileName": "AlertDialogCancel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogContent": {
          "componentName": "AlertDialogContent",
          "fileName": "AlertDialogContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogDescription": {
          "componentName": "AlertDialogDescription",
          "fileName": "AlertDialogDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogFooter": {
          "componentName": "AlertDialogFooter",
          "fileName": "AlertDialogFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogHeader": {
          "componentName": "AlertDialogHeader",
          "fileName": "AlertDialogHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogTitle": {
          "componentName": "AlertDialogTitle",
          "fileName": "AlertDialogTitle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AlertDialogTrigger": {
          "componentName": "AlertDialogTrigger",
          "fileName": "AlertDialogTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "AlertDialog.AlertDialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "AnimatedBeam": {
      "name": "AnimatedBeam",
      "category": "Motion",
      "subcategory": null,
      "description": "SVG beam that traces an animated gradient path between two DOM elements.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/AnimatedBeam/AnimatedBeam.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ContainerId",
          "type": "string?",
          "default": null,
          "description": "The id of the container element that holds both the from/to nodes and this AnimatedBeam. Coordinates are measured relative to this element (matching Magic UI's containerRef pattern). If null, the SVG's own bounding rect is used as fallback.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FromId",
          "type": "string?",
          "default": null,
          "description": "The element id of the source node.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ToId",
          "type": "string?",
          "default": null,
          "description": "The element id of the destination node.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "int",
          "default": "3000",
          "description": "Duration of one full beam cycle in milliseconds.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DelayMs",
          "type": "int",
          "default": "0",
          "description": "Delay before the first animation cycle starts.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Curvature",
          "type": "double",
          "default": "0",
          "description": "Curvature of the bezier path. 0 = straight. Positive = bows up.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Reverse",
          "type": "bool",
          "default": "false",
          "description": "Reverses the direction of travel.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GradientStartColor",
          "type": "string",
          "default": "\"#ffaa40\"",
          "description": "Color at the start of the gradient.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GradientStopColor",
          "type": "string",
          "default": "\"#9c40ff\"",
          "description": "Color at the end of the gradient.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PathColor",
          "type": "string",
          "default": "\"var(--color-border)\"",
          "description": "CSS color of the guide track path.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PathWidth",
          "type": "double",
          "default": "1",
          "description": "Width of the guide track in px.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PathOpacity",
          "type": "double",
          "default": "0.3",
          "description": "Opacity of the guide track (0–1).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BeamWidth",
          "type": "double",
          "default": "2",
          "description": "Width of the animated beam stroke in px.",
          "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-foreground"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "AppBar": {
      "name": "AppBar",
      "category": "Navigation",
      "subcategory": null,
      "description": "Top application bar with start, center, and end slots; sticky and elevated variants.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/AppBar/AppBar.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "StartContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EndContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Sticky",
          "type": "bool",
          "default": "true",
          "description": "When true (default), pins to the top of the viewport.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Elevated",
          "type": "bool",
          "default": null,
          "description": "When true, adds a subtle shadow beneath the bar.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Bordered",
          "type": "bool",
          "default": "true",
          "description": "When true (default), adds a bottom border.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"h-14\"",
          "description": "Tailwind height class for the bar. Default is \"h-14\".",
          "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-border",
        "--color-card",
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Default AppBar",
          "code": "<AppBar>\n    <StartContent>\n        <Flex Gap=\"2\" Align=\"center\">\n            <img src=\"/logo.svg\" class=\"h-6 w-6\" alt=\"Logo\" />\n            <Lumeo.Text Size=\"sm\" Weight=\"semibold\">Acme Corp</Lumeo.Text>\n        </Flex>\n    </StartContent>\n    <EndContent>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Sign In</Button>\n        <Button Size=\"Button.ButtonSize.Sm\">Get Started</Button>\n    </EndContent>\n</AppBar>"
        },
        {
          "title": "With Search",
          "code": "<AppBar>\n    <StartContent>\n        <Lumeo.Text Size=\"sm\" Weight=\"semibold\">Dashboard</Lumeo.Text>\n    </StartContent>\n    <ChildContent>\n        <Input Placeholder=\"Search...\" Class=\"max-w-xs h-8 text-sm\" />\n    </ChildContent>\n    <EndContent>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n            <Blazicon Svg=\"Lucide.Bell\" class=\"h-4 w-4\" />\n        </Button>\n        <Avatar><AvatarFallback>JD</AvatarFallback></Avatar>\n    </EndContent>\n</AppBar>"
        },
        {
          "title": "Appearance toggles — interactive",
          "code": "<Switch @bind-Checked=\"_elevated\" />\n<Switch @bind-Checked=\"_bordered\" />\n<AppBar Elevated=\"@_elevated\" Bordered=\"@_bordered\">\n    <StartContent>\n        <Lumeo.Text Size=\"sm\" Weight=\"semibold\">My App</Lumeo.Text>\n    </StartContent>\n    <EndContent>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Sign In</Button>\n        <Button Size=\"Button.ButtonSize.Sm\">Get Started</Button>\n    </EndContent>\n</AppBar>\n\n@code {\n    private bool _elevated = false;\n    private bool _bordered = true;\n}"
        },
        {
          "title": "Elevated (no border)",
          "code": "<AppBar Elevated=\"true\" Bordered=\"false\">\n    <StartContent>\n        <Lumeo.Text Size=\"sm\" Weight=\"semibold\">My App</Lumeo.Text>\n    </StartContent>\n    <EndContent>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n            <Blazicon Svg=\"Lucide.Settings\" class=\"h-4 w-4\" />\n        </Button>\n    </EndContent>\n</AppBar>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "AspectRatio": {
      "name": "AspectRatio",
      "category": "Layout",
      "subcategory": null,
      "description": "Constrains child content to a fixed width-to-height ratio.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/AspectRatio/AspectRatio.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Ratio",
          "type": "double",
          "default": "1",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "16:9 Ratio",
          "code": "<AspectRatio Ratio=\"16.0 / 9.0\" Class=\"rounded-md overflow-hidden bg-muted\">\n    <div class=\"flex items-center justify-center h-full\">\n        16:9 Aspect Ratio\n    </div>\n</AspectRatio>"
        },
        {
          "title": "Different Ratios",
          "code": "<AspectRatio Ratio=\"1\" Class=\"rounded-md overflow-hidden bg-muted\">\n    <div class=\"flex items-center justify-center h-full\">1:1</div>\n</AspectRatio>\n\n<AspectRatio Ratio=\"4.0 / 3.0\" Class=\"rounded-md overflow-hidden bg-muted\">\n    <div class=\"flex items-center justify-center h-full\">4:3</div>\n</AspectRatio>"
        },
        {
          "title": "Media Card",
          "code": "<Card>\n    <AspectRatio Ratio=\"16.0 / 9.0\" Class=\"rounded-t-lg overflow-hidden bg-muted\">\n        <div class=\"flex items-center justify-center h-full text-muted-foreground\">\n            Thumbnail\n        </div>\n    </AspectRatio>\n    <CardContent Class=\"p-4\">\n        <Lumeo.Text Weight=\"semibold\">Getting Started with Lumeo</Lumeo.Text>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"mt-1\">Learn how to build beautiful UIs.</Lumeo.Text>\n    </CardContent>\n</Card>"
        },
        {
          "title": "Ratio — interactive",
          "code": "<AspectRatio Ratio=\"16.0 / 9.0\" Class=\"rounded-md overflow-hidden bg-muted\">\n    <div class=\"flex items-center justify-center h-full text-sm text-muted-foreground\">16:9</div>\n</AspectRatio>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Avatar": {
      "name": "Avatar",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Circular user image with initials fallback and status indicator.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Avatar/Avatar.razor",
        "UI/Avatar/AvatarFallback.razor",
        "UI/Avatar/AvatarGroup.razor",
        "UI/Avatar/AvatarImage.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "AvatarSize",
          "default": "AvatarSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Shape",
          "type": "AvatarShape",
          "default": "AvatarShape.Circle",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Status",
          "type": "AvatarStatus",
          "default": "AvatarStatus.None",
          "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": [
        {
          "name": "AvatarSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        },
        {
          "name": "AvatarShape",
          "values": [
            "Circle",
            "Square"
          ],
          "description": null
        },
        {
          "name": "AvatarStatus",
          "values": [
            "None",
            "Online",
            "Offline",
            "Away",
            "Busy"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "With Image",
          "code": "<Avatar>\n    <AvatarImage Src=\"https://github.com/shadcn.png\" Alt=\"User avatar\" />\n    <AvatarFallback>CN</AvatarFallback>\n</Avatar>"
        },
        {
          "title": "Fallback Initials",
          "code": "<Avatar>\n    <AvatarFallback>JD</AvatarFallback>\n</Avatar>\n<Avatar>\n    <AvatarFallback>\n        <Blazicon Svg=\"Lucide.User\" class=\"h-4 w-4\" />\n    </AvatarFallback>\n</Avatar>"
        },
        {
          "title": "Sizes",
          "code": "<Avatar Size=\"Avatar.AvatarSize.Sm\">\n    <AvatarImage Src=\"...\" Alt=\"Small\" />\n    <AvatarFallback>SM</AvatarFallback>\n</Avatar>\n<Avatar Size=\"Avatar.AvatarSize.Lg\">\n    <AvatarImage Src=\"...\" Alt=\"Large\" />\n    <AvatarFallback>LG</AvatarFallback>\n</Avatar>"
        },
        {
          "title": "Group",
          "code": "<Flex Class=\"-space-x-3\">\n    <Avatar Class=\"border-2 border-background\">\n        <AvatarImage Src=\"...\" Alt=\"User 1\" />\n        <AvatarFallback>U1</AvatarFallback>\n    </Avatar>\n    <Avatar Class=\"border-2 border-background\">\n        <AvatarFallback>U2</AvatarFallback>\n    </Avatar>\n    <Avatar Class=\"border-2 border-background\">\n        <AvatarFallback>+3</AvatarFallback>\n    </Avatar>\n</Flex>"
        }
      ],
      "subComponents": {
        "AvatarFallback": {
          "componentName": "AvatarFallback",
          "fileName": "AvatarFallback.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AvatarGroup": {
          "componentName": "AvatarGroup",
          "fileName": "AvatarGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Max",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Total",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "AvatarImage": {
          "componentName": "AvatarImage",
          "fileName": "AvatarImage.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Src",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Alt",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnError",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnError",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "BackToTop": {
      "name": "BackToTop",
      "category": "Navigation",
      "subcategory": null,
      "description": "Floating button that scrolls the page back to the top.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/BackToTop/BackToTop.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "VisibilityThreshold",
          "type": "int",
          "default": "300",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<BackToTop />"
        },
        {
          "title": "Custom Threshold",
          "code": "<BackToTop VisibilityThreshold=\"500\" />"
        },
        {
          "title": "Interactive: Visibility Threshold",
          "code": "<BackToTop VisibilityThreshold=\"300\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Badge": {
      "name": "Badge",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Small label for counts, statuses, or category tags.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Badge/Badge.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "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": "Variant",
          "type": "BadgeVariant",
          "default": "BadgeVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDot",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Pulse",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsRemovable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRemove",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": "When true, the badge plays a one-shot pop-in entrance animation (scale + opacity) on mount. Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnRemove",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "BadgeVariant",
          "values": [
            "Default",
            "Secondary",
            "Destructive",
            "Outline",
            "Success",
            "Warning"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-destructive",
        "--color-destructive-foreground",
        "--color-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Variants",
          "code": "<Badge>Default</Badge>\n<Badge Variant=\"Badge.BadgeVariant.Secondary\">Secondary</Badge>\n<Badge Variant=\"Badge.BadgeVariant.Outline\">Outline</Badge>\n<Badge Variant=\"Badge.BadgeVariant.Destructive\">Destructive</Badge>\n<Badge Variant=\"Badge.BadgeVariant.Success\">Success</Badge>\n<Badge Variant=\"Badge.BadgeVariant.Warning\">Warning</Badge>"
        },
        {
          "title": "Variant (interactive)",
          "code": "<Segmented @bind-Value=\"_variant\">\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Default\">Default</SegmentedItem>\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Secondary\">Secondary</SegmentedItem>\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Outline\">Outline</SegmentedItem>\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Destructive\">Destructive</SegmentedItem>\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Success\">Success</SegmentedItem>\n    <SegmentedItem Value=\"@Badge.BadgeVariant.Warning\">Warning</SegmentedItem>\n</Segmented>\n<Badge Variant=\"@_variant\">@_variant.ToString()</Badge>\n\n@code { private Badge.BadgeVariant _variant = Badge.BadgeVariant.Default; }"
        },
        {
          "title": "Usage Examples",
          "code": "<Flex Align=\"center\" Gap=\"2\">\n    <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">Status</Lumeo.Text>\n    <Badge Variant=\"Badge.BadgeVariant.Success\">Active</Badge>\n</Flex>\n<Flex Align=\"center\" Gap=\"2\">\n    <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">Priority</Lumeo.Text>\n    <Badge Variant=\"Badge.BadgeVariant.Destructive\">High</Badge>\n</Flex>"
        },
        {
          "title": "In a Card",
          "code": "<Card>\n    <CardHeader>\n        <Flex Align=\"center\" Justify=\"between\">\n            <Heading Level=\"3\" Size=\"lg\">Notifications</Heading>\n            <Badge>3 new</Badge>\n        </Flex>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">You have unread messages.</Lumeo.Text>\n    </CardHeader>\n</Card>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Barcode": {
      "name": "Barcode",
      "category": "Data Display",
      "subcategory": null,
      "description": "Inline SVG Code 128B barcode renderer (scannable).",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Barcode/Barcode.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Format",
          "type": "BarcodeFormat",
          "default": "BarcodeFormat.Code128",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "int",
          "default": "80",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BarWidth",
          "type": "double",
          "default": "2",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowText",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string",
          "default": "\"foreground\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BackgroundColor",
          "type": "string",
          "default": "\"background\"",
          "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": [
        {
          "name": "BarcodeFormat",
          "values": [
            "Code128",
            "Code39",
            "EAN13"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Default (Code 128B)",
          "code": "<Barcode Value=\"HELLO-WORLD\" />"
        },
        {
          "title": "Numeric Data",
          "code": "<Barcode Value=\"1234567890\" />"
        },
        {
          "title": "No Text",
          "code": "<Barcode Value=\"ABC-123\" ShowText=\"false\" />"
        },
        {
          "title": "Custom Height",
          "code": "<Barcode Value=\"SMALL\" Height=\"40\" />\n<Barcode Value=\"MEDIUM\" Height=\"80\" />\n<Barcode Value=\"TALL\" Height=\"120\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Bento": {
      "name": "Bento",
      "category": "Dashboard",
      "subcategory": null,
      "description": "Masonry grid for dashboard tiles and marketing feature layouts.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Bento/Bento.razor",
        "UI/Bento/BentoTile.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Columns",
          "type": "int",
          "default": "4",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Gap",
          "type": "BentoGap",
          "default": "BentoGap.Md",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "BentoGap",
          "values": [
            "Sm",
            "Md",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-card-foreground",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic 4-column bento",
          "code": "<Bento Columns=\"4\" Gap=\"Bento.BentoGap.Md\">\n    <BentoTile Span=\"2\" Title=\"Revenue\" Description=\"Last 30 days\">\n        <div class=\"text-3xl font-semibold text-foreground\">$48,290</div>\n    </BentoTile>\n    <BentoTile Title=\"New users\"><div class=\"text-2xl font-semibold\">1,204</div></BentoTile>\n    <BentoTile Title=\"Churn\"><div class=\"text-2xl font-semibold\">2.1%</div></BentoTile>\n    <BentoTile Span=\"2\" Title=\"Latest activity\" Description=\"Feed\">\n        <div class=\"text-sm text-muted-foreground\">No events in the last hour.</div>\n    </BentoTile>\n    <BentoTile Title=\"Sessions\"><div class=\"text-2xl font-semibold\">8,492</div></BentoTile>\n    <BentoTile Title=\"Avg. duration\"><div class=\"text-2xl font-semibold\">4m 12s</div></BentoTile>\n</Bento>"
        },
        {
          "title": "Gap (interactive)",
          "code": "<Segmented @bind-Value=\"_gap\">\n    <SegmentedItem Value=\"@Bento.BentoGap.Sm\">Sm</SegmentedItem>\n    <SegmentedItem Value=\"@Bento.BentoGap.Md\">Md</SegmentedItem>\n    <SegmentedItem Value=\"@Bento.BentoGap.Lg\">Lg</SegmentedItem>\n</Segmented>\n<Bento Columns=\"4\" Gap=\"@_gap\">\n    <BentoTile Title=\"Revenue\"><div class=\"text-2xl font-semibold\">$48,290</div></BentoTile>\n    <BentoTile Title=\"Users\"><div class=\"text-2xl font-semibold\">12,402</div></BentoTile>\n    <BentoTile Title=\"Sessions\"><div class=\"text-2xl font-semibold\">8,492</div></BentoTile>\n    <BentoTile Title=\"Churn\"><div class=\"text-2xl font-semibold\">2.1%</div></BentoTile>\n</Bento>\n\n@code { private Bento.BentoGap _gap = Bento.BentoGap.Md; }"
        },
        {
          "title": "Dashboard — KPI row + spark + wide tile",
          "code": "<Bento Columns=\"3\" Gap=\"Bento.BentoGap.Md\">\n    <KpiCard Label=\"Revenue\" Value=\"$48,290\" Delta=\"12.3\" />\n    <KpiCard Label=\"Active users\" Value=\"12,402\" Delta=\"4.8\" />\n    <KpiCard Label=\"MRR\" Value=\"$9,820\" Delta=\"-1.2\" />\n</Bento>\n<Bento Columns=\"3\" Gap=\"Bento.BentoGap.Md\">\n    <SparkCard Label=\"Page views\" Value=\"184k\" Data=\"@sparkA\" />\n    <SparkCard Label=\"Signups\" Value=\"421\" Data=\"@sparkB\" />\n    <BentoTile Title=\"Traffic\" Description=\"Last 7 days\">\n        <Chart ... />\n    </BentoTile>\n</Bento>"
        }
      ],
      "subComponents": {
        "BentoTile": {
          "componentName": "BentoTile",
          "fileName": "BentoTile.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Span",
              "type": "int",
              "default": "1",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "RowSpan",
              "type": "int",
              "default": "1",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HeaderContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FooterContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "BlurFade": {
      "name": "BlurFade",
      "category": "Motion",
      "subcategory": null,
      "description": "Motion primitive: blur + fade-in on mount or when in view.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/BlurFade/BlurFade.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DelayMs",
          "type": "int",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "int",
          "default": "600",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BlurPx",
          "type": "int",
          "default": "8",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Yoffset",
          "type": "int",
          "default": "8",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Once",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ForceHidden",
          "type": "bool",
          "default": null,
          "description": "When true, always start in the hidden state and animate in — even if the element is already in the viewport at mount. Default (false) is prerender-friendly: above-the-fold BlurFades stay statically visible to avoid a flash of blurred content on first paint. Set to true for docs demos or controlled \"Replay\" scenarios where you always want the animation to play.",
          "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-foreground"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "BorderBeam": {
      "name": "BorderBeam",
      "category": "Motion",
      "subcategory": null,
      "description": "Animated gradient border beam effect for hero elements.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/BorderBeam/BorderBeam.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "BeamSize",
          "default": "BeamSize.Md",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "int",
          "default": "8000",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColorFrom",
          "type": "string?",
          "default": null,
          "description": "Starting color of the beam. Accepts any CSS color — defaults to var(--color-primary).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColorTo",
          "type": "string?",
          "default": null,
          "description": "Ending color of the beam. Accepts any CSS color — defaults to var(--color-primary).",
          "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": [
        {
          "name": "BeamSize",
          "values": [
            "Sm",
            "Md",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--radius"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "BottomNav": {
      "name": "BottomNav",
      "category": "Navigation",
      "subcategory": null,
      "description": "Mobile-first bottom navigation bar with icon items.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/BottomNav/BottomNav.razor",
        "UI/BottomNav/BottomNavFab.razor",
        "UI/BottomNav/BottomNavItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible label for the nav landmark. Defaults to \"Bottom navigation\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Fixed",
          "type": "bool",
          "default": "true",
          "description": "When true (default), pins to the bottom of the viewport with position: fixed. Set false to render inline.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "BottomNavVariant",
          "default": "BottomNavVariant.Default",
          "description": "Visual variant. Default is a solid bar with a top border; Pill is a floating centered pill.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AnimatedIndicator",
          "type": "bool",
          "default": null,
          "description": "When true, each BottomNavItem gets smooth background-color and color transitions, and the small active pill transitions its transform with a spring easing. Default is false.",
          "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": [
        {
          "name": "BottomNavVariant",
          "values": [
            "Default",
            "Pill"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<BottomNav>\n    <BottomNavItem Href=\"/\" Label=\"Home\">\n        <IconContent><Icon Name=\"House\" Size=\"Icon.IconSize.Sm\" /></IconContent>\n    </BottomNavItem>\n    <BottomNavItem Href=\"/search\" Label=\"Search\">\n        <IconContent><Icon Name=\"Search\" Size=\"Icon.IconSize.Sm\" /></IconContent>\n    </BottomNavItem>\n    <BottomNavItem Href=\"/inbox\" Label=\"Inbox\">\n        <IconContent><Icon Name=\"Inbox\" Size=\"Icon.IconSize.Sm\" /></IconContent>\n    </BottomNavItem>\n    <BottomNavItem Href=\"/profile\" Label=\"Profile\">\n        <IconContent><Icon Name=\"User\" Size=\"Icon.IconSize.Sm\" /></IconContent>\n    </BottomNavItem>\n</BottomNav>"
        },
        {
          "title": "With Badges",
          "code": "<BottomNavItem Href=\"/chat\" Label=\"Chat\">\n    <IconContent><Icon Name=\"MessageCircle\" Size=\"Icon.IconSize.Sm\" /></IconContent>\n    <Badge>3</Badge>\n</BottomNavItem>"
        },
        {
          "title": "With Center FAB",
          "code": "<BottomNav>\n    <BottomNavItem Href=\"/\" Label=\"Home\" />\n    <BottomNavItem Href=\"/search\" Label=\"Search\" />\n\n    <BottomNavFab AriaLabel=\"Create\" OnClick=\"HandleCreate\">\n        <Icon Name=\"Plus\" Size=\"Icon.IconSize.Md\" />\n    </BottomNavFab>\n\n    <BottomNavItem Href=\"/inbox\" Label=\"Inbox\" />\n    <BottomNavItem Href=\"/profile\" Label=\"Profile\" />\n</BottomNav>"
        },
        {
          "title": "Animated Transitions",
          "code": "<BottomNav AnimatedIndicator=\"true\">\n    <BottomNavItem Href=\"/\" Label=\"Home\" />\n    <BottomNavItem Href=\"/search\" Label=\"Search\" />\n    <BottomNavItem Href=\"/inbox\" Label=\"Inbox\" />\n    <BottomNavItem Href=\"/profile\" Label=\"Profile\" />\n</BottomNav>"
        }
      ],
      "subComponents": {
        "BottomNavFab": {
          "componentName": "BottomNavFab",
          "fileName": "BottomNavFab.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": "Optional destination URL. When set, renders as an anchor; otherwise a button.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaLabel",
              "type": "string?",
              "default": null,
              "description": "Accessible label. Required because FABs are usually icon-only. Defaults to \"Primary action\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BottomNavItem": {
          "componentName": "BottomNavItem",
          "fileName": "BottomNavItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "BottomNav.BottomNavContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": "Destination URL. When set, item renders as an &lt;a&gt;; otherwise as a &lt;button&gt;.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Label",
              "type": "string?",
              "default": null,
              "description": "Text label shown under the icon. Also used as the accessible name.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IconContent",
              "type": "RenderFragment?",
              "default": null,
              "description": "Icon slot (use Icon or Blazicon). The Content suffix avoids colliding with the &lt;Icon&gt; component.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Badge",
              "type": "RenderFragment?",
              "default": null,
              "description": "Optional badge (count, dot, or any content) shown on the icon. Int, string, or RenderFragment.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IconSize",
              "type": "string",
              "default": "\"h-5 w-5\"",
              "description": "Size class applied to the icon container. Defaults to h-5 w-5 to match the original visual. Override to fit larger content like avatars (e.g. \"h-7 w-7\").",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsActive",
              "type": "bool?",
              "default": null,
              "description": "Manual active-state override. When null, active is inferred from the current route matching Href.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": "Click handler — fires for both &lt;a&gt; and &lt;button&gt; renderings (link navigation still proceeds).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PressEffect",
              "type": "Button.ButtonPressEffect",
              "default": "Button.ButtonPressEffect.None",
              "description": "Visual feedback when the item is pressed. Default is None. Scale is recommended for a tactile feel on mobile.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": "Click handler — fires for both &lt;a&gt; and &lt;button&gt; renderings (link navigation still proceeds)."
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Breadcrumb": {
      "name": "Breadcrumb",
      "category": "Navigation",
      "subcategory": null,
      "description": "Hierarchical page path with separator characters.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Breadcrumb/Breadcrumb.razor",
        "UI/Breadcrumb/BreadcrumbEllipsis.razor",
        "UI/Breadcrumb/BreadcrumbItem.razor",
        "UI/Breadcrumb/BreadcrumbLink.razor",
        "UI/Breadcrumb/BreadcrumbList.razor",
        "UI/Breadcrumb/BreadcrumbPage.razor",
        "UI/Breadcrumb/BreadcrumbSeparator.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Breadcrumb>\n    <BreadcrumbList>\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Home</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator />\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Components</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator />\n        <BreadcrumbItem>\n            <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n        </BreadcrumbItem>\n    </BreadcrumbList>\n</Breadcrumb>"
        },
        {
          "title": "With Icons",
          "code": "<Breadcrumb>\n    <BreadcrumbList>\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">\n                <Blazicon Svg=\"Lucide.Home\" class=\"h-4 w-4\" />\n            </BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator />\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Documents</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator />\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Projects</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator />\n        <BreadcrumbItem>\n            <BreadcrumbPage>Report.pdf</BreadcrumbPage>\n        </BreadcrumbItem>\n    </BreadcrumbList>\n</Breadcrumb>"
        },
        {
          "title": "Custom Separator",
          "code": "<Breadcrumb>\n    <BreadcrumbList>\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Home</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator>\n            <Blazicon Svg=\"Lucide.Slash\" class=\"h-4 w-4\" />\n        </BreadcrumbSeparator>\n        <BreadcrumbItem>\n            <BreadcrumbLink Href=\"#\">Settings</BreadcrumbLink>\n        </BreadcrumbItem>\n        <BreadcrumbSeparator>\n            <Blazicon Svg=\"Lucide.Slash\" class=\"h-4 w-4\" />\n        </BreadcrumbSeparator>\n        <BreadcrumbItem>\n            <BreadcrumbPage>Profile</BreadcrumbPage>\n        </BreadcrumbItem>\n    </BreadcrumbList>\n</Breadcrumb>"
        }
      ],
      "subComponents": {
        "BreadcrumbEllipsis": {
          "componentName": "BreadcrumbEllipsis",
          "fileName": "BreadcrumbEllipsis.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BreadcrumbItem": {
          "componentName": "BreadcrumbItem",
          "fileName": "BreadcrumbItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BreadcrumbLink": {
          "componentName": "BreadcrumbLink",
          "fileName": "BreadcrumbLink.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": "\"#\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BreadcrumbList": {
          "componentName": "BreadcrumbList",
          "fileName": "BreadcrumbList.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BreadcrumbPage": {
          "componentName": "BreadcrumbPage",
          "fileName": "BreadcrumbPage.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BreadcrumbSeparator": {
          "componentName": "BreadcrumbSeparator",
          "fileName": "BreadcrumbSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Button": {
      "name": "Button",
      "category": "Forms",
      "subcategory": "Buttons & Actions",
      "description": "Versatile button with variants, sizes, icons, and loading states.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Button/Button.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LeftIcon",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RightIcon",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ButtonVariant",
          "default": "ButtonVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ButtonSize",
          "default": "ButtonSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FullWidth",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LoadingText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Type",
          "type": "ButtonType",
          "default": "ButtonType.Button",
          "description": "HTML button type. Defaults to Button — explicitly NOT submit. The HTML spec says &lt;button&gt; inside &lt;form&gt; defaults to type=\"submit\", which would submit the form on every click. Lumeo defaults to a regular button so Buttons don't silently submit EditForm; opt in via Type=\"Submit\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "StopPropagation",
          "type": "bool",
          "default": null,
          "description": "Stop click propagation to ancestors. Use this instead of the Razor directive @@onclick:stopPropagation on a Lumeo component — that directive creates an onclick parameter that case-insensitively collides with the OnClick parameter, producing a compile error. The directive only works natively on HTML elements; this parameter is the equivalent for the &lt;button&gt; element underneath.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PreventDefault",
          "type": "bool",
          "default": null,
          "description": "Prevent the default click action on the underlying &lt;button&gt; element. Same rationale as StopPropagation — Razor's @@onclick:preventDefault directive collides case-insensitively with the OnClick parameter on components.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PressEffect",
          "type": "ButtonPressEffect",
          "default": "ButtonPressEffect.None",
          "description": "Visual feedback when the button is pressed down. Default is None (no press animation — original behaviour).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "ButtonVariant",
          "values": [
            "Default",
            "Destructive",
            "Outline",
            "Secondary",
            "Ghost",
            "Link"
          ],
          "description": null
        },
        {
          "name": "ButtonSize",
          "values": [
            "Default",
            "Sm",
            "Lg",
            "Icon"
          ],
          "description": null
        },
        {
          "name": "ButtonType",
          "values": [
            "Button",
            "Submit",
            "Reset"
          ],
          "description": null
        },
        {
          "name": "ButtonPressEffect",
          "values": [
            "None",
            "Scale",
            "Brightness",
            "Ripple"
          ],
          "description": "Visual press feedback style for Button."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-destructive",
        "--color-destructive-foreground",
        "--color-input",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Variants",
          "code": "<Button>Default</Button>\n<Button Variant=\"Button.ButtonVariant.Secondary\">Secondary</Button>\n<Button Variant=\"Button.ButtonVariant.Destructive\">Destructive</Button>\n<Button Variant=\"Button.ButtonVariant.Outline\">Outline</Button>\n<Button Variant=\"Button.ButtonVariant.Ghost\">Ghost</Button>\n<Button Variant=\"Button.ButtonVariant.Link\">Link</Button>"
        },
        {
          "title": "Sizes",
          "code": "<Button Size=\"Button.ButtonSize.Sm\">Small</Button>\n<Button>Default</Button>\n<Button Size=\"Button.ButtonSize.Lg\">Large</Button>\n<Button Size=\"Button.ButtonSize.Icon\">\n    <Blazicon Svg=\"Lucide.ChevronRight\" class=\"h-4 w-4\" />\n</Button>"
        },
        {
          "title": "With Icon",
          "code": "<Button>\n    <Blazicon Svg=\"Lucide.Mail\" class=\"h-4 w-4\" />\n    Login with Email\n</Button>\n<Button Variant=\"Button.ButtonVariant.Secondary\">\n    <Blazicon Svg=\"Lucide.Loader2\" class=\"h-4 w-4 animate-spin\" />\n    Please wait\n</Button>"
        },
        {
          "title": "Disabled",
          "code": "<Button disabled>Disabled</Button>\n<Button Variant=\"Button.ButtonVariant.Outline\" disabled>Disabled</Button>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ButtonGroup": {
      "name": "ButtonGroup",
      "category": "Utility",
      "subcategory": null,
      "description": "Button Group component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ButtonGroup/ButtonGroup.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "ButtonGroupOrientation",
          "default": "ButtonGroupOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "ButtonGroupOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--radius"
      ],
      "examples": [
        {
          "title": "Horizontal (default)",
          "code": "<ButtonGroup>\n    <Button Variant=\"Button.ButtonVariant.Outline\">\n        <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n    </Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">\n        <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n    </Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">\n        <Blazicon Svg=\"Lucide.Underline\" class=\"h-4 w-4\" />\n    </Button>\n</ButtonGroup>"
        },
        {
          "title": "Vertical",
          "code": "<ButtonGroup Orientation=\"ButtonGroup.ButtonGroupOrientation.Vertical\">\n    <Button Variant=\"Button.ButtonVariant.Outline\">Top</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">Middle</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">Bottom</Button>\n</ButtonGroup>"
        },
        {
          "title": "Mixed Variants",
          "code": "<ButtonGroup>\n    <Button>Save</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">Preview</Button>\n    <Button Variant=\"Button.ButtonVariant.Ghost\">Discard</Button>\n</ButtonGroup>"
        },
        {
          "title": "With Labels",
          "code": "<ButtonGroup>\n    <Button Variant=\"Button.ButtonVariant.Outline\">Previous</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">1</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">2</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">3</Button>\n    <Button Variant=\"Button.ButtonVariant.Outline\">Next</Button>\n</ButtonGroup>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Calendar": {
      "name": "Calendar",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Date picker calendar grid with single, range, and multi-select modes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Calendar/Calendar.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Value",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinDate",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxDate",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsRange",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeStart",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeStartChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeEnd",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeEndChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NumberOfMonths",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowWeekNumbers",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowYearPicker",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialView",
          "type": "CalendarView",
          "default": "CalendarView.Days",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDateDisabled",
          "type": "Func<DateTime, bool>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateClass",
          "type": "Func<DateTime, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateTooltip",
          "type": "Func<DateTime, string?>?",
          "default": null,
          "description": "Optional per-date tooltip text. Returned string becomes the day cell's title attribute (native browser tooltip on hover). Return null or empty for no tooltip on that date. Useful for booking calendars: \"Booked by John, 14:00–17:00\" or \"Sold out\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateBadge",
          "type": "Func<DateTime, RenderFragment?>?",
          "default": null,
          "description": "Optional per-date indicator slot. Returns a RenderFragment rendered absolutely positioned in the bottom-right of the day cell — good for status dots, count badges, icons. Return null for no badge on that date. The slot is non-interactive (pointer-events-none) so clicks still hit the day button.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FirstDayOfWeek",
          "type": "DayOfWeek?",
          "default": null,
          "description": "The day of the week to render in the leftmost column. When null (default), uses CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek — so de-DE / fr-FR / etc. start on Monday automatically, en-US on Sunday. Pass an explicit DayOfWeek to override.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SwipeEnabled",
          "type": "bool",
          "default": "true",
          "description": "When true (default), users can swipe left/right on the day grid to navigate to the next or previous month on touch devices. Vertical page scroll is unaffected (touch-action: pan-y). Set to false to disable swipe navigation.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        },
        {
          "name": "RangeStartChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        },
        {
          "name": "RangeEndChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Calendar @bind-Value=\"_selectedDate\" />"
        },
        {
          "title": "Date Range Display",
          "code": "<Stack Gap=\"1.5\">\n    <Label>Check-in</Label>\n    <div class=\"rounded-md border p-1\">\n        <Calendar @bind-Value=\"_checkIn\" />\n    </div>\n</Stack>\n@if (_checkIn.HasValue)\n{\n    <Flex Align=\"center\" Gap=\"2\" Class=\"p-3 rounded-md bg-muted/50 text-sm\">\n        <DynamicIcon Name=\"Calendar\" Class=\"h-4 w-4 text-muted-foreground\" />\n        <Lumeo.Text As=\"span\" Size=\"sm\">Check-in: <strong>@_checkIn.Value.ToString(\"MMM d, yyyy\")</strong></Lumeo.Text>\n    </Flex>\n}"
        },
        {
          "title": "Pre-selected Date",
          "code": "<Calendar @bind-Value=\"_date\" />\n\n@code {\n    private DateOnly? _date = DateOnly.FromDateTime(DateTime.Today);\n}"
        },
        {
          "title": "Min & Max Date",
          "code": "<Calendar @bind-Value=\"_date\" MinDate=\"@_minDate\" MaxDate=\"@_maxDate\" />\n\n@code {\n    private DateOnly? _date;\n    private DateOnly _minDate = DateOnly.FromDateTime(DateTime.Today.AddDays(-7));\n    private DateOnly _maxDate = DateOnly.FromDateTime(DateTime.Today.AddDays(30));\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Card": {
      "name": "Card",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Flexible container with header, content, and footer slots.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Card/Card.razor",
        "UI/Card/CardContent.razor",
        "UI/Card/CardFooter.razor",
        "UI/Card/CardHeader.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "default": null,
          "description": "Optional click handler. When set, the card becomes a button-role interactive surface with cursor-pointer, focus-visible ring, keyboard activation, and honours PressEffect.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PressEffect",
          "type": "Button.ButtonPressEffect",
          "default": "Button.ButtonPressEffect.None",
          "description": "Visual feedback when the card is pressed (only applies when OnClick is bound). Default is None.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "description": "Optional click handler. When set, the card becomes a button-role interactive surface with cursor-pointer, focus-visible ring, keyboard activation, and honours PressEffect."
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-border",
        "--color-card",
        "--color-card-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Card>\n    <CardHeader>\n        <Heading Level=\"3\" Size=\"lg\" Class=\"leading-none tracking-tight\">Notifications</Heading>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">You have 3 unread messages.</Lumeo.Text>\n    </CardHeader>\n    <CardContent>\n        <Lumeo.Text Size=\"sm\">Your recent notifications will appear here.</Lumeo.Text>\n    </CardContent>\n    <CardFooter>\n        <Button Class=\"w-full\">Mark all as read</Button>\n    </CardFooter>\n</Card>"
        },
        {
          "title": "Card with Actions",
          "code": "<Card>\n    <CardHeader>\n        <Heading Level=\"3\" Size=\"lg\" Class=\"leading-none tracking-tight\">Blog Post</Heading>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Published on Jan 12, 2025</Lumeo.Text>\n    </CardHeader>\n    <CardContent>\n        <Lumeo.Text Size=\"sm\" Color=\"foreground\">\n            Learn how to build accessible, composable UI components using\n            Blazor and Tailwind CSS in this in-depth guide.\n        </Lumeo.Text>\n    </CardContent>\n    <CardFooter>\n        <Flex Gap=\"2\" Class=\"w-full\">\n            <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">\n                <Blazicon Svg=\"Lucide.Copy\" class=\"h-4 w-4\" /> Edit\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Destructive\" Size=\"Button.ButtonSize.Sm\">\n                <Blazicon Svg=\"Lucide.Trash\" class=\"h-4 w-4\" /> Delete\n            </Button>\n        </Flex>\n    </CardFooter>\n</Card>"
        },
        {
          "title": "Horizontal Card",
          "code": "<Card>\n    <Flex>\n        <Center Class=\"w-32 h-32 rounded-l-lg bg-muted shrink-0\">\n            <Blazicon Svg=\"Lucide.Star\" class=\"h-10 w-10 text-muted-foreground\" />\n        </Center>\n        <Stack Gap=\"0\" Class=\"flex-1\">\n            <CardHeader>\n                <Heading Level=\"3\" Size=\"base\" Weight=\"semibold\" Class=\"leading-none tracking-tight\">Featured Article</Heading>\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">5 min read</Lumeo.Text>\n            </CardHeader>\n            <CardContent>\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">\n                    An introduction to modern component-driven design systems.\n                </Lumeo.Text>\n            </CardContent>\n            <CardFooter>\n                <Button Variant=\"Button.ButtonVariant.Link\" Class=\"px-0\">Read more</Button>\n            </CardFooter>\n        </Stack>\n    </Flex>\n</Card>"
        },
        {
          "title": "With Form",
          "code": "<Card>\n    <CardHeader>\n        <Heading Level=\"3\" Size=\"lg\" Class=\"leading-none tracking-tight\">Create project</Heading>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Deploy your new project in one click.</Lumeo.Text>\n    </CardHeader>\n    <CardContent>\n        <Stack Gap=\"4\">\n            <FormField Label=\"Name\">\n                <Input placeholder=\"Name of your project\" />\n            </FormField>\n            <FormField Label=\"Description\">\n                <Input placeholder=\"Describe your project\" />\n            </FormField>\n        </Stack>\n    </CardContent>\n    <CardFooter>\n        <Flex Justify=\"between\" Class=\"w-full\">\n            <Button Variant=\"Button.ButtonVariant.Outline\">Cancel</Button>\n            <Button>Deploy</Button>\n        </Flex>\n    </CardFooter>\n</Card>"
        }
      ],
      "subComponents": {
        "CardContent": {
          "componentName": "CardContent",
          "fileName": "CardContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CardFooter": {
          "componentName": "CardFooter",
          "fileName": "CardFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CardHeader": {
          "componentName": "CardHeader",
          "fileName": "CardHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Carousel": {
      "name": "Carousel",
      "category": "Navigation",
      "subcategory": null,
      "description": "Slide-based content rotator with autoplay and keyboard nav.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Carousel/Carousel.razor",
        "UI/Carousel/CarouselContent.razor",
        "UI/Carousel/CarouselItem.razor",
        "UI/Carousel/CarouselNext.razor",
        "UI/Carousel/CarouselPrevious.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Orientation",
          "type": "CarouselOrientation",
          "default": "CarouselOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Loop",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "CarouselOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "CarouselContext",
          "signature": "CarouselContext(\n        string ContentId,\n        CarouselOrientation Orientation,\n        bool CanScrollPrev,\n        bool CanScrollNext,\n        EventCallback ScrollPrev,\n        EventCallback ScrollNext\n    )",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Carousel>\n    <CarouselContent>\n        @for (var i = 1; i <= 5; i++)\n        {\n            var index = i;\n            <CarouselItem>\n                <div class=\"p-1\">\n                    <Card>\n                        <CardContent Class=\"flex aspect-square items-center justify-center p-6\">\n                            <span class=\"text-4xl font-semibold\">@index</span>\n                        </CardContent>\n                    </Card>\n                </div>\n            </CarouselItem>\n        }\n    </CarouselContent>\n    <CarouselPrevious />\n    <CarouselNext />\n</Carousel>"
        },
        {
          "title": "With Loop",
          "code": "<Carousel Loop=\"true\">\n    <CarouselContent>\n        @for (var i = 1; i <= 5; i++)\n        {\n            var index = i;\n            <CarouselItem>\n                <div class=\"p-1\">\n                    <Card>\n                        <CardContent Class=\"flex aspect-square items-center justify-center p-6\">\n                            <span class=\"text-4xl font-semibold\">@index</span>\n                        </CardContent>\n                    </Card>\n                </div>\n            </CarouselItem>\n        }\n    </CarouselContent>\n    <CarouselPrevious />\n    <CarouselNext />\n</Carousel>"
        },
        {
          "title": "Orientation — interactive",
          "code": "<Segmented @bind-Value=\"_orientationSel\" Options=\"_orientationOptions\" />\n<Carousel Orientation=\"@(Enum.Parse<Carousel.CarouselOrientation>(_orientationSel))\">\n    <CarouselContent>\n        @for (var i = 1; i <= 4; i++) {\n            var index = i;\n            <CarouselItem>\n                <Card>\n                    <CardContent Class=\"flex aspect-square items-center justify-center p-6\">\n                        <span class=\"text-4xl font-semibold\">@index</span>\n                    </CardContent>\n                </Card>\n            </CarouselItem>\n        }\n    </CarouselContent>\n    <CarouselPrevious />\n    <CarouselNext />\n</Carousel>\n\n@code {\n    private string _orientationSel = \"Horizontal\";\n    private List<Segmented.SegmentedOption> _orientationOptions = new()\n    {\n        new() { Label = \"Horizontal\", Value = \"Horizontal\" },\n        new() { Label = \"Vertical\", Value = \"Vertical\" },\n    };\n}"
        },
        {
          "title": "Product Gallery",
          "code": "<Carousel>\n    <CarouselContent>\n        @foreach (var product in _products)\n        {\n            <CarouselItem>\n                <div class=\"p-1\">\n                    <Card>\n                        <AspectRatio Ratio=\"4.0 / 3.0\" Class=\"rounded-t-lg overflow-hidden bg-muted\">\n                            <div class=\"flex items-center justify-center h-full text-sm text-muted-foreground\">@product.Category</div>\n                        </AspectRatio>\n                        <CardContent Class=\"p-4\">\n                            <Lumeo.Text Size=\"sm\" Weight=\"semibold\">@product.Name</Lumeo.Text>\n                            <Lumeo.Text Size=\"sm\" Color=\"muted\">@product.Price</Lumeo.Text>\n                        </CardContent>\n                    </Card>\n                </div>\n            </CarouselItem>\n        }\n    </CarouselContent>\n    <CarouselPrevious />\n    <CarouselNext />\n</Carousel>"
        }
      ],
      "subComponents": {
        "CarouselContent": {
          "componentName": "CarouselContent",
          "fileName": "CarouselContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Carousel.CarouselContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CarouselItem": {
          "componentName": "CarouselItem",
          "fileName": "CarouselItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Carousel.CarouselContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Index",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Total",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CarouselNext": {
          "componentName": "CarouselNext",
          "fileName": "CarouselNext.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Carousel.CarouselContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CarouselPrevious": {
          "componentName": "CarouselPrevious",
          "fileName": "CarouselPrevious.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Carousel.CarouselContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Cascader": {
      "name": "Cascader",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Multi-level dropdown for hierarchical selection.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Cascader/Cascader.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<List<string>?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Options",
          "type": "List<CascaderOption>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clearable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSearch",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<List<string>?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "CascaderOption",
          "signature": "CascaderOption",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Cascader",
          "code": "<Cascader Options=\"@_options\" Placeholder=\"Select location...\" />"
        },
        {
          "title": "Clearable",
          "code": "<Cascader Options=\"@_options\" Clearable=\"true\" />"
        },
        {
          "title": "Disabled",
          "code": "<Cascader Options=\"@_options\" Disabled=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Center": {
      "name": "Center",
      "category": "Layout",
      "subcategory": null,
      "description": "Flexbox helper that centers its children on both axes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Center/Center.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Height",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Inline",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic Centering",
          "code": "<Center Class=\"h-32 w-full\">\n    <Text Color=\"muted\">Centered content</Text>\n</Center>"
        },
        {
          "title": "With Fixed Height",
          "code": "<Center Height=\"200px\">\n    <Stack Align=\"center\" Gap=\"2\">\n        <DynamicIcon Name=\"Image\" Class=\"h-8 w-8 text-muted-foreground\" />\n        <Text Color=\"muted\" Size=\"sm\">No image selected</Text>\n    </Stack>\n</Center>"
        },
        {
          "title": "Inline Center",
          "code": "<Text>\n    Click the\n    <Center Inline=\"true\" Class=\"h-6 w-6 rounded bg-primary/20 mx-1\">\n        <DynamicIcon Name=\"Plus\" Class=\"h-3 w-3 text-primary\" />\n    </Center>\n    icon to add an item.\n</Text>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Chart": {
      "name": "Chart",
      "category": "Data Display",
      "subcategory": "Charts",
      "description": "Declarative chart wrapper over ECharts — 30+ types supported.",
      "nugetPackage": "Lumeo.Charts",
      "files": [
        "UI/Chart/Chart.razor",
        "UI/Chart/ChartHelper.cs",
        "UI/Chart/ChartLabelHelper.cs",
        "UI/Chart/ChartPlaceholderFactory.cs",
        "UI/Chart/Charts/AreaChart.razor",
        "UI/Chart/Charts/BarChart.razor",
        "UI/Chart/Charts/BoxPlotChart.razor",
        "UI/Chart/Charts/CalendarHeatmapChart.razor",
        "UI/Chart/Charts/CandlestickChart.razor",
        "UI/Chart/Charts/DonutChart.razor",
        "UI/Chart/Charts/EffectScatterChart.razor",
        "UI/Chart/Charts/FunnelChart.razor",
        "UI/Chart/Charts/GaugeChart.razor",
        "UI/Chart/Charts/GeoMapChart.razor",
        "UI/Chart/Charts/GraphChart.razor",
        "UI/Chart/Charts/HeatmapChart.razor",
        "UI/Chart/Charts/LineChart.razor",
        "UI/Chart/Charts/LiquidFillChart.razor",
        "UI/Chart/Charts/MixedChart.razor",
        "UI/Chart/Charts/NightingaleChart.razor",
        "UI/Chart/Charts/ParallelChart.razor",
        "UI/Chart/Charts/PictorialBarChart.razor",
        "UI/Chart/Charts/PieChart.razor",
        "UI/Chart/Charts/PolarBarChart.razor",
        "UI/Chart/Charts/RadarChart.razor",
        "UI/Chart/Charts/RadialChart.razor",
        "UI/Chart/Charts/SankeyChart.razor",
        "UI/Chart/Charts/ScatterChart.razor",
        "UI/Chart/Charts/SunburstChart.razor",
        "UI/Chart/Charts/ThemeRiverChart.razor",
        "UI/Chart/Charts/TreeChart.razor",
        "UI/Chart/Charts/TreemapChart.razor",
        "UI/Chart/Charts/WaterfallChart.razor",
        "UI/Chart/Charts/WordCloudChart.razor",
        "UI/Chart/ChartSkeleton.razor",
        "UI/Chart/ChartSkeletonKind.cs",
        "UI/Chart/EChartOption.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Option",
          "type": "EChartOption?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OptionJson",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Theme",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EChartsSource",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Width",
          "type": "string",
          "default": "\"100%\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"350px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback<ChartEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnMouseOver",
          "type": "EventCallback<ChartEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Group",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AspectRatio",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDoubleClick",
          "type": "EventCallback<ChartEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnBrushSelected",
          "type": "EventCallback<ChartEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDataZoom",
          "type": "EventCallback<ChartEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": "When true, forces the loading state on top of the chart (consumer is refetching data). Independent of the JS-driven ECharts loading indicator controlled by ShowLoading.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLoadingSkeleton",
          "type": "bool",
          "default": "true",
          "description": "When true (default), renders the loading state while the chart has not yet rendered for the first time, and whenever IsLoading is true. Set to false to opt out entirely.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SkeletonKind",
          "type": "ChartSkeletonKind",
          "default": "ChartSkeletonKind.Generic",
          "description": "Shape family for the skeleton. Each chart wrapper presets a sensible default (bars for Bar, pie ring for Pie, etc.) — consumers only override when they want a different silhouette.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SkeletonStyle",
          "type": "ChartSkeletonStyle",
          "default": "ChartSkeletonStyle.Phantom",
          "description": "Phantom (default) renders the real chart with synthesized placeholder data in a muted palette; ECharts animates the option swap to real data. Silhouette falls back to the legacy SVG overlay skeleton.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PhantomCycleMs",
          "type": "int",
          "default": "1400",
          "description": "Phantom-mode refresh interval in milliseconds — each tick regenerates the placeholder dataset with a new random seed so bars/lines/slices visibly redistribute while loading. Defaults to 1400ms; clamped to ≥200ms.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PhantomShapeOverride",
          "type": "PhantomShape?",
          "default": null,
          "description": "Explicit override for the phantom layout (category count, series count, stacking, area fill). When null (default), the shape is inferred from the real Option so the phantom mirrors the actual chart structure.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLoadingLabel",
          "type": "bool",
          "default": "true",
          "description": "When true (default), overlays a small top-right pill containing a spinner and LoadingText on top of the active skeleton — a clear, always-on visual cue that the chart is loading. The pill renders independently of SkeletonStyle so phantom and silhouette both get the same hint. Set to false for bare visuals where the skeleton speaks for itself.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LoadingText",
          "type": "string?",
          "default": null,
          "description": "Label rendered next to the spinner inside the loading pill. Set to null or empty to hide the text and show only the spinner. When not set, uses the active locale's \"Chart.Loading\" string (default: \"Loading…\").",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OnClick",
          "type": "EventCallback<ChartEventArgs>",
          "description": null
        },
        {
          "name": "OnMouseOver",
          "type": "EventCallback<ChartEventArgs>",
          "description": null
        },
        {
          "name": "OnDoubleClick",
          "type": "EventCallback<ChartEventArgs>",
          "description": null
        },
        {
          "name": "OnBrushSelected",
          "type": "EventCallback<ChartEventArgs>",
          "description": null
        },
        {
          "name": "OnDataZoom",
          "type": "EventCallback<ChartEventArgs>",
          "description": null
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [],
      "subComponents": {
        "AreaChart": {
          "componentName": "AreaChart",
          "fileName": "AreaChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<ChartSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Smooth",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDots",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Stacked",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Gradient",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Area",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Area for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BarChart": {
          "componentName": "BarChart",
          "fileName": "BarChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<ChartSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Horizontal",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Stacked",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Bars",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Bars for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": null,
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls how category-axis labels are rendered. Smart (default): show every label; auto-rotate -30° at 11–16 categories, -60° at 17–24, -75° above 24. ShowAll: force every label with no rotation (may overlap on dense datasets). Auto: let ECharts auto-thin labels that would overlap (original ECharts default — hides every second label when crowded).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual override for category-label rotation in degrees (e.g. -30, -45). When set, takes precedence over the rotation implied by LabelStrategy.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [
            {
              "name": "BarLabelStrategy",
              "values": [
                "Smart",
                "ShowAll",
                "Auto"
              ],
              "description": "Back-compat alias for ChartLabelStrategy. The enum was originally defined per-chart as BarChart.BarLabelStrategy; it now lives in the shared ChartLabelHelper. Existing references continue to compile via this alias."
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BoxPlotChart": {
          "componentName": "BoxPlotChart",
          "fileName": "BoxPlotChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Data",
              "type": "List<double[]>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Bars",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Bars for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CalendarHeatmapChart": {
          "componentName": "CalendarHeatmapChart",
          "fileName": "CalendarHeatmapChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "object?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Year",
              "type": "int",
              "default": "DateTime.Now.Year",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VisualMapMin",
              "type": "double",
              "default": "0",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VisualMapMax",
              "type": "double",
              "default": "10",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Grid",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Grid for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CandlestickChart": {
          "componentName": "CandlestickChart",
          "fileName": "CandlestickChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Data",
              "type": "List<double[]>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Candlestick",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Candlestick for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ChartSkeleton": {
          "componentName": "ChartSkeleton",
          "fileName": "ChartSkeleton.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Kind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Generic",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DonutChart": {
          "componentName": "DonutChart",
          "fileName": "DonutChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<DonutChartData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLabels",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "InnerRadius",
              "type": "string",
              "default": "\"50%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OuterRadius",
              "type": "string",
              "default": "\"70%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CenterLabel",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"outside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "EffectScatterChart": {
          "componentName": "EffectScatterChart",
          "fileName": "EffectScatterChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Series",
              "type": "List<EffectScatterSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Scatter",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Scatter for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "FunnelChart": {
          "componentName": "FunnelChart",
          "fileName": "FunnelChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<FunnelData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Sort",
              "type": "string",
              "default": "\"descending\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Funnel",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Funnel for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "GaugeChart": {
          "componentName": "GaugeChart",
          "fileName": "GaugeChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Value",
              "type": "double",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Min",
              "type": "double",
              "default": "0",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Max",
              "type": "double",
              "default": "100",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Unit",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowPointer",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Ranges",
              "type": "List<GaugeRange>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Gauge",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Gauge for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "GeoMapChart": {
          "componentName": "GeoMapChart",
          "fileName": "GeoMapChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "MapName",
              "type": "string",
              "default": "\"world\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MapJson",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Data",
              "type": "object?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VisualMapMin",
              "type": "double",
              "default": "0",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VisualMapMax",
              "type": "double",
              "default": "100",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Roam",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Generic",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Generic for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "GraphChart": {
          "componentName": "GraphChart",
          "fileName": "GraphChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Nodes",
              "type": "List<GraphNode>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Links",
              "type": "List<GraphLink>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Categories",
              "type": "List<GraphCategory>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Layout",
              "type": "string",
              "default": "\"force\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Roam",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Graph",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Graph for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"right\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "HeatmapChart": {
          "componentName": "HeatmapChart",
          "fileName": "HeatmapChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "XCategories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "YCategories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Data",
              "type": "List<double[]>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Grid",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Grid for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "LineChart": {
          "componentName": "LineChart",
          "fileName": "LineChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<ChartSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Smooth",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDots",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Line",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Line for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "LiquidFillChart": {
          "componentName": "LiquidFillChart",
          "fileName": "LiquidFillChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Value",
              "type": "double",
              "default": "0.5",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Shape",
              "type": "string",
              "default": "\"circle\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Color",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "BackgroundColor",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "WaveAnimation",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EChartsSource",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"center\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MixedChart": {
          "componentName": "MixedChart",
          "fileName": "MixedChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<MixedSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Line",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Line for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NightingaleChart": {
          "componentName": "NightingaleChart",
          "fileName": "NightingaleChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<NightingaleData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLabels",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"outside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ParallelChart": {
          "componentName": "ParallelChart",
          "fileName": "ParallelChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Dimensions",
              "type": "List<ParallelDimension>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<ParallelSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Parallel",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Parallel for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PictorialBarChart": {
          "componentName": "PictorialBarChart",
          "fileName": "PictorialBarChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<PictorialSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Bars",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Bars for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PieChart": {
          "componentName": "PieChart",
          "fileName": "PieChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<PieChartData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLabels",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"outside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PolarBarChart": {
          "componentName": "PolarBarChart",
          "fileName": "PolarBarChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Values",
              "type": "List<double>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "false",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Polar",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Polar for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "RadarChart": {
          "componentName": "RadarChart",
          "fileName": "RadarChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Indicators",
              "type": "List<RadarIndicator>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Series",
              "type": "List<RadarSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Shape",
              "type": "string",
              "default": "\"polygon\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FillArea",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Radar",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Radar for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "RadialChart": {
          "componentName": "RadialChart",
          "fileName": "RadialChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Value",
              "type": "double",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Min",
              "type": "double",
              "default": "0",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Max",
              "type": "double",
              "default": "100",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Label",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Color",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowProgress",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SankeyChart": {
          "componentName": "SankeyChart",
          "fileName": "SankeyChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Nodes",
              "type": "List<SankeyNode>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Links",
              "type": "List<SankeyLink>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Sankey",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Sankey for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"right\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ScatterChart": {
          "componentName": "ScatterChart",
          "fileName": "ScatterChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Series",
              "type": "List<ScatterSeriesData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "BubbleSize",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Scatter",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Scatter for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SunburstChart": {
          "componentName": "SunburstChart",
          "fileName": "SunburstChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<SunburstData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Pie",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Pie for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ThemeRiverChart": {
          "componentName": "ThemeRiverChart",
          "fileName": "ThemeRiverChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<string[]>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Generic",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Generic for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TreeChart": {
          "componentName": "TreeChart",
          "fileName": "TreeChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "TreeData?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Orient",
              "type": "string",
              "default": "\"LR\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLabels",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Tree",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Tree for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"right\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TreemapChart": {
          "componentName": "TreemapChart",
          "fileName": "TreemapChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Data",
              "type": "List<TreemapData>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Grid",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Grid for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"inside\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "WaterfallChart": {
          "componentName": "WaterfallChart",
          "fileName": "WaterfallChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Categories",
              "type": "List<string>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Values",
              "type": "List<double>",
              "default": "new()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IncreaseColor",
              "type": "string",
              "default": "\"var(--color-primary)\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DecreaseColor",
              "type": "string",
              "default": "\"var(--color-destructive)\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLegend",
              "type": "bool",
              "default": "false",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Colors",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Bars",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Bars for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"top\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelStrategy",
              "type": "ChartLabelStrategy",
              "default": "ChartLabelStrategy.Smart",
              "description": "Controls category-axis label rendering. Smart auto-rotates at higher densities; ShowAll forces all horizontal; Auto thins overlapping labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelRotate",
              "type": "int?",
              "default": null,
              "description": "Manual rotation override (degrees) for category-axis labels.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DataZoom",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkLine",
              "type": "EChartMarkLine?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkPoint",
              "type": "EChartMarkPoint?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MarkArea",
              "type": "EChartMarkArea?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "WordCloudChart": {
          "componentName": "WordCloudChart",
          "fileName": "WordCloudChart.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Words",
              "type": "List<WordCloudItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Shape",
              "type": "string",
              "default": "\"circle\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SizeRange",
              "type": "int[]",
              "default": "new[] { 12, 60 }",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "RotationRange",
              "type": "int[]",
              "default": "new[] { -90, 90 }",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EChartsSource",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowTooltip",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "string",
              "default": "\"100%\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Height",
              "type": "string",
              "default": "\"350px\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Theme",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "IsLoading",
              "type": "bool",
              "default": null,
              "description": "When true, overlays a shape-aware loading skeleton on top of the chart (consumer is fetching data). Flips back to the real chart once set to false.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingSkeleton",
              "type": "bool",
              "default": "true",
              "description": "When true (default), renders a shape-aware skeleton while the chart has not yet mounted and whenever IsLoading is true. Set to false to opt out.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonKind",
              "type": "ChartSkeletonKind",
              "default": "ChartSkeletonKind.Generic",
              "description": "Shape family for the loading skeleton. Defaults to ChartSkeletonKind.Generic for this chart type; override if you want a different silhouette.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonStyle",
              "type": "ChartSkeletonStyle",
              "default": "ChartSkeletonStyle.Phantom",
              "description": "Phantom (default) renders the real chart with placeholder data and morphs to real data via ECharts' option-change animation. Silhouette falls back to the legacy SVG skeleton overlay.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PhantomCycleMs",
              "type": "int",
              "default": "1400",
              "description": "Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. Defaults to 1400.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowLoadingLabel",
              "type": "bool",
              "default": "true",
              "description": "When true (default), shows a small \"Loading…\" pill in the top-right corner whenever IsLoading is active. Works on top of any SkeletonStyle.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadingText",
              "type": "string?",
              "default": "\"Loading…\"",
              "description": "Label rendered next to the spinner inside the loading pill. Set to empty to hide. Defaults to \"Loading…\".",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowDataLabels",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelPosition",
              "type": "string",
              "default": "\"center\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelFormat",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Toolbox",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColorPalette",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationDuration",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AnimationEasing",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OptionOverride",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Checkbox": {
      "name": "Checkbox",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Binary input with indeterminate state and accessible label.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Checkbox/Checkbox.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Checked",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CheckedChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsIndeterminate",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsIndeterminateChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Id",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible name used when Label is not set (the checkbox renders without a visible label). Required for WCAG compliance when the checkbox sits alone in a cell or alongside text that isn't linked to it via for / htmlFor.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": "When true, the checkmark draws itself in via stroke-dasharray and the box plays a subtle 200ms scale bounce on check. Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HapticFeedback",
          "type": "bool",
          "default": null,
          "description": "When true, triggers a short haptic vibration via navigator.vibrate() each time the checkbox state changes. Silently no-ops on browsers without the Vibration API (e.g. iOS Safari). Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "CheckedChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsIndeterminateChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Flex Gap=\"2\" Align=\"center\">\n    <Checkbox @bind-Checked=\"_checked\" />\n    <Label>Accept terms and conditions</Label>\n</Flex>"
        },
        {
          "title": "With Binding",
          "code": "<Flex Gap=\"2\" Align=\"center\">\n    <Checkbox @bind-Checked=\"_checked\" />\n    <Label>Enable notifications</Label>\n</Flex>\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Checked: @_checked</Lumeo.Text>\n\n@code {\n    private bool _checked = true;\n}"
        },
        {
          "title": "Disabled",
          "code": "<Checkbox Checked=\"false\" Disabled=\"true\" />\n<Checkbox Checked=\"true\" Disabled=\"true\" />"
        },
        {
          "title": "Multiple Options",
          "code": "<Checkbox @bind-Checked=\"_optionA\" />\n<Checkbox @bind-Checked=\"_optionB\" />\n<Checkbox @bind-Checked=\"_optionC\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Chip": {
      "name": "Chip",
      "category": "Data Display",
      "subcategory": "Status & Indicators",
      "description": "Compact removable tag, optionally toggleable.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Chip/Chip.razor",
        "UI/Chip/ChipGroup.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ChipVariant",
          "default": "ChipVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ChipSize",
          "default": "ChipSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Closable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClose",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clickable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Icon",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Avatar",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PressEffect",
          "type": "Button.ButtonPressEffect",
          "default": "Button.ButtonPressEffect.None",
          "description": "Visual feedback when the chip is pressed (only applies when Clickable is true). Default is None.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnClose",
          "type": "EventCallback",
          "description": null
        },
        {
          "name": "OnClick",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "ChipVariant",
          "values": [
            "Default",
            "Outline",
            "Solid"
          ],
          "description": null
        },
        {
          "name": "ChipSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-destructive",
        "--color-destructive-foreground",
        "--color-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Variants",
          "code": "<ChipGroup>\n    <Chip>Default</Chip>\n    <Chip Variant=\"Chip.ChipVariant.Outline\">Outline</Chip>\n    <Chip Variant=\"Chip.ChipVariant.Solid\" Color=\"primary\">Primary</Chip>\n    <Chip Variant=\"Chip.ChipVariant.Solid\" Color=\"destructive\">Destructive</Chip>\n    <Chip Variant=\"Chip.ChipVariant.Solid\" Color=\"success\">Success</Chip>\n</ChipGroup>"
        },
        {
          "title": "Sizes",
          "code": "<Flex Class=\"items-center gap-2\">\n    <Chip Size=\"Chip.ChipSize.Sm\">Small</Chip>\n    <Chip>Default</Chip>\n    <Chip Size=\"Chip.ChipSize.Lg\">Large</Chip>\n</Flex>"
        },
        {
          "title": "Closable",
          "code": "<ChipGroup>\n    @foreach (var tag in _tags)\n    {\n        var t = tag;\n        <Chip Closable=\"true\" OnClose=\"@(() => _tags.Remove(t))\">@t</Chip>\n    }\n</ChipGroup>"
        },
        {
          "title": "Clickable",
          "code": "<ChipGroup>\n    @foreach (var filter in _filters)\n    {\n        var f = filter;\n        <Chip Clickable=\"true\"\n              Variant=\"@(_active == f ? Chip.ChipVariant.Solid : Chip.ChipVariant.Outline)\"\n              Color=\"@(_active == f ? \"primary\" : null)\"\n              OnClick=\"@(() => _active = f)\">\n            @f\n        </Chip>\n    }\n</ChipGroup>"
        }
      ],
      "subComponents": {
        "ChipGroup": {
          "componentName": "ChipGroup",
          "fileName": "ChipGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Code": {
      "name": "Code",
      "category": "Typography",
      "subcategory": null,
      "description": "Inline or block monospace code snippet with optional copy button.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Code/Code.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Variant",
          "type": "string",
          "default": "\"inline\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-muted",
        "--radius"
      ],
      "examples": [
        {
          "title": "Inline",
          "code": "<p>\n    Use the <Code>Code</Code> component to style inline code.\n    Pass <Code>Variant=\"block\"</Code> for multi-line blocks.\n</p>"
        },
        {
          "title": "Block",
          "code": "<Code Variant=\"block\">dotnet add package Lumeo --version 2.2.1</Code>"
        },
        {
          "title": "Custom Size",
          "code": "<Code Size=\"xs\">text-xs code</Code>\n<Code Size=\"base\">text-base code</Code>\n<Code Size=\"lg\">text-lg code</Code>"
        },
        {
          "title": "Variant — interactive",
          "code": "@* inline — pill-styled within text *@\n<Code Variant=\"inline\">dotnet add package Lumeo</Code>\n\n@* block — full-width scrollable code block *@\n<Code Variant=\"block\">dotnet add package Lumeo</Code>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Collapsible": {
      "name": "Collapsible",
      "category": "Navigation",
      "subcategory": null,
      "description": "Single expandable region with animated height transition.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Collapsible/Collapsible.razor",
        "UI/Collapsible/CollapsibleContent.razor",
        "UI/Collapsible/CollapsibleTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "CollapsibleContext",
          "signature": "CollapsibleContext(bool IsOpen, EventCallback Toggle)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Collapsible @bind-Open=\"_isOpen\">\n    <div class=\"flex items-center justify-between\">\n        <h4 class=\"text-sm font-semibold\">Starred Repositories</h4>\n        <CollapsibleTrigger>\n            <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n                <Blazicon Svg=\"Lucide.ChevronDown\" class=\"h-4 w-4\" />\n            </Button>\n        </CollapsibleTrigger>\n    </div>\n    <CollapsibleContent>\n        <div class=\"rounded-md border px-4 py-2 text-sm\">Content here</div>\n    </CollapsibleContent>\n</Collapsible>"
        },
        {
          "title": "Initially Open",
          "code": "<Collapsible @bind-Open=\"_isOpen\">\n    <CollapsibleTrigger>\n        <span class=\"text-sm font-medium\">More info</span>\n    </CollapsibleTrigger>\n    <CollapsibleContent>\n        <p class=\"mt-2 text-sm text-muted-foreground\">Expandable content.</p>\n    </CollapsibleContent>\n</Collapsible>"
        },
        {
          "title": "Sidebar Section",
          "code": "<Collapsible @bind-Open=\"_isOpen\">\n    <CollapsibleTrigger>\n        <div class=\"flex items-center justify-between px-2 py-1.5 rounded-md hover:bg-accent cursor-pointer\">\n            <div class=\"flex items-center gap-2 text-sm font-medium\">\n                <Blazicon Svg=\"Lucide.Settings\" class=\"h-4 w-4\" /> Settings\n            </div>\n            <Blazicon Svg=\"Lucide.ChevronDown\" class=\"@($\"h-4 w-4 transition-transform {(_isOpen ? \\\"rotate-180\\\" : \\\"\\\")}\")}\" />\n        </div>\n    </CollapsibleTrigger>\n    <CollapsibleContent>\n        <div class=\"pl-6 mt-1 space-y-1\">\n            <div class=\"px-2 py-1.5 text-sm text-muted-foreground\">General</div>\n            <div class=\"px-2 py-1.5 text-sm text-muted-foreground\">Security</div>\n            <div class=\"px-2 py-1.5 text-sm text-muted-foreground\">Notifications</div>\n        </div>\n    </CollapsibleContent>\n</Collapsible>"
        }
      ],
      "subComponents": {
        "CollapsibleContent": {
          "componentName": "CollapsibleContent",
          "fileName": "CollapsibleContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Collapsible.CollapsibleContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ForceMount",
              "type": "bool",
              "default": null,
              "description": "When true, this content is always rendered into the DOM (with the hidden attribute when the collapsible is closed) instead of being unmounted. Use when child state must survive collapsing. Default false preserves the original unmount behaviour.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CollapsibleTrigger": {
          "componentName": "CollapsibleTrigger",
          "fileName": "CollapsibleTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Collapsible.CollapsibleContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "ColorPicker": {
      "name": "ColorPicker",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Hue + saturation/value picker with hex input.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ColorPicker/ColorPicker.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowAlpha",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Presets",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "ColorPickerContext",
          "signature": "ColorPickerContext(string Value, bool IsOpen, EventCallback<string> OnColorChanged, EventCallback<bool> SetOpen, string WrapperId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<ColorPicker @bind-Value=\"_color\" />"
        },
        {
          "title": "With Presets",
          "code": "<ColorPicker @bind-Value=\"_color\" Presets=\"_presets\" />"
        },
        {
          "title": "With Alpha",
          "code": "<ColorPicker @bind-Value=\"_color\" ShowAlpha=\"true\" />"
        },
        {
          "title": "Disabled",
          "code": "<ColorPicker Value=\"#6366f1\" Disabled=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Combobox": {
      "name": "Combobox",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Searchable select with filtering, custom values, and grouping.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Combobox/Combobox.razor",
        "UI/Combobox/ComboboxContent.razor",
        "UI/Combobox/ComboboxCreate.razor",
        "UI/Combobox/ComboboxEmpty.razor",
        "UI/Combobox/ComboboxInput.razor",
        "UI/Combobox/ComboboxItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": "Popover open state. Bind via @bind-Open when the Combobox lives inside a parent that re-renders heavily (e.g. an EditForm with active validation) — otherwise a parameter cascade can close the popover mid-click. In the bound (controlled) mode the parent owns state and the popover survives re-renders. When unbound, the component still functions but is vulnerable to the cascade-close race; binding is the recommended pattern.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        },
        {
          "name": "Multiple",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Values",
          "type": "HashSet<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<HashSet<string>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Creatable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCreate",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSearchAsync",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DebounceMs",
          "type": "int",
          "default": "300",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsSearchLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Items",
          "type": "IEnumerable<object>?",
          "default": null,
          "description": "Optional data source. When set, ComboboxContent renders options from this list instead of ChildContent.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemValue",
          "type": "Func<object, string>",
          "default": "it => it?.ToString() ?? \"\"",
          "description": "Extracts the string value for each item. Defaults to ToString().",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemText",
          "type": "Func<object, string>?",
          "default": null,
          "description": "Extracts the display label for each item. Defaults to ItemValue when null.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemGroup",
          "type": "Func<object, string?>?",
          "default": null,
          "description": "Optional group key extractor. When set, options are grouped under sticky headers.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemDisabled",
          "type": "Func<object, bool>?",
          "default": null,
          "description": "Optional per-item disabled predicate.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemTemplate",
          "type": "RenderFragment<object>?",
          "default": null,
          "description": "Optional custom render fragment for an item's content. Receives the raw item object.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Virtualize",
          "type": "bool",
          "default": null,
          "description": "When true and Items is set, uses Blazor's Virtualize component for the option list.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemSize",
          "type": "float",
          "default": "36f",
          "description": "Estimated pixel height of each option row used by the Virtualize component. Default 36.",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<HashSet<string>>",
          "description": null
        },
        {
          "name": "OnCreate",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OnSearchAsync",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "ComboboxContext",
          "signature": "ComboboxContext(\n        string? Value, HashSet<string>? Values, string SearchText, bool IsOpen, bool Multiple, bool IsSearchLoading, bool Creatable,\n        EventCallback<string> OnSelect, EventCallback<bool> SetOpen, EventCallback<string> OnSearch,\n        EventCallback<string> OnCreateItem,\n        string WrapperId, string ContentId, int FocusedIndex, string? FocusedItemId, string? FocusedItemValue,\n        EventCallback<int> SetFocusedIndex,\n        Action<string, string> RegisterItem, Action<string> UnregisterItem, int ItemCount,\n        bool Invalid, bool Required,\n        // Data-bound mode params (null when composition mode)\n        IEnumerable<object>? Items,\n        Func<object, string> ItemValue,\n        Func<object, string>? ItemText,\n        Func<object, string?>? ItemGroup,\n        Func<object, bool>? ItemDisabled,\n        RenderFragment<object>? ItemTemplate,\n        bool Virtualize,\n        float ItemSize)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Combobox @bind-Value=\"_selected\" @bind-Open=\"_isOpen\">\n    <ComboboxInput Placeholder=\"Search frameworks...\" />\n    <ComboboxContent>\n        <ComboboxItem Value=\"blazor\">Blazor</ComboboxItem>\n        <ComboboxItem Value=\"react\">React</ComboboxItem>\n        <ComboboxItem Value=\"vue\">Vue.js</ComboboxItem>\n        <ComboboxEmpty>No framework found.</ComboboxEmpty>\n    </ComboboxContent>\n</Combobox>"
        },
        {
          "title": "Country Selector",
          "code": "<Label>Country</Label>\n<Combobox @bind-Value=\"_selected\" @bind-Open=\"_isOpen\">\n    <ComboboxInput Placeholder=\"Search countries...\" />\n    <ComboboxContent>\n        <ComboboxItem Value=\"Australia\">Australia</ComboboxItem>\n        <ComboboxItem Value=\"Canada\">Canada</ComboboxItem>\n        <ComboboxItem Value=\"France\">France</ComboboxItem>\n        <ComboboxItem Value=\"United Kingdom\">United Kingdom</ComboboxItem>\n        <ComboboxItem Value=\"United States\">United States</ComboboxItem>\n        <ComboboxEmpty>No country found.</ComboboxEmpty>\n    </ComboboxContent>\n</Combobox>"
        },
        {
          "title": "With Label",
          "code": "<Label>Language</Label>\n<Combobox @bind-Value=\"_selected\" @bind-Open=\"_isOpen\">\n    <ComboboxInput Placeholder=\"Search languages...\" />\n    <ComboboxContent>\n        <ComboboxItem Value=\"C#\">C#</ComboboxItem>\n        <ComboboxItem Value=\"TypeScript\">TypeScript</ComboboxItem>\n        <ComboboxEmpty>No language found.</ComboboxEmpty>\n    </ComboboxContent>\n</Combobox>"
        },
        {
          "title": "Multiple Selection",
          "code": "<Combobox Multiple=\"true\" @bind-Values=\"_selectedFrameworks\" @bind-Open=\"_isOpen\">\n    <ComboboxInput Placeholder=\"Select frameworks...\" />\n    <ComboboxContent>\n        <ComboboxItem Value=\"react\">React</ComboboxItem>\n        <ComboboxItem Value=\"vue\">Vue</ComboboxItem>\n        <ComboboxItem Value=\"angular\">Angular</ComboboxItem>\n        <ComboboxItem Value=\"svelte\">Svelte</ComboboxItem>\n        <ComboboxItem Value=\"blazor\">Blazor</ComboboxItem>\n    </ComboboxContent>\n</Combobox>\n\n@code {\n    private HashSet<string> _selectedFrameworks = new();\n    private bool _isOpen;\n}"
        }
      ],
      "subComponents": {
        "ComboboxContent": {
          "componentName": "ComboboxContent",
          "fileName": "ComboboxContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Combobox.ComboboxContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EmptyText",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ComboboxCreate": {
          "componentName": "ComboboxCreate",
          "fileName": "ComboboxCreate.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Combobox.ComboboxContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "OnCreate",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowCreate",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnCreate",
              "type": "EventCallback<string>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ComboboxEmpty": {
          "componentName": "ComboboxEmpty",
          "fileName": "ComboboxEmpty.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Combobox.ComboboxContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ComboboxInput": {
          "componentName": "ComboboxInput",
          "fileName": "ComboboxInput.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Combobox.ComboboxContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Placeholder",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ComboboxItem": {
          "componentName": "ComboboxItem",
          "fileName": "ComboboxItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Combobox.ComboboxContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SearchValue",
              "type": "string?",
              "default": null,
              "description": "Optional text used to match against the search input. Falls back to Value.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Command": {
      "name": "Command",
      "category": "Overlay",
      "subcategory": null,
      "description": "Command palette — keyboard-driven finder for actions.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Command/Command.razor",
        "UI/Command/CommandEmpty.razor",
        "UI/Command/CommandGroup.razor",
        "UI/Command/CommandInput.razor",
        "UI/Command/CommandItem.razor",
        "UI/Command/CommandList.razor",
        "UI/Command/CommandSeparator.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "CommandContext",
          "signature": "CommandContext(\n        string SearchText,\n        EventCallback<string> OnSearch,\n        Action<string> RegisterItem,\n        Action<string> UnregisterItem,\n        int VisibleItemCount)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Command>\n    <CommandInput Placeholder=\"Type a command or search...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Suggestions\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Calendar\" class=\"mr-2 h-4 w-4\" />\n                <span>Calendar</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Settings\" class=\"mr-2 h-4 w-4\" />\n                <span>Settings</span>\n            </CommandItem>\n        </CommandGroup>\n        <CommandSeparator />\n        <CommandGroup Heading=\"Actions\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.User\" class=\"mr-2 h-4 w-4\" />\n                <span>Profile</span>\n            </CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
        },
        {
          "title": "Compact",
          "code": "<Command>\n    <CommandInput Placeholder=\"Search...\" />\n    <CommandList>\n        <CommandGroup>\n            <CommandItem>New File</CommandItem>\n            <CommandItem>Open File</CommandItem>\n            <CommandItem>Save</CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
        },
        {
          "title": "Navigation",
          "code": "<Command>\n    <CommandInput Placeholder=\"Go to...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Pages\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.House\" class=\"mr-2 h-4 w-4\" />\n                <span>Dashboard</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.User\" class=\"mr-2 h-4 w-4\" />\n                <span>Profile</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Settings\" class=\"mr-2 h-4 w-4\" />\n                <span>Settings</span>\n            </CommandItem>\n        </CommandGroup>\n        <CommandSeparator />\n        <CommandGroup Heading=\"Recent\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Bell\" class=\"mr-2 h-4 w-4\" />\n                <span>Notifications</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Mail\" class=\"mr-2 h-4 w-4\" />\n                <span>Messages</span>\n            </CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
        },
        {
          "title": "With Shortcuts",
          "code": "<Command Class=\"rounded-lg border shadow-md w-full max-w-md\">\n    <CommandInput Placeholder=\"Type a command...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Actions\">\n            <CommandItem Shortcut=\"Ctrl+N\">New File</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+S\">Save</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+Shift+P\">Command Palette</CommandItem>\n        </CommandGroup>\n        <CommandGroup Heading=\"Navigation\">\n            <CommandItem Shortcut=\"Ctrl+1\">Go to Dashboard</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+2\">Go to Settings</CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
        }
      ],
      "subComponents": {
        "CommandEmpty": {
          "componentName": "CommandEmpty",
          "fileName": "CommandEmpty.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Command.CommandContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CommandGroup": {
          "componentName": "CommandGroup",
          "fileName": "CommandGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Heading",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CommandInput": {
          "componentName": "CommandInput",
          "fileName": "CommandInput.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Command.CommandContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Placeholder",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CommandItem": {
          "componentName": "CommandItem",
          "fileName": "CommandItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Command.CommandContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnSelect",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Shortcut",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FilterValue",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnSelect",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CommandList": {
          "componentName": "CommandList",
          "fileName": "CommandList.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "CommandSeparator": {
          "componentName": "CommandSeparator",
          "fileName": "CommandSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Confetti": {
      "name": "Confetti",
      "category": "Motion",
      "subcategory": null,
      "description": "Burst of colored particles on demand via imperative Fire() method.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/Confetti/Confetti.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ParticleCount",
          "type": "int",
          "default": "80",
          "description": "Number of confetti particles to emit per burst.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Spread",
          "type": "int",
          "default": "70",
          "description": "Spread angle in degrees.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Colors",
          "type": "string[]?",
          "default": null,
          "description": "Colors to use for confetti. Defaults to a festive palette using CSS variables (resolved at runtime).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OriginX",
          "type": "double",
          "default": "0.5",
          "description": "Origin X position (0–1, relative to element width). Default: 0.5 (center).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OriginY",
          "type": "double",
          "default": "0.5",
          "description": "Origin Y position (0–1, relative to element height). Default: 0.5 (center).",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Button-triggered Burst",
          "code": "<Confetti @ref=\"_confettiRef\" ParticleCount=\"100\" Spread=\"80\">\n    <Button OnClick=\"@(() => _confettiRef!.Fire())\">Celebrate!</Button>\n</Confetti>\n\n@code {\n    private Confetti? _confettiRef;\n}"
        },
        {
          "title": "Custom Colors",
          "code": "<Confetti @ref=\"_confettiRef\"\n    Colors=\"@(new[] { \"#ff595e\", \"#6a4c93\", \"#1982c4\" })\">\n    <Button OnClick=\"@(() => _confettiRef!.Fire())\">Custom Colors</Button>\n</Confetti>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ConsentBanner": {
      "name": "ConsentBanner",
      "category": "Utility",
      "subcategory": null,
      "description": "Consent Banner component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ConsentBanner/ConsentBanner.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IDisposable"
      ],
      "parameters": [
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        },
        {
          "name": "Categories",
          "type": "IReadOnlyList<Lumeo.Services.ConsentCategory>",
          "default": "DefaultCategories",
          "description": "Consent buckets to expose in the preferences dialog. Omit `Required: true` ones if your site doesn't use strictly-necessary cookies.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PrivacyPolicyUrl",
          "type": "string?",
          "default": null,
          "description": "URL to your privacy policy page. If null, the link is hidden.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Title",
          "type": "string",
          "default": "\"Cookies & consent\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "type": "string",
          "default": "\"We use a minimal set of cookies to run the site and optionally measure anonymous usage to improve it. You choose what's on.\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PrivacyPolicyLabel",
          "type": "string",
          "default": "\"Read the privacy policy\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AcceptLabel",
          "type": "string",
          "default": "\"Accept all\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RejectLabel",
          "type": "string",
          "default": "\"Reject optional\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CustomizeLabel",
          "type": "string",
          "default": "\"Customize\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PreferencesTitle",
          "type": "string",
          "default": "\"Consent preferences\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PreferencesDescription",
          "type": "string",
          "default": "\"Pick which categories you're okay with. You can change this later.\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RequiredBadge",
          "type": "string",
          "default": "\"Required\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CancelLabel",
          "type": "string",
          "default": "\"Cancel\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SaveLabel",
          "type": "string",
          "default": "\"Save preferences\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AnimationClass",
          "type": "string",
          "default": "\"animate-slide-in-from-bottom\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-background",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Container": {
      "name": "Container",
      "category": "Layout",
      "subcategory": null,
      "description": "Responsive max-width wrapper with consistent page padding.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Container/Container.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "MaxWidth",
          "type": "string?",
          "default": "\"lg\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Center",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Padding",
          "type": "string?",
          "default": "\"4\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Centered Content",
          "code": "<Container MaxWidth=\"md\">\n    <p>Content centered within max-w-md</p>\n</Container>"
        },
        {
          "title": "Different Max Widths",
          "code": "<Container MaxWidth=\"sm\">Small container</Container>\n<Container MaxWidth=\"md\">Medium container</Container>\n<Container MaxWidth=\"lg\">Large container</Container>\n<Container MaxWidth=\"xl\">Extra large container</Container>"
        },
        {
          "title": "MaxWidth — interactive",
          "code": "<Container MaxWidth=\"lg\">\n    Content constrained to max-w-lg\n</Container>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ContextMenu": {
      "name": "ContextMenu",
      "category": "Overlay",
      "subcategory": null,
      "description": "Right-click menu tied to a container element.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ContextMenu/ContextMenu.razor",
        "UI/ContextMenu/ContextMenuCheckboxItem.razor",
        "UI/ContextMenu/ContextMenuContent.razor",
        "UI/ContextMenu/ContextMenuGroup.razor",
        "UI/ContextMenu/ContextMenuItem.razor",
        "UI/ContextMenu/ContextMenuLabel.razor",
        "UI/ContextMenu/ContextMenuRadioGroup.razor",
        "UI/ContextMenu/ContextMenuRadioItem.razor",
        "UI/ContextMenu/ContextMenuSeparator.razor",
        "UI/ContextMenu/ContextMenuTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "ContextMenuContext",
          "signature": "ContextMenuContext(bool IsOpen, double X, double Y, EventCallback<bool> SetOpen, EventCallback<(double, double)> SetPosition)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<ContextMenu>\n    <ContextMenuTrigger>\n        <div class=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm\">\n            Right click here\n        </div>\n    </ContextMenuTrigger>\n    <ContextMenuContent>\n        <ContextMenuItem>Back</ContextMenuItem>\n        <ContextMenuItem>Forward</ContextMenuItem>\n        <ContextMenuItem>Reload</ContextMenuItem>\n        <ContextMenuSeparator />\n        <ContextMenuItem>Save As...</ContextMenuItem>\n        <ContextMenuItem>Print</ContextMenuItem>\n    </ContextMenuContent>\n</ContextMenu>"
        },
        {
          "title": "With Labels and Groups",
          "code": "<ContextMenu>\n    <ContextMenuTrigger>\n        <div>Right click here</div>\n    </ContextMenuTrigger>\n    <ContextMenuContent>\n        <ContextMenuLabel>Edit</ContextMenuLabel>\n        <ContextMenuGroup>\n            <ContextMenuItem>Cut</ContextMenuItem>\n            <ContextMenuItem>Copy</ContextMenuItem>\n            <ContextMenuItem>Paste</ContextMenuItem>\n        </ContextMenuGroup>\n        <ContextMenuSeparator />\n        <ContextMenuLabel>View</ContextMenuLabel>\n        <ContextMenuGroup>\n            <ContextMenuItem>Zoom In</ContextMenuItem>\n            <ContextMenuItem>Zoom Out</ContextMenuItem>\n        </ContextMenuGroup>\n        <ContextMenuSeparator />\n        <ContextMenuItem Disabled=\"true\">Delete</ContextMenuItem>\n    </ContextMenuContent>\n</ContextMenu>"
        },
        {
          "title": "File Actions",
          "code": "<ContextMenu>\n    <ContextMenuTrigger>\n        <div class=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed\">\n            <div class=\"text-center\">\n                <div class=\"text-sm font-medium\">document.pdf</div>\n                <div class=\"text-xs text-muted-foreground mt-1\">Right click for options</div>\n            </div>\n        </div>\n    </ContextMenuTrigger>\n    <ContextMenuContent>\n        <ContextMenuItem>Open</ContextMenuItem>\n        <ContextMenuItem>Duplicate</ContextMenuItem>\n        <ContextMenuSeparator />\n        <ContextMenuItem>Move to...</ContextMenuItem>\n        <ContextMenuSeparator />\n        <ContextMenuItem>Add to Favorites</ContextMenuItem>\n        <ContextMenuSeparator />\n        <ContextMenuItem>Delete</ContextMenuItem>\n    </ContextMenuContent>\n</ContextMenu>"
        }
      ],
      "subComponents": {
        "ContextMenuCheckboxItem": {
          "componentName": "ContextMenuCheckboxItem",
          "fileName": "ContextMenuCheckboxItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Checked",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CheckedChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "CheckedChanged",
              "type": "EventCallback<bool>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuContent": {
          "componentName": "ContextMenuContent",
          "fileName": "ContextMenuContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "ContextMenu.ContextMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuGroup": {
          "componentName": "ContextMenuGroup",
          "fileName": "ContextMenuGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuItem": {
          "componentName": "ContextMenuItem",
          "fileName": "ContextMenuItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "ContextMenu.ContextMenuContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuLabel": {
          "componentName": "ContextMenuLabel",
          "fileName": "ContextMenuLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuRadioGroup": {
          "componentName": "ContextMenuRadioGroup",
          "fileName": "ContextMenuRadioGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ValueChanged",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "ValueChanged",
              "type": "EventCallback<string>",
              "description": null
            }
          ],
          "enums": [],
          "records": [
            {
              "name": "ContextMenuRadioGroupContext",
              "signature": "ContextMenuRadioGroupContext(string? Value, EventCallback<string> OnSelect)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuRadioItem": {
          "componentName": "ContextMenuRadioItem",
          "fileName": "ContextMenuRadioItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "ContextMenuRadioGroup.ContextMenuRadioGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuSeparator": {
          "componentName": "ContextMenuSeparator",
          "fileName": "ContextMenuSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ContextMenuTrigger": {
          "componentName": "ContextMenuTrigger",
          "fileName": "ContextMenuTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "ContextMenu.ContextMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "LongPressMs",
              "type": "int",
              "default": "500",
              "description": "Duration in milliseconds a touch must remain on the trigger (without significant movement) before the context menu opens. Default: 500ms.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MoveTolerancePx",
              "type": "double",
              "default": "10.0",
              "description": "Pixel threshold for touch movement that cancels the long-press timer. Above this, the user is interpreted as scrolling, not long-pressing.",
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "DataGrid": {
      "name": "DataGrid",
      "category": "Data Display",
      "subcategory": "Tables",
      "description": "Enterprise grid: sort, filter, inline edit, multi-level group (client + server), pin, virtualize, export.",
      "nugetPackage": "Lumeo.DataGrid",
      "files": [
        "UI/DataGrid/DataGrid.razor",
        "UI/DataGrid/DataGridBody.razor",
        "UI/DataGrid/DataGridCell.razor",
        "UI/DataGrid/DataGridColumn.cs",
        "UI/DataGrid/DataGridColumnDef.razor",
        "UI/DataGrid/DataGridColumnFilter.razor",
        "UI/DataGrid/DataGridColumnVisibility.razor",
        "UI/DataGrid/DataGridContext.cs",
        "UI/DataGrid/DataGridDetailRow.razor",
        "UI/DataGrid/DataGridDragState.cs",
        "UI/DataGrid/DataGridEnums.cs",
        "UI/DataGrid/DataGridFilterOperator.cs",
        "UI/DataGrid/DataGridFooter.razor",
        "UI/DataGrid/DataGridGroupRow.razor",
        "UI/DataGrid/DataGridHeader.razor",
        "UI/DataGrid/DataGridHeaderCell.razor",
        "UI/DataGrid/DataGridLayoutService.cs",
        "UI/DataGrid/DataGridPagination.razor",
        "UI/DataGrid/DataGridRow.razor",
        "UI/DataGrid/DataGridServerService.cs",
        "UI/DataGrid/DataGridState.cs",
        "UI/DataGrid/DataGridToolbar.razor",
        "UI/DataGrid/DataGridToolbarColumns.razor",
        "UI/DataGrid/DataGridToolbarContext.cs",
        "UI/DataGrid/DataGridToolbarCopySelected.razor",
        "UI/DataGrid/DataGridToolbarExport.razor",
        "UI/DataGrid/DataGridToolbarFullscreen.razor",
        "UI/DataGrid/DataGridToolbarLayouts.razor",
        "UI/DataGrid/ToolbarContent.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Items",
          "type": "IEnumerable<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Columns",
          "type": "List<DataGridColumn<TItem>>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Striped",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Bordered",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Compact",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Hoverable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectionMode",
          "type": "DataGridSelectionMode",
          "default": "DataGridSelectionMode.None",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EditMode",
          "type": "DataGridEditMode",
          "default": "DataGridEditMode.None",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PageSize",
          "type": "int",
          "default": "10",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PageSizeOptions",
          "type": "int[]",
          "default": "new[] { 10, 25, 50, 100 }",
          "description": "The list of page-size options shown in the rows-per-page selector. Defaults to { 10, 25, 50, 100 }. Set to e.g. { 10, 50, 100, 200, 300 } for larger datasets, or to an empty array to hide the selector entirely.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowPagination",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowToolbar",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSearch",
          "type": "bool",
          "default": "true",
          "description": "Show the global search box in the toolbar. Default true.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowColumnChooser",
          "type": "bool",
          "default": "true",
          "description": "Show the Columns button (visibility/reorder menu). Default true.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowExport",
          "type": "bool",
          "default": "true",
          "description": "Show the Export button and its format dropdown. Default true. Set false to hide export entirely. For fine-grained per-format control see ExportFormats.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ExportFormats",
          "type": "DataGridExportFormat",
          "default": "DataGridExportFormat.All",
          "description": "Which export formats appear in the Export dropdown. Default All. Set to e.g. Csv | Excel to hide PDF in WebAssembly where QuestPDF isn't supported. When no flags are set (or ShowExport is false), the Export button is hidden.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "VirtualizeThreshold",
          "type": "int",
          "default": "500",
          "description": "Item count above which Blazor's &lt;Virtualize&gt; kicks in. Only relevant when ShowPagination is false (or PageSize &gt; this threshold) — paged grids show at most PageSize rows at once and never trigger virtualization. Default 500.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "VirtualItemSize",
          "type": "float",
          "default": "41f",
          "description": "Estimated row height in CSS pixels — used by &lt;Virtualize&gt; to size the scroll spacers. Tune if your rows are taller (dense badges, two-line cells). Default 41px.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "VirtualOverscanCount",
          "type": "int",
          "default": "3",
          "description": "Extra rows rendered above and below the viewport to hide pop-in during fast scrolling. Default 3.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Reorderable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowReorderable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupBy",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupsExpandedByDefault",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupByFields",
          "type": "IReadOnlyList<string>?",
          "default": null,
          "description": "Ordered list of fields for multi-level grouping. When set (non-empty) this takes precedence over the single GroupBy parameter. Each entry must be a column Field. The grid renders nested group rows with increasing indentation per level; per-level aggregates are shown on each group header row.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowGroupPanel",
          "type": "bool",
          "default": null,
          "description": "Shows a slim bar above the grid that lists the current grouping levels as removable chips, plus a dropdown to add a new level from any Groupable column. Default false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupPanelText",
          "type": "string?",
          "default": null,
          "description": "Placeholder/hint text shown in the group panel when no fields are grouped.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildItemsSelector",
          "type": "Func<TItem, IEnumerable<TItem>?>?",
          "default": null,
          "description": "When set, the grid renders a hierarchical tree-grid: this selector returns a row's child rows (null/empty = leaf). Each parent row gets an expand chevron in the tree column (see TreeColumnField). Distinct from DetailTemplate, which is a flat expand-for-detail fragment. Tree-grid mode and grouping are mutually exclusive — when both are configured, tree-grid mode wins.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TreeGridDefaultExpanded",
          "type": "bool",
          "default": null,
          "description": "Whether tree nodes start expanded. Default false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TreeColumnField",
          "type": "string?",
          "default": null,
          "description": "Field of the column that carries the tree chevron + indentation. Null (default) uses the first visible column.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnTreeNodeExpand",
          "type": "EventCallback<TItem>",
          "default": null,
          "description": "Raised when a tree node is expanded or collapsed (the item, plus its new expanded state).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Expandable",
          "type": "bool",
          "default": null,
          "description": "When true, adds a small Expand icon to the toolbar. Clicking it renders the grid in a fullscreen modal overlay. Default false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsExpanded",
          "type": "bool",
          "default": null,
          "description": "When true, the grid is currently rendered in fullscreen. Bind this for programmatic control, or leave unbound to let the grid manage its own state via the toolbar button.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsExpandedChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FullscreenTitle",
          "type": "string?",
          "default": null,
          "description": "Optional title shown in the fullscreen header bar. Defaults to \"Data Grid\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowClass",
          "type": "Func<TItem, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowStyle",
          "type": "Func<TItem, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableLayoutPersistence",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LayoutStorageKey",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnLayoutSave",
          "type": "EventCallback<DataGridLayout>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SavedLayout",
          "type": "DataGridLayout?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GlobalLayouts",
          "type": "List<DataGridNamedLayout>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSaveNamedLayout",
          "type": "EventCallback<DataGridNamedLayout>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDeleteNamedLayout",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ServerMode",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnServerRequest",
          "type": "EventCallback<DataGridServerRequest>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TotalCount",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Virtualized",
          "type": "bool",
          "default": null,
          "description": "Enables Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize{TItem} with an ItemsProvider — rows are fetched from the backend in scroll-driven windows instead of paged. Requires OnRangeRequest. When active, pagination is hidden automatically and the grid renders a single tall scrollable body.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRangeRequest",
          "type": "Func<DataGridRangeRequest, ValueTask<DataGridRangeResponse<TItem>>>?",
          "default": null,
          "description": "Range-fetch callback used in virtualised server mode. The grid invokes this whenever the viewport scrolls into an unloaded window. The callback must return the requested slice plus the current total row count so the scroll spacers stay accurate.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DetailTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EmptyContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowContextMenu",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRowClick",
          "type": "EventCallback<TItem>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRowDoubleClick",
          "type": "EventCallback<TItem>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCellEdit",
          "type": "EventCallback<CellEditEventArgs<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRowEdit",
          "type": "EventCallback<RowEditEventArgs<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnBatchSave",
          "type": "EventCallback<DataGridBatchSaveEventArgs<TItem>>",
          "default": null,
          "description": "Fired when the user clicks \"Save all\" while EditMode is Batch. Args carry the buffered modifications + added rows. On a clean callback return (no exception), the grid's pending-changes buffer is cleared automatically.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowAddRow",
          "type": "bool",
          "default": null,
          "description": "When true and NewItemFactory is set, renders a thin \"+ Add row\" trigger below the body. Each click creates a TItem via the factory, pushes it into the added-rows buffer, and immediately shows it inline so cells can be filled in. Only meaningful in Batch.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NewItemFactory",
          "type": "Func<TItem>?",
          "default": null,
          "description": "Factory used by the \"+ Add row\" trigger to produce a fresh TItem. Required when ShowAddRow is true. The returned item is stored in the added-rows buffer; the user fills its cells inline and the row is delivered via OnBatchSave.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColumnVirtualize",
          "type": "bool",
          "default": null,
          "description": "Simplified column virtualization: caps the number of horizontally- rendered data columns at MaxVisibleColumns. Pinned columns always make the cut. Default false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxVisibleColumns",
          "type": "int",
          "default": "30",
          "description": "Maximum columns rendered when ColumnVirtualize is true. Default 30.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BatchSaveAllText",
          "type": "string?",
          "default": "\"Save all\"",
          "description": "Label for the batch-mode \"Save all\" button. Override for localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BatchDiscardText",
          "type": "string?",
          "default": "\"Discard\"",
          "description": "Label for the batch-mode \"Discard\" button. Override for localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BatchAddRowText",
          "type": "string?",
          "default": "\"Add row\"",
          "description": "Label for the batch-mode \"+ Add row\" trigger. Override for localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnColumnReorder",
          "type": "EventCallback<ColumnReorderEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRowReorder",
          "type": "EventCallback<RowReorderEventArgs<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnError",
          "type": "EventCallback<Exception>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItems",
          "type": "IReadOnlyList<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<IReadOnlyList<TItem>>",
          "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
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "CultureInfo used for cell value formatting (dates/numbers) and exports. When null (default), falls back to CurrentCulture. Useful when your app sets a different culture than the UI locale — e.g. force de-DE formatting in an English UI.",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OnTreeNodeExpand",
          "type": "EventCallback<TItem>",
          "description": "Raised when a tree node is expanded or collapsed (the item, plus its new expanded state)."
        },
        {
          "name": "IsExpandedChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "OnLayoutSave",
          "type": "EventCallback<DataGridLayout>",
          "description": null
        },
        {
          "name": "OnSaveNamedLayout",
          "type": "EventCallback<DataGridNamedLayout>",
          "description": null
        },
        {
          "name": "OnDeleteNamedLayout",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OnServerRequest",
          "type": "EventCallback<DataGridServerRequest>",
          "description": null
        },
        {
          "name": "OnRowClick",
          "type": "EventCallback<TItem>",
          "description": null
        },
        {
          "name": "OnRowDoubleClick",
          "type": "EventCallback<TItem>",
          "description": null
        },
        {
          "name": "OnCellEdit",
          "type": "EventCallback<CellEditEventArgs<TItem>>",
          "description": null
        },
        {
          "name": "OnRowEdit",
          "type": "EventCallback<RowEditEventArgs<TItem>>",
          "description": null
        },
        {
          "name": "OnBatchSave",
          "type": "EventCallback<DataGridBatchSaveEventArgs<TItem>>",
          "description": "Fired when the user clicks \"Save all\" while EditMode is Batch. Args carry the buffered modifications + added rows. On a clean callback return (no exception), the grid's pending-changes buffer is cleared automatically."
        },
        {
          "name": "OnColumnReorder",
          "type": "EventCallback<ColumnReorderEventArgs>",
          "description": null
        },
        {
          "name": "OnRowReorder",
          "type": "EventCallback<RowReorderEventArgs<TItem>>",
          "description": null
        },
        {
          "name": "OnError",
          "type": "EventCallback<Exception>",
          "description": null
        },
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<IReadOnlyList<TItem>>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-card-foreground",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic DataGrid",
          "code": "<DataGrid TItem=\"Employee\" Items=\"@employees\" PageSize=\"5\" ShowPagination=\"true\">\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Name\" Field=\"Name\" Sortable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Department\" Field=\"Department\" Sortable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Salary\" Field=\"Salary\" Sortable=\"true\" Format=\"C0\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Start Date\" Field=\"StartDate\" Format=\"yyyy-MM-dd\" />\n</DataGrid>"
        },
        {
          "title": "Toolbar, Search & Filtering",
          "code": "<DataGrid TItem=\"Employee\" Items=\"@employees\" PageSize=\"5\"\n          ShowToolbar=\"true\" ShowPagination=\"true\">\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Name\" Field=\"Name\"\n                       Sortable=\"true\" Filterable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Salary\" Field=\"Salary\"\n                       Filterable=\"true\" FilterType=\"DataGridFilterType.Number\" Format=\"C0\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Status\" Field=\"Status\"\n                       Filterable=\"true\" />\n</DataGrid>"
        },
        {
          "title": "Minimal toolbar (search only)",
          "code": "<DataGrid TItem=\"Employee\" Items=\"@employees\" PageSize=\"5\"\n          ShowToolbar=\"true\"\n          ShowColumnChooser=\"false\"\n          ShowExport=\"false\">\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Name\" Field=\"Name\" Sortable=\"true\" Filterable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Department\" Field=\"Department\" Sortable=\"true\" Filterable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Salary\" Field=\"Salary\" Sortable=\"true\" Format=\"C0\" />\n</DataGrid>"
        },
        {
          "title": "Export-only toolbar",
          "code": "<DataGrid TItem=\"Employee\" Items=\"@employees\" PageSize=\"5\"\n          ShowToolbar=\"true\"\n          ShowSearch=\"false\"\n          ShowColumnChooser=\"false\">\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Name\" Field=\"Name\" Sortable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Department\" Field=\"Department\" Sortable=\"true\" />\n    <DataGridColumnDef TItem=\"Employee\" Title=\"Salary\" Field=\"Salary\" Sortable=\"true\" Format=\"C0\" />\n</DataGrid>"
        }
      ],
      "subComponents": {
        "DataGridBody": {
          "componentName": "DataGridBody",
          "fileName": "DataGridBody.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "DetailTemplate",
              "type": "RenderFragment<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EmptyContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "UseVirtualization",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VirtualItemSize",
              "type": "float",
              "default": "41f",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "VirtualOverscanCount",
              "type": "int",
              "default": "3",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ServerVirtualizationProvider",
              "type": "Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate<IndexedItem>?",
              "default": null,
              "description": "When set, switches the body to ItemsProvider-mode virtualisation (window-fetched server scrolling). Null disables.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HasDetailTemplate",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SkeletonRowCount",
              "type": "int",
              "default": "5",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnContextMenu",
              "type": "EventCallback<(TItem, double, double)>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnContextMenu",
              "type": "EventCallback<(TItem, double, double)>",
              "description": null
            }
          ],
          "enums": [],
          "records": [
            {
              "name": "IndexedItem",
              "signature": "IndexedItem(TItem Item, int Index)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridCell": {
          "componentName": "DataGridCell",
          "fileName": "DataGridCell.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Item",
              "type": "TItem",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Column",
              "type": "DataGridColumn<TItem>",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "RowIndex",
              "type": "int",
              "default": null,
              "description": "0-based index of the owning row within DisplayedItems (non-grouped).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColumnIndex",
              "type": "int",
              "default": null,
              "description": "0-based index of this column within the visible columns.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaColIndex",
              "type": "int",
              "default": null,
              "description": "1-based ARIA column index (includes any leading non-data columns).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Navigable",
              "type": "bool",
              "default": "true",
              "description": "Whether this cell participates in roving-tabindex keyboard navigation. False in grouped mode where row indices are not globally unique.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridColumnDef": {
          "componentName": "DataGridColumnDef",
          "fileName": "DataGridColumnDef.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ParentGrid",
              "type": "DataGrid<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Field",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FieldSelector",
              "type": "Func<TItem, object?>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Width",
              "type": "double?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Sortable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Filterable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Resizable",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FilterType",
              "type": "DataGridFilterType",
              "default": "DataGridFilterType.Text",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Aggregate",
              "type": "AggregateType",
              "default": "AggregateType.None",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Format",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Pin",
              "type": "PinDirection",
              "default": "PinDirection.None",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CellTemplate",
              "type": "RenderFragment<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HeaderTemplate",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EditTemplate",
              "type": "RenderFragment<CellEditContext<TItem>>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MinWidth",
              "type": "double?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MaxWidth",
              "type": "double?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Pinnable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Groupable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Reorderable",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CellClass",
              "type": "Func<TItem, string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HeaderCssClass",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CustomSort",
              "type": "Comparison<object?>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FilterOptions",
              "type": "List<FilterOption>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Operators",
              "type": "List<FilterOperator>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FilterTemplate",
              "type": "RenderFragment<DataGridFilterTemplateContext>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridColumnFilter": {
          "componentName": "DataGridColumnFilter",
          "fileName": "DataGridColumnFilter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Column",
              "type": "DataGridColumn<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FilterOptions",
              "type": "List<FilterOption>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CurrentFilter",
              "type": "FilterDescriptor?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnApply",
              "type": "EventCallback<FilterDescriptor?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnApply",
              "type": "EventCallback<FilterDescriptor?>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridColumnVisibility": {
          "componentName": "DataGridColumnVisibility",
          "fileName": "DataGridColumnVisibility.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Columns",
              "type": "IReadOnlyList<DataGridColumn<TItem>>",
              "default": "Array.Empty<DataGridColumn<TItem>>()",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnToggle",
              "type": "EventCallback<DataGridColumn<TItem>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnColumnToggle",
              "type": "EventCallback<DataGridColumn<TItem>>",
              "description": null
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridDetailRow": {
          "componentName": "DataGridDetailRow",
          "fileName": "DataGridDetailRow.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Item",
              "type": "TItem",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DetailTemplate",
              "type": "RenderFragment<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColSpan",
              "type": "int",
              "default": "1",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridFooter": {
          "componentName": "DataGridFooter",
          "fileName": "DataGridFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "AllItems",
              "type": "IReadOnlyList<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HasDetailTemplate",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridGroupRow": {
          "componentName": "DataGridGroupRow",
          "fileName": "DataGridGroupRow.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "GroupKey",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Count",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsExpanded",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnToggle",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColSpan",
              "type": "int",
              "default": "1",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Level",
              "type": "int",
              "default": null,
              "description": "Nesting depth for multi-level grouping (0 = top level). Controls indentation.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Aggregates",
              "type": "IReadOnlyList<DataGridGroupAggregate>?",
              "default": null,
              "description": "Per-group aggregate strip rendered next to the group label.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnToggle",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridHeader": {
          "componentName": "DataGridHeader",
          "fileName": "DataGridHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "HasDetailTemplate",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ActiveFilterColumn",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Reorderable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnFilterToggle",
              "type": "EventCallback<string?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnFilterApply",
              "type": "EventCallback<FilterApplyEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnFilterToggle",
              "type": "EventCallback<string?>",
              "description": null
            },
            {
              "name": "OnFilterApply",
              "type": "EventCallback<FilterApplyEventArgs>",
              "description": null
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridHeaderCell": {
          "componentName": "DataGridHeaderCell",
          "fileName": "DataGridHeaderCell.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ParentGrid",
              "type": "DataGrid<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "DragState",
              "type": "DataGridDragState?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Column",
              "type": "DataGridColumn<TItem>",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ColumnIndex",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaColIndex",
              "type": "int",
              "default": null,
              "description": "1-based ARIA column index (includes any leading non-data columns).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SortDirection",
              "type": "SortDirection",
              "default": "SortDirection.None",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HasActiveFilter",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsFilterOpen",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Reorderable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnFilterToggle",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnFilterApply",
              "type": "EventCallback<FilterApplyEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SortPriority",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "TotalSortCount",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnFilterToggle",
              "type": "EventCallback",
              "description": null
            },
            {
              "name": "OnFilterApply",
              "type": "EventCallback<FilterApplyEventArgs>",
              "description": null
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridPagination": {
          "componentName": "DataGridPagination",
          "fileName": "DataGridPagination.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "PageChanged",
              "type": "EventCallback<int>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PageSizeChanged",
              "type": "EventCallback<int>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PageSizeOptions",
              "type": "int[]",
              "default": "new[] { 10, 25, 50, 100 }",
              "description": "Page-size options shown in the rows-per-page selector. Empty array hides the selector entirely.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "PageChanged",
              "type": "EventCallback<int>",
              "description": null
            },
            {
              "name": "PageSizeChanged",
              "type": "EventCallback<int>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridRow": {
          "componentName": "DataGridRow",
          "fileName": "DataGridRow.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ParentGrid",
              "type": "DataGrid<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "DragStateCtx",
              "type": "DataGridDragState?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Item",
              "type": "TItem",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "RowIndex",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DetailTemplate",
              "type": "RenderFragment<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnContextMenu",
              "type": "EventCallback<(TItem, double, double)>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnContextMenu",
              "type": "EventCallback<(TItem, double, double)>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbar": {
          "componentName": "DataGridToolbar",
          "fileName": "DataGridToolbar.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "SearchText",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SearchTextChanged",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "RegisteredContent",
              "type": "ToolbarContent<TItem>?",
              "default": null,
              "description": "The ToolbarContent{TItem} component the consumer placed inside the DataGrid, forwarded by the parent grid. When null, the toolbar's left slot renders just the search + filter chips; when non-null, its Class styles the wrapper and its ChildContent renders alongside the chips.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnVisibilityToggle",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnToggle",
              "type": "EventCallback<DataGridColumn<TItem>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnExport",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnRemoveFilter",
              "type": "EventCallback<FilterDescriptor>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SelectedItems",
              "type": "List<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AllItems",
              "type": "List<TItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EffectiveColumns",
              "type": "IReadOnlyList<DataGridColumn<TItem>>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EnableLayoutPersistence",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnSaveLayout",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnResetLayout",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "GlobalLayouts",
              "type": "List<DataGridNamedLayout>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnSaveNamedLayout",
              "type": "EventCallback<DataGridNamedLayout>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnDeleteNamedLayout",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnApplyNamedLayout",
              "type": "EventCallback<DataGridNamedLayout>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LayoutStorageKey",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnError",
              "type": "EventCallback<Exception>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Expandable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsExpanded",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnToggleExpanded",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowSearch",
              "type": "bool",
              "default": "true",
              "description": "Show the global search box. Default true.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowColumnChooser",
              "type": "bool",
              "default": "true",
              "description": "Show the Columns (visibility/reorder) button. Default true.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowExport",
              "type": "bool",
              "default": "true",
              "description": "Show the Export dropdown. Default true. Combined with ExportFormats.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ExportFormats",
              "type": "DataGridExportFormat",
              "default": "DataGridExportFormat.All",
              "description": "Which export formats to include in the dropdown. Default All.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "SearchTextChanged",
              "type": "EventCallback<string>",
              "description": null
            },
            {
              "name": "OnColumnVisibilityToggle",
              "type": "EventCallback",
              "description": null
            },
            {
              "name": "OnColumnToggle",
              "type": "EventCallback<DataGridColumn<TItem>>",
              "description": null
            },
            {
              "name": "OnColumnReorder",
              "type": "EventCallback<ColumnReorderEventArgs>",
              "description": null
            },
            {
              "name": "OnExport",
              "type": "EventCallback<string>",
              "description": null
            },
            {
              "name": "OnRemoveFilter",
              "type": "EventCallback<FilterDescriptor>",
              "description": null
            },
            {
              "name": "OnSaveLayout",
              "type": "EventCallback",
              "description": null
            },
            {
              "name": "OnResetLayout",
              "type": "EventCallback",
              "description": null
            },
            {
              "name": "OnSaveNamedLayout",
              "type": "EventCallback<DataGridNamedLayout>",
              "description": null
            },
            {
              "name": "OnDeleteNamedLayout",
              "type": "EventCallback<string>",
              "description": null
            },
            {
              "name": "OnApplyNamedLayout",
              "type": "EventCallback<DataGridNamedLayout>",
              "description": null
            },
            {
              "name": "OnError",
              "type": "EventCallback<Exception>",
              "description": null
            },
            {
              "name": "OnToggleExpanded",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbarColumns": {
          "componentName": "DataGridToolbarColumns",
          "fileName": "DataGridToolbarColumns.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridToolbarContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbarCopySelected": {
          "componentName": "DataGridToolbarCopySelected",
          "fileName": "DataGridToolbarCopySelected.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridToolbarContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbarExport": {
          "componentName": "DataGridToolbarExport",
          "fileName": "DataGridToolbarExport.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridToolbarContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbarFullscreen": {
          "componentName": "DataGridToolbarFullscreen",
          "fileName": "DataGridToolbarFullscreen.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridToolbarContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DataGridToolbarLayouts": {
          "componentName": "DataGridToolbarLayouts",
          "fileName": "DataGridToolbarLayouts.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DataGridToolbarContext<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToolbarContent": {
          "componentName": "ToolbarContent",
          "fileName": "ToolbarContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Parent",
              "type": "DataGrid<TItem>?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": "Custom CSS classes applied to the wrapper around the toolbar content (the flex row holding your custom buttons + the filter chips).",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "DataTable": {
      "name": "DataTable",
      "category": "Data Display",
      "subcategory": "Tables",
      "description": "Table with sorting, pagination, and row selection built in.",
      "nugetPackage": "Lumeo.DataGrid",
      "files": [
        "UI/DataTable/DataTable.razor",
        "UI/DataTable/DataTableSortableHeader.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Items",
          "type": "IEnumerable<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HeaderTemplate",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LoadingTemplate",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EmptyTemplate",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SkeletonRows",
          "type": "int",
          "default": "5",
          "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
        },
        {
          "name": "SortColumn",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SortColumnChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SortDir",
          "type": "SortDirection",
          "default": "SortDirection.Ascending",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SortDirChanged",
          "type": "EventCallback<SortDirection>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSort",
          "type": "EventCallback<(string Column, SortDirection Direction)>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Selectable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItems",
          "type": "HashSet<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<HashSet<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Virtualize",
          "type": "bool",
          "default": null,
          "description": "Virtualize the row list using Blazor's &lt;Virtualize&gt; — only renders rows in the viewport.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemSize",
          "type": "float",
          "default": "48",
          "description": "Estimated row height in pixels used by the virtualizer (default 41). Only relevant when Virtualize is true.",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "SortColumnChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "SortDirChanged",
          "type": "EventCallback<SortDirection>",
          "description": null
        },
        {
          "name": "OnSort",
          "type": "EventCallback<(string Column, SortDirection Direction)>",
          "description": null
        },
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<HashSet<TItem>>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "SortDirection",
          "values": [
            "None",
            "Ascending",
            "Descending"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<DataTable Items=\"_payments\" Context=\"payment\">\n    <HeaderTemplate>\n        <th class=\"h-10 px-4 text-left font-medium text-muted-foreground\">Status</th>\n        <th class=\"h-10 px-4 text-left font-medium text-muted-foreground\">Email</th>\n        <th class=\"h-10 px-4 text-right font-medium text-muted-foreground\">Amount</th>\n    </HeaderTemplate>\n    <RowTemplate>\n        <td class=\"p-4\">@payment.Status</td>\n        <td class=\"p-4\">@payment.Email</td>\n        <td class=\"p-4 text-right\">$@payment.Amount</td>\n    </RowTemplate>\n</DataTable>"
        },
        {
          "title": "Loading State",
          "code": "<DataTable Items=\"Array.Empty<Item>()\" TItem=\"Item\" IsLoading=\"true\" SkeletonRows=\"3\">\n    <HeaderTemplate>...</HeaderTemplate>\n    <LoadingTemplate>\n        <td class=\"p-4\"><Skeleton Class=\"h-4 w-16\" /></td>\n    </LoadingTemplate>\n    <RowTemplate>...</RowTemplate>\n</DataTable>"
        },
        {
          "title": "Empty State",
          "code": "<DataTable Items=\"Array.Empty<Item>()\" TItem=\"Item\">\n    <HeaderTemplate>...</HeaderTemplate>\n    <EmptyTemplate>\n        <EmptyState Title=\"No data\" Description=\"Nothing to display.\" />\n    </EmptyTemplate>\n    <RowTemplate>...</RowTemplate>\n</DataTable>"
        },
        {
          "title": "Sortable Columns",
          "code": "<DataTable Items=\"@GetSortedData()\" TItem=\"Item\" SortColumn=\"@_sortColumn\" SortDir=\"@_sortDir\" OnSort=\"@HandleSort\">\n    <HeaderTemplate>\n        <DataTableSortableHeader Column=\"name\" SortColumn=\"@_sortColumn\" SortDirection=\"@_sortDir\" OnSort=\"@HandleSort\">Name</DataTableSortableHeader>\n        <DataTableSortableHeader Column=\"email\" SortColumn=\"@_sortColumn\" SortDirection=\"@_sortDir\" OnSort=\"@HandleSort\">Email</DataTableSortableHeader>\n        <DataTableSortableHeader Column=\"role\" SortColumn=\"@_sortColumn\" SortDirection=\"@_sortDir\" OnSort=\"@HandleSort\">Role</DataTableSortableHeader>\n    </HeaderTemplate>\n    <RowTemplate>\n        <td class=\"p-4\">@context.Name</td>\n        <td class=\"p-4\">@context.Email</td>\n        <td class=\"p-4\">@context.Role</td>\n    </RowTemplate>\n</DataTable>\n\n@code {\n    private string? _sortColumn;\n    private DataTable<Item>.SortDirection _sortDir = DataTable<Item>.SortDirection.None;\n\n    private void HandleSort((string Column, DataTable<Item>.SortDirection Direction) sort)\n    {\n        _sortColumn = sort.Column;\n        _sortDir = sort.Direction;\n    }\n}"
        }
      ],
      "subComponents": {
        "DataTableSortableHeader": {
          "componentName": "DataTableSortableHeader",
          "fileName": "DataTableSortableHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Column",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SortColumn",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SortDirection",
              "type": "DataTable<object>.SortDirection",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnSort",
              "type": "EventCallback<(string Column, DataTable<object>.SortDirection Direction)>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnSort",
              "type": "EventCallback<(string Column, DataTable<object>.SortDirection Direction)>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "DatePicker": {
      "name": "DatePicker",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Calendar popover for picking a single date or range.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/DatePicker/DatePicker.razor",
        "UI/DatePicker/DateRangePicker.razor",
        "UI/DatePicker/DateWheelPicker.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Variant",
          "type": "DatePickerVariant",
          "default": "DatePickerVariant.Calendar",
          "description": "Picker visual style. Defaults to Calendar.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateTimeValue",
          "type": "DateTime?",
          "default": null,
          "description": "Optional DateTime? binding. When set, takes precedence over Value. Changes fire both ValueChanged (DateOnly?) and DateTimeValueChanged (DateTime? at midnight).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateTimeValueChanged",
          "type": "EventCallback<DateTime?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Format",
          "type": "string?",
          "default": null,
          "description": "Date format string. When null (default), the display falls back to the current culture's ShortDatePattern — so a de-DE user sees 15.03.2026 and an en-US user sees 3/15/2026 automatically.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Overrides CurrentCulture for parsing and formatting within this picker. Leave null to honour ASP.NET request localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinDate",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxDate",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDateDisabled",
          "type": "Func<DateTime, bool>?",
          "default": null,
          "description": "Custom predicate to disable specific dates (e.g. booked rooms, unavailable slots). Returns true for dates that should not be selectable.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateClass",
          "type": "Func<DateTime, string>?",
          "default": null,
          "description": "Custom CSS classes per day cell (e.g. status backgrounds for booking calendars).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateTooltip",
          "type": "Func<DateTime, string?>?",
          "default": null,
          "description": "Per-date tooltip text rendered as the day cell's title attribute (native browser tooltip).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateBadge",
          "type": "Func<DateTime, RenderFragment?>?",
          "default": null,
          "description": "Per-date indicator slot (status dots, count badges, icons) rendered absolutely positioned in the bottom-right of the day cell.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Presets",
          "type": "List<DatePickerPreset>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Mode",
          "type": "DatePickerMode",
          "default": "DatePickerMode.Single",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeStart",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeStartChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeEnd",
          "type": "DateOnly?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RangeEndChanged",
          "type": "EventCallback<DateOnly?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowTimePicker",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Time",
          "type": "TimeSpan?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TimeChanged",
          "type": "EventCallback<TimeSpan?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clearable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TriggerContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NumberOfMonths",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Inline",
          "type": "bool",
          "default": null,
          "description": "Optional controlled-mode override for the popover open state. When non-null, the consumer holds the source of truth — the picker no longer mutates its internal state and instead raises OpenChanged. Use this when the picker lives inside a parent that re-renders heavily (e.g. an EditForm with active DataAnnotationsValidator) and the popover would otherwise close mid-click during a parameter cascade. When null (default), the picker falls back to its internal open state and behaves exactly as before.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FirstDayOfWeek",
          "type": "DayOfWeek?",
          "default": null,
          "description": "Leftmost column day of week. Null means culture default.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowWeekNumbers",
          "type": "bool",
          "default": null,
          "description": "When true, renders an ISO week-number column.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": "Fires whenever the popover would open or close. Pair with Open via @bind-Open for the controlled-mode pattern described above.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        },
        {
          "name": "DateTimeValueChanged",
          "type": "EventCallback<DateTime?>",
          "description": null
        },
        {
          "name": "RangeStartChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        },
        {
          "name": "RangeEndChanged",
          "type": "EventCallback<DateOnly?>",
          "description": null
        },
        {
          "name": "TimeChanged",
          "type": "EventCallback<TimeSpan?>",
          "description": null
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": "Fires whenever the popover would open or close. Pair with Open via @bind-Open for the controlled-mode pattern described above."
        }
      ],
      "enums": [
        {
          "name": "DatePickerMode",
          "values": [
            "Single",
            "Range",
            "Month",
            "Year"
          ],
          "description": null
        },
        {
          "name": "DatePickerVariant",
          "values": [
            "Calendar",
            "Wheel"
          ],
          "description": "Visual style of the picker. Calendar renders the existing month-grid Calendar (default). Wheel renders three iOS-style snap-scrolling columns (day / month / year) — designed for mobile / touch UIs."
        }
      ],
      "records": [
        {
          "name": "DatePickerPreset",
          "signature": "DatePickerPreset(string Label, DateOnly Date)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<DatePicker @bind-Value=\"_selectedDate\" />"
        },
        {
          "title": "With Label",
          "code": "<Label>Date of birth</Label>\n<DatePicker @bind-Value=\"_date\" Placeholder=\"Pick your date of birth\" />"
        },
        {
          "title": "Custom Format",
          "code": "<DatePicker @bind-Value=\"_date\" Format=\"yyyy-MM-dd\" Placeholder=\"YYYY-MM-DD\" />"
        },
        {
          "title": "Min & Max Date",
          "code": "<DatePicker @bind-Value=\"_date\" MinDate=\"@_minDate\" MaxDate=\"@_maxDate\" Placeholder=\"Select within range\" />\n\n@code {\n    private DateOnly? _date;\n    private DateOnly _minDate = DateOnly.FromDateTime(DateTime.Today);\n    private DateOnly _maxDate = DateOnly.FromDateTime(DateTime.Today.AddDays(30));\n}"
        }
      ],
      "subComponents": {
        "DateRangePicker": {
          "componentName": "DateRangePicker",
          "fileName": "DateRangePicker.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "StartDate",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "StartDateChanged",
              "type": "EventCallback<DateOnly?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EndDate",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EndDateChanged",
              "type": "EventCallback<DateOnly?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MinDate",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MaxDate",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsDateDisabled",
              "type": "Func<DateTime, bool>?",
              "default": null,
              "description": "Custom predicate to disable specific dates (e.g. booked rooms). Returns true for dates that should not be selectable.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DateClass",
              "type": "Func<DateTime, string>?",
              "default": null,
              "description": "Custom CSS classes per day cell — forwarded to inner Calendar.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DateTooltip",
              "type": "Func<DateTime, string?>?",
              "default": null,
              "description": "Per-date tooltip text rendered as the day cell's title.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DateBadge",
              "type": "Func<DateTime, RenderFragment?>?",
              "default": null,
              "description": "Per-date indicator slot rendered absolutely positioned in the bottom-right of the day cell.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Placeholder",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Format",
              "type": "string?",
              "default": null,
              "description": "Date format. When null (default) the inner DatePicker falls back to the effective culture's ShortDatePattern — so a de-DE user sees 15.03.2026 and an en-US user sees 3/15/2026 automatically.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Presets",
              "type": "List<DateRangePreset>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Clearable",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FirstDayOfWeek",
              "type": "DayOfWeek?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowWeekNumbers",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "StartDateChanged",
              "type": "EventCallback<DateOnly?>",
              "description": null
            },
            {
              "name": "EndDateChanged",
              "type": "EventCallback<DateOnly?>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DateWheelPicker": {
          "componentName": "DateWheelPicker",
          "fileName": "DateWheelPicker.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Value",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ValueChanged",
              "type": "EventCallback<DateOnly?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Min",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Max",
              "type": "DateOnly?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Culture",
              "type": "CultureInfo?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "ValueChanged",
              "type": "EventCallback<DateOnly?>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "DateTimePicker": {
      "name": "DateTimePicker",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Combined date + time picker with timezone awareness.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/DateTimePicker/DateTimePicker.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "DateTime?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateTime?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Use24Hour",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSeconds",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DateFormat",
          "type": "string?",
          "default": null,
          "description": "Date portion format. When null (default) falls back to the effective culture's ShortDatePattern.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Overrides CurrentCulture for date/time formatting. Leave null to honour ASP.NET request localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clearable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinDate",
          "type": "DateTime?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxDate",
          "type": "DateTime?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDateDisabled",
          "type": "Func<DateTime, bool>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FirstDayOfWeek",
          "type": "DayOfWeek?",
          "default": null,
          "description": "Override the locale-derived first day of week shown by the embedded calendar. Forwarded to the inner Calendar; leave null to fall back to CurrentCulture.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<DateTime?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic DateTimePicker",
          "code": "<DateTimePicker @bind-Value=\"_dateTime\" />"
        },
        {
          "title": "Clearable",
          "code": "<DateTimePicker @bind-Value=\"_dateTime\" Clearable=\"true\" />"
        },
        {
          "title": "12-Hour with Seconds",
          "code": "<DateTimePicker @bind-Value=\"_dateTime\" Use24Hour=\"false\" ShowSeconds=\"true\" />"
        },
        {
          "title": "Min & Max Date",
          "code": "<DateTimePicker @bind-Value=\"_dateTime\" MinDate=\"@_minDate\" MaxDate=\"@_maxDate\" Placeholder=\"Select within range\" />\n\n@code {\n    private DateTime? _dateTime;\n    private DateTime _minDate = DateTime.Today;\n    private DateTime _maxDate = DateTime.Today.AddDays(30);\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Delta": {
      "name": "Delta",
      "category": "Dashboard",
      "subcategory": null,
      "description": "Trend indicator showing delta value with up/down arrow + color.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Delta/Delta.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Format",
          "type": "DeltaFormat",
          "default": "DeltaFormat.Percent",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Positive",
          "type": "DeltaDirection",
          "default": "DeltaDirection.Good",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowArrow",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Overrides CurrentCulture for number formatting (decimal separator, group separator). Leave null to honour ASP.NET request localization — a de-DE user sees +12,5% while an en-US user sees +12.5%.",
          "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": [
        {
          "name": "DeltaFormat",
          "values": [
            "Percent",
            "Absolute"
          ],
          "description": null
        },
        {
          "name": "DeltaDirection",
          "values": [
            "Good",
            "Bad"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Percent Delta",
          "code": "<Delta Value=\"12.5\" />\n<Delta Value=\"-3.2\" />\n<Delta Value=\"0\" />"
        },
        {
          "title": "Absolute Delta",
          "code": "<Delta Value=\"420\" Format=\"Delta.DeltaFormat.Absolute\" />\n<Delta Value=\"-88\" Format=\"Delta.DeltaFormat.Absolute\" />"
        },
        {
          "title": "Inverted Positive (Lower is Better)",
          "code": "<Delta Value=\"-5.1\" Positive=\"Delta.DeltaDirection.Bad\" />\n<Delta Value=\"2.3\" Positive=\"Delta.DeltaDirection.Bad\" />"
        },
        {
          "title": "No Arrow",
          "code": "<Delta Value=\"7.4\" ShowArrow=\"false\" />\n<Delta Value=\"-1.9\" ShowArrow=\"false\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Descriptions": {
      "name": "Descriptions",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Key-value pair list for read-only entity details.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Descriptions/Descriptions.razor",
        "UI/Descriptions/DescriptionsItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Title",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Bordered",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Column",
          "type": "int",
          "default": "3",
          "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-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<Descriptions Title=\"User Details\" Column=\"2\">\n    <DescriptionsItem Label=\"Name\">John Doe</DescriptionsItem>\n    <DescriptionsItem Label=\"Email\">john@example.com</DescriptionsItem>\n    <DescriptionsItem Label=\"Role\">Administrator</DescriptionsItem>\n    <DescriptionsItem Label=\"Status\">Active</DescriptionsItem>\n</Descriptions>"
        },
        {
          "title": "Bordered",
          "code": "<Descriptions Title=\"Order Details\" Bordered=\"true\" Column=\"3\">\n    <DescriptionsItem Label=\"Order ID\">#2024-0127</DescriptionsItem>\n    <DescriptionsItem Label=\"Date\">Jan 27, 2025</DescriptionsItem>\n    <DescriptionsItem Label=\"Status\">Shipped</DescriptionsItem>\n</Descriptions>"
        },
        {
          "title": "Single Column",
          "code": "<Descriptions Column=\"1\">\n    <DescriptionsItem Label=\"Product\">Lumeo Pro License</DescriptionsItem>\n    <DescriptionsItem Label=\"Price\">$99/year</DescriptionsItem>\n</Descriptions>"
        }
      ],
      "subComponents": {
        "DescriptionsItem": {
          "componentName": "DescriptionsItem",
          "fileName": "DescriptionsItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Label",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Dialog": {
      "name": "Dialog",
      "category": "Overlay",
      "subcategory": null,
      "description": "Modal dialog with header, content, footer, and focus trap.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Dialog/Dialog.razor",
        "UI/Dialog/DialogClose.razor",
        "UI/Dialog/DialogContent.razor",
        "UI/Dialog/DialogDescription.razor",
        "UI/Dialog/DialogFooter.razor",
        "UI/Dialog/DialogHeader.razor",
        "UI/Dialog/DialogTitle.razor",
        "UI/Dialog/DialogTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "DialogContext",
          "signature": "DialogContext(bool IsOpen, EventCallback<bool> SetOpen, string TitleId, string DescriptionId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Dialog @bind-Open=\"_isOpen\">\n    <DialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Edit Profile</Button>\n    </DialogTrigger>\n    <DialogContent>\n        <DialogHeader>\n            <DialogTitle>Edit Profile</DialogTitle>\n            <DialogDescription>Make changes to your profile here.</DialogDescription>\n        </DialogHeader>\n        <Grid Columns=\"4\" Gap=\"4\" Class=\"items-center py-4\">\n            <Label Class=\"text-right\">Name</Label>\n            <Input Class=\"col-span-3\" Value=\"John Doe\" />\n            <Label Class=\"text-right\">Username</Label>\n            <Input Class=\"col-span-3\" Value=\"@johndoe\" />\n        </Grid>\n        <DialogFooter>\n            <DialogClose>\n                <Button Variant=\"Button.ButtonVariant.Outline\">Cancel</Button>\n            </DialogClose>\n            <DialogClose>\n                <Button>Save Changes</Button>\n            </DialogClose>\n        </DialogFooter>\n    </DialogContent>\n</Dialog>\n\n@code {\n    private bool _isOpen;\n}"
        },
        {
          "title": "Simple Dialog",
          "code": "<Dialog @bind-Open=\"_isOpen\">\n    <DialogTrigger>\n        <Button>Share</Button>\n    </DialogTrigger>\n    <DialogContent>\n        <DialogHeader>\n            <DialogTitle>Share this document</DialogTitle>\n            <DialogDescription>Anyone with the link can view this document.</DialogDescription>\n        </DialogHeader>\n        <Stack Gap=\"4\" Class=\"py-4\">\n            <Input Value=\"https://example.com/share/abc123\" />\n        </Stack>\n        <DialogFooter>\n            <DialogClose>\n                <Button>Copy Link</Button>\n            </DialogClose>\n        </DialogFooter>\n    </DialogContent>\n</Dialog>\n\n@code {\n    private bool _isOpen;\n}"
        },
        {
          "title": "Confirmation Dialog",
          "code": "<Dialog @bind-Open=\"_isOpen\">\n    <DialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Destructive\">\n            <Blazicon Svg=\"Lucide.Trash\" class=\"h-4 w-4\" /> Delete Account\n        </Button>\n    </DialogTrigger>\n    <DialogContent>\n        <DialogHeader>\n            <DialogTitle>Are you absolutely sure?</DialogTitle>\n            <DialogDescription>\n                This action cannot be undone. This will permanently delete your\n                account and remove your data from our servers.\n            </DialogDescription>\n        </DialogHeader>\n        <DialogFooter>\n            <DialogClose>\n                <Button Variant=\"Button.ButtonVariant.Outline\">Cancel</Button>\n            </DialogClose>\n            <DialogClose>\n                <Button Variant=\"Button.ButtonVariant.Destructive\">Yes, delete account</Button>\n            </DialogClose>\n        </DialogFooter>\n    </DialogContent>\n</Dialog>\n\n@code {\n    private bool _isOpen;\n}"
        },
        {
          "title": "Prevent Close",
          "code": "<Dialog @bind-Open=\"_preventCloseOpen\">\n    <DialogTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Protected Dialog</Button>\n    </DialogTrigger>\n    <DialogContent PreventClose=\"true\">\n        <DialogHeader>\n            <DialogTitle>Unsaved Changes</DialogTitle>\n            <DialogDescription>You have unsaved changes. Are you sure you want to leave?</DialogDescription>\n        </DialogHeader>\n        <DialogFooter>\n            <Button Variant=\"Button.ButtonVariant.Outline\" OnClick=\"@(() => _preventCloseOpen = false)\">Discard</Button>\n            <Button OnClick=\"@(() => _preventCloseOpen = false)\">Save Changes</Button>\n        </DialogFooter>\n    </DialogContent>\n</Dialog>\n\n@code {\n    private bool _preventCloseOpen;\n}"
        }
      ],
      "subComponents": {
        "DialogClose": {
          "componentName": "DialogClose",
          "fileName": "DialogClose.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Dialog.DialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogContent": {
          "componentName": "DialogContent",
          "fileName": "DialogContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Dialog.DialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Shell",
              "type": "OverlayShellMarker?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PreventClose",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Size",
              "type": "DialogSize",
              "default": "DialogSize.Default",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Scrollable",
              "type": "bool",
              "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": [
            {
              "name": "DialogSize",
              "values": [
                "Sm",
                "Default",
                "Lg",
                "Xl",
                "Full"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogDescription": {
          "componentName": "DialogDescription",
          "fileName": "DialogDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Dialog.DialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogFooter": {
          "componentName": "DialogFooter",
          "fileName": "DialogFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogHeader": {
          "componentName": "DialogHeader",
          "fileName": "DialogHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogTitle": {
          "componentName": "DialogTitle",
          "fileName": "DialogTitle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Dialog.DialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DialogTrigger": {
          "componentName": "DialogTrigger",
          "fileName": "DialogTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Dialog.DialogContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Dock": {
      "name": "Dock",
      "category": "Motion",
      "subcategory": null,
      "description": "macOS-style icon dock with cursor-proximity magnification.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/Dock/Dock.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxScale",
          "type": "double",
          "default": "1.8",
          "description": "Maximum scale factor applied to the item closest to the cursor (e.g. 1.8 = 80% bigger).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MagnifyRadius",
          "type": "int",
          "default": "100",
          "description": "Radius (px) around each item within which neighbors start scaling.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible label for the dock toolbar container. Defaults to \"Application Dock\".",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Basic Dock",
          "code": "<Dock>\n    <button class=\"w-12 h-12 rounded-xl bg-card border border-border/40 flex items-center justify-center\" title=\"Home\">\n        <Blazicon Svg=\"Lucide.House\" class=\"h-6 w-6 text-foreground/80\" />\n    </button>\n    <button class=\"w-12 h-12 rounded-xl bg-card border border-border/40 flex items-center justify-center\" title=\"Files\">\n        <Blazicon Svg=\"Lucide.FolderOpen\" class=\"h-6 w-6 text-foreground/80\" />\n    </button>\n    <button class=\"w-12 h-12 rounded-xl bg-card border border-border/40 flex items-center justify-center\" title=\"Mail\">\n        <Blazicon Svg=\"Lucide.Mail\" class=\"h-6 w-6 text-foreground/80\" />\n    </button>\n</Dock>"
        },
        {
          "title": "Custom Scale & Radius",
          "code": "<Dock MaxScale=\"2.2\" MagnifyRadius=\"120\">\n    <!-- dock items with Blazicon icons -->\n</Dock>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Drawer": {
      "name": "Drawer",
      "category": "Overlay",
      "subcategory": null,
      "description": "Slide-up sheet for mobile-first contextual content.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Drawer/Drawer.razor",
        "UI/Drawer/DrawerClose.razor",
        "UI/Drawer/DrawerContent.razor",
        "UI/Drawer/DrawerDescription.razor",
        "UI/Drawer/DrawerFooter.razor",
        "UI/Drawer/DrawerHeader.razor",
        "UI/Drawer/DrawerTitle.razor",
        "UI/Drawer/DrawerTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "DrawerContext",
          "signature": "DrawerContext(bool IsOpen, EventCallback<bool> SetOpen, string TitleId, string DescriptionId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Drawer @bind-Open=\"_isOpen\">\n    <DrawerTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Drawer</Button>\n    </DrawerTrigger>\n    <DrawerContent>\n        <DrawerHeader>\n            <DrawerTitle>Move Goal</DrawerTitle>\n            <DrawerDescription>Set your daily activity goal.</DrawerDescription>\n        </DrawerHeader>\n        <Stack Gap=\"0\" Class=\"p-4 text-center\">\n            <Lumeo.Text Size=\"5xl\" Weight=\"bold\">@_goal</Lumeo.Text>\n            <Lumeo.Text Size=\"sm\" Color=\"muted\">calories/day</Lumeo.Text>\n        </Stack>\n        <DrawerFooter>\n            <DrawerClose>\n                <Button Class=\"w-full\">Submit</Button>\n            </DrawerClose>\n            <DrawerClose>\n                <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"w-full\">Cancel</Button>\n            </DrawerClose>\n        </DrawerFooter>\n    </DrawerContent>\n</Drawer>\n\n@code {\n    private bool _isOpen;\n    private int _goal = 350;\n}"
        },
        {
          "title": "Filters Drawer",
          "code": "<Drawer @bind-Open=\"_isFiltersOpen\">\n    <DrawerTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">\n            <Blazicon Svg=\"Lucide.Settings\" class=\"h-4 w-4\" /> Filters\n        </Button>\n    </DrawerTrigger>\n    <DrawerContent>\n        <DrawerHeader>\n            <DrawerTitle>Filter Results</DrawerTitle>\n            <DrawerDescription>Narrow down your search.</DrawerDescription>\n        </DrawerHeader>\n        <Stack Gap=\"4\" Class=\"p-4\">\n            <Select @bind-Value=\"_filterCategory\">\n                <SelectTrigger><span>@(_filterCategory ?? \"All categories\")</span></SelectTrigger>\n                <SelectContent>\n                    <SelectItem Value=\"electronics\">Electronics</SelectItem>\n                    <SelectItem Value=\"clothing\">Clothing</SelectItem>\n                </SelectContent>\n            </Select>\n        </Stack>\n        <DrawerFooter>\n            <DrawerClose><Button Class=\"w-full\">Apply Filters</Button></DrawerClose>\n        </DrawerFooter>\n    </DrawerContent>\n</Drawer>"
        },
        {
          "title": "Prevent Close",
          "code": "<Drawer @bind-Open=\"_preventDrawerOpen\">\n    <DrawerTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Protected Drawer</Button>\n    </DrawerTrigger>\n    <DrawerContent PreventClose=\"true\">\n        <DrawerHeader>\n            <DrawerTitle>Confirm Action</DrawerTitle>\n            <DrawerDescription>You must choose an option to continue.</DrawerDescription>\n        </DrawerHeader>\n        <Stack Gap=\"2\" Class=\"p-4\">\n            <Button Class=\"w-full\" OnClick=\"@(() => _preventDrawerOpen = false)\">Confirm</Button>\n            <Button Variant=\"Button.ButtonVariant.Outline\" Class=\"w-full\" OnClick=\"@(() => _preventDrawerOpen = false)\">Cancel</Button>\n        </Stack>\n    </DrawerContent>\n</Drawer>\n\n@code {\n    private bool _preventDrawerOpen;\n}"
        },
        {
          "title": "Side — interactive",
          "code": "<Segmented @bind-Value=\"_drawerSideSel\" Options=\"_drawerSideOptions\" />\n<Drawer @bind-Open=\"_open\">\n    <DrawerTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Drawer (@_drawerSideSel)</Button>\n    </DrawerTrigger>\n    <DrawerContent Side=\"@_activeDrawerSide\">\n        <DrawerHeader>\n            <DrawerTitle>@_drawerSideSel Drawer</DrawerTitle>\n            <DrawerDescription>Slides in from the @_drawerSideSel.ToLower().</DrawerDescription>\n        </DrawerHeader>\n        <DrawerFooter>\n            <DrawerClose><Button Class=\"w-full\">Close</Button></DrawerClose>\n        </DrawerFooter>\n    </DrawerContent>\n</Drawer>\n\n@code {\n    private string _drawerSideSel = \"Bottom\";\n    private DrawerContent.DrawerSide _activeDrawerSide => Enum.Parse<DrawerContent.DrawerSide>(_drawerSideSel);\n    private List<Segmented.SegmentedOption> _drawerSideOptions = new()\n    {\n        new() { Label = \"Top\", Value = \"Top\" },\n        new() { Label = \"Right\", Value = \"Right\" },\n        new() { Label = \"Bottom\", Value = \"Bottom\" },\n        new() { Label = \"Left\", Value = \"Left\" },\n    };\n}"
        }
      ],
      "subComponents": {
        "DrawerClose": {
          "componentName": "DrawerClose",
          "fileName": "DrawerClose.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Drawer.DrawerContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerContent": {
          "componentName": "DrawerContent",
          "fileName": "DrawerContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Drawer.DrawerContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Shell",
              "type": "OverlayShellMarker?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "DrawerSide",
              "default": "DrawerSide.Bottom",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Animation",
              "type": "DrawerAnimation",
              "default": "DrawerAnimation.Slide",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PreventClose",
              "type": "bool",
              "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": [
            {
              "name": "DrawerSide",
              "values": [
                "Top",
                "Right",
                "Bottom",
                "Left"
              ],
              "description": null
            },
            {
              "name": "DrawerAnimation",
              "values": [
                "Slide",
                "Fade",
                "None"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerDescription": {
          "componentName": "DrawerDescription",
          "fileName": "DrawerDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Drawer.DrawerContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerFooter": {
          "componentName": "DrawerFooter",
          "fileName": "DrawerFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerHeader": {
          "componentName": "DrawerHeader",
          "fileName": "DrawerHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerTitle": {
          "componentName": "DrawerTitle",
          "fileName": "DrawerTitle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Drawer.DrawerContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DrawerTrigger": {
          "componentName": "DrawerTrigger",
          "fileName": "DrawerTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Drawer.DrawerContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "DropdownButton": {
      "name": "DropdownButton",
      "category": "Utility",
      "subcategory": null,
      "description": "Dropdown Button component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/DropdownButton/DropdownButton.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MenuContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "Button.ButtonVariant",
          "default": "Button.ButtonVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "Button.ButtonSize",
          "default": "Button.ButtonSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<DropdownButton Text=\"Actions\">\n    <MenuContent>\n        <DropdownMenuItem>Edit</DropdownMenuItem>\n        <DropdownMenuItem>Duplicate</DropdownMenuItem>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>Delete</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>"
        },
        {
          "title": "Variants",
          "code": "<DropdownButton Text=\"Default\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>\n<DropdownButton Text=\"Secondary\" Variant=\"Button.ButtonVariant.Secondary\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>\n<DropdownButton Text=\"Outline\" Variant=\"Button.ButtonVariant.Outline\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>"
        },
        {
          "title": "Sizes",
          "code": "<DropdownButton Text=\"Small\" Size=\"Button.ButtonSize.Sm\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>\n<DropdownButton Text=\"Default\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>\n<DropdownButton Text=\"Large\" Size=\"Button.ButtonSize.Lg\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>"
        },
        {
          "title": "Disabled",
          "code": "<DropdownButton Text=\"Disabled\" Disabled=\"true\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n    </MenuContent>\n</DropdownButton>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "DropdownMenu": {
      "name": "DropdownMenu",
      "category": "Overlay",
      "subcategory": null,
      "description": "Menu button with items, separators, submenus, and checkboxes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/DropdownMenu/DropdownMenu.razor",
        "UI/DropdownMenu/DropdownMenuCheckboxItem.razor",
        "UI/DropdownMenu/DropdownMenuContent.razor",
        "UI/DropdownMenu/DropdownMenuGroup.razor",
        "UI/DropdownMenu/DropdownMenuItem.razor",
        "UI/DropdownMenu/DropdownMenuLabel.razor",
        "UI/DropdownMenu/DropdownMenuRadioGroup.razor",
        "UI/DropdownMenu/DropdownMenuRadioItem.razor",
        "UI/DropdownMenu/DropdownMenuSeparator.razor",
        "UI/DropdownMenu/DropdownMenuTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "DropdownMenuContext",
          "signature": "DropdownMenuContext(bool IsOpen, EventCallback<bool> SetOpen, string WrapperId, string ContentId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<DropdownMenu>\n    <DropdownMenuTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open</Button>\n    </DropdownMenuTrigger>\n    <DropdownMenuContent>\n        <DropdownMenuLabel>My Account</DropdownMenuLabel>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>Profile</DropdownMenuItem>\n        <DropdownMenuItem>Settings</DropdownMenuItem>\n        <DropdownMenuItem>Billing</DropdownMenuItem>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>Log out</DropdownMenuItem>\n    </DropdownMenuContent>\n</DropdownMenu>"
        },
        {
          "title": "With Groups",
          "code": "<DropdownMenu>\n    <DropdownMenuTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Actions</Button>\n    </DropdownMenuTrigger>\n    <DropdownMenuContent>\n        <DropdownMenuLabel>File</DropdownMenuLabel>\n        <DropdownMenuGroup>\n            <DropdownMenuItem>New File</DropdownMenuItem>\n            <DropdownMenuItem>Open File</DropdownMenuItem>\n            <DropdownMenuItem>Save</DropdownMenuItem>\n        </DropdownMenuGroup>\n        <DropdownMenuSeparator />\n        <DropdownMenuLabel>Edit</DropdownMenuLabel>\n        <DropdownMenuGroup>\n            <DropdownMenuItem>Undo</DropdownMenuItem>\n            <DropdownMenuItem>Redo</DropdownMenuItem>\n        </DropdownMenuGroup>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem Disabled=\"true\">Delete</DropdownMenuItem>\n    </DropdownMenuContent>\n</DropdownMenu>"
        },
        {
          "title": "With Arrow",
          "code": "<DropdownMenu>\n    <DropdownMenuTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Actions</Button></DropdownMenuTrigger>\n    <DropdownMenuContent ShowArrow=\"true\">\n        <DropdownMenuItem>Edit</DropdownMenuItem>\n        <DropdownMenuItem>Duplicate</DropdownMenuItem>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>Archive</DropdownMenuItem>\n    </DropdownMenuContent>\n</DropdownMenu>"
        },
        {
          "title": "Alignment",
          "code": "<DropdownMenu>\n    <DropdownMenuTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Start</Button>\n    </DropdownMenuTrigger>\n    <DropdownMenuContent Align=\"DropdownMenuContent.DropdownMenuAlign.Start\">\n        <DropdownMenuItem>Option 1</DropdownMenuItem>\n        <DropdownMenuItem>Option 2</DropdownMenuItem>\n    </DropdownMenuContent>\n</DropdownMenu>\n\n<DropdownMenu>\n    <DropdownMenuTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">End</Button>\n    </DropdownMenuTrigger>\n    <DropdownMenuContent Align=\"DropdownMenuContent.DropdownMenuAlign.End\">\n        <DropdownMenuItem>Option 1</DropdownMenuItem>\n        <DropdownMenuItem>Option 2</DropdownMenuItem>\n    </DropdownMenuContent>\n</DropdownMenu>"
        }
      ],
      "subComponents": {
        "DropdownMenuCheckboxItem": {
          "componentName": "DropdownMenuCheckboxItem",
          "fileName": "DropdownMenuCheckboxItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Checked",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CheckedChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "CheckedChanged",
              "type": "EventCallback<bool>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuContent": {
          "componentName": "DropdownMenuContent",
          "fileName": "DropdownMenuContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "DropdownMenu.DropdownMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Align",
              "type": "DropdownMenuAlign",
              "default": "DropdownMenuAlign.Start",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "DropdownMenuSide",
              "default": "DropdownMenuSide.Bottom",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowArrow",
              "type": "bool",
              "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": [
            {
              "name": "DropdownMenuAlign",
              "values": [
                "Start",
                "Center",
                "End"
              ],
              "description": null
            },
            {
              "name": "DropdownMenuSide",
              "values": [
                "Top",
                "Bottom",
                "Left",
                "Right"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuGroup": {
          "componentName": "DropdownMenuGroup",
          "fileName": "DropdownMenuGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaLabel",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuItem": {
          "componentName": "DropdownMenuItem",
          "fileName": "DropdownMenuItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DropdownMenu.DropdownMenuContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuLabel": {
          "componentName": "DropdownMenuLabel",
          "fileName": "DropdownMenuLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuRadioGroup": {
          "componentName": "DropdownMenuRadioGroup",
          "fileName": "DropdownMenuRadioGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ValueChanged",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "ValueChanged",
              "type": "EventCallback<string>",
              "description": null
            }
          ],
          "enums": [],
          "records": [
            {
              "name": "DropdownMenuRadioGroupContext",
              "signature": "DropdownMenuRadioGroupContext(string? Value, EventCallback<string> OnSelect)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuRadioItem": {
          "componentName": "DropdownMenuRadioItem",
          "fileName": "DropdownMenuRadioItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DropdownMenuRadioGroup.DropdownMenuRadioGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuSeparator": {
          "componentName": "DropdownMenuSeparator",
          "fileName": "DropdownMenuSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "DropdownMenuTrigger": {
          "componentName": "DropdownMenuTrigger",
          "fileName": "DropdownMenuTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "DropdownMenu.DropdownMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "EmptyState": {
      "name": "EmptyState",
      "category": "Feedback",
      "subcategory": null,
      "description": "Illustrated placeholder for empty lists with call-to-action.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/EmptyState/EmptyState.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "IconContent",
          "type": "RenderFragment?",
          "default": null,
          "description": "Icon slot. Named IconContent to avoid shadowing the &lt;Icon&gt; component.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Title",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Action",
          "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-muted",
        "--color-muted-foreground"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<EmptyState\n    Title=\"No results found\"\n    Description=\"Try adjusting your search or filters.\" />"
        },
        {
          "title": "With Icon and Action",
          "code": "<EmptyState Title=\"No projects yet\" Description=\"Get started by creating your first project.\">\n    <IconContent>\n        <DynamicIcon Name=\"Plus\" Class=\"h-10 w-10\" />\n    </IconContent>\n    <Action>\n        <Button>Create Project</Button>\n    </Action>\n</EmptyState>"
        },
        {
          "title": "Inbox Empty",
          "code": "<EmptyState Title=\"Inbox zero\" Description=\"You have no new messages.\">\n    <IconContent>\n        <DynamicIcon Name=\"Mail\" Class=\"h-10 w-10\" />\n    </IconContent>\n</EmptyState>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "FileManager": {
      "name": "FileManager",
      "category": "Data Display",
      "subcategory": null,
      "description": "Headless file and folder explorer — folder tree, breadcrumb path, list/grid views, lazy loading, inline rename, context-menu operations.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/FileManager/FileManager.razor",
        "UI/FileManager/FileManagerModel.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Root",
          "type": "IReadOnlyList<FileSystemNode>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentPath",
          "type": "string?",
          "default": null,
          "description": "The ID of the currently open folder. Null means the root level. Uses Id as the path identifier.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentPathChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LoadChildren",
          "type": "Func<FileSystemNode, Task<List<FileSystemNode>>>?",
          "default": null,
          "description": "Called the first time a folder is opened if its Children is null. Return the loaded children.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ViewMode",
          "type": "FileManagerViewMode",
          "default": "FileManagerViewMode.List",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ViewModeChanged",
          "type": "EventCallback<FileManagerViewMode>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedNode",
          "type": "FileSystemNode?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedNodeChanged",
          "type": "EventCallback<FileSystemNode?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFileOpen",
          "type": "EventCallback<FileSystemNode>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRename",
          "type": "EventCallback<(FileSystemNode Node, string NewName)>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDelete",
          "type": "EventCallback<IReadOnlyList<FileSystemNode>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnNewFolder",
          "type": "EventCallback<FileSystemNode>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "CurrentPathChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "ViewModeChanged",
          "type": "EventCallback<FileManagerViewMode>",
          "description": null
        },
        {
          "name": "SelectedNodeChanged",
          "type": "EventCallback<FileSystemNode?>",
          "description": null
        },
        {
          "name": "OnFileOpen",
          "type": "EventCallback<FileSystemNode>",
          "description": null
        },
        {
          "name": "OnRename",
          "type": "EventCallback<(FileSystemNode Node, string NewName)>",
          "description": null
        },
        {
          "name": "OnDelete",
          "type": "EventCallback<IReadOnlyList<FileSystemNode>>",
          "description": null
        },
        {
          "name": "OnNewFolder",
          "type": "EventCallback<FileSystemNode>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "FileManagerViewMode",
          "values": [
            "List",
            "Grid"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "FileUpload": {
      "name": "FileUpload",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Drag-and-drop file dropzone with progress and validation.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/FileUpload/FileUpload.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Multiple",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Accept",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxFileSize",
          "type": "long",
          "default": "10 * 1024 * 1024",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxFiles",
          "type": "int",
          "default": "10",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowThumbnails",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FileTemplate",
          "type": "RenderFragment<IBrowserFile>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "FileUploadVariant",
          "default": "FileUploadVariant.Dropzone",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "FileUploadSize",
          "default": "FileUploadSize.Default",
          "description": "Size of the trigger when Variant=\"Button\". Mirrors ButtonSize so a button-variant FileUpload can match neighbouring buttons in toolbars or compact forms. Has no visual effect on Dropzone or Avatar variants today.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowProgress",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Progress",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnUpload",
          "type": "Func<FileUploadItem, IProgress<int>, CancellationToken, Task<string?>>?",
          "default": null,
          "description": "Consumer-supplied upload handler. Called once per file after selection (or after explicit StartUploadAsync if AutoUpload is false). Receives the item, an IProgress{T} for reporting percent 0-100, and a CancellationToken that fires if the user clicks Cancel. Should return the server-assigned URL/id on success, or throw/return null on failure.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AutoUpload",
          "type": "bool",
          "default": "true",
          "description": "When true (default), uploads begin immediately after files are selected. When false, the user must click the Upload button to start. Requires OnUpload to be set.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxConcurrentUploads",
          "type": "int",
          "default": "3",
          "description": "Maximum number of OnUpload calls running simultaneously.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChunkSize",
          "type": "long?",
          "default": null,
          "description": "Optional chunk size hint (bytes) for consumers that want to implement chunked/resumable upload inside their OnUpload handler. The component passes this value through ChunkSize but does NOT implement chunking itself.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxFileSizeError",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxFilesError",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FileTypeError",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFilesSelected",
          "type": "EventCallback<InputFileChangeEventArgs>",
          "default": null,
          "description": "Fires when files are selected (raw args, kept for back-compat).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFileUploaded",
          "type": "EventCallback<FileUploadItem>",
          "default": null,
          "description": "Fires each time a file upload succeeds.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnAllUploaded",
          "type": "EventCallback<IReadOnlyList<FileUploadItem>>",
          "default": null,
          "description": "Fires when all queued uploads have finished (succeeded, failed, or cancelled).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFileFailed",
          "type": "EventCallback<FileUploadItem>",
          "default": null,
          "description": "Fires each time a file upload fails.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFileRemoved",
          "type": "EventCallback<FileUploadItem>",
          "default": null,
          "description": "Fires when a file is removed from the list.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFileRejected",
          "type": "EventCallback<(IBrowserFile File, string Reason)>",
          "default": null,
          "description": "Fires when a file is rejected due to type/size/count constraints.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnFilesSelected",
          "type": "EventCallback<InputFileChangeEventArgs>",
          "description": "Fires when files are selected (raw args, kept for back-compat)."
        },
        {
          "name": "OnFileUploaded",
          "type": "EventCallback<FileUploadItem>",
          "description": "Fires each time a file upload succeeds."
        },
        {
          "name": "OnAllUploaded",
          "type": "EventCallback<IReadOnlyList<FileUploadItem>>",
          "description": "Fires when all queued uploads have finished (succeeded, failed, or cancelled)."
        },
        {
          "name": "OnFileFailed",
          "type": "EventCallback<FileUploadItem>",
          "description": "Fires each time a file upload fails."
        },
        {
          "name": "OnFileRemoved",
          "type": "EventCallback<FileUploadItem>",
          "description": "Fires when a file is removed from the list."
        },
        {
          "name": "OnFileRejected",
          "type": "EventCallback<(IBrowserFile File, string Reason)>",
          "description": "Fires when a file is rejected due to type/size/count constraints."
        }
      ],
      "enums": [
        {
          "name": "FileUploadVariant",
          "values": [
            "Dropzone",
            "Button",
            "Avatar"
          ],
          "description": null
        },
        {
          "name": "FileUploadSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        },
        {
          "name": "FileUploadStatus",
          "values": [
            "Pending",
            "Uploading",
            "Succeeded",
            "Failed",
            "Cancelled"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<FileUpload OnFilesSelected=\"HandleFiles\" />"
        },
        {
          "title": "Image Upload",
          "code": "<FileUpload\n    Label=\"Upload an image\"\n    Description=\"PNG, JPG or GIF up to 10MB\"\n    Accept=\"image/*\"\n    OnFilesSelected=\"HandleFiles\" />"
        },
        {
          "title": "Multiple Files",
          "code": "<FileUpload\n    Label=\"Upload documents\"\n    Description=\"Select one or more files\"\n    Multiple=\"true\"\n    OnFilesSelected=\"HandleFiles\" />"
        },
        {
          "title": "Upload with progress (fake delay)",
          "code": "<FileUpload\n    Multiple=\"true\"\n    Label=\"Upload files\"\n    OnUpload=\"@SimulateUpload\"\n    OnFileUploaded=\"@(item => _uploadedCount++)\"\n    OnAllUploaded=\"@(items => _allDoneMsg = $\"All {items.Count} file(s) done!\")\"  />\n\n@code {\n    private async Task<string?> SimulateUpload(\n        FileUpload.FileUploadItem item,\n        IProgress<int> progress,\n        CancellationToken ct)\n    {\n        for (int pct = 0; pct <= 100; pct += 10)\n        {\n            ct.ThrowIfCancellationRequested();\n            progress.Report(pct);\n            await Task.Delay(50, ct);\n        }\n        return $\"https://cdn.example.com/{item.Name}\";\n    }\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Filter": {
      "name": "Filter",
      "category": "Data Display",
      "subcategory": "Tables",
      "description": "Composable faceted filter builder with chips.",
      "nugetPackage": "Lumeo.DataGrid",
      "files": [
        "UI/Filter/FilterBar.razor",
        "UI/Filter/FilterPill.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Pills",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Actions",
          "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-muted",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Filters with various field types",
          "code": "<FilterBar>\n    <ChildContent>\n        <Flex Gap=\"2\" Align=\"center\">\n            <DropdownMenu>\n                <DropdownMenuTrigger>\n                    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">\n                        <DynamicIcon Name=\"SlidersHorizontal\" Class=\"h-3.5 w-3.5 mr-1.5\" />\n                        Add Filter\n                    </Button>\n                </DropdownMenuTrigger>\n                <DropdownMenuContent>\n                    <DropdownMenuItem OnClick=\"@(() => ToggleField(\"Status\"))\">Status</DropdownMenuItem>\n                    <DropdownMenuItem OnClick=\"@(() => ToggleField(\"Priority\"))\">Priority</DropdownMenuItem>\n                </DropdownMenuContent>\n            </DropdownMenu>\n\n            @if (_fields.Contains(\"Status\"))\n            {\n                <Select Value=\"@_status\" ValueChanged=\"v => _status = v\">\n                    <SelectTrigger Class=\"w-[160px] h-8 text-xs\">\n                        <Lumeo.Text As=\"span\">@(_status == \"\" ? \"Status\" : $\"Status: {_status}\")</Lumeo.Text>\n                    </SelectTrigger>\n                    <SelectContent>\n                        <SelectItem Value=\"Active\">Active</SelectItem>\n                    </SelectContent>\n                </Select>\n            }\n        </Flex>\n    </ChildContent>\n    <Pills>\n        @if (_status != \"\")\n        {\n            <FilterPill Label=\"Status\" Value=\"@_status\" OnDismiss=\"@(() => _status = \"\")\" />\n        }\n    </Pills>\n</FilterBar>"
        },
        {
          "title": "Filters with search input",
          "code": "<FilterBar>\n    <ChildContent>\n        <Flex Gap=\"2\" Align=\"center\">\n            <Input placeholder=\"Search...\" Value=\"@_search\"\n                   OnInput=\"e => _search = e.Value?.ToString() ?? \"\"\" Class=\"h-8 w-[220px] text-xs\" />\n            <Select Value=\"@_role\" ValueChanged=\"v => _role = v\">\n                <SelectTrigger Class=\"w-[150px] h-8 text-xs\">\n                    <Lumeo.Text As=\"span\">@(_role == \"\" ? \"Role\" : _role)</Lumeo.Text>\n                </SelectTrigger>\n                <SelectContent>\n                    <SelectItem Value=\"Admin\">Admin</SelectItem>\n                </SelectContent>\n            </Select>\n        </Flex>\n    </ChildContent>\n    <Pills>\n        @if (_search != \"\")\n        {\n            <FilterPill Label=\"Search\" Value=\"@_search\" OnDismiss=\"@(() => _search = \"\")\" />\n        }\n    </Pills>\n</FilterBar>"
        },
        {
          "title": "Filters with multi-select",
          "code": "<FilterBar>\n    <ChildContent>\n        <DropdownMenu>\n            <DropdownMenuTrigger>\n                <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">\n                    Category: @_categories.Count selected\n                </Button>\n            </DropdownMenuTrigger>\n            <DropdownMenuContent>\n                @foreach (var cat in _allCategories)\n                {\n                    <Flex Gap=\"2\" Align=\"center\" Class=\"px-2 py-1.5\">\n                        <Checkbox Checked=\"@_categories.Contains(cat)\"\n                                  CheckedChanged=\"@(v => Toggle(cat, v))\" />\n                        <Lumeo.Text As=\"span\" Size=\"sm\">@cat</Lumeo.Text>\n                    </Flex>\n                }\n            </DropdownMenuContent>\n        </DropdownMenu>\n    </ChildContent>\n    <Pills>\n        @foreach (var cat in _categories)\n        {\n            <FilterPill Label=\"Category\" Value=\"@cat\"\n                        OnDismiss=\"@(() => _categories.Remove(cat))\" />\n        }\n    </Pills>\n</FilterBar>"
        },
        {
          "title": "Filters with data table",
          "code": "<FilterBar>\n    <ChildContent>\n        <Input placeholder=\"Search...\" />\n        <Select Value=\"@_status\" ValueChanged=\"v => _status = v\">...</Select>\n    </ChildContent>\n    <Pills>\n        @if (_status != \"\")\n        {\n            <FilterPill Label=\"Status\" Value=\"@_status\" OnDismiss=\"...\" />\n        }\n    </Pills>\n</FilterBar>\n\n<Table>\n    @foreach (var item in FilteredItems)\n    {\n        <TableRow>...</TableRow>\n    }\n</Table>"
        }
      ],
      "subComponents": {
        "FilterPill": {
          "componentName": "FilterPill",
          "fileName": "FilterPill.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Label",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnDismiss",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnDismiss",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Flex": {
      "name": "Flex",
      "category": "Layout",
      "subcategory": null,
      "description": "Flexbox wrapper exposing direction, gap, align, justify as props.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Flex/Flex.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Direction",
          "type": "string?",
          "default": "\"row\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Gap",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Align",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Justify",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Wrap",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Inline",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic Row",
          "code": "<Flex Gap=\"3\">\n    <div>Item 1</div>\n    <div>Item 2</div>\n    <div>Item 3</div>\n</Flex>"
        },
        {
          "title": "With Spacer",
          "code": "<Flex Align=\"center\">\n    <Text Weight=\"semibold\">Logo</Text>\n    <Spacer />\n    <Flex Gap=\"2\">\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">About</Button>\n        <Button Size=\"Button.ButtonSize.Sm\">Sign In</Button>\n    </Flex>\n</Flex>"
        },
        {
          "title": "Centered",
          "code": "<Flex Align=\"center\" Justify=\"center\" Class=\"h-32 w-full\">\n    <Text Color=\"muted\">Centered content</Text>\n</Flex>"
        },
        {
          "title": "Wrapping",
          "code": "<Flex Gap=\"2\" Wrap=\"true\">\n    <div>1</div>\n    <div>2</div>\n    <!-- ... more items -->\n</Flex>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Form": {
      "name": "Form",
      "category": "Forms",
      "subcategory": "Form Composition",
      "description": "EditForm wrapper with styled validation, field groups, and submit state.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Form/DataAnnotationsFormValidator.cs",
        "UI/Form/Form.razor",
        "UI/Form/FormContext.cs",
        "UI/Form/FormDescription.razor",
        "UI/Form/FormField.razor",
        "UI/Form/FormItem.razor",
        "UI/Form/FormLabel.razor",
        "UI/Form/FormMessage.razor",
        "UI/Form/IFormValidator.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Model",
          "type": "TModel?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnValidSubmit",
          "type": "EventCallback<TModel>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInvalidSubmit",
          "type": "EventCallback<TModel>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Validator",
          "type": "IFormValidator?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnValidSubmit",
          "type": "EventCallback<TModel>",
          "description": null
        },
        {
          "name": "OnInvalidSubmit",
          "type": "EventCallback<TModel>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground"
      ],
      "examples": [
        {
          "title": "Input with Validation",
          "code": "<FormField Name=\"email\" Label=\"Email\" Required=\"true\" Error=\"@_emailError\" HelpText=\"We will never share your email.\">\n    <Input Type=\"email\" Placeholder=\"you@example.com\" @bind-Value=\"_emailValue\" />\n</FormField>\n<Button OnClick=\"ValidateEmail\">Validate</Button>\n\n@code {\n    private string? _emailValue;\n    private string? _emailError;\n\n    private void ValidateEmail()\n    {\n        if (string.IsNullOrWhiteSpace(_emailValue) || !_emailValue.Contains('@'))\n            _emailError = \"Please enter a valid email address.\";\n        else\n            _emailError = null;\n    }\n}"
        },
        {
          "title": "Select with Validation",
          "code": "<FormField Name=\"role\" Label=\"Role\" Required=\"true\" Error=\"@_roleError\">\n    <Select @bind-Value=\"_roleValue\">\n        <SelectTrigger>\n            <Text As=\"span\" Class=\"@(_roleValue == null ? \\\"text-muted-foreground\\\" : \"\")\">\n                @(_roleValue ?? \"Select a role\")\n            </Text>\n        </SelectTrigger>\n        <SelectContent>\n            <SelectItem Value=\"admin\">Admin</SelectItem>\n            <SelectItem Value=\"editor\">Editor</SelectItem>\n            <SelectItem Value=\"viewer\">Viewer</SelectItem>\n        </SelectContent>\n    </Select>\n</FormField>\n<Button OnClick=\"ValidateRole\">Validate</Button>\n\n@code {\n    private string? _roleValue;\n    private string? _roleError;\n\n    private void ValidateRole()\n    {\n        if (string.IsNullOrEmpty(_roleValue))\n            _roleError = \"Please select a role.\";\n        else\n            _roleError = null;\n    }\n}"
        },
        {
          "title": "Checkbox and Switch with Validation",
          "code": "<FormField Name=\"terms\" Error=\"@_termsError\">\n    <Flex Gap=\"2\" Align=\"center\">\n        <Checkbox @bind-Checked=\"_termsChecked\" />\n        <Label>I accept the terms and conditions</Label>\n    </Flex>\n</FormField>\n<FormField Name=\"notifications\" Label=\"Email Notifications\" HelpText=\"Receive updates about your account.\">\n    <Switch @bind-Checked=\"_notifChecked\" />\n</FormField>\n<Button OnClick=\"ValidateTerms\">Submit</Button>\n\n@code {\n    private bool _termsChecked;\n    private bool _notifChecked = true;\n    private string? _termsError;\n\n    private void ValidateTerms()\n    {\n        _termsError = _termsChecked ? null : \"You must accept the terms to continue.\";\n    }\n}"
        },
        {
          "title": "Default",
          "code": "<FormField Name=\"username\">\n    <FormItem>\n        <FormLabel>Username</FormLabel>\n        <Input Placeholder=\"Enter your username\" />\n        <FormDescription>This is your public display name.</FormDescription>\n    </FormItem>\n</FormField>"
        }
      ],
      "subComponents": {
        "FormDescription": {
          "componentName": "FormDescription",
          "fileName": "FormDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "FormField": {
          "componentName": "FormField",
          "fileName": "FormField.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Label",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HelpText",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Error",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Required",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Orientation",
              "type": "FormFieldOrientation",
              "default": "FormFieldOrientation.Vertical",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LabelWidth",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Name",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            },
            {
              "name": "ParentFormContext",
              "type": "FormContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [
            {
              "name": "FormFieldOrientation",
              "values": [
                "Vertical",
                "Horizontal"
              ],
              "description": null
            }
          ],
          "records": [
            {
              "name": "FormFieldContext",
              "signature": "FormFieldContext(string? Name, string? Error)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "FormItem": {
          "componentName": "FormItem",
          "fileName": "FormItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "FormLabel": {
          "componentName": "FormLabel",
          "fileName": "FormLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "FieldContext",
              "type": "FormField.FormFieldContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "FormMessage": {
          "componentName": "FormMessage",
          "fileName": "FormMessage.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "FieldContext",
              "type": "FormField.FormFieldContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Gantt": {
      "name": "Gantt",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Gantt component.",
      "nugetPackage": "Lumeo.Gantt",
      "files": [
        "UI/Gantt/Gantt.razor",
        "UI/Gantt/GanttTypes.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Tasks",
          "type": "IEnumerable<GanttTask>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TasksChanged",
          "type": "EventCallback<IEnumerable<GanttTask>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ViewMode",
          "type": "GanttViewMode",
          "default": "GanttViewMode.Day",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnTaskClick",
          "type": "EventCallback<GanttTask>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDateChange",
          "type": "EventCallback<GanttTask>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnProgressChange",
          "type": "EventCallback<GanttTask>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"500px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Readonly",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TodayHighlight",
          "type": "bool",
          "default": "true",
          "description": "Highlight today with a vertical line and dot marker. Default true.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BarHeight",
          "type": "int?",
          "default": null,
          "description": "Override the pixel height of each task bar (default 22).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColumnWidth",
          "type": "int?",
          "default": null,
          "description": "Override the pixel width of each date column for the current view mode.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BarColor",
          "type": "Func<GanttTask, string?>?",
          "default": null,
          "description": "Per-task bar colour override. Return a CSS colour string (hex, rgb, or a CSS variable reference like \"var(--color-destructive)\") or null to use the primary theme colour.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupBy",
          "type": "Func<GanttTask, string>?",
          "default": null,
          "description": "Optional grouping function. When set, tasks are sorted by group label and a visual section-header row is injected before the first task in each group.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrailingContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "TasksChanged",
          "type": "EventCallback<IEnumerable<GanttTask>>",
          "description": null
        },
        {
          "name": "OnTaskClick",
          "type": "EventCallback<GanttTask>",
          "description": null
        },
        {
          "name": "OnDateChange",
          "type": "EventCallback<GanttTask>",
          "description": null
        },
        {
          "name": "OnProgressChange",
          "type": "EventCallback<GanttTask>",
          "description": null
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic project plan",
          "code": "<Gantt Tasks=\"_tasks\" ViewMode=\"GanttViewMode.Day\" Height=\"420px\" />\n\n@code {\n    private List<GanttTask> _tasks = new() {\n        new(\"research\",    \"Research\",    DateTime.Today,              DateTime.Today.AddDays(5)),\n        new(\"design\",      \"Design\",      DateTime.Today.AddDays(5),   DateTime.Today.AddDays(12), Dependencies: new[] { \"research\" }),\n        new(\"development\", \"Development\", DateTime.Today.AddDays(12),  DateTime.Today.AddDays(25), Dependencies: new[] { \"design\" }),\n        new(\"testing\",     \"Testing\",     DateTime.Today.AddDays(22),  DateTime.Today.AddDays(30), Dependencies: new[] { \"development\" }),\n        new(\"launch\",      \"Launch\",      DateTime.Today.AddDays(30),  DateTime.Today.AddDays(32), Dependencies: new[] { \"testing\" }),\n    };\n}"
        },
        {
          "title": "With progress bars",
          "code": "<Gantt Tasks=\"_tasks\" ViewMode=\"GanttViewMode.Day\" Height=\"420px\" />\n\n@code {\n    private List<GanttTask> _tasks = new() {\n        new(\"research\",    \"Research\",    DateTime.Today,             DateTime.Today.AddDays(5),  Progress: 100),\n        new(\"design\",      \"Design\",      DateTime.Today.AddDays(5),  DateTime.Today.AddDays(12), Progress: 60,  Dependencies: new[] { \"research\" }),\n        new(\"development\", \"Development\", DateTime.Today.AddDays(12), DateTime.Today.AddDays(25), Progress: 30,  Dependencies: new[] { \"design\" }),\n        // ...\n    };\n}"
        },
        {
          "title": "Drag to reschedule + change progress",
          "code": "<Gantt @bind-Tasks=\"_tasks\"\n       ViewMode=\"GanttViewMode.Day\"\n       OnDateChange=\"HandleDateChange\"\n       OnProgressChange=\"HandleProgressChange\" />\n\n@code {\n    private IEnumerable<GanttTask> _tasks = new List<GanttTask> { /* ... */ };\n    private GanttTask? _last;\n\n    Task HandleDateChange(GanttTask t)     { _last = t; StateHasChanged(); return Task.CompletedTask; }\n    Task HandleProgressChange(GanttTask t) { _last = t; StateHasChanged(); return Task.CompletedTask; }\n}"
        },
        {
          "title": "View modes",
          "code": "<Gantt Tasks=\"_tasks\" ViewMode=\"GanttViewMode.Week\" Height=\"420px\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Gauge": {
      "name": "Gauge",
      "category": "Data Display",
      "subcategory": null,
      "description": "Single-value gauge with radial, arc, and linear variants and threshold colour bands.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Gauge/Gauge.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Min",
          "type": "double",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Max",
          "type": "double",
          "default": "100",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "GaugeVariant",
          "default": "GaugeVariant.Radial",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "int",
          "default": "120",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "StrokeWidth",
          "type": "int",
          "default": "8",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowValue",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string",
          "default": "\"primary\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrackColor",
          "type": "string",
          "default": "\"muted\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Thresholds",
          "type": "IReadOnlyList<GaugeThreshold>?",
          "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": [
        {
          "name": "GaugeVariant",
          "values": [
            "Radial",
            "Linear",
            "Arc"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "GaugeThreshold",
          "signature": "GaugeThreshold(double Value, string Color)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Radial (default)",
          "code": "<Gauge Value=\"25\" />\n<Gauge Value=\"60\" />\n<Gauge Value=\"90\" />"
        },
        {
          "title": "Arc (semicircle)",
          "code": "<Gauge Value=\"30\" Variant=\"Gauge.GaugeVariant.Arc\" />\n<Gauge Value=\"65\" Variant=\"Gauge.GaugeVariant.Arc\" />\n<Gauge Value=\"95\" Variant=\"Gauge.GaugeVariant.Arc\" />"
        },
        {
          "title": "Linear",
          "code": "<Gauge Value=\"40\" Variant=\"Gauge.GaugeVariant.Linear\" Size=\"200\" />\n<Gauge Value=\"70\" Variant=\"Gauge.GaugeVariant.Linear\" Size=\"200\" Color=\"success\" />\n<Gauge Value=\"90\" Variant=\"Gauge.GaugeVariant.Linear\" Size=\"200\" Color=\"destructive\" />"
        },
        {
          "title": "Custom Label",
          "code": "<Gauge Value=\"72\" Label=\"CPU\" Size=\"120\" />\n<Gauge Value=\"48\" Label=\"RAM\" Size=\"120\" />\n<Gauge Value=\"33\" Label=\"Disk\" Size=\"120\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Grid": {
      "name": "Grid",
      "category": "Layout",
      "subcategory": null,
      "description": "CSS grid wrapper with columns + gap as props.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Grid/Grid.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Columns",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Gap",
          "type": "string?",
          "default": "\"4\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowGap",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColGap",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic 3-Column",
          "code": "<Grid Columns=\"3\" Gap=\"4\">\n    <div>1</div>\n    <div>2</div>\n    <div>3</div>\n    <div>4</div>\n    <div>5</div>\n    <div>6</div>\n</Grid>"
        },
        {
          "title": "Responsive Columns",
          "code": "<Grid Columns=\"2\" Gap=\"4\" Class=\"md:grid-cols-4\">\n    <div>1</div>\n    <div>2</div>\n    <!-- ... -->\n</Grid>"
        },
        {
          "title": "Different Gaps",
          "code": "<Grid Columns=\"3\" RowGap=\"6\" ColGap=\"2\">\n    <div>1</div>\n    <div>2</div>\n    <!-- ... -->\n</Grid>"
        },
        {
          "title": "Columns — interactive",
          "code": "<Grid Columns=\"4\" Gap=\"3\">\n    @for (var i = 1; i <= 12; i++)\n    {\n        <div>@i</div>\n    }\n</Grid>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Heading": {
      "name": "Heading",
      "category": "Typography",
      "subcategory": null,
      "description": "Semantic h1-h6 heading with Lumeo typographic scale.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Heading/Heading.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Level",
          "type": "int",
          "default": "2",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Weight",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Tracking",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "All Levels",
          "code": "<Heading Level=\"1\">Heading Level 1</Heading>\n<Heading Level=\"2\">Heading Level 2</Heading>\n<Heading Level=\"3\">Heading Level 3</Heading>\n<Heading Level=\"4\">Heading Level 4</Heading>\n<Heading Level=\"5\">Heading Level 5</Heading>\n<Heading Level=\"6\">Heading Level 6</Heading>"
        },
        {
          "title": "Custom Sizes",
          "code": "<Heading Level=\"2\" Size=\"sm\">h2 with small text</Heading>\n<Heading Level=\"3\" Size=\"3xl\">h3 with 3xl text</Heading>\n<Heading Level=\"4\" Size=\"lg\" Weight=\"normal\">h4 with lg text, normal weight</Heading>"
        },
        {
          "title": "Tracking",
          "code": "<Heading Level=\"1\">Default tight tracking</Heading>\n<Heading Level=\"1\" Tracking=\"normal\">Normal tracking</Heading>\n<Heading Level=\"1\" Tracking=\"wide\">Wide tracking</Heading>"
        },
        {
          "title": "Level — interactive",
          "code": "<Heading Level=\"2\">This is a level 2 heading</Heading>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Highlighter": {
      "name": "Highlighter",
      "category": "Typography",
      "subcategory": null,
      "description": "Wraps occurrences of one or more search terms in the text with highlight marks.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Highlighter/Highlighter.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Highlight",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HighlightTerms",
          "type": "IEnumerable<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CaseSensitive",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "WholeWord",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HighlightClass",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Tag",
          "type": "string",
          "default": "\"mark\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "Segment",
          "signature": "Segment(string Text, bool IsMatch)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Single Term",
          "code": "<Highlighter Text=\"The quick brown fox jumps over the lazy dog\" Highlight=\"fox\" />"
        },
        {
          "title": "Case Sensitive",
          "code": "<!-- Case insensitive (default) -->\n<Highlighter Text=\"Blazor is awesome. blazor runs on .NET.\" Highlight=\"blazor\" />\n\n<!-- Case sensitive -->\n<Highlighter Text=\"Blazor is awesome. blazor runs on .NET.\" Highlight=\"Blazor\" CaseSensitive=\"true\" />"
        },
        {
          "title": "Whole Word",
          "code": "<!-- Partial matches -->\n<Highlighter Text=\"highlight highlighting highlighted\" Highlight=\"highlight\" />\n\n<!-- Whole word only -->\n<Highlighter Text=\"highlight highlighting highlighted\" Highlight=\"highlight\" WholeWord=\"true\" />"
        },
        {
          "title": "Interactive Search",
          "code": "<Input Placeholder=\"Type to search...\" @bind-Value=\"_searchTerm\" />\n<Highlighter Text=\"@sampleText\" Highlight=\"@_searchTerm\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "HoverCard": {
      "name": "HoverCard",
      "category": "Overlay",
      "subcategory": null,
      "description": "Popover that opens on hover for rich previews.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/HoverCard/HoverCard.razor",
        "UI/HoverCard/HoverCardContent.razor",
        "UI/HoverCard/HoverCardTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenDelay",
          "type": "int",
          "default": "200",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CloseDelay",
          "type": "int",
          "default": "300",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "HoverCardContext",
          "signature": "HoverCardContext(bool IsOpen, EventCallback RequestOpen, EventCallback RequestClose, EventCallback RequestTogglePin, string WrapperId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<HoverCard>\n    <HoverCardTrigger>\n        <Button Variant=\"Button.ButtonVariant.Link\">@@blazor</Button>\n    </HoverCardTrigger>\n    <HoverCardContent>\n        <Stack Gap=\"1\">\n            <Heading Level=\"4\" Size=\"sm\" Weight=\"semibold\">@@blazor</Heading>\n            <Lumeo.Text Size=\"sm\" Color=\"muted\">\n                A free and open-source web framework.\n            </Lumeo.Text>\n            <Lumeo.Text As=\"span\" Size=\"xs\" Color=\"muted\">Joined December 2018</Lumeo.Text>\n        </Stack>\n    </HoverCardContent>\n</HoverCard>"
        },
        {
          "title": "Alignment",
          "code": "<HoverCard>\n    <HoverCardTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Start</Button>\n    </HoverCardTrigger>\n    <HoverCardContent Align=\"HoverCardContent.HoverCardAlign.Start\">\n        <Lumeo.Text Size=\"sm\">Aligned to start.</Lumeo.Text>\n    </HoverCardContent>\n</HoverCard>\n\n<HoverCard>\n    <HoverCardTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">End</Button>\n    </HoverCardTrigger>\n    <HoverCardContent Align=\"HoverCardContent.HoverCardAlign.End\">\n        <Lumeo.Text Size=\"sm\">Aligned to end.</Lumeo.Text>\n    </HoverCardContent>\n</HoverCard>"
        },
        {
          "title": "With Arrow",
          "code": "<HoverCard>\n    <HoverCardTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Hover me</Button></HoverCardTrigger>\n    <HoverCardContent ShowArrow=\"true\">\n        <Stack Gap=\"1\">\n            <Heading Level=\"4\" Size=\"sm\" Weight=\"semibold\">With arrow</Heading>\n            <Lumeo.Text Size=\"sm\" Color=\"muted\">A small pointer ties the card to its trigger.</Lumeo.Text>\n        </Stack>\n    </HoverCardContent>\n</HoverCard>"
        },
        {
          "title": "User Profile",
          "code": "<HoverCard>\n    <HoverCardTrigger>\n        <span class=\"font-medium underline cursor-pointer\">Jane Smith</span>\n    </HoverCardTrigger>\n    <HoverCardContent>\n        <Stack Gap=\"2\">\n            <Heading Level=\"4\" Size=\"sm\" Weight=\"semibold\">Jane Smith</Heading>\n            <Lumeo.Text Size=\"sm\" Color=\"muted\">Senior Developer at Acme Inc.</Lumeo.Text>\n            <Flex Align=\"center\" Gap=\"2\">\n                <Lumeo.Text As=\"span\" Size=\"xs\" Color=\"muted\">42 repositories</Lumeo.Text>\n                <Lumeo.Text As=\"span\" Size=\"xs\" Color=\"muted\">128 followers</Lumeo.Text>\n            </Flex>\n        </Stack>\n    </HoverCardContent>\n</HoverCard>"
        }
      ],
      "subComponents": {
        "HoverCardContent": {
          "componentName": "HoverCardContent",
          "fileName": "HoverCardContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "HoverCard.HoverCardContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Align",
              "type": "HoverCardAlign",
              "default": "HoverCardAlign.Center",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "HoverCardSide",
              "default": "HoverCardSide.Bottom",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowArrow",
              "type": "bool",
              "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": [
            {
              "name": "HoverCardAlign",
              "values": [
                "Start",
                "Center",
                "End"
              ],
              "description": null
            },
            {
              "name": "HoverCardSide",
              "values": [
                "Top",
                "Bottom"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "HoverCardTrigger": {
          "componentName": "HoverCardTrigger",
          "fileName": "HoverCardTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "HoverCard.HoverCardContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Icon": {
      "name": "Icon",
      "category": "Utility",
      "subcategory": null,
      "description": "Icon wrapper — renders Lucide icons via Blazicons.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Icon/Icon.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": "Lucide icon name (PascalCase, e.g. \"Search\", \"ChevronDown\", \"TrendingUp\"). Unknown names fall back to a Circle. Use Svg to supply any icon directly (Lucide or any other Blazicons library).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Svg",
          "type": "SvgIcon?",
          "default": null,
          "description": "Direct Blazicons SvgIcon reference — takes precedence over Name. Lets consumers use any icon library (Lucide, Bootstrap, FluentUI, Material, FontAwesome, Ionicons, MDI).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "IconSize",
          "default": "IconSize.Md",
          "description": "Size preset. Sets Tailwind h-{n} w-{n} on the SVG. Defaults to Md (h-4 w-4).",
          "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": [
        {
          "name": "IconSize",
          "values": [
            "Xs",
            "Sm",
            "Md",
            "Lg",
            "Xl"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Image": {
      "name": "Image",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Image with lazy-loading, loading skeleton, and error fallback.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Image/Image.razor",
        "UI/Image/ImageGallery.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Src",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Alt",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Width",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Lazy",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Fallback",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Preview",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Zoomable",
          "type": "bool",
          "default": "false",
          "description": "When true, registers a two-finger pinch-zoom gesture on the image container so touch users can zoom in/out on the image directly (independent of the fullscreen Preview overlay). Sets touch-action: none on the wrapper so the browser doesn't intercept the gesture for native page zoom.",
          "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-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Image",
          "code": "<Image Src=\"photo.jpg\" Alt=\"Sample\" Width=\"400\" Height=\"250\" />"
        },
        {
          "title": "With Preview",
          "code": "<Image Src=\"photo.jpg\" Preview=\"true\" />"
        },
        {
          "title": "Gallery",
          "code": "<ImageGallery Images=\"@_images\" Columns=\"4\" />"
        },
        {
          "title": "Pinch-to-Zoom",
          "code": "<Image Src=\"photo.jpg\" Zoomable=\"true\" Alt=\"Pinch to zoom on mobile\" />"
        }
      ],
      "subComponents": {
        "ImageGallery": {
          "componentName": "ImageGallery",
          "fileName": "ImageGallery.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Images",
              "type": "List<ImageItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Columns",
              "type": "int",
              "default": "3",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Gap",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "GesturesEnabled",
              "type": "bool",
              "default": "true",
              "description": "When true (default), enables horizontal swipe (prev/next image) and pinch-to-zoom gestures on the fullscreen preview overlay on touch devices.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "ImageItem",
              "signature": "ImageItem(string Src, string? Alt = null)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "ImageCompare": {
      "name": "ImageCompare",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Before/after slider comparison for two images.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ImageCompare/ImageCompare.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "BeforeSrc",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AfterSrc",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BeforeLabel",
          "type": "string?",
          "default": "\"Before\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AfterLabel",
          "type": "string?",
          "default": "\"After\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialPosition",
          "type": "int",
          "default": "50",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Width",
          "type": "string",
          "default": "\"100%\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"400px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "ImageCompareOrientation",
          "default": "ImageCompareOrientation.Horizontal",
          "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": [
        {
          "name": "ImageCompareOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Horizontal Comparison",
          "code": "<ImageCompare BeforeSrc=\"before.jpg\" AfterSrc=\"after.jpg\"\n             BeforeLabel=\"Before\" AfterLabel=\"After\" Height=\"320px\" />"
        },
        {
          "title": "Vertical Comparison",
          "code": "<ImageCompare BeforeSrc=\"img1.jpg\" AfterSrc=\"img2.jpg\"\n             Orientation=\"ImageCompare.ImageCompareOrientation.Vertical\"\n             Height=\"320px\" />"
        },
        {
          "title": "Orientation (interactive)",
          "code": "<Segmented @bind-Value=\"_orientation\">\n    <SegmentedItem Value=\"@ImageCompare.ImageCompareOrientation.Horizontal\">Horizontal</SegmentedItem>\n    <SegmentedItem Value=\"@ImageCompare.ImageCompareOrientation.Vertical\">Vertical</SegmentedItem>\n</Segmented>\n<ImageCompare BeforeSrc=\"before.jpg\" AfterSrc=\"after.jpg\"\n             BeforeLabel=\"Before\" AfterLabel=\"After\"\n             Orientation=\"@_orientation\" Height=\"280px\" />\n\n@code { private ImageCompare.ImageCompareOrientation _orientation = ImageCompare.ImageCompareOrientation.Horizontal; }"
        },
        {
          "title": "Custom Initial Position",
          "code": "<ImageCompare BeforeSrc=\"before.jpg\" AfterSrc=\"after.jpg\"\n             InitialPosition=\"25\" Height=\"280px\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "InplaceEditor": {
      "name": "InplaceEditor",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Click-to-edit text/number field that swaps in an input.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/InplaceEditor/InplaceEditor.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EditMode",
          "type": "InplaceEditMode",
          "default": "InplaceEditMode.Text",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectOptions",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SaveOnBlur",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SaveOnEnter",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowButtons",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSave",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCancel",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OnSave",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OnCancel",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "InplaceEditMode",
          "values": [
            "Text",
            "Textarea",
            "Select"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Inplace Edit",
          "code": "<InplaceEditor @bind-Value=\"_name\" Placeholder=\"Click to edit...\" />\n\n@code {\n    private string? _name = \"John Doe\";\n}"
        },
        {
          "title": "With Save / Cancel Buttons",
          "code": "<InplaceEditor @bind-Value=\"_title\" ShowButtons=\"true\" Placeholder=\"Click to edit title...\" />"
        },
        {
          "title": "Textarea Mode",
          "code": "<InplaceEditor @bind-Value=\"_bio\"\n               EditMode=\"InplaceEditor.InplaceEditMode.Textarea\"\n               Placeholder=\"Click to add a bio...\" />"
        },
        {
          "title": "Select Mode",
          "code": "<InplaceEditor @bind-Value=\"_status\"\n               EditMode=\"InplaceEditor.InplaceEditMode.Select\"\n               SelectOptions=\"@_options\" />\n\n@code {\n    private string? _status = \"Active\";\n    private List<string> _options = new() { \"Active\", \"Inactive\", \"Pending\" };\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Input": {
      "name": "Input",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Styled text input with label, prefix/suffix, icons, error state.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Input/Input.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInput",
          "type": "EventCallback<ChangeEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Prefix",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Suffix",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "InputSize",
          "default": "InputSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clearable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClear",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OnInput",
          "type": "EventCallback<ChangeEventArgs>",
          "description": null
        },
        {
          "name": "OnClear",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "InputSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Input placeholder=\"Email\" />"
        },
        {
          "title": "With Binding",
          "code": "<Input Value=\"@_name\" OnInput=\"@(e => _name = e.Value?.ToString() ?? \"\")\" placeholder=\"Enter your name\" />\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Value: @_name</Lumeo.Text>\n\n@code {\n    private string _name = \"\";\n}"
        },
        {
          "title": "File Input",
          "code": "<Input type=\"file\" />"
        },
        {
          "title": "Disabled",
          "code": "<Input placeholder=\"Disabled input\" disabled />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "InputMask": {
      "name": "InputMask",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Masked input for phone numbers, dates, and custom patterns.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/InputMask/InputMask.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Mask",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PromptChar",
          "type": "char",
          "default": "'_'",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Phone Number",
          "code": "<InputMask @bind-Value=\"_phone\" Mask=\"(###) ###-####\" />"
        },
        {
          "title": "Date Mask",
          "code": "<InputMask @bind-Value=\"_date\" Mask=\"##/##/####\" Placeholder=\"MM/DD/YYYY\" />"
        },
        {
          "title": "Credit Card",
          "code": "<InputMask @bind-Value=\"_card\" Mask=\"#### #### #### ####\" />"
        },
        {
          "title": "IP Address",
          "code": "<InputMask @bind-Value=\"_ip\" Mask=\"###.###.###.###\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Kanban": {
      "name": "Kanban",
      "category": "Drag & Drop",
      "subcategory": null,
      "description": "Drag-and-drop board with swimlanes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Kanban/Kanban.razor",
        "UI/Kanban/KanbanCard.razor",
        "UI/Kanban/KanbanColumn.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Drag &amp; Drop Board",
          "code": "<Kanban>\n    <KanbanColumn Title=\"To Do\" Badge=\"3\">\n        <KanbanCard Title=\"Design landing page\"\n                    Labels=\"@(new List<KanbanCard.KanbanLabel> { new() { Text = \"Design\", Color = \"primary\" } })\" />\n        <KanbanCard Title=\"Write API docs\"\n                    Labels=\"@(new List<KanbanCard.KanbanLabel> { new() { Text = \"Docs\", Color = \"secondary\" } })\" />\n    </KanbanColumn>\n    <KanbanColumn Title=\"In Progress\" Badge=\"1\">\n        <KanbanCard Title=\"Build auth flow\"\n                    Description=\"Login and register flow.\"\n                    Labels=\"@(new List<KanbanCard.KanbanLabel> { new() { Text = \"High\", Color = \"destructive\" } })\" />\n    </KanbanColumn>\n    <KanbanColumn Title=\"Done\" Badge=\"1\">\n        <KanbanCard Title=\"Project setup\" Labels=\"@(new List<KanbanCard.KanbanLabel> { new() { Text = \"Done\", Color = \"success\" } })\" />\n    </KanbanColumn>\n</Kanban>"
        },
        {
          "title": "With Add Card Button",
          "code": "<KanbanColumn Title=\"Backlog\" AllowAdd=\"true\" OnAdd=\"@AddCard\" />"
        },
        {
          "title": "Custom Header",
          "code": "<KanbanColumn>\n    <HeaderContent>\n        <Flex Class=\"items-center gap-2\">\n            <Lumeo.Text Class=\"text-sm font-medium\">Sprint 4</Lumeo.Text>\n            <Badge Variant=\"Badge.BadgeVariant.Secondary\">5</Badge>\n        </Flex>\n    </HeaderContent>\n    <KanbanCard Title=\"Task A\" />\n</KanbanColumn>"
        }
      ],
      "subComponents": {
        "KanbanCard": {
          "componentName": "KanbanCard",
          "fileName": "KanbanCard.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Labels",
              "type": "List<KanbanLabel>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Avatar",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Draggable",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "KanbanColumn": {
          "componentName": "KanbanColumn",
          "fileName": "KanbanColumn.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Badge",
              "type": "int?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "HeaderContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AllowAdd",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnAdd",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnDrop",
              "type": "EventCallback<DragEventArgs>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnAdd",
              "type": "EventCallback",
              "description": null
            },
            {
              "name": "OnDrop",
              "type": "EventCallback<DragEventArgs>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Kbd": {
      "name": "Kbd",
      "category": "Utility",
      "subcategory": null,
      "description": "Keyboard shortcut glyph — renders <kbd> with styling.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Kbd/Kbd.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "KbdSize",
          "default": "KbdSize.Default",
          "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": [
        {
          "name": "KbdSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Flex Align=\"center\" Gap=\"1\">\n    <Kbd>Ctrl</Kbd>\n    <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">+</Lumeo.Text>\n    <Kbd>K</Kbd>\n</Flex>"
        },
        {
          "title": "Sizes",
          "code": "<Kbd Size=\"Kbd.KbdSize.Sm\">Ctrl</Kbd>\n<Kbd>Ctrl</Kbd>\n<Kbd Size=\"Kbd.KbdSize.Lg\">Ctrl</Kbd>"
        },
        {
          "title": "In Context",
          "code": "<Flex Align=\"center\" Justify=\"between\" Class=\"rounded-md border px-3 py-2\">\n    <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">Open command palette</Lumeo.Text>\n    <Flex Align=\"center\" Gap=\"1\">\n        <Kbd>Ctrl</Kbd>\n        <Lumeo.Text As=\"span\" Size=\"xs\" Color=\"muted\">+</Lumeo.Text>\n        <Kbd>K</Kbd>\n    </Flex>\n</Flex>"
        },
        {
          "title": "Size — interactive",
          "code": "<Kbd Size=\"Kbd.KbdSize.Sm\">Ctrl</Kbd>\n<Kbd>Ctrl</Kbd>          @* Default *@\n<Kbd Size=\"Kbd.KbdSize.Lg\">Ctrl</Kbd>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "KpiCard": {
      "name": "KpiCard",
      "category": "Dashboard",
      "subcategory": null,
      "description": "Dashboard KPI tile showing value, label, and trend.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/KpiCard/KpiCard.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Delta",
          "type": "double?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DeltaFormat",
          "type": "KpiDeltaFormat",
          "default": "KpiDeltaFormat.Percent",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DeltaPositive",
          "type": "KpiDeltaDirection",
          "default": "KpiDeltaDirection.Good",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IconContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SparkContent",
          "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": [
        {
          "name": "KpiDeltaFormat",
          "values": [
            "Percent",
            "Absolute"
          ],
          "description": null
        },
        {
          "name": "KpiDeltaDirection",
          "values": [
            "Good",
            "Bad"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-card-foreground",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<Grid Columns=\"3\" Gap=\"4\">\n    <KpiCard Label=\"Total Revenue\" Value=\"$48,295\" />\n    <KpiCard Label=\"Active Users\" Value=\"12,843\" />\n    <KpiCard Label=\"Conversion Rate\" Value=\"3.6%\" />\n</Grid>"
        },
        {
          "title": "With Delta",
          "code": "<Grid Columns=\"3\" Gap=\"4\">\n    <KpiCard Label=\"Monthly Revenue\" Value=\"$18,450\" Delta=\"8.3\" />\n    <KpiCard Label=\"Churn Rate\" Value=\"2.1%\" Delta=\"-0.4\" DeltaPositive=\"KpiCard.KpiDeltaDirection.Bad\" />\n    <KpiCard Label=\"Support Tickets\" Value=\"247\" Delta=\"-12\"\n             DeltaFormat=\"KpiCard.KpiDeltaFormat.Absolute\"\n             DeltaPositive=\"KpiCard.KpiDeltaDirection.Bad\" />\n</Grid>"
        },
        {
          "title": "With Icon and Sparkline",
          "code": "<KpiCard Label=\"Page Views\" Value=\"94,210\" Delta=\"5.7\">\n    <IconContent>\n        <Blazicon Svg=\"Lucide.TrendingUp\" class=\"h-4 w-4\" />\n    </IconContent>\n    <SparkContent>\n        <Sparkline Data=\"@_viewData\" Class=\"h-10 w-full\" />\n    </SparkContent>\n</KpiCard>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Label": {
      "name": "Label",
      "category": "Utility",
      "subcategory": null,
      "description": "Form label that links to a control via for/id.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Label/Label.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "For",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Label>Email address</Label>\n<Input Type=\"email\" Placeholder=\"you@example.com\" />"
        },
        {
          "title": "Required Field",
          "code": "<Stack Gap=\"2\">\n    <Flex Gap=\"1\" Align=\"center\">\n        <Label>Email address</Label>\n        <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"destructive\">*</Lumeo.Text>\n    </Flex>\n    <Input type=\"email\" placeholder=\"you@example.com\" />\n    <Lumeo.Text Size=\"xs\" Color=\"muted\">We'll never share your email.</Lumeo.Text>\n</Stack>\n<Stack Gap=\"2\">\n    <Flex Align=\"center\" Justify=\"between\">\n        <Label>Password</Label>\n        <a href=\"#\" class=\"text-xs text-primary hover:underline\">Forgot password?</a>\n    </Flex>\n    <Input type=\"password\" placeholder=\"••••••••\" />\n</Stack>"
        },
        {
          "title": "Multiple Fields",
          "code": "<Stack Gap=\"2\">\n    <Label>First name</Label>\n    <Input Placeholder=\"John\" />\n</Stack>\n<Flex Gap=\"2\" Align=\"center\">\n    <Checkbox @bind-Checked=\"_agreed\" />\n    <Label>I agree to the terms and conditions</Label>\n</Flex>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Link": {
      "name": "Link",
      "category": "Typography",
      "subcategory": null,
      "description": "Styled anchor with underline + color variants.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Link/Link.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Href",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "External",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "string",
          "default": "\"default\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Link Href=\"#\">Default link style</a>"
        },
        {
          "title": "Variants",
          "code": "<Link Href=\"#\" Variant=\"default\">Default</a>\n<Link Href=\"#\" Variant=\"muted\">Muted</a>\n<Link Href=\"#\" Variant=\"underline\">Underline</a>"
        },
        {
          "title": "External Link",
          "code": "<Link Href=\"https://github.com\" External=\"true\">\n    Visit GitHub\n</a>"
        },
        {
          "title": "With Size",
          "code": "<Link Href=\"#\" Size=\"xs\">Extra small</a>\n<Link Href=\"#\" Size=\"sm\">Small</a>\n<Link Href=\"#\">Default</a>\n<Link Href=\"#\" Size=\"lg\">Large</a>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "List": {
      "name": "List",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Ordered/unordered list with Lumeo typographic styling.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/List/List.razor",
        "UI/List/ListItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Bordered",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Hoverable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ListSize",
          "default": "ListSize.Default",
          "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": [
        {
          "name": "ListSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "ListContext",
          "signature": "ListContext(bool Bordered, bool Hoverable, ListSize Size)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic List",
          "code": "<List Bordered=\"true\">\n    <ListItem Title=\"Alice Johnson\" Description=\"alice@example.com\" />\n    <ListItem Title=\"Bob Smith\" Description=\"bob@example.com\" />\n    <ListItem Title=\"Carol White\" Description=\"carol@example.com\" />\n</List>"
        },
        {
          "title": "With Leading Icon",
          "code": "<List Bordered=\"true\" Hoverable=\"true\">\n    <ListItem Title=\"Inbox\" Description=\"12 unread\">\n        <Leading><DynamicIcon Name=\"Inbox\" Class=\"h-5 w-5 text-muted-foreground\" /></Leading>\n    </ListItem>\n    <ListItem Title=\"Sent\">\n        <Leading><DynamicIcon Name=\"Send\" Class=\"h-5 w-5 text-muted-foreground\" /></Leading>\n    </ListItem>\n</List>"
        },
        {
          "title": "With Trailing Content",
          "code": "<List Bordered=\"true\">\n    <ListItem Title=\"Notifications\">\n        <Leading><DynamicIcon Name=\"Bell\" Class=\"h-5 w-5 text-muted-foreground\" /></Leading>\n        <Trailing><Badge Variant=\"Badge.BadgeVariant.Default\">3</Badge></Trailing>\n    </ListItem>\n    <ListItem Title=\"Settings\">\n        <Leading><DynamicIcon Name=\"Settings\" Class=\"h-5 w-5 text-muted-foreground\" /></Leading>\n        <Trailing><DynamicIcon Name=\"ChevronRight\" Class=\"h-4 w-4 text-muted-foreground\" /></Trailing>\n    </ListItem>\n</List>"
        },
        {
          "title": "Sizes",
          "code": "<List Bordered=\"true\" Size=\"List.ListSize.Sm\">...</List>\n<List Bordered=\"true\">...</List>\n<List Bordered=\"true\" Size=\"List.ListSize.Lg\">...</List>"
        }
      ],
      "subComponents": {
        "ListItem": {
          "componentName": "ListItem",
          "fileName": "ListItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "List.ListContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Leading",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Trailing",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Marquee": {
      "name": "Marquee",
      "category": "Motion",
      "subcategory": null,
      "description": "Infinitely scrolling horizontal band of children.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/Marquee/Marquee.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Speed",
          "type": "MarqueeSpeed",
          "default": "MarqueeSpeed.Normal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Direction",
          "type": "MarqueeDirection",
          "default": "MarqueeDirection.Left",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PauseOnHover",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Reverse",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Vertical",
          "type": "bool",
          "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": [
        {
          "name": "MarqueeSpeed",
          "values": [
            "Slow",
            "Normal",
            "Fast"
          ],
          "description": null
        },
        {
          "name": "MarqueeDirection",
          "values": [
            "Left",
            "Right"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Default (Left Scroll)",
          "code": "<Marquee PauseOnHover=\"true\">\n    <div class=\"mx-6 text-sm font-medium text-muted-foreground\">Acme Corp</div>\n    <div class=\"mx-6 text-sm font-medium text-muted-foreground\">Globex</div>\n    <div class=\"mx-6 text-sm font-medium text-muted-foreground\">Initech</div>\n    <!-- more items -->\n</Marquee>"
        },
        {
          "title": "Reverse Direction",
          "code": "<Marquee Reverse=\"true\" Speed=\"Marquee.MarqueeSpeed.Slow\">\n    <Badge Class=\"mx-2\">Blazor</Badge>\n    <Badge Class=\"mx-2\">.NET 10</Badge>\n    <Badge Class=\"mx-2\">Tailwind CSS</Badge>\n</Marquee>"
        },
        {
          "title": "Fast Speed",
          "code": "<Marquee Speed=\"Marquee.MarqueeSpeed.Fast\" PauseOnHover=\"true\">\n    <div class=\"mx-6 text-sm font-mono text-muted-foreground\">Item 1</div>\n    <div class=\"mx-6 text-sm font-mono text-muted-foreground\">Item 2</div>\n</Marquee>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "MegaMenu": {
      "name": "MegaMenu",
      "category": "Navigation",
      "subcategory": null,
      "description": "Full-width dropdown for site-wide navigation with columns.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/MegaMenu/MegaMenu.razor",
        "UI/MegaMenu/MegaMenuGroup.razor",
        "UI/MegaMenu/MegaMenuItem.razor",
        "UI/MegaMenu/MegaMenuLink.razor",
        "UI/MegaMenu/MegaMenuPanel.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "MegaMenuOrientation",
          "default": "MegaMenuOrientation.Horizontal",
          "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": [
        {
          "name": "MegaMenuOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "MegaMenuContext",
          "signature": "MegaMenuContext(string? ActiveItemId, EventCallback<string?> SetActiveItemId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Mega Menu",
          "code": "<MegaMenu>\n    <MegaMenuItem Label=\"Products\">\n        <MegaMenuPanel Columns=\"3\">\n            <MegaMenuGroup Title=\"Design\">\n                <MegaMenuLink Href=\"/components\" Title=\"Components\" Description=\"Pre-built UI components\" />\n                <MegaMenuLink Href=\"/templates\" Title=\"Templates\" Description=\"Starter templates\" />\n            </MegaMenuGroup>\n            <MegaMenuGroup Title=\"Development\">\n                <MegaMenuLink Href=\"/docs\" Title=\"Documentation\" Description=\"Full API reference\" />\n            </MegaMenuGroup>\n        </MegaMenuPanel>\n    </MegaMenuItem>\n    <MegaMenuItem Label=\"Pricing\" Href=\"/pricing\" />\n</MegaMenu>"
        },
        {
          "title": "Single Column Panel",
          "code": "<MegaMenu>\n    <MegaMenuItem Label=\"Company\">\n        <MegaMenuPanel Columns=\"1\" FullWidth=\"false\">\n            <MegaMenuGroup>\n                <MegaMenuLink Href=\"/about\" Title=\"About Us\" />\n                <MegaMenuLink Href=\"/careers\" Title=\"Careers\" />\n            </MegaMenuGroup>\n        </MegaMenuPanel>\n    </MegaMenuItem>\n</MegaMenu>"
        },
        {
          "title": "Orientation — interactive",
          "code": "<Segmented @bind-Value=\"_orientationSel\" Options=\"_orientationOptions\" />\n<MegaMenu Orientation=\"@_activeMegaMenuOrientation\">\n    <MegaMenuItem Label=\"Products\">\n        <MegaMenuPanel Columns=\"2\">\n            <MegaMenuGroup Title=\"Design\">\n                <MegaMenuLink Href=\"#\" Title=\"Components\" Description=\"Pre-built UI components\" />\n            </MegaMenuGroup>\n            <MegaMenuGroup Title=\"Development\">\n                <MegaMenuLink Href=\"#\" Title=\"CLI\" Description=\"Command-line tooling\" />\n            </MegaMenuGroup>\n        </MegaMenuPanel>\n    </MegaMenuItem>\n    <MegaMenuItem Label=\"Docs\" Href=\"#\" />\n</MegaMenu>\n\n@code {\n    private string _orientationSel = \"Horizontal\";\n    private MegaMenu.MegaMenuOrientation _activeMegaMenuOrientation =>\n        Enum.Parse<MegaMenu.MegaMenuOrientation>(_orientationSel);\n    private List<Segmented.SegmentedOption> _orientationOptions = new()\n    {\n        new() { Label = \"Horizontal\", Value = \"Horizontal\" },\n        new() { Label = \"Vertical\", Value = \"Vertical\" },\n    };\n}"
        }
      ],
      "subComponents": {
        "MegaMenuGroup": {
          "componentName": "MegaMenuGroup",
          "fileName": "MegaMenuGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MegaMenuItem": {
          "componentName": "MegaMenuItem",
          "fileName": "MegaMenuItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "MegaMenu.MegaMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Label",
              "type": "string",
              "default": "string.Empty",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Icon",
              "type": "SvgIcon?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "MegaMenuItemContext",
              "signature": "MegaMenuItemContext(string ItemId, string TriggerId)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "MegaMenuLink": {
          "componentName": "MegaMenuLink",
          "fileName": "MegaMenuLink.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Href",
              "type": "string",
              "default": "\"#\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string",
              "default": "string.Empty",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Icon",
              "type": "SvgIcon?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MegaMenuPanel": {
          "componentName": "MegaMenuPanel",
          "fileName": "MegaMenuPanel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "FullWidth",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Columns",
              "type": "int",
              "default": "4",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Mention": {
      "name": "Mention",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Textarea with @-trigger dropdown for mentioning users.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Mention/Mention.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Trigger",
          "type": "char",
          "default": "'@'",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Options",
          "type": "List<MentionOption>",
          "default": "[]",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSearch",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Rows",
          "type": "int",
          "default": "3",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OnSearch",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "MentionOption",
          "signature": "MentionOption(string Label, string Value, string? Avatar = null, string? Description = null)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Mention",
          "code": "<Mention @bind-Value=\"_text\" Options=\"@_people\" Placeholder=\"Type @@ to mention...\" />"
        },
        {
          "title": "Custom Trigger",
          "code": "<Mention @bind-Value=\"_text\" Options=\"@_channels\" Trigger='#' />"
        },
        {
          "title": "Trigger Character",
          "code": "<Segmented @bind-Value=\"_mentionTriggerStr\">\n    <SegmentedItem Value=\"@\">@@</SegmentedItem>\n    <SegmentedItem Value=\"#\">#</SegmentedItem>\n    <SegmentedItem Value=\"/\"> /</SegmentedItem>\n</Segmented>\n\n<Mention @bind-Value=\"_text\"\n         Options=\"@GetOptionsForTrigger(_mentionTriggerStr)\"\n         Trigger=\"@(_mentionTriggerStr[0])\"\n         Placeholder=\"@($\\\"Type {_mentionTriggerStr} to trigger suggestions...\\\")\" />\n\n@code {\n    private string _mentionTriggerStr = \"@\";\n    private string? _text;\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Menubar": {
      "name": "Menubar",
      "category": "Navigation",
      "subcategory": null,
      "description": "Horizontal menubar with File/Edit-style dropdowns.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Menubar/Menubar.razor",
        "UI/Menubar/MenubarContent.razor",
        "UI/Menubar/MenubarItem.razor",
        "UI/Menubar/MenubarLabel.razor",
        "UI/Menubar/MenubarMenu.razor",
        "UI/Menubar/MenubarSeparator.razor",
        "UI/Menubar/MenubarShortcut.razor",
        "UI/Menubar/MenubarTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "MenubarContext",
          "signature": "MenubarContext(\n        string? OpenMenuId,\n        EventCallback<string?> SetOpenMenuId,\n        bool AnyOpen,\n        List<string> MenuIds,\n        Action<string> RegisterMenuId,\n        Action<int> NavigateMenus)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Menubar>\n    <MenubarMenu>\n        <MenubarTrigger>File</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>\n                New Tab <MenubarShortcut>Ctrl+T</MenubarShortcut>\n            </MenubarItem>\n            <MenubarItem>\n                New Window <MenubarShortcut>Ctrl+N</MenubarShortcut>\n            </MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>\n                Share <MenubarShortcut>Ctrl+S</MenubarShortcut>\n            </MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>\n                Print <MenubarShortcut>Ctrl+P</MenubarShortcut>\n            </MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>Edit</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>\n                Undo <MenubarShortcut>Ctrl+Z</MenubarShortcut>\n            </MenubarItem>\n            <MenubarItem>\n                Redo <MenubarShortcut>Ctrl+Y</MenubarShortcut>\n            </MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>\n                Cut <MenubarShortcut>Ctrl+X</MenubarShortcut>\n            </MenubarItem>\n            <MenubarItem>\n                Copy <MenubarShortcut>Ctrl+C</MenubarShortcut>\n            </MenubarItem>\n            <MenubarItem>\n                Paste <MenubarShortcut>Ctrl+V</MenubarShortcut>\n            </MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>View</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>\n                Zoom In <MenubarShortcut>Ctrl++</MenubarShortcut>\n            </MenubarItem>\n            <MenubarItem>\n                Zoom Out <MenubarShortcut>Ctrl+-</MenubarShortcut>\n            </MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>Toggle Fullscreen</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n</Menubar>"
        },
        {
          "title": "With Labels and Disabled Items",
          "code": "<Menubar>\n    <MenubarMenu>\n        <MenubarTrigger>Account</MenubarTrigger>\n        <MenubarContent>\n            <MenubarLabel>My Account</MenubarLabel>\n            <MenubarSeparator />\n            <MenubarItem>Profile</MenubarItem>\n            <MenubarItem>Settings</MenubarItem>\n            <MenubarItem>Billing</MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem Disabled=\"true\">Invite Team (Pro)</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>Help</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>Documentation</MenubarItem>\n            <MenubarItem>Release Notes</MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>About</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n</Menubar>"
        },
        {
          "title": "Keyboard Navigation",
          "code": "<Menubar>\n    <MenubarMenu>\n        <MenubarTrigger>File</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>New Tab <MenubarShortcut>Ctrl+T</MenubarShortcut></MenubarItem>\n            <MenubarItem>New Window <MenubarShortcut>Ctrl+N</MenubarShortcut></MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>Print <MenubarShortcut>Ctrl+P</MenubarShortcut></MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>Edit</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>Undo <MenubarShortcut>Ctrl+Z</MenubarShortcut></MenubarItem>\n            <MenubarItem>Redo <MenubarShortcut>Ctrl+Y</MenubarShortcut></MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>Cut <MenubarShortcut>Ctrl+X</MenubarShortcut></MenubarItem>\n            <MenubarItem>Copy <MenubarShortcut>Ctrl+C</MenubarShortcut></MenubarItem>\n            <MenubarItem>Paste <MenubarShortcut>Ctrl+V</MenubarShortcut></MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>View</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>Zoom In <MenubarShortcut>Ctrl++</MenubarShortcut></MenubarItem>\n            <MenubarItem>Zoom Out <MenubarShortcut>Ctrl+-</MenubarShortcut></MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem>Full Screen <MenubarShortcut>F11</MenubarShortcut></MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n</Menubar>"
        },
        {
          "title": "Text Editor",
          "code": "<Menubar>\n    <MenubarMenu>\n        <MenubarTrigger>Format</MenubarTrigger>\n        <MenubarContent>\n            <MenubarLabel>Text</MenubarLabel>\n            <MenubarItem>Bold <MenubarShortcut>Ctrl+B</MenubarShortcut></MenubarItem>\n            <MenubarItem>Italic <MenubarShortcut>Ctrl+I</MenubarShortcut></MenubarItem>\n            <MenubarItem>Underline <MenubarShortcut>Ctrl+U</MenubarShortcut></MenubarItem>\n            <MenubarSeparator />\n            <MenubarLabel>Alignment</MenubarLabel>\n            <MenubarItem>Align Left</MenubarItem>\n            <MenubarItem>Align Center</MenubarItem>\n            <MenubarItem>Align Right</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>Insert</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>Image</MenubarItem>\n            <MenubarItem>Table</MenubarItem>\n            <MenubarItem>Link</MenubarItem>\n            <MenubarSeparator />\n            <MenubarItem Disabled=\"true\">Video (Pro)</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n    <MenubarMenu>\n        <MenubarTrigger>Tools</MenubarTrigger>\n        <MenubarContent>\n            <MenubarItem>Word Count <MenubarShortcut>Ctrl+W</MenubarShortcut></MenubarItem>\n            <MenubarItem>Spell Check</MenubarItem>\n        </MenubarContent>\n    </MenubarMenu>\n</Menubar>"
        }
      ],
      "subComponents": {
        "MenubarContent": {
          "componentName": "MenubarContent",
          "fileName": "MenubarContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Menubar.MenubarContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "MenuContext",
              "type": "MenubarMenu.MenubarMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarItem": {
          "componentName": "MenubarItem",
          "fileName": "MenubarItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Menubar.MenubarContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarLabel": {
          "componentName": "MenubarLabel",
          "fileName": "MenubarLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarMenu": {
          "componentName": "MenubarMenu",
          "fileName": "MenubarMenu.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Menubar.MenubarContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "MenubarMenuContext",
              "signature": "MenubarMenuContext(string MenuId, string WrapperId)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarSeparator": {
          "componentName": "MenubarSeparator",
          "fileName": "MenubarSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarShortcut": {
          "componentName": "MenubarShortcut",
          "fileName": "MenubarShortcut.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "MenubarTrigger": {
          "componentName": "MenubarTrigger",
          "fileName": "MenubarTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Menubar.MenubarContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "MenuContext",
              "type": "MenubarMenu.MenubarMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "NavigationMenu": {
      "name": "NavigationMenu",
      "category": "Navigation",
      "subcategory": null,
      "description": "Top-level site nav with animated dropdown panels.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/NavigationMenu/NavigationMenu.razor",
        "UI/NavigationMenu/NavigationMenuContent.razor",
        "UI/NavigationMenu/NavigationMenuHamburger.razor",
        "UI/NavigationMenu/NavigationMenuIndicator.razor",
        "UI/NavigationMenu/NavigationMenuItem.razor",
        "UI/NavigationMenu/NavigationMenuLink.razor",
        "UI/NavigationMenu/NavigationMenuList.razor",
        "UI/NavigationMenu/NavigationMenuMobile.razor",
        "UI/NavigationMenu/NavigationMenuTrigger.razor",
        "UI/NavigationMenu/NavigationMenuViewport.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "NavigationMenuContext",
          "signature": "NavigationMenuContext(string? ActiveItemId, EventCallback<string?> SetActiveItemId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<NavigationMenu>\n    <NavigationMenuList>\n        <NavigationMenuItem>\n            <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n            <NavigationMenuContent>\n                <div class=\"grid gap-3 w-[400px] md:grid-cols-2\">\n                    <NavigationMenuLink Href=\"#\">\n                        <Lumeo.Text Size=\"sm\" Weight=\"medium\">Introduction</Lumeo.Text>\n                        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"mt-1\">\n                            Learn the basics of building with Lumeo.\n                        </Lumeo.Text>\n                    </NavigationMenuLink>\n                    <NavigationMenuLink Href=\"#\">\n                        <Lumeo.Text Size=\"sm\" Weight=\"medium\">Installation</Lumeo.Text>\n                        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"mt-1\">\n                            Add Lumeo to your Blazor project.\n                        </Lumeo.Text>\n                    </NavigationMenuLink>\n                </div>\n            </NavigationMenuContent>\n        </NavigationMenuItem>\n        <NavigationMenuItem>\n            <NavigationMenuTrigger>Components</NavigationMenuTrigger>\n            <NavigationMenuContent>\n                <div class=\"grid gap-3 w-[400px] md:grid-cols-2\">\n                    <NavigationMenuLink Href=\"#\">\n                        <Lumeo.Text Size=\"sm\" Weight=\"medium\">Button</Lumeo.Text>\n                        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"mt-1\">\n                            Trigger actions or navigation events.\n                        </Lumeo.Text>\n                    </NavigationMenuLink>\n                </div>\n            </NavigationMenuContent>\n        </NavigationMenuItem>\n        <NavigationMenuItem>\n            <NavigationMenuLink Href=\"#\">\n                Documentation\n            </NavigationMenuLink>\n        </NavigationMenuItem>\n    </NavigationMenuList>\n</NavigationMenu>"
        },
        {
          "title": "Simple Links",
          "code": "<NavigationMenu>\n    <NavigationMenuList>\n        <NavigationMenuItem>\n            <NavigationMenuLink Href=\"#\" Class=\"...\">Home</NavigationMenuLink>\n        </NavigationMenuItem>\n        <NavigationMenuItem>\n            <NavigationMenuLink Href=\"#\" Class=\"...\">About</NavigationMenuLink>\n        </NavigationMenuItem>\n        <NavigationMenuItem>\n            <NavigationMenuLink Href=\"#\" Class=\"...\">Blog</NavigationMenuLink>\n        </NavigationMenuItem>\n        <NavigationMenuItem>\n            <NavigationMenuLink Href=\"#\" Class=\"...\">Contact</NavigationMenuLink>\n        </NavigationMenuItem>\n    </NavigationMenuList>\n</NavigationMenu>"
        },
        {
          "title": "With Badge",
          "code": "<NavigationMenu>\n    <NavigationMenuList>\n        <NavigationMenuItem>\n            <NavigationMenuTrigger>Products</NavigationMenuTrigger>\n            <NavigationMenuContent>\n                <NavigationMenuLink Href=\"#\">\n                    <Flex Align=\"center\" Gap=\"2\">\n                        <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">Analytics</Lumeo.Text>\n                        <Badge>New</Badge>\n                    </Flex>\n                </NavigationMenuLink>\n                <NavigationMenuLink Href=\"#\">\n                    <Flex Align=\"center\" Gap=\"2\">\n                        <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">API</Lumeo.Text>\n                        <Badge Variant=\"Badge.BadgeVariant.Secondary\">Beta</Badge>\n                    </Flex>\n                </NavigationMenuLink>\n            </NavigationMenuContent>\n        </NavigationMenuItem>\n    </NavigationMenuList>\n</NavigationMenu>"
        }
      ],
      "subComponents": {
        "NavigationMenuContent": {
          "componentName": "NavigationMenuContent",
          "fileName": "NavigationMenuContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ItemContext",
              "type": "NavigationMenuItem.NavigationMenuItemContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuHamburger": {
          "componentName": "NavigationMenuHamburger",
          "fileName": "NavigationMenuHamburger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Open",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OpenChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsOpen",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsOpenChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OpenChanged",
              "type": "EventCallback<bool>",
              "description": null
            },
            {
              "name": "IsOpenChanged",
              "type": "EventCallback<bool>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuIndicator": {
          "componentName": "NavigationMenuIndicator",
          "fileName": "NavigationMenuIndicator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuItem": {
          "componentName": "NavigationMenuItem",
          "fileName": "NavigationMenuItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "NavigationMenuItemContext",
              "signature": "NavigationMenuItemContext(string ItemId, string TriggerId)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuLink": {
          "componentName": "NavigationMenuLink",
          "fileName": "NavigationMenuLink.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuList": {
          "componentName": "NavigationMenuList",
          "fileName": "NavigationMenuList.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuMobile": {
          "componentName": "NavigationMenuMobile",
          "fileName": "NavigationMenuMobile.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Open",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OpenChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsOpen",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsOpenChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OpenChanged",
              "type": "EventCallback<bool>",
              "description": null
            },
            {
              "name": "IsOpenChanged",
              "type": "EventCallback<bool>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuTrigger": {
          "componentName": "NavigationMenuTrigger",
          "fileName": "NavigationMenuTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ItemContext",
              "type": "NavigationMenuItem.NavigationMenuItemContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "NavigationMenuViewport": {
          "componentName": "NavigationMenuViewport",
          "fileName": "NavigationMenuViewport.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "NavigationMenu.NavigationMenuContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "NumberInput": {
      "name": "NumberInput",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Numeric input with stepper buttons and locale formatting.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/NumberInput/NumberInput.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "double?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<double?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Min",
          "type": "double?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Max",
          "type": "double?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Step",
          "type": "double",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Precision",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "UseMouseWheel",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Prefix",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Suffix",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Culture used to parse typed input. Display of the value inside the native &lt;input type=\"number\"&gt; element uses InvariantCulture because HTML5 requires period-as-decimal — browsers will not accept a comma decimal in this input type. Leave null to honour ASP.NET request localization for parsing (lets a de-DE user paste 1,5 and have it round-trip to 1.5).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<double?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<NumberInput @bind-Value=\"_value\" />"
        },
        {
          "title": "Min / Max / Step",
          "code": "<NumberInput @bind-Value=\"_value\" Min=\"0\" Max=\"100\" Step=\"5\" />"
        },
        {
          "title": "Precision",
          "code": "<NumberInput @bind-Value=\"_value\" Step=\"0.01\" Precision=\"2\" />"
        },
        {
          "title": "Disabled",
          "code": "<NumberInput Value=\"42\" Disabled=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "NumberTicker": {
      "name": "NumberTicker",
      "category": "Motion",
      "subcategory": null,
      "description": "Animated count-up from zero to target number.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/NumberTicker/NumberTicker.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "StartValue",
          "type": "double",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "int",
          "default": "1500",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Decimals",
          "type": "int",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Prefix",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Suffix",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ThousandsSeparator",
          "type": "string",
          "default": "\",\"",
          "description": "Thousands group separator (default \",\"). Set to empty string to suppress.",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Basic Count-Up",
          "code": "<NumberTicker Value=\"1000\" Class=\"text-4xl font-bold tabular-nums\" />\n<NumberTicker Value=\"99.9\" Decimals=\"1\" Class=\"text-4xl font-bold tabular-nums\" />"
        },
        {
          "title": "With Prefix and Suffix",
          "code": "<NumberTicker Value=\"48295\" Prefix=\"$\" Class=\"text-3xl font-semibold tabular-nums\" />\n<NumberTicker Value=\"94.7\" Decimals=\"1\" Suffix=\"%\" Class=\"text-3xl font-semibold tabular-nums\" />"
        },
        {
          "title": "Custom Duration",
          "code": "<NumberTicker Value=\"250\" DurationMs=\"500\" Class=\"text-2xl font-bold\" />\n<NumberTicker Value=\"250\" DurationMs=\"3000\" Class=\"text-2xl font-bold\" />"
        },
        {
          "title": "Custom Separator & Currency",
          "code": "<NumberTicker Value=\"1500000\" ThousandsSeparator=\".\" DurationMs=\"2000\" />\n<NumberTicker Value=\"9876543\" Prefix=\"$\" ThousandsSeparator=\",\" DurationMs=\"2000\" />\n<NumberTicker Value=\"99.9\" Decimals=\"1\" Suffix=\"%\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "OtpInput": {
      "name": "OtpInput",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "One-time password input, auto-advances between boxes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/OtpInput/OtpInput.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Length",
          "type": "int",
          "default": "6",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnComplete",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InputMode",
          "type": "string",
          "default": "\"Numeric\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Masked",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Separator",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GroupSizes",
          "type": "int[]?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "OnComplete",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default (6 digits)",
          "code": "<OtpInput @bind-Value=\"_otpValue\" OnComplete=\"HandleComplete\" />"
        },
        {
          "title": "2FA Verification",
          "code": "<Card>\n    <CardHeader>\n        <Heading Level=\"3\">Two-factor authentication</Heading>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Enter the 6-digit code from your authenticator app.</Lumeo.Text>\n    </CardHeader>\n    <CardContent>\n        <OtpInput @bind-Value=\"_tfaValue\" OnComplete=\"HandleTfa\" />\n        @if (_tfaVerified)\n        {\n            <Badge Variant=\"Badge.BadgeVariant.Success\">Verified</Badge>\n        }\n    </CardContent>\n    <CardFooter>\n        <Button Class=\"w-full\" Disabled=\"@(_tfaValue.Length < 6)\">Verify</Button>\n    </CardFooter>\n</Card>"
        },
        {
          "title": "4 Digit Code",
          "code": "<OtpInput @bind-Value=\"_otp\" Length=\"4\" />"
        },
        {
          "title": "Variable Length",
          "code": "<Segmented @bind-Value=\"_otpLength\">\n    <SegmentedItem Value=\"4\">4 digits</SegmentedItem>\n    <SegmentedItem Value=\"6\">6 digits</SegmentedItem>\n    <SegmentedItem Value=\"8\">8 digits</SegmentedItem>\n</Segmented>\n\n<OtpInput Length=\"@(int.Parse(_otpLength))\" Value=\"@_otpValue\" ValueChanged=\"@(v => _otpValue = v)\" />\n\n@if (!string.IsNullOrEmpty(_otpValue))\n{\n    <Lumeo.Text Size=\"sm\" Color=\"muted\">Value: @_otpValue</Lumeo.Text>\n}\n\n@code {\n    private string _otpLength = \"6\";\n    private string _otpValue = \"\";\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Overlay": {
      "name": "Overlay",
      "category": "Overlay",
      "subcategory": null,
      "description": "Low-level backdrop primitive for custom popovers and modals.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Overlay/OverlayProvider.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Open a Dialog",
          "code": "@inject OverlayService OverlayService\n\n<Button OnClick=\"@OpenDialog\">Open Dialog</Button>\n\n@code {\n    private async Task OpenDialog()\n    {\n        var result = await OverlayService.ShowDialogAsync<MyDialogContent>(\n            title: \"Edit Profile\",\n            parameters: new OverlayParameters().Add(\"UserId\", 42));\n\n        if (!result.Cancelled) { /* handle result */ }\n    }\n}"
        },
        {
          "title": "Open a Sheet",
          "code": "@inject OverlayService OverlayService\n\n<Button OnClick=\"@OpenSheet\">Open Sheet</Button>\n\n@code {\n    private async Task OpenSheet()\n    {\n        await OverlayService.ShowSheetAsync<MySheetContent>(\n            title: \"Settings\",\n            side: SheetSide.Right);\n    }\n}"
        },
        {
          "title": "Confirmation Dialog",
          "code": "@inject OverlayService OverlayService\n\n<Button Variant=\"Button.ButtonVariant.Destructive\" OnClick=\"@Confirm\">Delete</Button>\n\n@code {\n    private async Task Confirm()\n    {\n        var result = await OverlayService.ShowAlertDialogAsync(new AlertDialogOptions\n        {\n            Title = \"Delete Item?\",\n            Description = \"This action cannot be undone.\",\n            ConfirmText = \"Delete\",\n            CancelText = \"Cancel\",\n            IsDestructive = true\n        });\n\n        if (!result.Cancelled) { /* perform delete */ }\n    }\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Pagination": {
      "name": "Pagination",
      "category": "Navigation",
      "subcategory": null,
      "description": "Page number bar with prev/next and configurable ranges.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Pagination/Pagination.razor",
        "UI/Pagination/PaginationContent.razor",
        "UI/Pagination/PaginationEllipsis.razor",
        "UI/Pagination/PaginationItem.razor",
        "UI/Pagination/PaginationNext.razor",
        "UI/Pagination/PaginationPrevious.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-input",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Pagination>\n    <PaginationContent>\n        <PaginationPrevious OnClick=\"@(() => GoToPage(_currentPage - 1))\"\n                           Disabled=\"@(_currentPage <= 1)\" />\n        @for (int i = 1; i <= _totalPages; i++)\n        {\n            var page = i;\n            <PaginationItem IsActive=\"@(page == _currentPage)\"\n                           OnClick=\"@(() => GoToPage(page))\">\n                @page\n            </PaginationItem>\n        }\n        <PaginationNext OnClick=\"@(() => GoToPage(_currentPage + 1))\"\n                       Disabled=\"@(_currentPage >= _totalPages)\" />\n    </PaginationContent>\n</Pagination>\n\n@code {\n    private int _currentPage = 1;\n    private int _totalPages = 5;\n\n    private void GoToPage(int page)\n    {\n        if (page >= 1 && page <= _totalPages)\n            _currentPage = page;\n    }\n}"
        },
        {
          "title": "Compact",
          "code": "<Pagination>\n    <PaginationContent>\n        <PaginationPrevious OnClick=\"@(() => GoToPage(_currentPage - 1))\" Disabled=\"@(_currentPage <= 1)\" />\n        <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\" Class=\"px-3 flex items-center\">@_currentPage / @_totalPages</Lumeo.Text>\n        <PaginationNext OnClick=\"@(() => GoToPage(_currentPage + 1))\" Disabled=\"@(_currentPage >= _totalPages)\" />\n    </PaginationContent>\n</Pagination>"
        },
        {
          "title": "Size",
          "code": "<Segmented @bind-Value=\"_paginationSize\">\n    <SegmentedItem Value=\"sm\">Sm</SegmentedItem>\n    <SegmentedItem Value=\"md\">Md</SegmentedItem>\n    <SegmentedItem Value=\"lg\">Lg</SegmentedItem>\n</Segmented>\n\n<Pagination>\n    <PaginationContent>\n        <PaginationPrevious OnClick=\"@(() => GoToPage(_currentPage - 1))\" Disabled=\"@(_currentPage <= 1)\" />\n        @for (int i = 1; i <= 5; i++)\n        {\n            var page = i;\n            <PaginationItem IsActive=\"@(page == _currentPage)\"\n                            OnClick=\"@(() => GoToPage(page))\"\n                            Class=\"@(_paginationSize switch { \\\"sm\\\" => \\\"h-7 w-7 text-xs\\\", \\\"lg\\\" => \\\"h-11 w-11 text-base\\\", _ => \\\"\\\"  })\">\n                @page\n            </PaginationItem>\n        }\n        <PaginationNext OnClick=\"@(() => GoToPage(_currentPage + 1))\" Disabled=\"@(_currentPage >= 5)\" />\n    </PaginationContent>\n</Pagination>\n\n@code {\n    private string _paginationSize = \"md\";\n    private int _currentPage = 1;\n}"
        },
        {
          "title": "With Ellipsis",
          "code": "<Pagination>\n    <PaginationContent>\n        <PaginationPrevious OnClick=\"...\" />\n        <PaginationItem IsActive=\"true\">1</PaginationItem>\n        <PaginationItem>2</PaginationItem>\n        <PaginationItem>3</PaginationItem>\n        <PaginationEllipsis />\n        <PaginationItem>8</PaginationItem>\n        <PaginationItem>9</PaginationItem>\n        <PaginationItem>10</PaginationItem>\n        <PaginationNext OnClick=\"...\" />\n    </PaginationContent>\n</Pagination>"
        }
      ],
      "subComponents": {
        "PaginationContent": {
          "componentName": "PaginationContent",
          "fileName": "PaginationContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PaginationEllipsis": {
          "componentName": "PaginationEllipsis",
          "fileName": "PaginationEllipsis.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PaginationItem": {
          "componentName": "PaginationItem",
          "fileName": "PaginationItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsActive",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PaginationNext": {
          "componentName": "PaginationNext",
          "fileName": "PaginationNext.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PaginationPrevious": {
          "componentName": "PaginationPrevious",
          "fileName": "PaginationPrevious.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "PasswordInput": {
      "name": "PasswordInput",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Password field with show/hide toggle and strength meter.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PasswordInput/PasswordInput.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowStrength",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowToggle",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Password Input",
          "code": "<PasswordInput @bind-Value=\"_password\" />"
        },
        {
          "title": "With Strength Meter",
          "code": "<PasswordInput @bind-Value=\"_password\" ShowStrength=\"true\" />"
        },
        {
          "title": "Without Toggle Button",
          "code": "<PasswordInput @bind-Value=\"_password\" ShowToggle=\"false\" />"
        },
        {
          "title": "With Strength + Custom Placeholder",
          "code": "<PasswordInput @bind-Value=\"_password\"\n               ShowStrength=\"true\"\n               Placeholder=\"Create a strong password\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "PickList": {
      "name": "PickList",
      "category": "Dashboard",
      "subcategory": null,
      "description": "Two-column shuttle picker — move items between lists.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PickList/PickList.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Items",
          "type": "IEnumerable<TItem>",
          "default": "[]",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItems",
          "type": "IEnumerable<TItem>",
          "default": "[]",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<IEnumerable<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SourceTitle",
          "type": "string",
          "default": "\"Available\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TargetTitle",
          "type": "string",
          "default": "\"Selected\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSearch",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"320px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "SelectedItemsChanged",
          "type": "EventCallback<IEnumerable<TItem>>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Strings",
          "code": "<PickList TItem=\"string\"\n          Items=\"_allDepartments\"\n          SelectedItems=\"_pickedDepartments\"\n          SelectedItemsChanged=\"OnDepartmentsChanged\"\n          SourceTitle=\"All Departments\"\n          TargetTitle=\"Assigned\" />"
        },
        {
          "title": "Typed Records with Item Template",
          "code": "<PickList TItem=\"UserInfo\"\n          Items=\"_allUsers\"\n          SelectedItems=\"_pickedUsers\"\n          SelectedItemsChanged=\"OnUsersChanged\"\n          SourceTitle=\"Users\"\n          TargetTitle=\"Team Members\">\n    <ItemTemplate>\n        <div class=\"flex flex-col\">\n            <span class=\"text-sm font-medium\">@context.Name</span>\n            <span class=\"text-xs text-muted-foreground\">@context.Email</span>\n        </div>\n    </ItemTemplate>\n</PickList>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "PivotGrid": {
      "name": "PivotGrid",
      "category": "Data Display",
      "subcategory": null,
      "description": "Cross-tab / pivot table that summarizes flat data into rows x columns x aggregated measures.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PivotGrid/PivotCellClickArgs.cs",
        "UI/PivotGrid/PivotField.cs",
        "UI/PivotGrid/PivotGrid.razor",
        "UI/PivotGrid/PivotMeasure.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Items",
          "type": "IEnumerable<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RowFields",
          "type": "IReadOnlyList<PivotField<TItem>>",
          "default": "Array.Empty<PivotField<TItem>>()",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ColumnFields",
          "type": "IReadOnlyList<PivotField<TItem>>",
          "default": "Array.Empty<PivotField<TItem>>()",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Measures",
          "type": "IReadOnlyList<PivotMeasure<TItem>>",
          "default": "Array.Empty<PivotMeasure<TItem>>()",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowRowGrandTotal",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowColumnGrandTotal",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSubtotals",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Collapsible",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Compact",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GrandTotalLabel",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EmptyContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCellClick",
          "type": "EventCallback<PivotCellClickArgs>",
          "default": null,
          "description": "Invoked when a data cell is clicked. Carries the clicked cell context for drill-down.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnCellClick",
          "type": "EventCallback<PivotCellClickArgs>",
          "description": "Invoked when a data cell is clicked. Carries the clicked cell context for drill-down."
        }
      ],
      "enums": [
        {
          "name": "DisplayRowKind",
          "values": [
            "GroupHeader",
            "Leaf",
            "Subtotal"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "ColumnLeaf",
          "signature": "ColumnLeaf(\n        string Label,\n        string PathKey,\n        object?[] Path,\n        IReadOnlyList<TItem> Items,\n        bool IsGrandTotal)",
          "description": null
        },
        {
          "name": "HeaderEntry",
          "signature": "HeaderEntry(string Label, int ColSpan, int RowSpan, bool IsGrandTotal)",
          "description": null
        },
        {
          "name": "DisplayRow",
          "signature": "DisplayRow(RowNode Node, DisplayRowKind Kind, bool Collapsed, int Level, string Label)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Sales by region × year",
          "code": "<PivotGrid TItem=\"Sale\"\n           Items=\"_sales\"\n           RowFields=\"@(new List<PivotField<Sale>> { new(\"Region\", s => s.Region) })\"\n           ColumnFields=\"@(new List<PivotField<Sale>> { new(\"Year\", s => s.Year, v => \"FY \" + v) })\"\n           Measures=\"@(new List<PivotMeasure<Sale>> { new(\"Revenue\", s => s.Amount, PivotAggregate.Sum, d => \"$\" + d.ToString(\"N0\")) })\" />\n\n@code {\n    record Sale(string Region, string Country, int Year, int Quarter, decimal Amount, int Units);\n    List<Sale> _sales = new() { /* ... */ };\n}"
        },
        {
          "title": "Multiple measures (sum + count)",
          "code": "<PivotGrid TItem=\"Sale\"\n           Items=\"_sales\"\n           RowFields=\"_regionField\"\n           ColumnFields=\"_yearField\"\n           Measures=\"@(new List<PivotMeasure<Sale>> {\n               new(\"Revenue\", s => s.Amount, PivotAggregate.Sum, d => \"$\" + d.ToString(\"N0\")),\n               new(\"Deals\", s => s.Units, PivotAggregate.Count),\n           })\" />"
        },
        {
          "title": "Collapsible nested row groups",
          "code": "<PivotGrid TItem=\"Sale\"\n           Items=\"_sales\"\n           RowFields=\"@(new List<PivotField<Sale>> {\n               new(\"Region\", s => s.Region),\n               new(\"Country\", s => s.Country),\n           })\"\n           ColumnFields=\"_yearField\"\n           Measures=\"_amountMeasure\"\n           Collapsible=\"true\"\n           Compact=\"true\" />"
        },
        {
          "title": "Multi-level column hierarchy (Year &gt; Quarter)",
          "code": "<PivotGrid TItem=\"Sale\"\n           Items=\"_sales\"\n           RowFields=\"_regionCountryFields\"\n           ColumnFields=\"@(new List<PivotField<Sale>> {\n               new(\"Year\",    s => s.Year, v => \"FY \" + v),\n               new(\"Quarter\", s => s.Quarter, v => \"Q\" + v),\n           })\"\n           Measures=\"_amountMeasure\"\n           Compact=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "PopConfirm": {
      "name": "PopConfirm",
      "category": "Overlay",
      "subcategory": null,
      "description": "Inline 'are you sure?' popover attached to a trigger.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PopConfirm/PopConfirm.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Title",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Description",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ConfirmText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CancelText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsDestructive",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnConfirm",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCancel",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placement",
          "type": "string",
          "default": "\"top\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Icon",
          "type": "Blazicons.SvgIcon?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnConfirm",
          "type": "EventCallback",
          "description": null
        },
        {
          "name": "OnCancel",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-muted",
        "--color-muted-foreground"
      ],
      "examples": [
        {
          "title": "Basic Pop Confirm",
          "code": "<PopConfirm Title=\"Delete this item?\"\n            Description=\"This action cannot be undone.\"\n            OnConfirm=\"@HandleConfirm\">\n    <Button Variant=\"Button.ButtonVariant.Outline\">Delete item</Button>\n</PopConfirm>"
        },
        {
          "title": "Destructive Action",
          "code": "<PopConfirm Title=\"Delete account?\"\n            Description=\"All data will be permanently removed.\"\n            ConfirmText=\"Yes, delete\"\n            IsDestructive=\"true\"\n            OnConfirm=\"@HandleDelete\">\n    <Button Variant=\"Button.ButtonVariant.Destructive\">Delete Account</Button>\n</PopConfirm>"
        },
        {
          "title": "Custom Texts",
          "code": "<PopConfirm Title=\"Archive project?\"\n            ConfirmText=\"Archive\"\n            CancelText=\"Keep active\"\n            OnConfirm=\"@HandleArchive\">\n    <Button Variant=\"Button.ButtonVariant.Secondary\">Archive Project</Button>\n</PopConfirm>"
        },
        {
          "title": "No Description",
          "code": "<PopConfirm Title=\"Mark as complete?\" OnConfirm=\"@HandleComplete\">\n    <Button Variant=\"Button.ButtonVariant.Ghost\">Complete</Button>\n</PopConfirm>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Popover": {
      "name": "Popover",
      "category": "Overlay",
      "subcategory": null,
      "description": "Positionable floating panel with anchor and arrow.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Popover/Popover.razor",
        "UI/Popover/PopoverContent.razor",
        "UI/Popover/PopoverTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "PopoverContext",
          "signature": "PopoverContext(bool IsOpen, EventCallback<bool> SetOpen, string WrapperId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Popover>\n    <PopoverTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Popover</Button>\n    </PopoverTrigger>\n    <PopoverContent>\n        <Stack Gap=\"4\">\n            <Stack Gap=\"2\">\n                <Heading Level=\"4\" Class=\"text-base font-medium leading-none\">Dimensions</Heading>\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">Set the dimensions for the layer.</Lumeo.Text>\n            </Stack>\n            <Grid Columns=\"3\" Gap=\"4\" Class=\"items-center\">\n                <Label>Width</Label>\n                <Input Class=\"col-span-2 h-8\" Value=\"100%\" />\n                <Label>Height</Label>\n                <Input Class=\"col-span-2 h-8\" Value=\"25px\" />\n            </Grid>\n        </Stack>\n    </PopoverContent>\n</Popover>"
        },
        {
          "title": "Alignment",
          "code": "<Popover>\n    <PopoverTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Start</Button>\n    </PopoverTrigger>\n    <PopoverContent Align=\"PopoverContent.PopoverAlign.Start\">\n        <Lumeo.Text Size=\"sm\">Aligned to start.</Lumeo.Text>\n    </PopoverContent>\n</Popover>\n\n<Popover>\n    <PopoverTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">End</Button>\n    </PopoverTrigger>\n    <PopoverContent Align=\"PopoverContent.PopoverAlign.End\">\n        <Lumeo.Text Size=\"sm\">Aligned to end.</Lumeo.Text>\n    </PopoverContent>\n</Popover>"
        },
        {
          "title": "With Arrow",
          "code": "<Popover>\n    <PopoverTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Top</Button></PopoverTrigger>\n    <PopoverContent Side=\"PopoverContent.PopoverSide.Top\" ShowArrow=\"true\">\n        <Lumeo.Text Size=\"sm\">Popover on top with an arrow pointing at the trigger.</Lumeo.Text>\n    </PopoverContent>\n</Popover>"
        },
        {
          "title": "Placement",
          "code": "<Popover>\n    <PopoverTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Top</Button></PopoverTrigger>\n    <PopoverContent Side=\"PopoverContent.PopoverSide.Top\">\n        <Lumeo.Text Size=\"sm\">Popover on top</Lumeo.Text>\n    </PopoverContent>\n</Popover>\n<Popover>\n    <PopoverTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Bottom</Button></PopoverTrigger>\n    <PopoverContent Side=\"PopoverContent.PopoverSide.Bottom\">\n        <Lumeo.Text Size=\"sm\">Popover on bottom</Lumeo.Text>\n    </PopoverContent>\n</Popover>\n<Popover>\n    <PopoverTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Left</Button></PopoverTrigger>\n    <PopoverContent Side=\"PopoverContent.PopoverSide.Left\">\n        <Lumeo.Text Size=\"sm\">Popover on left</Lumeo.Text>\n    </PopoverContent>\n</Popover>\n<Popover>\n    <PopoverTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Right</Button></PopoverTrigger>\n    <PopoverContent Side=\"PopoverContent.PopoverSide.Right\">\n        <Lumeo.Text Size=\"sm\">Popover on right</Lumeo.Text>\n    </PopoverContent>\n</Popover>"
        }
      ],
      "subComponents": {
        "PopoverContent": {
          "componentName": "PopoverContent",
          "fileName": "PopoverContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Popover.PopoverContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Align",
              "type": "PopoverAlign",
              "default": "PopoverAlign.Center",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "PopoverSide",
              "default": "PopoverSide.Bottom",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowArrow",
              "type": "bool",
              "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": [
            {
              "name": "PopoverAlign",
              "values": [
                "Start",
                "Center",
                "End"
              ],
              "description": null
            },
            {
              "name": "PopoverSide",
              "values": [
                "Top",
                "Bottom",
                "Left",
                "Right"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "PopoverTrigger": {
          "componentName": "PopoverTrigger",
          "fileName": "PopoverTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Popover.PopoverContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Progress": {
      "name": "Progress",
      "category": "Feedback",
      "subcategory": null,
      "description": "Linear progress bar with determinate + indeterminate modes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Progress/CircularProgress.razor",
        "UI/Progress/Progress.razor",
        "UI/Progress/StepsProgress.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Max",
          "type": "int",
          "default": "100",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ProgressVariant",
          "default": "ProgressVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Shape",
          "type": "ProgressShape",
          "default": "ProgressShape.Linear",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsIndeterminate",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLabel",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowValue",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Striped",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animation",
          "type": "ProgressAnimation",
          "default": "ProgressAnimation.None",
          "description": "Opt-in animation variant for the linear progress fill. None (default) leaves existing behaviour untouched. Stripe overlays translucent diagonal stripes that sweep across the bar.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GradientFrom",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GradientTo",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "string",
          "default": "\"Default\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "StrokeWidth",
          "type": "int",
          "default": "4",
          "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": [
        {
          "name": "ProgressVariant",
          "values": [
            "Default",
            "Success",
            "Warning",
            "Destructive"
          ],
          "description": null
        },
        {
          "name": "ProgressShape",
          "values": [
            "Linear",
            "Circular"
          ],
          "description": null
        },
        {
          "name": "ProgressAnimation",
          "values": [
            "None",
            "Stripe",
            "Indeterminate",
            "Glow"
          ],
          "description": "Animation variants for linear progress."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Progress Value=\"25\" />\n<Progress Value=\"50\" />\n<Progress Value=\"75\" />"
        },
        {
          "title": "Variants",
          "code": "<Progress Value=\"60\" />\n<Progress Value=\"100\" Variant=\"Progress.ProgressVariant.Success\" />\n<Progress Value=\"45\" Variant=\"Progress.ProgressVariant.Warning\" />\n<Progress Value=\"80\" Variant=\"Progress.ProgressVariant.Destructive\" />"
        },
        {
          "title": "Interactive",
          "code": "<Progress Value=\"@_value\" />\n<Flex Align=\"center\" Gap=\"2\">\n    <Button OnClick=\"Decrease\">-10</Button>\n    <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">@_value%</Lumeo.Text>\n    <Button OnClick=\"Increase\">+10</Button>\n</Flex>\n\n@code {\n    private int _value = 50;\n    private void Increase() => _value = Math.Min(100, _value + 10);\n    private void Decrease() => _value = Math.Max(0, _value - 10);\n}"
        },
        {
          "title": "Indeterminate",
          "code": "<Progress IsIndeterminate=\"true\" />\n<Progress IsIndeterminate=\"true\" Variant=\"Progress.ProgressVariant.Success\" />"
        }
      ],
      "subComponents": {
        "CircularProgress": {
          "componentName": "CircularProgress",
          "fileName": "CircularProgress.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Value",
              "type": "double",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Max",
              "type": "double",
              "default": "100",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Size",
              "type": "int",
              "default": "64",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "StrokeWidth",
              "type": "int",
              "default": "4",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowValue",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Format",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "StepsProgress": {
          "componentName": "StepsProgress",
          "fileName": "StepsProgress.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "CurrentStep",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Steps",
              "type": "List<string>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Orientation",
              "type": "string",
              "default": "\"Horizontal\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "PromptInput": {
      "name": "PromptInput",
      "category": "AI",
      "subcategory": null,
      "description": "Multiline AI prompt textarea with submit + keyboard shortcuts.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PromptInput/PromptInput.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string",
          "default": "\"Ask anything…\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxHeight",
          "type": "int",
          "default": "240",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinHeight",
          "type": "int",
          "default": "56",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSend",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DisableSendOnEmpty",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LeadingContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrailingContent",
          "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": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OnSend",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<PromptInput @bind-Value=\"_prompt\" OnSend=\"@HandleSend\" Placeholder=\"Ask anything…\" />\n\n@code {\n    private string? _prompt;\n    private void HandleSend(string text) { /* call AI API */ }\n}"
        },
        {
          "title": "Loading State",
          "code": "<PromptInput @bind-Value=\"_prompt\" IsLoading=\"@_isLoading\" OnSend=\"@HandleSend\" />\n\n@code {\n    private string? _prompt;\n    private bool _isLoading;\n\n    private async Task HandleSend(string text)\n    {\n        _isLoading = true;\n        await CallAiApi(text);\n        _isLoading = false;\n    }\n}"
        },
        {
          "title": "With Leading and Trailing Content",
          "code": "<PromptInput @bind-Value=\"_prompt\" OnSend=\"@HandleSend\" Placeholder=\"Message Claude…\">\n    <LeadingContent>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Icon\" Class=\"h-7 w-7\">\n            <Blazicon Svg=\"Lucide.Paperclip\" class=\"h-4 w-4\" />\n        </Button>\n    </LeadingContent>\n    <TrailingContent>\n        <span class=\"text-xs text-muted-foreground\">Shift+Enter for newline</span>\n    </TrailingContent>\n</PromptInput>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "PullToRefresh": {
      "name": "PullToRefresh",
      "category": "Utility",
      "subcategory": null,
      "description": "Pull To Refresh component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/PullToRefresh/PullToRefresh.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnRefresh",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ThresholdPx",
          "type": "double",
          "default": "80",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxPullPx",
          "type": "double",
          "default": "120",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnRefresh",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Pull to Refresh",
          "code": "<div class=\"h-64 rounded-lg border border-border/40 overflow-hidden\">\n    <PullToRefresh OnRefresh=\"HandleRefresh\">\n        <Stack Gap=\"3\" Class=\"p-4\">\n            <Text Size=\"sm\" Color=\"muted\">Pull down to refresh · Count: @_refreshCount</Text>\n            <div class=\"rounded-md border border-border/40 bg-muted/20 px-4 py-3 text-sm\">Item 1</div>\n            <div class=\"rounded-md border border-border/40 bg-muted/20 px-4 py-3 text-sm\">Item 2</div>\n        </Stack>\n    </PullToRefresh>\n</div>\n\n@code {\n    private int _refreshCount;\n\n    private async Task HandleRefresh()\n    {\n        await Task.Delay(1000);\n        _refreshCount++;\n    }\n}"
        },
        {
          "title": "Custom Threshold and Max Pull",
          "code": "<PullToRefresh OnRefresh=\"HandleRefresh\" ThresholdPx=\"50\" MaxPullPx=\"80\">\n    <Stack Gap=\"3\" Class=\"p-4\">\n        <Text Size=\"sm\" Color=\"muted\">Triggers after only 50 px of pull</Text>\n        <div class=\"rounded-md border border-border/40 bg-muted/20 px-4 py-3 text-sm\">Row 1</div>\n        <div class=\"rounded-md border border-border/40 bg-muted/20 px-4 py-3 text-sm\">Row 2</div>\n    </Stack>\n</PullToRefresh>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "QRCode": {
      "name": "QRCode",
      "category": "Data Display",
      "subcategory": "Status & Indicators",
      "description": "Renders a QR code SVG for a string payload.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/QRCode/QRCode.razor",
        "UI/QRCode/QRCodeEncoder.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "int",
          "default": "200",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorCorrectionLevel",
          "type": "QRErrorLevel",
          "default": "QRErrorLevel.Medium",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ForegroundColor",
          "type": "string",
          "default": "\"currentColor\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BackgroundColor",
          "type": "string",
          "default": "\"transparent\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IncludeMargin",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ImageSrc",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ImageSize",
          "type": "int",
          "default": "40",
          "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": [
        {
          "name": "QRErrorLevel",
          "values": [
            "Low",
            "Medium",
            "Quartile",
            "High"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--radius"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "QueryBuilder": {
      "name": "QueryBuilder",
      "category": "Forms",
      "subcategory": null,
      "description": "Visual AND/OR predicate-tree builder; serializes to JSON or a LINQ predicate.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/QueryBuilder/QueryBuilder.razor",
        "UI/QueryBuilder/QueryBuilderGroup.razor",
        "UI/QueryBuilder/QueryBuilderModel.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Fields",
          "type": "IReadOnlyList<QueryField>",
          "default": "Array.Empty<QueryField>()",
          "description": "The fields the consumer can build conditions against. Required.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Query",
          "type": "QueryGroup?",
          "default": null,
          "description": "The query tree. Two-way bindable via @bind-Query. When null on first render, an empty root group (And, no rules) is created.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "QueryChanged",
          "type": "EventCallback<QueryGroup>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowJsonPreview",
          "type": "bool",
          "default": null,
          "description": "When true, renders a read-only JSON view of the query below the builder.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxDepth",
          "type": "int",
          "default": "5",
          "description": "Maximum group nesting depth. The \"Add group\" button is disabled at this depth.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AllowEmptyGroups",
          "type": "bool",
          "default": "true",
          "description": "When false, \"Remove rule\" / \"Remove group\" are hidden when it would leave a group empty (the root may always be empty).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueEditorTemplate",
          "type": "RenderFragment<QueryRule>?",
          "default": null,
          "description": "Optional override for how a rule's value editor renders. Receives the rule. When supplied, replaces the built-in per-type editor entirely (the consumer is then responsible for binding to Value and calling NotifyChanged via the cascaded context — see docs).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "QueryChanged",
          "type": "EventCallback<QueryGroup>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "QueryBuilderContext",
          "signature": "QueryBuilderContext(\n        IReadOnlyList<QueryField> Fields,\n        int MaxDepth,\n        bool AllowEmptyGroups,\n        RenderFragment<QueryRule>? ValueEditorTemplate,\n        Func<Task> NotifyChanged)",
          "description": "Cascaded state shared with the recursive QueryBuilderGroup renderer."
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic builder",
          "code": "<QueryBuilder Fields=\"_fields\" @bind-Query=\"_query\" />\n\n@code {\n    private readonly IReadOnlyList<QueryField> _fields = new List<QueryField>\n    {\n        new() { Name = \"name\", Label = \"Name\", Type = QueryFieldType.Text },\n        new() { Name = \"age\", Label = \"Age\", Type = QueryFieldType.Number },\n        new() { Name = \"isActive\", Label = \"Active\", Type = QueryFieldType.Boolean },\n        new() { Name = \"plan\", Label = \"Plan\", Type = QueryFieldType.Select,\n                Options = new[] { (\"free\", \"Free\"), (\"pro\", \"Pro\") } }\n    };\n\n    private QueryGroup _query = QueryGroup.CreateEmpty();\n}"
        },
        {
          "title": "With JSON preview",
          "code": "<QueryBuilder Fields=\"_fields\" @bind-Query=\"_query\" ShowJsonPreview=\"true\" />\n\n@code {\n    // ShowJsonPreview renders the live System.Text.Json shape — handy for\n    // showing the consumer exactly what would be sent to a backend, or for debugging.\n    // Programmatically: var json = QueryBuilder.ToJson(_query);\n    //                   var back = QueryBuilder.FromJson(json);\n}"
        },
        {
          "title": "Pre-populated nested groups",
          "code": "<QueryBuilder Fields=\"_fields\" @bind-Query=\"_query\" MaxDepth=\"3\" />\n\n@code {\n    private QueryGroup _query = new()\n    {\n        Combinator = QueryCombinator.And,\n        Rules =\n        {\n            new QueryRule { Field = \"isActive\", Operator = \"=\", Value = true },\n            new QueryGroup\n            {\n                Combinator = QueryCombinator.Or,\n                Rules =\n                {\n                    new QueryRule { Field = \"plan\", Operator = \"=\", Value = \"pro\" },\n                    new QueryRule { Field = \"plan\", Operator = \"=\", Value = \"enterprise\" }\n                }\n            }\n        }\n    };\n\n    // Run it client-side:\n    // var predicate = QueryBuilder.ToExpression<Customer>(_query);\n    // var matches = customers.Where(predicate.Compile());\n}"
        }
      ],
      "subComponents": {
        "QueryBuilderGroup": {
          "componentName": "QueryBuilderGroup",
          "fileName": "QueryBuilderGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Ctx",
              "type": "QueryBuilder.QueryBuilderContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Group",
              "type": "QueryGroup",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Depth",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Parent",
              "type": "QueryGroup?",
              "default": null,
              "description": "The parent group (null for the root) — used to support self-removal.",
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "RadioGroup": {
      "name": "RadioGroup",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Grouped radio buttons with horizontal or vertical layout.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/RadioGroup/RadioGroup.razor",
        "UI/RadioGroup/RadioGroupCard.razor",
        "UI/RadioGroup/RadioGroupItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabelledBy",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "RadioGroupContext",
          "signature": "RadioGroupContext(\n        string? Value,\n        EventCallback<string> OnSelect,\n        List<string> ItemValues,\n        Dictionary<string, string> ItemIds)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-border",
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<RadioGroup @bind-Value=\"_selected\">\n    <Flex Gap=\"2\" Align=\"center\">\n        <RadioGroupItem Value=\"default\" />\n        <Label>Default</Label>\n    </Flex>\n    <Flex Gap=\"2\" Align=\"center\">\n        <RadioGroupItem Value=\"comfortable\" />\n        <Label>Comfortable</Label>\n    </Flex>\n    <Flex Gap=\"2\" Align=\"center\">\n        <RadioGroupItem Value=\"compact\" />\n        <Label>Compact</Label>\n    </Flex>\n</RadioGroup>"
        },
        {
          "title": "Pricing Plan",
          "code": "<RadioGroup @bind-Value=\"_plan\" Class=\"grid grid-cols-3 gap-2\">\n    @foreach (var p in new[] { (\"free\", \"Free\", \"$0\"), (\"pro\", \"Pro\", \"$15\"), (\"team\", \"Team\", \"$49\") })\n    {\n        <label class=\"@($\"flex flex-col items-center rounded-md border p-3 cursor-pointer {(_plan == p.Item1 ? \\\"border-primary\\\" : \\\"border-muted\\\")}\")>\n            <RadioGroupItem Value=\"@p.Item1\" Class=\"sr-only\" />\n            <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"semibold\">@p.Item2</Lumeo.Text>\n            <Lumeo.Text As=\"span\" Size=\"xs\" Color=\"muted\">@p.Item3/mo</Lumeo.Text>\n        </label>\n    }\n</RadioGroup>"
        },
        {
          "title": "With Form Field",
          "code": "<FormField Name=\"plan\">\n    <FormItem>\n        <FormLabel>Notification preference</FormLabel>\n        <RadioGroup @bind-Value=\"_notification\">\n            <Flex Gap=\"2\" Align=\"center\">\n                <RadioGroupItem Value=\"all\" />\n                <Label>All notifications</Label>\n            </Flex>\n            <Flex Gap=\"2\" Align=\"center\">\n                <RadioGroupItem Value=\"mentions\" />\n                <Label>Mentions only</Label>\n            </Flex>\n        </RadioGroup>\n        <FormDescription>Choose how you want to be notified.</FormDescription>\n    </FormItem>\n</FormField>"
        }
      ],
      "subComponents": {
        "RadioGroupCard": {
          "componentName": "RadioGroupCard",
          "fileName": "RadioGroupCard.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "RadioGroup.RadioGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "RadioGroupItem": {
          "componentName": "RadioGroupItem",
          "fileName": "RadioGroupItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "RadioGroup.RadioGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Rating": {
      "name": "Rating",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Star rating input with half-star support.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Rating/Rating.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<double>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Max",
          "type": "int",
          "default": "5",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AllowHalf",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ReadOnly",
          "type": "bool",
          "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": "Size",
          "type": "RatingSize",
          "default": "RatingSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<double>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "RatingSize",
          "values": [
            "Small",
            "Default",
            "Large"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Rating",
          "code": "<Rating @bind-Value=\"_rating\" />"
        },
        {
          "title": "Half Stars",
          "code": "<Rating @bind-Value=\"_rating\" AllowHalf=\"true\" />"
        },
        {
          "title": "Sizes",
          "code": "<Rating Value=\"3\" ReadOnly=\"true\" Size=\"Rating.RatingSize.Small\" />\n<Rating Value=\"3\" ReadOnly=\"true\" />\n<Rating Value=\"3\" ReadOnly=\"true\" Size=\"Rating.RatingSize.Large\" />"
        },
        {
          "title": "Read-Only",
          "code": "<Rating Value=\"4.5\" ReadOnly=\"true\" AllowHalf=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ReasoningDisplay": {
      "name": "ReasoningDisplay",
      "category": "AI",
      "subcategory": null,
      "description": "Collapsible chain-of-thought block for AI reasoning traces.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ReasoningDisplay/ReasoningDisplay.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsStreaming",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Summary",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "long?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DefaultOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ReasoningSize",
          "default": "ReasoningSize.Medium",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ReasoningVariant",
          "default": "ReasoningVariant.Default",
          "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": [
        {
          "name": "ReasoningSize",
          "values": [
            "Small",
            "Medium",
            "Large"
          ],
          "description": null
        },
        {
          "name": "ReasoningVariant",
          "values": [
            "Default",
            "Compact",
            "Detailed"
          ],
          "description": "Default = standard expand/collapse display. Compact = summary label + collapsed body limited to 3 lines. Detailed = always shows full body text with extra padding."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<ReasoningDisplay Text=\"@_reasoningText\" Summary=\"Reasoning\" />"
        },
        {
          "title": "With Duration",
          "code": "<ReasoningDisplay Text=\"@_reasoningText\" DurationMs=\"4200\" />"
        },
        {
          "title": "Streaming State",
          "code": "<ReasoningDisplay Text=\"@_partialText\" IsStreaming=\"@_streaming\" DefaultOpen=\"true\" />\n\n@code {\n    private string _partialText = string.Empty;\n    private bool _streaming;\n}"
        },
        {
          "title": "Open by Default",
          "code": "<ReasoningDisplay Text=\"@_reasoningText\" DefaultOpen=\"true\" Summary=\"Chain of thought\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Resizable": {
      "name": "Resizable",
      "category": "Layout",
      "subcategory": null,
      "description": "Draggable splitter for resizable panel layouts.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Resizable/ResizableHandle.razor",
        "UI/Resizable/ResizablePanel.razor",
        "UI/Resizable/ResizablePanelGroup.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Context",
          "type": "ResizablePanelGroup.ResizablePanelGroupContext",
          "default": "default!",
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "PanelIndex",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "WithHandle",
          "type": "bool",
          "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-border",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Horizontal",
          "code": "<ResizablePanelGroup Direction=\"ResizablePanelGroup.ResizableDirection.Horizontal\"\n                       DefaultSizes=\"@(new double[] { 50, 50 })\" Class=\"min-h-[200px] rounded-lg border\">\n    <ResizablePanel Order=\"0\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Panel One</span>\n        </div>\n    </ResizablePanel>\n    <ResizableHandle PanelIndex=\"0\" WithHandle=\"true\" />\n    <ResizablePanel Order=\"1\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Panel Two</span>\n        </div>\n    </ResizablePanel>\n</ResizablePanelGroup>"
        },
        {
          "title": "Vertical",
          "code": "<ResizablePanelGroup Direction=\"ResizablePanelGroup.ResizableDirection.Vertical\"\n                       DefaultSizes=\"@(new double[] { 40, 60 })\" Class=\"min-h-[300px] rounded-lg border\">\n    <ResizablePanel Order=\"0\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Top</span>\n        </div>\n    </ResizablePanel>\n    <ResizableHandle PanelIndex=\"0\" WithHandle=\"true\" />\n    <ResizablePanel Order=\"1\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Bottom</span>\n        </div>\n    </ResizablePanel>\n</ResizablePanelGroup>"
        },
        {
          "title": "Three Panels",
          "code": "<ResizablePanelGroup Direction=\"ResizablePanelGroup.ResizableDirection.Horizontal\"\n                       DefaultSizes=\"@(new double[] { 25, 50, 25 })\" Class=\"min-h-[200px] rounded-lg border\">\n    <ResizablePanel Order=\"0\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Sidebar</span>\n        </div>\n    </ResizablePanel>\n    <ResizableHandle PanelIndex=\"0\" WithHandle=\"true\" />\n    <ResizablePanel Order=\"1\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Content</span>\n        </div>\n    </ResizablePanel>\n    <ResizableHandle PanelIndex=\"1\" WithHandle=\"true\" />\n    <ResizablePanel Order=\"2\">\n        <div class=\"flex h-full items-center justify-center p-6\">\n            <span class=\"font-semibold\">Panel</span>\n        </div>\n    </ResizablePanel>\n</ResizablePanelGroup>"
        }
      ],
      "subComponents": {
        "ResizablePanel": {
          "componentName": "ResizablePanel",
          "fileName": "ResizablePanel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "ResizablePanelGroup.ResizablePanelGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Order",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DefaultSize",
              "type": "double",
              "default": "50",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MinSize",
              "type": "double",
              "default": "10",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MaxSize",
              "type": "double",
              "default": "90",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ResizablePanelGroup": {
          "componentName": "ResizablePanelGroup",
          "fileName": "ResizablePanelGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Direction",
              "type": "ResizableDirection",
              "default": "ResizableDirection.Horizontal",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DefaultSizes",
              "type": "double[]?",
              "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": [
            {
              "name": "ResizableDirection",
              "values": [
                "Horizontal",
                "Vertical"
              ],
              "description": null
            }
          ],
          "records": [
            {
              "name": "ResizablePanelGroupContext",
              "signature": "ResizablePanelGroupContext(\n        string GroupId,\n        ResizableDirection Direction,\n        EventCallback<(int PanelIndex, double Delta)> OnHandleDrag,\n        Func<int, double> GetPanelSize,\n        int PanelCount,\n        Action<int, double, double> RegisterPanel\n    )",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Result": {
      "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
    },
    "RichTextEditor": {
      "name": "RichTextEditor",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "WYSIWYG editor wrapping TipTap with Lumeo styling.",
      "nugetPackage": "Lumeo.Editor",
      "files": [
        "UI/RichTextEditor/AiAction.cs",
        "UI/RichTextEditor/AiActionMenu.razor",
        "UI/RichTextEditor/BubbleMenu.razor",
        "UI/RichTextEditor/EditorImageRequest.cs",
        "UI/RichTextEditor/EditorToolbar.razor",
        "UI/RichTextEditor/EditorToolbarPreset.cs",
        "UI/RichTextEditor/EditorTrigger.cs",
        "UI/RichTextEditor/RichTextEditor.razor",
        "UI/RichTextEditor/SlashCommands.cs",
        "UI/RichTextEditor/TriggerDropdown.razor",
        "UI/RichTextEditor/WordImporter.cs",
        "UI/RichTextEditor/WordImportPayload.cs",
        "UI/RichTextEditor/WordImportSizeException.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinHeight",
          "type": "int",
          "default": "180",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxHeight",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ReadOnly",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ToolbarMode",
          "type": "RichTextToolbarMode?",
          "default": null,
          "description": "Legacy toolbar mode; superseded by Toolbar.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Toolbar",
          "type": "EditorToolbarPreset",
          "default": "EditorToolbarPreset.Standard",
          "description": "Toolbar density preset. Defaults to Standard.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Triggers",
          "type": "IReadOnlyList<EditorTrigger>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableSlashCommand",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableTables",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableCodeBlock",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableImages",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableTaskList",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableMarkdownShortcuts",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableAiActions",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableBubbleMenu",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EnableDragHandle",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxLength",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AllowWordImport",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxWordImportBytes",
          "type": "long",
          "default": "8L * 1024L * 1024L",
          "description": "Maximum size, in bytes, of a Word document accepted by the in-browser import path. Defaults to 8 MB. Larger files are refused before being read into memory and surfaced to the user via WordImportError. Set explicitly when consumers expect large documents and the deployment can afford the memory.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnImageRequested",
          "type": "Func<EditorImageRequest, ValueTask<string?>>?",
          "default": null,
          "description": "Resolves a picked image into a URL (or data URI). Receives file metadata from JS; consumer is expected to upload the file out-of-band (e.g. via a paired InputFile) and return a final URL. If null, images fall back to base64.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnAiAction",
          "type": "Func<string, string, ValueTask<string?>>?",
          "default": null,
          "description": "Selection-driven AI actions. Receives the action id and selected plain text; returns replacement HTML to be inserted in place of the selection.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnWordImportRequested",
          "type": "Func<WordImportPayload, ValueTask<string>>?",
          "default": null,
          "description": "Optional override for Word import. Receives the picked file payload (filename + bytes) and returns HTML to replace the editor content. When NOT set, the file is converted in-browser via WordImporter (Mammoth runs inside the WASM bundle), so the demo works on static hosting with no server. Set this when you want server-side conversion (better fidelity for complex docs).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "RichTextToolbarMode",
          "values": [
            "None",
            "Basic",
            "Full"
          ],
          "description": "Legacy toolbar mode — kept so existing call sites compile."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [],
      "subComponents": {
        "AiActionMenu": {
          "componentName": "AiActionMenu",
          "fileName": "AiActionMenu.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Actions",
              "type": "IReadOnlyList<AiAction>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnAction",
              "type": "EventCallback<AiAction>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnAction",
              "type": "EventCallback<AiAction>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "BubbleMenu": {
          "componentName": "BubbleMenu",
          "fileName": "BubbleMenu.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "EnableAiActions",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnCommand",
              "type": "EventCallback<string>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnAiMenuToggled",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnCommand",
              "type": "EventCallback<string>",
              "description": null
            },
            {
              "name": "OnAiMenuToggled",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "EditorToolbar": {
          "componentName": "EditorToolbar",
          "fileName": "EditorToolbar.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Preset",
              "type": "EditorToolbarPreset",
              "default": "EditorToolbarPreset.Standard",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Active",
              "type": "Lumeo.Services.Interop.RichTextActiveState?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AllowWordImport",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "EnableAiActions",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnCommand",
              "type": "EventCallback<(string command, object? arg)>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnCommand",
              "type": "EventCallback<(string command, object? arg)>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TriggerDropdown": {
          "componentName": "TriggerDropdown",
          "fileName": "TriggerDropdown.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Id",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Items",
              "type": "IReadOnlyList<TriggerItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SelectedIndex",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ItemTemplate",
              "type": "RenderFragment<TriggerItem>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnPick",
              "type": "EventCallback<TriggerItem>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnHover",
              "type": "EventCallback<int>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaLabel",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnPick",
              "type": "EventCallback<TriggerItem>",
              "description": null
            },
            {
              "name": "OnHover",
              "type": "EventCallback<int>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "RingProgress": {
      "name": "RingProgress",
      "category": "Feedback",
      "subcategory": null,
      "description": "Circular determinate progress ring with optional centre label or custom content.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/RingProgress/RingProgress.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "int",
          "default": "64",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Thickness",
          "type": "int",
          "default": "6",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string",
          "default": "\"primary\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrackColor",
          "type": "string",
          "default": "\"muted\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLabel",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LabelContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RoundedCaps",
          "type": "bool",
          "default": "true",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<RingProgress Value=\"25\" ShowLabel=\"true\" />\n<RingProgress Value=\"50\" ShowLabel=\"true\" />\n<RingProgress Value=\"75\" ShowLabel=\"true\" />"
        },
        {
          "title": "Sizes",
          "code": "<RingProgress Value=\"65\" Size=\"40\" ShowLabel=\"true\" />\n<RingProgress Value=\"65\" Size=\"64\" ShowLabel=\"true\" />\n<RingProgress Value=\"65\" Size=\"96\" ShowLabel=\"true\" />"
        },
        {
          "title": "Colors",
          "code": "<RingProgress Value=\"70\" ShowLabel=\"true\" Color=\"primary\" />\n<RingProgress Value=\"70\" ShowLabel=\"true\" Color=\"success\" />\n<RingProgress Value=\"70\" ShowLabel=\"true\" Color=\"warning\" />\n<RingProgress Value=\"70\" ShowLabel=\"true\" Color=\"destructive\" />"
        },
        {
          "title": "Custom Label",
          "code": "<RingProgress Value=\"82\">\n    <LabelContent>\n        <div class=\"text-center\">\n            <div class=\"text-xs font-semibold text-foreground\">82</div>\n            <div class=\"text-[9px] text-muted-foreground\">score</div>\n        </div>\n    </LabelContent>\n</RingProgress>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "SafeArea": {
      "name": "SafeArea",
      "category": "Utility",
      "subcategory": null,
      "description": "Safe Area component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/SafeArea/SafeArea.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Top",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Bottom",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Left",
          "type": "bool",
          "default": "false",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Right",
          "type": "bool",
          "default": "false",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Top and Bottom Safe Area",
          "code": "<SafeArea Top=\"true\" Bottom=\"true\">\n    <div class=\"p-4\">\n        <p>Content padded away from notch and home indicator.</p>\n    </div>\n</SafeArea>"
        },
        {
          "title": "All Edges",
          "code": "<SafeArea Top=\"true\" Bottom=\"true\" Left=\"true\" Right=\"true\">\n    <div class=\"p-4\">\n        <p>Full safe-area padding on all four edges.</p>\n    </div>\n</SafeArea>"
        },
        {
          "title": "Bottom Only (navigation bar pattern)",
          "code": "<!-- Bottom tab bar pattern: only bottom inset needed -->\n<SafeArea Top=\"false\" Bottom=\"true\">\n    <nav class=\"flex items-center justify-around border-t border-border/40 px-4 py-3\">\n        <span>Home</span>\n        <span>Search</span>\n        <span>Profile</span>\n    </nav>\n</SafeArea>"
        },
        {
          "title": "Sticky bottom tab bar (realistic example)",
          "code": "<div class=\"relative h-64 border border-border/40 rounded-md overflow-hidden bg-background\">\n    <div class=\"p-4 space-y-2 overflow-y-auto h-full pb-16\">\n        <!-- scrollable content -->\n    </div>\n    <SafeArea Bottom=\"true\" Top=\"false\"\n              Class=\"absolute bottom-0 left-0 right-0 bg-card border-t border-border/40\">\n        <Flex Justify=\"around\" Class=\"py-3\">\n            <Button Variant=\"Button.ButtonVariant.Ghost\">\n                <Blazicon Svg=\"Lucide.Bell\" class=\"h-5 w-5\" />\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Ghost\">\n                <Blazicon Svg=\"Lucide.Search\" class=\"h-5 w-5\" />\n            </Button>\n            <Button Variant=\"Button.ButtonVariant.Ghost\">\n                <Blazicon Svg=\"Lucide.User\" class=\"h-5 w-5\" />\n            </Button>\n        </Flex>\n    </SafeArea>\n</div>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Scheduler": {
      "name": "Scheduler",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Calendar/agenda scheduler wrapping FullCalendar.",
      "nugetPackage": "Lumeo.Scheduler",
      "files": [
        "UI/Scheduler/Scheduler.razor",
        "UI/Scheduler/SchedulerTypes.cs"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Events",
          "type": "IEnumerable<SchedulerEvent>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EventsChanged",
          "type": "EventCallback<IEnumerable<SchedulerEvent>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialView",
          "type": "SchedulerView",
          "default": "SchedulerView.Month",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialDate",
          "type": "DateTime?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Editable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Selectable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BusinessHours",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"640px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FirstDayOfWeek",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnEventClick",
          "type": "EventCallback<SchedulerEvent>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnDateSelect",
          "type": "EventCallback<SchedulerDateRange>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnEventChange",
          "type": "EventCallback<SchedulerEvent>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NowIndicator",
          "type": "bool",
          "default": "true",
          "description": "Show the current-time indicator line in time-grid views. Default: true. Maps to FullCalendar's nowIndicator option.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SlotMinTime",
          "type": "TimeOnly?",
          "default": null,
          "description": "Earliest visible time slot in time-grid views (e.g. 07:00). Maps to FullCalendar's slotMinTime. Default: 00:00 (FullCalendar shows the full day).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SlotMaxTime",
          "type": "TimeOnly?",
          "default": null,
          "description": "Latest visible time slot in time-grid views (e.g. 22:00). Maps to FullCalendar's slotMaxTime. Default: 24:00 (FullCalendar shows the full day).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SlotDuration",
          "type": "TimeSpan?",
          "default": null,
          "description": "Duration of each time slot row in time-grid views. Maps to FullCalendar's slotDuration (formatted as HH:mm:ss). Default: 00:30:00.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Resources",
          "type": "IReadOnlyList<SchedulerResource>?",
          "default": null,
          "description": "Optional list of resources (people, rooms, equipment). When provided, events are color-coded by their ResourceId and a legend is rendered above the calendar. Note: this uses Lumeo's color-coding fallback, NOT FullCalendar Premium resource lanes (which require a paid FullCalendar Premium license not bundled here).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EventClassNames",
          "type": "Func<SchedulerEvent, string>?",
          "default": null,
          "description": "Optional callback that returns extra CSS class names for an event chip. The classes are appended to the FullCalendar event's classNames. Use for conditional styling without touching Color.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "EventColor",
          "type": "Func<SchedulerEvent, string>?",
          "default": null,
          "description": "Optional callback that returns a CSS color string for an event. Applied as backgroundColor / borderColor in FullCalendar. Supersedes Color when both are set; resource color applies as a fallback when neither is set.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "default": null,
          "description": "Raised when JS initialization fails (e.g. CDN down, FullCalendar threw). The argument is the error message. When raised the component renders an error card instead of the calendar.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "EventsChanged",
          "type": "EventCallback<IEnumerable<SchedulerEvent>>",
          "description": null
        },
        {
          "name": "OnEventClick",
          "type": "EventCallback<SchedulerEvent>",
          "description": null
        },
        {
          "name": "OnDateSelect",
          "type": "EventCallback<SchedulerDateRange>",
          "description": null
        },
        {
          "name": "OnEventChange",
          "type": "EventCallback<SchedulerEvent>",
          "description": null
        },
        {
          "name": "OnInitError",
          "type": "EventCallback<string>",
          "description": "Raised when JS initialization fails (e.g. CDN down, FullCalendar threw). The argument is the error message. When raised the component renders an error card instead of the calendar."
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Month View (basic)",
          "code": "<Scheduler Events=\"_events\" InitialView=\"SchedulerView.Month\" Height=\"620px\" />"
        },
        {
          "title": "Week View (timed + all-day)",
          "code": "<Scheduler Events=\"_events\"\n           InitialView=\"SchedulerView.Week\"\n           Height=\"620px\"\n           BusinessHours=\"true\" />"
        },
        {
          "title": "Click to Create",
          "code": "<Scheduler Events=\"_events\"\n           InitialView=\"SchedulerView.Week\"\n           OnDateSelect=\"HandleDateSelect\" />\n\n<Dialog @bind-Open=\"_open\">\n    <DialogContent>\n        <DialogHeader><DialogTitle>New event</DialogTitle></DialogHeader>\n        <Input @bind-Value=\"_title\" placeholder=\"Title\" />\n        <DialogFooter>\n            <Button OnClick=\"Add\">Add event</Button>\n        </DialogFooter>\n    </DialogContent>\n</Dialog>\n\n@code {\n    private bool _open;\n    private SchedulerDateRange? _range;\n    private string _title = \"\";\n    private List<SchedulerEvent> _events = new();\n\n    void HandleDateSelect(SchedulerDateRange r) { _range = r; _open = true; }\n    void Add() {\n        _events = _events.Append(new SchedulerEvent(\n            Id: Guid.NewGuid().ToString(\"N\"),\n            Title: _title,\n            Start: _range!.Start,\n            End: _range.End,\n            AllDay: _range.AllDay\n        )).ToList();\n        _open = false;\n    }\n}"
        },
        {
          "title": "Drag to Reschedule",
          "code": "<Scheduler @bind-Events=\"_events\" InitialView=\"SchedulerView.Week\" />\n\n@code {\n    private IEnumerable<SchedulerEvent> _events = new List<SchedulerEvent> { /* ... */ };\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ScrollArea": {
      "name": "ScrollArea",
      "category": "Layout",
      "subcategory": null,
      "description": "Styled custom scrollbar container.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ScrollArea/ScrollArea.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Vertical Scroll",
          "code": "<ScrollArea Class=\"h-72 rounded-md border p-4\">\n    <h4 class=\"mb-4 text-sm font-medium leading-none\">Tags</h4>\n    @foreach (var tag in _tags)\n    {\n        <div class=\"text-sm py-2 border-b\">@tag</div>\n    }\n</ScrollArea>"
        },
        {
          "title": "Chat Messages",
          "code": "<ScrollArea Class=\"h-64 rounded-md border p-4\">\n    <div class=\"space-y-3\">\n        @foreach (var msg in _messages)\n        {\n            <div class=\"@($\"flex flex-col {(msg.Mine ? \"items-end\" : \"items-start\")}\")>\n                <div class=\"@($\"rounded-lg px-3 py-2 text-sm {(msg.Mine ? \"bg-primary text-primary-foreground\" : \"bg-muted text-foreground\")}\")>\n                    @msg.Text\n                </div>\n            </div>\n        }\n    </div>\n</ScrollArea>"
        },
        {
          "title": "Horizontal Scroll",
          "code": "<ScrollArea Class=\"w-full whitespace-nowrap rounded-md border p-4\">\n    <div class=\"flex gap-4\">\n        @for (var i = 1; i <= 12; i++)\n        {\n            <div class=\"flex-shrink-0 w-32 h-20 rounded-md bg-muted flex items-center justify-center\">\n                Item @i\n            </div>\n        }\n    </div>\n</ScrollArea>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Scrollspy": {
      "name": "Scrollspy",
      "category": "Navigation",
      "subcategory": null,
      "description": "Highlights the nav item matching the current scroll section.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Scrollspy/Scrollspy.razor",
        "UI/Scrollspy/ScrollspyLink.razor",
        "UI/Scrollspy/ScrollspySection.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Offset",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Smooth",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveId",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveIdChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ActiveIdChanged",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "ScrollspyContext",
          "signature": "ScrollspyContext(string? ActiveId, EventCallback<string> OnNavigate)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Vertical Scrollspy",
          "code": "<Scrollspy Class=\"flex gap-4\" @bind-ActiveId=\"_active\">\n    <nav class=\"flex flex-col gap-1 w-40 shrink-0\">\n        <ScrollspyLink Target=\"section-1\"\n                       Class=\"px-3 py-1.5 rounded-md text-sm font-medium text-muted-foreground\n                              data-[active=true]:bg-primary data-[active=true]:text-primary-foreground\">\n            Section 1\n        </ScrollspyLink>\n        <ScrollspyLink Target=\"section-2\" Class=\"...\">Section 2</ScrollspyLink>\n        <ScrollspyLink Target=\"section-3\" Class=\"...\">Section 3</ScrollspyLink>\n    </nav>\n    <div class=\"flex-1 overflow-y-auto h-[400px] rounded-md border border-border/40\">\n        <ScrollspySection Id=\"section-1\" Class=\"p-6 min-h-[300px]\">\n            <h3>Section 1</h3>\n            <p>Content for section 1...</p>\n        </ScrollspySection>\n        <ScrollspySection Id=\"section-2\" Class=\"p-6 min-h-[300px]\">\n            <h3>Section 2</h3>\n            <p>Content for section 2...</p>\n        </ScrollspySection>\n        <ScrollspySection Id=\"section-3\" Class=\"p-6 min-h-[300px]\">\n            <h3>Section 3</h3>\n            <p>Content for section 3...</p>\n        </ScrollspySection>\n    </div>\n</Scrollspy>\n\n@code {\n    private string? _active;\n}"
        },
        {
          "title": "Horizontal Nav",
          "code": "<Scrollspy Class=\"flex flex-col\" @bind-ActiveId=\"_active\">\n    <nav class=\"flex gap-1 mb-4 border-b pb-2\">\n        <ScrollspyLink Target=\"section-1\"\n                       Class=\"px-3 py-1.5 rounded-md text-sm font-medium text-muted-foreground\n                              data-[active=true]:bg-primary data-[active=true]:text-primary-foreground\">\n            Section 1\n        </ScrollspyLink>\n        <ScrollspyLink Target=\"section-2\" Class=\"...\">Section 2</ScrollspyLink>\n    </nav>\n    <div class=\"overflow-y-auto h-[400px] rounded-md border border-border/40\">\n        <ScrollspySection Id=\"section-1\" Class=\"p-6 min-h-[300px]\">\n            <h3>Section 1</h3>\n            <p>Content...</p>\n        </ScrollspySection>\n        <ScrollspySection Id=\"section-2\" Class=\"p-6 min-h-[300px]\">\n            <h3>Section 2</h3>\n            <p>Content...</p>\n        </ScrollspySection>\n    </div>\n</Scrollspy>\n\n@code {\n    private string? _active;\n}"
        }
      ],
      "subComponents": {
        "ScrollspyLink": {
          "componentName": "ScrollspyLink",
          "fileName": "ScrollspyLink.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Scrollspy.ScrollspyContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Target",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ScrollspySection": {
          "componentName": "ScrollspySection",
          "fileName": "ScrollspySection.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Id",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Segmented": {
      "name": "Segmented",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Pill-shaped tab-like single-select control.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Segmented/Segmented.razor",
        "UI/Segmented/SegmentedItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Options",
          "type": "List<SegmentedOption>?",
          "default": null,
          "description": "Data-driven options. When set, takes precedence over ChildContent. Leave null and pass SegmentedItem children for the compound-component flavour.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": "Compound-mode content — one or more SegmentedItem. Ignored when Options is set.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Block",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "SegmentedContext",
          "signature": "SegmentedContext(\n        string? Value,\n        EventCallback<string> Select,\n        Func<bool, string> GetItemClasses)",
          "description": "Cascading context for compound-mode SegmentedItem children — they read the active value + the parent's item-class function (so style stays consistent with Options-mode) and invoke Select on click."
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<Segmented @bind-Value=\"_value\" Options=\"_options\" />"
        },
        {
          "title": "Block (Full Width)",
          "code": "<Segmented @bind-Value=\"_value\" Options=\"_options\" Block=\"true\" />"
        },
        {
          "title": "With Disabled Option",
          "code": "new SegmentedOption { Label = \"Weekly\", Value = \"weekly\", Disabled = true }"
        }
      ],
      "subComponents": {
        "SegmentedItem": {
          "componentName": "SegmentedItem",
          "fileName": "SegmentedItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Segmented.SegmentedContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": "The value selected when this item is clicked. Must match one of the parent Segmented's expected values.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IconContent",
              "type": "RenderFragment?",
              "default": null,
              "description": "Optional leading icon slot.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Select": {
      "name": "Select",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Native-feeling styled dropdown with search and groups.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Select/Select.razor",
        "UI/Select/SelectContent.razor",
        "UI/Select/SelectGroup.razor",
        "UI/Select/SelectItem.razor",
        "UI/Select/SelectLabel.razor",
        "UI/Select/SelectTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": "Popover open state. Bind via @bind-Open when the Select lives inside a parent that re-renders heavily (e.g. an EditForm with active validation) — otherwise a parameter cascade can close the popover mid-click. In the bound (controlled) mode the parent owns state and the popover survives re-renders. When unbound, the component still functions but is vulnerable to the cascade-close race; binding is the recommended pattern.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Searchable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Multiple",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Values",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<List<string>?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clearable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Creatable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnCreate",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxDisplayTags",
          "type": "int",
          "default": "3",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsLoading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        },
        {
          "name": "Items",
          "type": "IEnumerable<object>?",
          "default": null,
          "description": "Optional data source. When set, SelectContent renders options from this list instead of ChildContent.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemValue",
          "type": "Func<object, string>",
          "default": "it => it?.ToString() ?? \"\"",
          "description": "Extracts the string value for each item. Defaults to ToString().",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemText",
          "type": "Func<object, string>?",
          "default": null,
          "description": "Extracts the display label for each item. Defaults to ItemValue when null.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemGroup",
          "type": "Func<object, string?>?",
          "default": null,
          "description": "Optional group key extractor. When set, options are grouped under sticky headers.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemDisabled",
          "type": "Func<object, bool>?",
          "default": null,
          "description": "Optional per-item disabled predicate.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemTemplate",
          "type": "RenderFragment<object>?",
          "default": null,
          "description": "Optional custom render fragment for an item's content. Receives the raw item object.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Virtualize",
          "type": "bool",
          "default": null,
          "description": "When true and Items is set, uses Blazor's Virtualize component for the option list.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemSize",
          "type": "float",
          "default": "36f",
          "description": "Estimated pixel height of each option row used by the Virtualize component. Default 36.",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<List<string>?>",
          "description": null
        },
        {
          "name": "OnCreate",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "SelectContext",
          "signature": "SelectContext(\n        string? Value, bool IsOpen, bool Searchable, string SearchText,\n        bool Multiple, List<string>? Values, bool IsLoading, bool Disabled, bool Clearable, bool Creatable, int MaxDisplayTags,\n        EventCallback<string> OnSelect, EventCallback<bool> SetOpen, EventCallback<string> OnSearch,\n        EventCallback OnClear, EventCallback<string> OnCreateItem,\n        string WrapperId, string ContentId, int FocusedIndex, string? FocusedItemId, string? FocusedItemValue,\n        EventCallback<int> SetFocusedIndex,\n        Action<string, string> RegisterItem, Action<string> UnregisterItem,\n        bool Invalid, bool Required,\n        // Data-bound mode params (null when composition mode)\n        IEnumerable<object>? Items,\n        Func<object, string> ItemValue,\n        Func<object, string>? ItemText,\n        Func<object, string?>? ItemGroup,\n        Func<object, bool>? ItemDisabled,\n        RenderFragment<object>? ItemTemplate,\n        bool Virtualize,\n        float ItemSize)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Select @bind-Value=\"_selected\">\n    <SelectTrigger>\n        <span>@(_selected ?? \"Select a fruit\")</span>\n    </SelectTrigger>\n    <SelectContent>\n        <SelectItem Value=\"apple\">Apple</SelectItem>\n        <SelectItem Value=\"banana\">Banana</SelectItem>\n        <SelectItem Value=\"cherry\">Cherry</SelectItem>\n    </SelectContent>\n</Select>\n\n@code {\n    private string? _selected;\n}"
        },
        {
          "title": "With Binding",
          "code": "<Select @bind-Value=\"_selected\">\n    <SelectTrigger>\n        <span>@(_selected ?? \"Select a framework\")</span>\n    </SelectTrigger>\n    <SelectContent>\n        <SelectItem Value=\"blazor\">Blazor</SelectItem>\n        <SelectItem Value=\"react\">React</SelectItem>\n        <SelectItem Value=\"vue\">Vue</SelectItem>\n    </SelectContent>\n</Select>\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Selected: @(_selected ?? \"none\")</Lumeo.Text>"
        },
        {
          "title": "With Groups",
          "code": "<Select @bind-Value=\"_selected\">\n    <SelectTrigger>\n        <span>@(_selected ?? \"Select a timezone\")</span>\n    </SelectTrigger>\n    <SelectContent>\n        <SelectGroup>\n            <SelectLabel>North America</SelectLabel>\n            <SelectItem Value=\"est\">Eastern (EST)</SelectItem>\n            <SelectItem Value=\"cst\">Central (CST)</SelectItem>\n        </SelectGroup>\n        <SelectGroup>\n            <SelectLabel>Europe</SelectLabel>\n            <SelectItem Value=\"gmt\">Greenwich (GMT)</SelectItem>\n            <SelectItem Value=\"cet\">Central European (CET)</SelectItem>\n        </SelectGroup>\n    </SelectContent>\n</Select>"
        },
        {
          "title": "Searchable",
          "code": "<Select Searchable=\"true\" @bind-Value=\"_selected\">\n    <SelectTrigger>\n        <span>@(_selected ?? \"Search countries...\")</span>\n    </SelectTrigger>\n    <SelectContent>\n        <SelectItem Value=\"us\">United States</SelectItem>\n        <SelectItem Value=\"uk\">United Kingdom</SelectItem>\n        <SelectItem Value=\"ca\">Canada</SelectItem>\n    </SelectContent>\n</Select>"
        }
      ],
      "subComponents": {
        "SelectContent": {
          "componentName": "SelectContent",
          "fileName": "SelectContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Select.SelectContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SelectGroup": {
          "componentName": "SelectGroup",
          "fileName": "SelectGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "SelectGroupContext",
              "signature": "SelectGroupContext(string LabelId)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "SelectItem": {
          "componentName": "SelectItem",
          "fileName": "SelectItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Select.SelectContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SearchValue",
              "type": "string?",
              "default": null,
              "description": "Optional text used to match against the search input when Searchable is enabled. Falls back to Value.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SelectLabel": {
          "componentName": "SelectLabel",
          "fileName": "SelectLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "GroupContext",
              "type": "SelectGroup.SelectGroupContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SelectTrigger": {
          "componentName": "SelectTrigger",
          "fileName": "SelectTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Select.SelectContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Placeholder",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Separator": {
      "name": "Separator",
      "category": "Layout",
      "subcategory": null,
      "description": "Horizontal or vertical dividing rule.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Separator/Separator.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Orientation",
          "type": "SeparatorOrientation",
          "default": "SeparatorOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "SeparatorOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-muted",
        "--color-muted-foreground"
      ],
      "examples": [
        {
          "title": "Horizontal",
          "code": "<Stack Gap=\"1\">\n    <Heading Level=\"4\" Size=\"sm\" Weight=\"medium\" Class=\"leading-none\">Lumeo UI</Heading>\n    <Lumeo.Text Size=\"sm\" Color=\"muted\">An open-source component library for Blazor.</Lumeo.Text>\n</Stack>\n<Separator Class=\"my-4\" />\n<Flex Gap=\"4\" Align=\"center\" Class=\"h-5 text-sm\">\n    <Lumeo.Text As=\"span\" Size=\"sm\">Docs</Lumeo.Text>\n    <Separator Orientation=\"Separator.SeparatorOrientation.Vertical\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\">Source</Lumeo.Text>\n    <Separator Orientation=\"Separator.SeparatorOrientation.Vertical\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\">Blog</Lumeo.Text>\n</Flex>"
        },
        {
          "title": "In a Card",
          "code": "<Card>\n    <CardContent Class=\"pt-4\">\n        <Stack Gap=\"3\">\n            <Flex Align=\"center\" Justify=\"between\" Class=\"text-sm\">\n                <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">Subtotal</Lumeo.Text>\n                <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">$89.00</Lumeo.Text>\n            </Flex>\n            <Flex Align=\"center\" Justify=\"between\" Class=\"text-sm\">\n                <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">Shipping</Lumeo.Text>\n                <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"medium\">$4.99</Lumeo.Text>\n            </Flex>\n            <Separator />\n            <Flex Align=\"center\" Justify=\"between\" Class=\"text-sm font-semibold\">\n                <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"semibold\">Total</Lumeo.Text>\n                <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"semibold\">$93.99</Lumeo.Text>\n            </Flex>\n        </Stack>\n    </CardContent>\n</Card>"
        },
        {
          "title": "Vertical",
          "code": "<Flex Gap=\"4\" Align=\"center\" Class=\"h-5 text-sm\">\n    <Lumeo.Text As=\"span\" Size=\"sm\">Home</Lumeo.Text>\n    <Separator Orientation=\"Separator.SeparatorOrientation.Vertical\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\">Components</Lumeo.Text>\n    <Separator Orientation=\"Separator.SeparatorOrientation.Vertical\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\">Themes</Lumeo.Text>\n    <Separator Orientation=\"Separator.SeparatorOrientation.Vertical\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\">GitHub</Lumeo.Text>\n</Flex>"
        },
        {
          "title": "With Label",
          "code": "<Separator>or continue with</Separator>\n<Separator>Section Title</Separator>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Sheet": {
      "name": "Sheet",
      "category": "Overlay",
      "subcategory": null,
      "description": "Slide-in side panel from left/right/top/bottom.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Sheet/Sheet.razor",
        "UI/Sheet/SheetClose.razor",
        "UI/Sheet/SheetContent.razor",
        "UI/Sheet/SheetDescription.razor",
        "UI/Sheet/SheetFooter.razor",
        "UI/Sheet/SheetHeader.razor",
        "UI/Sheet/SheetTitle.razor",
        "UI/Sheet/SheetTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "SheetContext",
          "signature": "SheetContext(bool IsOpen, EventCallback<bool> SetOpen, string TitleId, string DescriptionId)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default (Right)",
          "code": "<Sheet @bind-Open=\"_isOpen\">\n    <SheetTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Sheet</Button>\n    </SheetTrigger>\n    <SheetContent>\n        <SheetHeader>\n            <SheetTitle>Edit Profile</SheetTitle>\n            <SheetDescription>Make changes to your profile here.</SheetDescription>\n        </SheetHeader>\n        <Grid Columns=\"4\" Gap=\"4\" Class=\"items-center py-4\">\n            <Label Class=\"text-right\">Name</Label>\n            <Input Class=\"col-span-3\" Value=\"John Doe\" />\n        </Grid>\n        <SheetFooter>\n            <SheetClose>\n                <Button>Save Changes</Button>\n            </SheetClose>\n        </SheetFooter>\n    </SheetContent>\n</Sheet>\n\n@code {\n    private bool _isOpen;\n}"
        },
        {
          "title": "Side Variations",
          "code": "<Sheet @bind-Open=\"_isTopOpen\">\n    <SheetTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Top</Button>\n    </SheetTrigger>\n    <SheetContent Side=\"SheetContent.SheetSide.Top\">\n        <SheetHeader>\n            <SheetTitle>Top Sheet</SheetTitle>\n            <SheetDescription>This sheet slides in from the top.</SheetDescription>\n        </SheetHeader>\n    </SheetContent>\n</Sheet>\n\n<Sheet @bind-Open=\"_isLeftOpen\">\n    <SheetTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Left</Button>\n    </SheetTrigger>\n    <SheetContent Side=\"SheetContent.SheetSide.Left\">\n        <SheetHeader>\n            <SheetTitle>Left Sheet</SheetTitle>\n            <SheetDescription>This sheet slides in from the left.</SheetDescription>\n        </SheetHeader>\n    </SheetContent>\n</Sheet>"
        },
        {
          "title": "Sizes",
          "code": "@foreach (var size in Enum.GetValues<SheetContent.SheetSize>())\n{\n    <Sheet @bind-Open=\"@_sheetSizeOpen[size]\">\n        <SheetTrigger>\n            <Button Variant=\"Button.ButtonVariant.Outline\">@size</Button>\n        </SheetTrigger>\n        <SheetContent Size=\"@size\">\n            <SheetHeader>\n                <SheetTitle>@size Sheet</SheetTitle>\n                <SheetDescription>This sheet uses Size=\"SheetContent.SheetSize.@size\"</SheetDescription>\n            </SheetHeader>\n            <Stack Gap=\"4\" Class=\"py-4\">\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">Sheet content goes here.</Lumeo.Text>\n            </Stack>\n        </SheetContent>\n    </Sheet>\n}\n\n@code {\n    private Dictionary<SheetContent.SheetSize, bool> _sheetSizeOpen =\n        Enum.GetValues<SheetContent.SheetSize>().ToDictionary(s => s, _ => false);\n}"
        },
        {
          "title": "Prevent Close",
          "code": "<Sheet @bind-Open=\"_preventSheetOpen\">\n    <SheetTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Open Protected Sheet</Button>\n    </SheetTrigger>\n    <SheetContent PreventClose=\"true\">\n        <SheetHeader>\n            <SheetTitle>Protected Sheet</SheetTitle>\n            <SheetDescription>This sheet cannot be dismissed by clicking outside.</SheetDescription>\n        </SheetHeader>\n        <Stack Gap=\"4\" Class=\"py-4\">\n            <Button OnClick=\"@(() => _preventSheetOpen = false)\">Close Sheet</Button>\n        </Stack>\n    </SheetContent>\n</Sheet>\n\n@code {\n    private bool _preventSheetOpen;\n}"
        }
      ],
      "subComponents": {
        "SheetClose": {
          "componentName": "SheetClose",
          "fileName": "SheetClose.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Sheet.SheetContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetContent": {
          "componentName": "SheetContent",
          "fileName": "SheetContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Sheet.SheetContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Shell",
              "type": "OverlayShellMarker?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "SheetSide",
              "default": "SheetSide.Right",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Size",
              "type": "SheetSize",
              "default": "SheetSize.Default",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Animation",
              "type": "SheetAnimation",
              "default": "SheetAnimation.Slide",
              "description": "How the sheet enters/leaves. Slide (default) animates from the configured Side. Fade uses a simple opacity tween — useful in dense forms where popovers and animations compete. None disables the animation entirely.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PreventClose",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SwipeToClose",
              "type": "bool",
              "default": "false",
              "description": "When true, the sheet can be dismissed by swiping in the direction opposite to its Side (e.g. swipe-down on a Bottom sheet). Default false to avoid conflicts with scrollable content. Wire to true only when the sheet's content fits without scrolling.",
              "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": [
            {
              "name": "SheetSide",
              "values": [
                "Top",
                "Right",
                "Bottom",
                "Left"
              ],
              "description": null
            },
            {
              "name": "SheetSize",
              "values": [
                "Sm",
                "Default",
                "Lg",
                "Xl",
                "Full"
              ],
              "description": null
            },
            {
              "name": "SheetAnimation",
              "values": [
                "Slide",
                "Fade",
                "None"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetDescription": {
          "componentName": "SheetDescription",
          "fileName": "SheetDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Sheet.SheetContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetFooter": {
          "componentName": "SheetFooter",
          "fileName": "SheetFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetHeader": {
          "componentName": "SheetHeader",
          "fileName": "SheetHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetTitle": {
          "componentName": "SheetTitle",
          "fileName": "SheetTitle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Sheet.SheetContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SheetTrigger": {
          "componentName": "SheetTrigger",
          "fileName": "SheetTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Sheet.SheetContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "ShimmerButton": {
      "name": "ShimmerButton",
      "category": "Motion",
      "subcategory": null,
      "description": "Button with animated shimmer border beam.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/ShimmerButton/ShimmerButton.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Shimmer",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShimmerColor",
          "type": "string?",
          "default": null,
          "description": "CSS color used for the shimmer sweep — defaults to a translucent foreground.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "Button.ButtonVariant",
          "default": "Button.ButtonVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "Button.ButtonSize",
          "default": "Button.ButtonSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PressEffect",
          "type": "Button.ButtonPressEffect",
          "default": "Button.ButtonPressEffect.None",
          "description": "Visual feedback when the button is pressed down. Default is None (no press animation — original behaviour).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-destructive",
        "--color-destructive-foreground",
        "--color-input",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default Shimmer",
          "code": "<ShimmerButton>Get Started</ShimmerButton>\n<ShimmerButton Variant=\"Button.ButtonVariant.Secondary\">Learn More</ShimmerButton>"
        },
        {
          "title": "Shimmer Off",
          "code": "<ShimmerButton Shimmer=\"false\">No Shimmer</ShimmerButton>\n<ShimmerButton Shimmer=\"true\">With Shimmer</ShimmerButton>"
        },
        {
          "title": "Variants",
          "code": "<ShimmerButton>Default</ShimmerButton>\n<ShimmerButton Variant=\"Button.ButtonVariant.Outline\">Outline</ShimmerButton>\n<ShimmerButton Variant=\"Button.ButtonVariant.Secondary\">Secondary</ShimmerButton>\n<ShimmerButton Variant=\"Button.ButtonVariant.Ghost\">Ghost</ShimmerButton>"
        },
        {
          "title": "Sizes",
          "code": "<ShimmerButton Size=\"Button.ButtonSize.Sm\">Small</ShimmerButton>\n<ShimmerButton>Default</ShimmerButton>\n<ShimmerButton Size=\"Button.ButtonSize.Lg\">Large</ShimmerButton>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Sidebar": {
      "name": "Sidebar",
      "category": "Navigation",
      "subcategory": null,
      "description": "Collapsible app sidebar with groups, menu, and trigger.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Sidebar/SidebarComponent.razor",
        "UI/Sidebar/SidebarContent.razor",
        "UI/Sidebar/SidebarFooter.razor",
        "UI/Sidebar/SidebarGroup.razor",
        "UI/Sidebar/SidebarGroupLabel.razor",
        "UI/Sidebar/SidebarHeader.razor",
        "UI/Sidebar/SidebarMenu.razor",
        "UI/Sidebar/SidebarMenuButton.razor",
        "UI/Sidebar/SidebarMenuItem.razor",
        "UI/Sidebar/SidebarProvider.razor",
        "UI/Sidebar/SidebarSeparator.razor",
        "UI/Sidebar/SidebarTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "State",
          "type": "SidebarProvider.SidebarState?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Side",
          "type": "SidebarSide",
          "default": "SidebarSide.Left",
          "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": [
        {
          "name": "SidebarSide",
          "values": [
            "Left",
            "Right"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Push (Default)",
          "code": "<SidebarProvider @bind-IsCollapsed=\"_isCollapsed\">\n    <SidebarComponent>\n        <SidebarHeader>\n            <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"semibold\">Acme Inc</Lumeo.Text>\n        </SidebarHeader>\n        <SidebarContent>\n            <SidebarGroup>\n                <SidebarGroupLabel>Platform</SidebarGroupLabel>\n                <SidebarMenu>\n                    <SidebarMenuItem>\n                        <SidebarMenuButton Href=\"#\" IsActive=\"true\">\n                            <IconContent><Blazicon Svg=\"Lucide.House\" class=\"h-4 w-4\" /></IconContent>\n                            <LabelContent><span>Dashboard</span></LabelContent>\n                        </SidebarMenuButton>\n                    </SidebarMenuItem>\n                </SidebarMenu>\n            </SidebarGroup>\n        </SidebarContent>\n        <SidebarFooter>\n            <Avatar Src=\"\" Fallback=\"CN\" />\n        </SidebarFooter>\n    </SidebarComponent>\n    <main class=\"flex-1 p-6\">\n        <SidebarTrigger />\n    </main>\n</SidebarProvider>"
        },
        {
          "title": "Overlay",
          "code": "<SidebarProvider @bind-IsCollapsed=\"_isCollapsed\" Variant=\"SidebarProvider.SidebarVariant.Overlay\">\n    <SidebarComponent>\n        <SidebarHeader>\n            <Lumeo.Text As=\"span\" Size=\"sm\" Weight=\"semibold\">Workspace</Lumeo.Text>\n        </SidebarHeader>\n        <SidebarContent>\n            <SidebarGroup>\n                <SidebarGroupLabel>Navigation</SidebarGroupLabel>\n                <SidebarMenu>\n                    <SidebarMenuItem>\n                        <SidebarMenuButton Href=\"#\" IsActive=\"true\">\n                            <IconContent><Blazicon Svg=\"Lucide.House\" class=\"h-4 w-4\" /></IconContent>\n                            <LabelContent><span>Home</span></LabelContent>\n                        </SidebarMenuButton>\n                    </SidebarMenuItem>\n                </SidebarMenu>\n            </SidebarGroup>\n        </SidebarContent>\n    </SidebarComponent>\n    <main class=\"flex-1 p-6\">\n        <SidebarTrigger />\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Click backdrop to dismiss.</Lumeo.Text>\n    </main>\n</SidebarProvider>"
        },
        {
          "title": "Side — interactive",
          "code": "<Segmented @bind-Value=\"_sidebarSideSel\" Options=\"_sidebarSideOptions\" />\n<SidebarProvider>\n    <SidebarComponent Side=\"@_activeSidebarSide\">\n        <SidebarHeader>...</SidebarHeader>\n        <SidebarContent>...</SidebarContent>\n    </SidebarComponent>\n    <main class=\"flex-1 p-6\">\n        <SidebarTrigger />\n    </main>\n</SidebarProvider>\n\n@code {\n    private string _sidebarSideSel = \"Left\";\n    private SidebarComponent.SidebarSide _activeSidebarSide =>\n        Enum.Parse<SidebarComponent.SidebarSide>(_sidebarSideSel);\n    private List<Segmented.SegmentedOption> _sidebarSideOptions = new()\n    {\n        new() { Label = \"Left\", Value = \"Left\" },\n        new() { Label = \"Right\", Value = \"Right\" },\n    };\n}"
        },
        {
          "title": "Icon",
          "code": "<SidebarProvider @bind-IsCollapsed=\"_isCollapsed\" Variant=\"SidebarProvider.SidebarVariant.Icon\">\n    <SidebarComponent>\n        <SidebarContent>\n            <SidebarGroup>\n                <SidebarMenu>\n                    <SidebarMenuItem>\n                        <SidebarMenuButton Href=\"#\" IsActive=\"true\" Tooltip=\"Home\">\n                            <IconContent><Blazicon Svg=\"Lucide.House\" class=\"h-4 w-4\" /></IconContent>\n                            <LabelContent><span>Home</span></LabelContent>\n                        </SidebarMenuButton>\n                    </SidebarMenuItem>\n                </SidebarMenu>\n            </SidebarGroup>\n        </SidebarContent>\n    </SidebarComponent>\n    <main class=\"flex-1 p-6\">\n        <SidebarTrigger />\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Toggle to expand with labels.</Lumeo.Text>\n    </main>\n</SidebarProvider>"
        }
      ],
      "subComponents": {
        "SidebarContent": {
          "componentName": "SidebarContent",
          "fileName": "SidebarContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarFooter": {
          "componentName": "SidebarFooter",
          "fileName": "SidebarFooter.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarGroup": {
          "componentName": "SidebarGroup",
          "fileName": "SidebarGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarGroupLabel": {
          "componentName": "SidebarGroupLabel",
          "fileName": "SidebarGroupLabel.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "State",
              "type": "SidebarProvider.SidebarState?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarHeader": {
          "componentName": "SidebarHeader",
          "fileName": "SidebarHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarMenu": {
          "componentName": "SidebarMenu",
          "fileName": "SidebarMenu.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarMenuButton": {
          "componentName": "SidebarMenuButton",
          "fileName": "SidebarMenuButton.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "State",
              "type": "SidebarProvider.SidebarState?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "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": "LabelContent",
              "type": "RenderFragment?",
              "default": null,
              "description": "Label slot. Named LabelContent to avoid shadowing the &lt;Label&gt; component.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Href",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Tooltip",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsActive",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarMenuItem": {
          "componentName": "SidebarMenuItem",
          "fileName": "SidebarMenuItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarProvider": {
          "componentName": "SidebarProvider",
          "fileName": "SidebarProvider.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsCollapsed",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsCollapsedChanged",
              "type": "EventCallback<bool>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Variant",
              "type": "SidebarVariant",
              "default": "SidebarVariant.Push",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "IsCollapsedChanged",
              "type": "EventCallback<bool>",
              "description": null
            }
          ],
          "enums": [
            {
              "name": "SidebarVariant",
              "values": [
                "Push",
                "Overlay",
                "Icon"
              ],
              "description": null
            }
          ],
          "records": [
            {
              "name": "SidebarState",
              "signature": "SidebarState(bool IsCollapsed, EventCallback Toggle, SidebarVariant Variant)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarSeparator": {
          "componentName": "SidebarSeparator",
          "fileName": "SidebarSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SidebarTrigger": {
          "componentName": "SidebarTrigger",
          "fileName": "SidebarTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "State",
              "type": "SidebarProvider.SidebarState",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Skeleton": {
      "name": "Skeleton",
      "category": "Feedback",
      "subcategory": null,
      "description": "Pulsing placeholder block for loading states.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Skeleton/Skeleton.razor",
        "UI/Skeleton/SkeletonCard.razor",
        "UI/Skeleton/SkeletonCircle.razor",
        "UI/Skeleton/SkeletonText.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Animation",
          "type": "SkeletonAnimation",
          "default": "SkeletonAnimation.Pulse",
          "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": [
        {
          "name": "SkeletonAnimation",
          "values": [
            "Pulse",
            "Wave",
            "None"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-primary",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Shapes",
          "code": "<Stack Gap=\"4\">\n    <Skeleton Class=\"h-4 w-[250px]\" />\n    <Skeleton Class=\"h-4 w-[200px]\" />\n    <Skeleton Class=\"h-4 w-[150px]\" />\n</Stack>"
        },
        {
          "title": "Card Skeleton",
          "code": "<Card>\n    <CardHeader>\n        <Skeleton Class=\"h-5 w-[180px]\" />\n        <Skeleton Class=\"h-4 w-[250px]\" />\n    </CardHeader>\n    <CardContent>\n        <Stack Gap=\"2\">\n            <Skeleton Class=\"h-4 w-full\" />\n            <Skeleton Class=\"h-4 w-full\" />\n            <Skeleton Class=\"h-4 w-[80%]\" />\n        </Stack>\n    </CardContent>\n</Card>"
        },
        {
          "title": "Profile Skeleton",
          "code": "<Flex Align=\"center\" Gap=\"4\">\n    <Skeleton Class=\"h-12 w-12 rounded-full\" />\n    <Stack Gap=\"2\">\n        <Skeleton Class=\"h-4 w-[200px]\" />\n        <Skeleton Class=\"h-4 w-[160px]\" />\n    </Stack>\n</Flex>"
        },
        {
          "title": "List Skeleton",
          "code": "@for (var i = 0; i < 3; i++)\n{\n    <Flex Align=\"center\" Gap=\"4\">\n        <Skeleton Class=\"h-10 w-10 rounded-full\" />\n        <Stack Gap=\"2\" Class=\"flex-1\">\n            <Skeleton Class=\"h-4 w-[60%]\" />\n            <Skeleton Class=\"h-3 w-[40%]\" />\n        </Stack>\n    </Flex>\n}"
        }
      ],
      "subComponents": {
        "SkeletonCard": {
          "componentName": "SkeletonCard",
          "fileName": "SkeletonCard.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Animation",
              "type": "Skeleton.SkeletonAnimation",
              "default": "Skeleton.SkeletonAnimation.Pulse",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SkeletonCircle": {
          "componentName": "SkeletonCircle",
          "fileName": "SkeletonCircle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Animation",
              "type": "Skeleton.SkeletonAnimation",
              "default": "Skeleton.SkeletonAnimation.Pulse",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SkeletonText": {
          "componentName": "SkeletonText",
          "fileName": "SkeletonText.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Lines",
              "type": "int",
              "default": "3",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Animation",
              "type": "Skeleton.SkeletonAnimation",
              "default": "Skeleton.SkeletonAnimation.Pulse",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Slider": {
      "name": "Slider",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Range slider with single and dual thumb modes.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Slider/Slider.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<double>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsRange",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueEnd",
          "type": "double",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueEndChanged",
          "type": "EventCallback<double>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Min",
          "type": "double",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Max",
          "type": "double",
          "default": "100",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Step",
          "type": "double",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "string",
          "default": "\"Horizontal\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible name exposed via aria-label on the underlying range input. Required for WCAG compliance when the slider is not visually labelled by adjacent text connected via for/htmlFor. For range sliders (IsRange=true) the end handle's aria-label is automatically suffixed with \"(end)\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowTooltip",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Marks",
          "type": "List<double>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowTicks",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FormatTooltip",
          "type": "Func<double, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Culture used for the default tooltip/mark value formatting. When null (default) falls back to CurrentCulture. Ignored when FormatTooltip is supplied.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<double>",
          "description": null
        },
        {
          "name": "ValueEndChanged",
          "type": "EventCallback<double>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Slider @bind-Value=\"_value\" />\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Value: @_value</Lumeo.Text>\n\n@code {\n    private double _value = 50;\n}"
        },
        {
          "title": "Custom Range",
          "code": "<Slider @bind-Value=\"_value\" Min=\"0\" Max=\"1000\" Step=\"50\" />\n\n@code {\n    private double _value = 500;\n}"
        },
        {
          "title": "Step Values",
          "code": "<Slider @bind-Value=\"_value\" Min=\"0\" Max=\"10\" Step=\"1\" />\n\n@code {\n    private double _value = 5;\n}"
        },
        {
          "title": "Disabled",
          "code": "<Slider Value=\"40\" Disabled=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Sortable": {
      "name": "Sortable",
      "category": "Drag & Drop",
      "subcategory": null,
      "description": "Drag-and-drop reorderable list.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Sortable/SortableList.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Items",
          "type": "List<TItem>",
          "default": "[]",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemsChanged",
          "type": "EventCallback<List<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ItemTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Handle",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Group",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Key",
          "type": "Func<TItem, object>?",
          "default": null,
          "description": "Optional selector that returns a stable, unique key for each item. Providing this ensures Blazor's diffing engine tracks items by identity rather than index — critical for drag-reorder to map DOM state correctly. If omitted, the item reference itself is used as the key.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ItemsChanged",
          "type": "EventCallback<List<TItem>>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Sortable List",
          "code": "<SortableList TItem=\"string\" Items=\"@_tasks\" ItemsChanged=\"@(v => _tasks = v)\">\n    <ItemTemplate Context=\"item\">\n        <Lumeo.Text Class=\"text-sm\">@item</Lumeo.Text>\n    </ItemTemplate>\n</SortableList>"
        },
        {
          "title": "No Handle (drag entire card)",
          "code": "<SortableList TItem=\"string\" Items=\"@_tasks\" ItemsChanged=\"@(v => _tasks = v)\" Handle=\"false\">\n    <ItemTemplate Context=\"item\">\n        <Lumeo.Text Class=\"text-sm\">@item</Lumeo.Text>\n    </ItemTemplate>\n</SortableList>"
        },
        {
          "title": "Rich Item Template",
          "code": "<SortableList TItem=\"TaskItem\" Items=\"@_tasks\" ItemsChanged=\"@(v => _tasks = v)\">\n    <ItemTemplate Context=\"task\">\n        <Flex Class=\"items-center gap-3 w-full\">\n            <DynamicIcon Name=\"@task.Icon\" Class=\"h-4 w-4 text-primary\" />\n            <Stack Gap=\"0\" Class=\"flex-1\">\n                <Lumeo.Text Class=\"text-sm font-medium\">@task.Title</Lumeo.Text>\n                <Lumeo.Text Class=\"text-xs text-muted-foreground\">@task.Assignee</Lumeo.Text>\n            </Stack>\n            <Badge Variant=\"Badge.BadgeVariant.Secondary\">@task.Priority</Badge>\n        </Flex>\n    </ItemTemplate>\n</SortableList>"
        },
        {
          "title": "Disabled",
          "code": "<SortableList TItem=\"string\" Items=\"@_tasks\" Disabled=\"true\">\n    <ItemTemplate Context=\"item\">\n        <Lumeo.Text Class=\"text-sm\">@item</Lumeo.Text>\n    </ItemTemplate>\n</SortableList>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Spacer": {
      "name": "Spacer",
      "category": "Layout",
      "subcategory": null,
      "description": "Flex-grow spacer that pushes siblings apart.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Spacer/Spacer.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Size",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Flex Spacer",
          "code": "<Flex Align=\"center\">\n    <Text Weight=\"semibold\">Brand</Text>\n    <Spacer />\n    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\">Login</Button>\n</Flex>"
        },
        {
          "title": "Fixed Size",
          "code": "<Stack Direction=\"Stack.StackDirection.Horizontal\" Align=\"center\">\n    <Avatar />\n    <Spacer Size=\"4\" />\n    <Stack Gap=\"0\">\n        <Text Weight=\"medium\" Size=\"sm\">Jane Doe</Text>\n        <Text Color=\"muted\" Size=\"xs\">jane@example.com</Text>\n    </Stack>\n</Stack>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "SparkCard": {
      "name": "SparkCard",
      "category": "Dashboard",
      "subcategory": null,
      "description": "Small dashboard card with an inline sparkline chart.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/SparkCard/SparkCard.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Data",
          "type": "IEnumerable<double>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "SparkCardSize",
          "default": "SparkCardSize.Medium",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "SparkCardVariant",
          "default": "SparkCardVariant.Default",
          "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": [
        {
          "name": "SparkCardSize",
          "values": [
            "Small",
            "Medium",
            "Large"
          ],
          "description": null
        },
        {
          "name": "SparkCardVariant",
          "values": [
            "Default",
            "Bordered",
            "Filled"
          ],
          "description": "Default = standard card border. Bordered = thicker 2px border. Filled = muted background."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-card-foreground",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<Grid Columns=\"3\" Gap=\"4\">\n    <SparkCard Label=\"Revenue\" Value=\"$24,800\" Data=\"@_revenueData\" />\n    <SparkCard Label=\"Sessions\" Value=\"8,412\" Data=\"@_sessionsData\" />\n    <SparkCard Label=\"Bounce Rate\" Value=\"34.2%\" Data=\"@_bounceData\" />\n</Grid>\n\n@code {\n    private IEnumerable<double> _revenueData = new double[] { 12, 18, 14, 22, 19, 25, 21, 30, 28, 35, 31 };\n}"
        },
        {
          "title": "Custom Sparkline Slot",
          "code": "<SparkCard Label=\"Page Views\" Value=\"94,210\">\n    <Sparkline Data=\"@_data\" Class=\"h-10 w-full\" Color=\"var(--color-primary)\" />\n</SparkCard>"
        },
        {
          "title": "Without Data (Label + Value only)",
          "code": "<SparkCard Label=\"Uptime\" Value=\"99.98%\" />\n<SparkCard Label=\"SLA\" Value=\"100%\" />\n<SparkCard Label=\"Incidents\" Value=\"0\" />"
        },
        {
          "title": "Variant (interactive)",
          "code": "<Segmented @bind-Value=\"_variant\">\n    <SegmentedItem Value=\"@SparkCard.SparkCardVariant.Default\">Default</SegmentedItem>\n    <SegmentedItem Value=\"@SparkCard.SparkCardVariant.Bordered\">Bordered</SegmentedItem>\n    <SegmentedItem Value=\"@SparkCard.SparkCardVariant.Filled\">Filled</SegmentedItem>\n</Segmented>\n<Grid Columns=\"3\" Gap=\"4\">\n    <SparkCard Label=\"Revenue\" Value=\"$24,800\" Data=\"@_data\" Variant=\"@_variant\" />\n    <SparkCard Label=\"Sessions\" Value=\"8,412\" Data=\"@_data\" Variant=\"@_variant\" />\n    <SparkCard Label=\"Bounce Rate\" Value=\"34.2%\" Data=\"@_data\" Variant=\"@_variant\" />\n</Grid>\n\n@code { private SparkCard.SparkCardVariant _variant = SparkCard.SparkCardVariant.Default; }"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Sparkles": {
      "name": "Sparkles",
      "category": "Motion",
      "subcategory": null,
      "description": "Decorative sparkle particle animation.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/Sparkles/Sparkles.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Count",
          "type": "int",
          "default": "5",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinSize",
          "type": "int",
          "default": "6",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxSize",
          "type": "int",
          "default": "14",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string",
          "default": "\"var(--color-primary)\"",
          "description": "CSS color of the sparkles — defaults to var(--color-primary).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "Sparkle",
          "signature": "Sparkle(double Top, double Left, int Size, int Delay, int Duration)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Text Wrap",
          "code": "<Sparkles>\n    <span class=\"text-lg font-semibold\">New Feature</span>\n</Sparkles>\n\n<Sparkles Count=\"3\">\n    <Badge>Pro</Badge>\n</Sparkles>"
        },
        {
          "title": "Custom Color",
          "code": "<Sparkles Color=\"var(--color-primary)\">\n    <span class=\"text-lg font-semibold text-primary\">Primary</span>\n</Sparkles>\n\n<Sparkles Color=\"oklch(0.7 0.2 30)\">\n    <span class=\"text-lg font-semibold\">Amber</span>\n</Sparkles>"
        },
        {
          "title": "Dense Sparkles",
          "code": "<Sparkles Count=\"12\" MinSize=\"8\" MaxSize=\"18\">\n    <Heading Level=\"2\">Magical Heading</Heading>\n</Sparkles>"
        },
        {
          "title": "Subtle (Few Sparkles)",
          "code": "<Sparkles Count=\"2\" MinSize=\"4\" MaxSize=\"8\">\n    <Button>Upgrade</Button>\n</Sparkles>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Sparkline": {
      "name": "Sparkline",
      "category": "Data Display",
      "subcategory": "Status & Indicators",
      "description": "Inline SVG trend chart primitive — line, area, or bars for tables and KPI strips.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Sparkline/Sparkline.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Values",
          "type": "IEnumerable<double>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "int",
          "default": "32",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Type",
          "type": "SparkType",
          "default": "SparkType.Line",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowArea",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowLast",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "StrokeWidth",
          "type": "double",
          "default": "1.5",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": "\"Trend\"",
          "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": [
        {
          "name": "SparkType",
          "values": [
            "Line",
            "Area",
            "Bars"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "SpeedDial": {
      "name": "SpeedDial",
      "category": "Navigation",
      "subcategory": null,
      "description": "Floating action button that fans out sub-actions.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/SpeedDial/SpeedDial.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Items",
          "type": "List<SpeedDialItem>",
          "default": "new()",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Icon",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Position",
          "type": "SpeedDialPosition",
          "default": "SpeedDialPosition.BottomRight",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Direction",
          "type": "SpeedDialDirection",
          "default": "SpeedDialDirection.Up",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "string",
          "default": "\"Default\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "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": [
        {
          "name": "SpeedDialPosition",
          "values": [
            "BottomRight",
            "BottomLeft",
            "TopRight",
            "TopLeft"
          ],
          "description": null
        },
        {
          "name": "SpeedDialDirection",
          "values": [
            "Up",
            "Down",
            "Left",
            "Right"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Speed Dial (Bottom Right)",
          "code": "<SpeedDial Items=\"@_actions\" />\n\n@code {\n    private List<SpeedDial.SpeedDialItem> _actions = new()\n    {\n        new() { Label = \"New Document\", Icon = \"\uD83D\uDCC4\" },\n        new() { Label = \"Upload File\", Icon = \"\uD83D\uDCC1\" },\n        new() { Label = \"Add Reminder\", Icon = \"\uD83D\uDD14\" },\n    };\n}"
        },
        {
          "title": "Bottom Left Position",
          "code": "<SpeedDial Items=\"@_actions\" Position=\"SpeedDial.SpeedDialPosition.BottomLeft\" />"
        },
        {
          "title": "Direction: Left",
          "code": "<SpeedDial Items=\"@_actions\"\n         Position=\"SpeedDial.SpeedDialPosition.TopRight\"\n         Direction=\"SpeedDial.SpeedDialDirection.Left\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Spinner": {
      "name": "Spinner",
      "category": "Feedback",
      "subcategory": null,
      "description": "Indeterminate loading spinner with size variants.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Spinner/Spinner.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Size",
          "type": "SpinnerSize",
          "default": "SpinnerSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "SpinnerVariant",
          "default": "SpinnerVariant.Ring",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "SpinnerSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        },
        {
          "name": "SpinnerVariant",
          "values": [
            "Ring",
            "Dots",
            "Bars"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Sizes",
          "code": "<Spinner Size=\"Spinner.SpinnerSize.Sm\" />\n<Spinner />\n<Spinner Size=\"Spinner.SpinnerSize.Lg\" />"
        },
        {
          "title": "With Text",
          "code": "<Flex Align=\"center\" Gap=\"2\">\n    <Spinner Size=\"Spinner.SpinnerSize.Sm\" />\n    <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">Loading...</Lumeo.Text>\n</Flex>"
        },
        {
          "title": "In a Button",
          "code": "<Button Disabled=\"true\">\n    <Spinner Size=\"Spinner.SpinnerSize.Sm\" Class=\"mr-2\" />\n    Please wait\n</Button>"
        },
        {
          "title": "Variant — interactive",
          "code": "<Spinner Variant=\"Spinner.SpinnerVariant.Ring\" />\n<Spinner Variant=\"Spinner.SpinnerVariant.Dots\" />\n<Spinner Variant=\"Spinner.SpinnerVariant.Bars\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "SplitButton": {
      "name": "SplitButton",
      "category": "Utility",
      "subcategory": null,
      "description": "Split Button component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/SplitButton/SplitButton.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MenuContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "Button.ButtonVariant",
          "default": "Button.ButtonVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "Button.ButtonSize",
          "default": "Button.ButtonSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OnClick",
          "type": "EventCallback<Microsoft.AspNetCore.Components.Web.MouseEventArgs>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic",
          "code": "<SplitButton Text=\"Save\" OnClick=\"HandleSave\">\n    <MenuContent>\n        <DropdownMenuItem OnClick=\"HandleSaveAndPublish\">Save and Publish</DropdownMenuItem>\n        <DropdownMenuItem OnClick=\"HandleSaveAsDraft\">Save as Draft</DropdownMenuItem>\n        <DropdownMenuSeparator />\n        <DropdownMenuItem>Discard changes</DropdownMenuItem>\n    </MenuContent>\n</SplitButton>\n\n@code {\n    private void HandleSave() { /* primary action */ }\n    private void HandleSaveAndPublish() { /* secondary */ }\n    private void HandleSaveAsDraft() { /* secondary */ }\n}"
        },
        {
          "title": "Variants",
          "code": "<SplitButton Text=\"Default\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</SplitButton>\n<SplitButton Text=\"Secondary\" Variant=\"Button.ButtonVariant.Secondary\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</SplitButton>\n<SplitButton Text=\"Outline\" Variant=\"Button.ButtonVariant.Outline\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n        <DropdownMenuItem>Option B</DropdownMenuItem>\n    </MenuContent>\n</SplitButton>"
        },
        {
          "title": "Sizes",
          "code": "<SplitButton Text=\"Small\" Size=\"Button.ButtonSize.Sm\">\n    <MenuContent><DropdownMenuItem>Option A</DropdownMenuItem></MenuContent>\n</SplitButton>\n<SplitButton Text=\"Default\">\n    <MenuContent><DropdownMenuItem>Option A</DropdownMenuItem></MenuContent>\n</SplitButton>\n<SplitButton Text=\"Large\" Size=\"Button.ButtonSize.Lg\">\n    <MenuContent><DropdownMenuItem>Option A</DropdownMenuItem></MenuContent>\n</SplitButton>"
        },
        {
          "title": "Disabled",
          "code": "<SplitButton Text=\"Disabled\" Disabled=\"true\">\n    <MenuContent>\n        <DropdownMenuItem>Option A</DropdownMenuItem>\n    </MenuContent>\n</SplitButton>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Splitter": {
      "name": "Splitter",
      "category": "Navigation",
      "subcategory": null,
      "description": "Resizable split pane for horizontal/vertical layouts.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Splitter/Splitter.razor",
        "UI/Splitter/SplitterDivider.razor",
        "UI/Splitter/SplitterPane.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Orientation",
          "type": "SplitterOrientation",
          "default": "SplitterOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "SplitterOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "SplitterContext",
          "signature": "SplitterContext(\n        string GroupId,\n        SplitterOrientation Orientation,\n        List<object> Children,\n        Action<object> RegisterChild,\n        Action<object> UnregisterChild,\n        Func<object, double, Task> ResizeNeighbors\n    )",
          "description": null
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-primary",
        "--color-ring"
      ],
      "examples": [
        {
          "title": "Two Panes — Horizontal",
          "code": "<Splitter Orientation=\"Splitter.SplitterOrientation.Horizontal\"\n          Class=\"min-h-[200px] rounded-lg border\">\n    <SplitterPane Size=\"50\">Left</SplitterPane>\n    <SplitterDivider />\n    <SplitterPane Size=\"50\">Right</SplitterPane>\n</Splitter>"
        },
        {
          "title": "Three Panes — Sidebar + Main + Aside",
          "code": "<Splitter Orientation=\"Splitter.SplitterOrientation.Horizontal\"\n          Class=\"min-h-[260px] rounded-lg border\">\n    <SplitterPane Size=\"20\" MinSize=\"10\">Sidebar</SplitterPane>\n    <SplitterDivider />\n    <SplitterPane Size=\"55\">Main</SplitterPane>\n    <SplitterDivider />\n    <SplitterPane Size=\"25\" MinSize=\"10\">Aside</SplitterPane>\n</Splitter>"
        },
        {
          "title": "Vertical Stack",
          "code": "<Splitter Orientation=\"Splitter.SplitterOrientation.Vertical\"\n          Class=\"h-[320px] rounded-lg border\">\n    <SplitterPane Size=\"60\">Editor</SplitterPane>\n    <SplitterDivider />\n    <SplitterPane Size=\"40\">Terminal</SplitterPane>\n</Splitter>"
        },
        {
          "title": "Nested — Horizontal containing Vertical",
          "code": "<Splitter Orientation=\"Splitter.SplitterOrientation.Horizontal\"\n          Class=\"h-[360px] rounded-lg border\">\n    <SplitterPane Size=\"25\">Files</SplitterPane>\n    <SplitterDivider />\n    <SplitterPane Size=\"75\">\n        <Splitter Orientation=\"Splitter.SplitterOrientation.Vertical\" Class=\"h-full\">\n            <SplitterPane Size=\"65\">Code</SplitterPane>\n            <SplitterDivider />\n            <SplitterPane Size=\"35\">Output</SplitterPane>\n        </Splitter>\n    </SplitterPane>\n</Splitter>"
        }
      ],
      "subComponents": {
        "SplitterDivider": {
          "componentName": "SplitterDivider",
          "fileName": "SplitterDivider.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Splitter.SplitterContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "SplitterPane": {
          "componentName": "SplitterPane",
          "fileName": "SplitterPane.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Splitter.SplitterContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Size",
              "type": "double",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MinSize",
              "type": "double",
              "default": "10",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MaxSize",
              "type": "double",
              "default": "90",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Collapsible",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Stack": {
      "name": "Stack",
      "category": "Layout",
      "subcategory": null,
      "description": "Vertical flex wrapper with gap prop.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Stack/Stack.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Direction",
          "type": "StackDirection",
          "default": "StackDirection.Vertical",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Gap",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Align",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Justify",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Wrap",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "StackDirection",
          "values": [
            "Vertical",
            "Horizontal"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic Vertical",
          "code": "<Stack Gap=\"3\">\n    <div>Item 1</div>\n    <div>Item 2</div>\n    <div>Item 3</div>\n</Stack>"
        },
        {
          "title": "Horizontal",
          "code": "<Stack Direction=\"Stack.StackDirection.Horizontal\" Gap=\"3\">\n    <div>Item 1</div>\n    <div>Item 2</div>\n    <div>Item 3</div>\n</Stack>"
        },
        {
          "title": "Gap Sizes",
          "code": "<Stack Direction=\"Stack.StackDirection.Horizontal\" Gap=\"1\">...</Stack>\n<Stack Direction=\"Stack.StackDirection.Horizontal\" Gap=\"4\">...</Stack>\n<Stack Direction=\"Stack.StackDirection.Horizontal\" Gap=\"8\">...</Stack>"
        },
        {
          "title": "Alignment",
          "code": "<Stack Direction=\"Stack.StackDirection.Horizontal\" Gap=\"4\" Align=\"center\" Justify=\"between\" Class=\"w-full\">\n    <div>Item 1</div>\n    <div>Item 2</div>\n    <div>Item 3</div>\n</Stack>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Statistic": {
      "name": "Statistic",
      "category": "Data Display",
      "subcategory": "Status & Indicators",
      "description": "Big-number statistic display with label and unit.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Statistic/Statistic.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Title",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Prefix",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Suffix",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Precision",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Culture used when Precision is set. Default (null) falls back to CurrentCulture so a de-DE user sees 12,34 and an en-US user sees 12.34 automatically.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowTrend",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrendValue",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrendDirection",
          "type": "TrendType",
          "default": "TrendType.Up",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "StatisticSize",
          "default": "StatisticSize.Medium",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "StatisticVariant",
          "default": "StatisticVariant.Default",
          "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": [
        {
          "name": "TrendType",
          "values": [
            "Up",
            "Down"
          ],
          "description": null
        },
        {
          "name": "StatisticSize",
          "values": [
            "Small",
            "Medium",
            "Large"
          ],
          "description": null
        },
        {
          "name": "StatisticVariant",
          "values": [
            "Default",
            "Minimal",
            "Bordered"
          ],
          "description": "Default = plain (no decoration). Minimal = alias for Default (explicit opt-in to no chrome). Bordered = rounded border card wrapper."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Statistics",
          "code": "<Statistic Title=\"Total Users\" Value=\"12,847\" />\n<Statistic Title=\"Revenue\" Value=\"48250\" Precision=\"2\">\n    <Prefix><Lumeo.Text As=\"span\">$</Lumeo.Text></Prefix>\n</Statistic>"
        },
        {
          "title": "With Trend",
          "code": "<Statistic Title=\"Sales\" Value=\"1,234\" ShowTrend=\"true\" TrendValue=\"+12.5%\" TrendDirection=\"Statistic.TrendType.Up\" />\n<Statistic Title=\"Returns\" Value=\"42\" ShowTrend=\"true\" TrendValue=\"-3.2%\" TrendDirection=\"Statistic.TrendType.Down\" />"
        },
        {
          "title": "Size (interactive)",
          "code": "<Segmented @bind-Value=\"_size\">\n    <SegmentedItem Value=\"@Statistic.StatisticSize.Small\">Small</SegmentedItem>\n    <SegmentedItem Value=\"@Statistic.StatisticSize.Medium\">Medium</SegmentedItem>\n    <SegmentedItem Value=\"@Statistic.StatisticSize.Large\">Large</SegmentedItem>\n</Segmented>\n<Statistic Title=\"Monthly Revenue\" Value=\"48,290\" Size=\"@_size\" ShowTrend=\"true\" TrendValue=\"+12%\" TrendDirection=\"Statistic.TrendType.Up\">\n    <Prefix><Lumeo.Text As=\"span\">$</Lumeo.Text></Prefix>\n</Statistic>\n\n@code { private Statistic.StatisticSize _size = Statistic.StatisticSize.Medium; }"
        },
        {
          "title": "Variant (interactive)",
          "code": "<Segmented @bind-Value=\"_variant\">\n    <SegmentedItem Value=\"@Statistic.StatisticVariant.Default\">Default</SegmentedItem>\n    <SegmentedItem Value=\"@Statistic.StatisticVariant.Minimal\">Minimal</SegmentedItem>\n    <SegmentedItem Value=\"@Statistic.StatisticVariant.Bordered\">Bordered</SegmentedItem>\n</Segmented>\n<Grid Columns=\"3\" Gap=\"4\">\n    <Statistic Title=\"Users\" Value=\"12,847\" Variant=\"@_variant\" />\n    <Statistic Title=\"Revenue\" Value=\"48,290\" Variant=\"@_variant\" ShowTrend=\"true\" TrendValue=\"+8%\" TrendDirection=\"Statistic.TrendType.Up\">\n        <Prefix><Lumeo.Text As=\"span\">$</Lumeo.Text></Prefix>\n    </Statistic>\n    <Statistic Title=\"Churn\" Value=\"2.1\" Variant=\"@_variant\" ShowTrend=\"true\" TrendValue=\"-0.3%\" TrendDirection=\"Statistic.TrendType.Down\">\n        <Suffix><Lumeo.Text As=\"span\">%</Lumeo.Text></Suffix>\n    </Statistic>\n</Grid>\n\n@code { private Statistic.StatisticVariant _variant = Statistic.StatisticVariant.Default; }"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Stepper": {
      "name": "Stepper",
      "category": "Navigation",
      "subcategory": null,
      "description": "Stateful multi-step wizard with navigation, validation gating, and header indicators.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Stepper/Stepper.razor",
        "UI/Stepper/StepperStep.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveStep",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveStepChanged",
          "type": "EventCallback<int>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "StepperOrientation",
          "default": "StepperOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Linear",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AllowStepClick",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnFinish",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NextLabel",
          "type": "string",
          "default": "\"Next\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "BackLabel",
          "type": "string",
          "default": "\"Back\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FinishLabel",
          "type": "string",
          "default": "\"Finish\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ActiveStepChanged",
          "type": "EventCallback<int>",
          "description": null
        },
        {
          "name": "OnFinish",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "StepperOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "StepperContext",
          "signature": "StepperContext(\n        int ActiveStep,\n        EventCallback<int> SetActiveStep,\n        StepperOrientation Orientation,\n        bool Linear,\n        int StepCount,\n        Stepper Parent)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Stepper",
          "code": "<Stepper @bind-ActiveStep=\"_step\" OnFinish=\"HandleFinish\">\n    <StepperStep Title=\"Account Info\" Description=\"Set up your account\">\n        <Input Placeholder=\"Email address\" />\n    </StepperStep>\n    <StepperStep Title=\"Profile\" Description=\"Personalize your profile\">\n        <Input Placeholder=\"Display name\" />\n    </StepperStep>\n    <StepperStep Title=\"Review\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Review your information.</Lumeo.Text>\n    </StepperStep>\n</Stepper>\n\n@code {\n    private int _step;\n    private void HandleFinish() { /* complete */ }\n}"
        },
        {
          "title": "With Optional Step",
          "code": "<Stepper @bind-ActiveStep=\"_step\">\n    <StepperStep Title=\"Basics\">\n        <Input Placeholder=\"Your name\" />\n    </StepperStep>\n    <StepperStep Title=\"Extras\" Optional=\"true\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">This step is optional.</Lumeo.Text>\n    </StepperStep>\n    <StepperStep Title=\"Finish\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">All done.</Lumeo.Text>\n    </StepperStep>\n</Stepper>"
        },
        {
          "title": "Vertical Orientation",
          "code": "<Stepper @bind-ActiveStep=\"_step\" Orientation=\"Stepper.StepperOrientation.Vertical\">\n    <StepperStep Title=\"Choose plan\" Description=\"Pick a subscription\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Select the plan that fits your needs.</Lumeo.Text>\n    </StepperStep>\n    <StepperStep Title=\"Payment\" Description=\"Enter billing details\">\n        <Input Placeholder=\"Card number\" />\n    </StepperStep>\n    <StepperStep Title=\"Confirm\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Confirm and activate.</Lumeo.Text>\n    </StepperStep>\n</Stepper>"
        },
        {
          "title": "Orientation — interactive",
          "code": "<Segmented @bind-Value=\"_orientationSel\" Options=\"_orientationOptions\" />\n<Stepper @bind-ActiveStep=\"_step\" Orientation=\"@_activeStepperOrientation\">\n    <StepperStep Title=\"Account Info\" Description=\"Set up your account\">\n        <Input Placeholder=\"Email address\" />\n    </StepperStep>\n    <StepperStep Title=\"Profile\" Description=\"Personalize your profile\">\n        <Input Placeholder=\"Display name\" />\n    </StepperStep>\n    <StepperStep Title=\"Review\" Description=\"Confirm your details\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Review your information.</Lumeo.Text>\n    </StepperStep>\n</Stepper>\n\n@code {\n    private string _orientationSel = \"Horizontal\";\n    private Stepper.StepperOrientation _activeStepperOrientation =>\n        Enum.Parse<Stepper.StepperOrientation>(_orientationSel);\n    private List<Segmented.SegmentedOption> _orientationOptions = new()\n    {\n        new() { Label = \"Horizontal\", Value = \"Horizontal\" },\n        new() { Label = \"Vertical\", Value = \"Vertical\" },\n    };\n}"
        }
      ],
      "subComponents": {
        "StepperStep": {
          "componentName": "StepperStep",
          "fileName": "StepperStep.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Stepper.StepperContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Optional",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Completed",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsValid",
              "type": "Func<bool>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IconContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "KeepMounted",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "StepRegistration",
              "signature": "StepRegistration(\n        string Title,\n        string? Description,\n        bool Optional,\n        bool Completed,\n        Func<bool>? IsValid,\n        RenderFragment? IconContent,\n        RenderFragment? ChildContent,\n        bool KeepMounted)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Steps": {
      "name": "Steps",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Numbered step indicator for wizards and progress flows.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Steps/Steps.razor",
        "UI/Steps/StepsItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentStep",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentStepChanged",
          "type": "EventCallback<int>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Clickable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "StepsOrientation",
          "default": "StepsOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": "When true, enables opt-in motion: the current step's indicator pulses, connector lines draw in on advance, and retract on reverse. Default is false (no animation, original behaviour).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "CurrentStepChanged",
          "type": "EventCallback<int>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "StepsOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        },
        {
          "name": "StepsDirection",
          "values": [
            "Forward",
            "Backward"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "StepsContext",
          "signature": "StepsContext(int CurrentStep, bool Clickable, EventCallback<int> OnStepClick, StepsOrientation Orientation, bool Animated, StepsDirection Direction, int ReplayKey, Steps Parent)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Steps",
          "code": "<Steps CurrentStep=\"1\">\n    <StepsItem Title=\"Account\" Description=\"Create your account\" />\n    <StepsItem Title=\"Profile\" Description=\"Set up your profile\" />\n    <StepsItem Title=\"Complete\" Description=\"All done\" />\n</Steps>"
        },
        {
          "title": "Interactive Steps",
          "code": "<Steps @bind-CurrentStep=\"_step\" Clickable=\"true\">\n    <StepsItem Title=\"Details\" />\n    <StepsItem Title=\"Payment\" />\n    <StepsItem Title=\"Review\" />\n    <StepsItem Title=\"Confirm\" />\n</Steps>"
        },
        {
          "title": "Vertical Steps",
          "code": "<Steps CurrentStep=\"2\" Orientation=\"Steps.StepsOrientation.Vertical\">\n    <StepsItem Title=\"Sign Up\" Description=\"Create an account\" />\n    <StepsItem Title=\"Verify Email\" Description=\"Confirm your email\" />\n    <StepsItem Title=\"Set Password\" Description=\"Choose a password\" />\n    <StepsItem Title=\"Done\" Description=\"Start using the app\" />\n</Steps>"
        },
        {
          "title": "Orientation (interactive)",
          "code": "<Segmented @bind-Value=\"_orientation\">\n    <SegmentedItem Value=\"@Steps.StepsOrientation.Horizontal\">Horizontal</SegmentedItem>\n    <SegmentedItem Value=\"@Steps.StepsOrientation.Vertical\">Vertical</SegmentedItem>\n</Segmented>\n<Steps CurrentStep=\"1\" Orientation=\"@_orientation\">\n    <StepsItem Title=\"Account\" Description=\"Create your account\" />\n    <StepsItem Title=\"Profile\" Description=\"Set up your profile\" />\n    <StepsItem Title=\"Payment\" Description=\"Add billing info\" />\n    <StepsItem Title=\"Done\" Description=\"All finished\" />\n</Steps>\n\n@code { private Steps.StepsOrientation _orientation = Steps.StepsOrientation.Horizontal; }"
        }
      ],
      "subComponents": {
        "StepsItem": {
          "componentName": "StepsItem",
          "fileName": "StepsItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Steps.StepsContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Status",
              "type": "StepsItemStatus",
              "default": "StepsItemStatus.Default",
              "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": "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": [
            {
              "name": "StepStatus",
              "values": [
                "Completed",
                "Current",
                "Future"
              ],
              "description": null
            },
            {
              "name": "StepsItemStatus",
              "values": [
                "Default",
                "Error"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "StreamingText": {
      "name": "StreamingText",
      "category": "AI",
      "subcategory": null,
      "description": "Token-by-token streaming text renderer for AI responses.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/StreamingText/StreamingText.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsStreaming",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Prose",
          "type": "bool",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Static Text",
          "code": "<StreamingText Text=\"Blazor is a framework for building interactive web UIs using C# instead of JavaScript.\" IsStreaming=\"false\" />"
        },
        {
          "title": "Streaming Simulation",
          "code": "<StreamingText Text=\"@_text\" IsStreaming=\"@_streaming\" />\n\n@code {\n    private string _text = string.Empty;\n    private bool _streaming;\n\n    // Update _text incrementally as tokens arrive from your AI API\n}"
        },
        {
          "title": "With Blinking Cursor While Streaming",
          "code": "<StreamingText Text=\"@_text\" IsStreaming=\"@_streaming\" />\n<!-- IsStreaming=true shows a blinking cursor at the end -->\n<!-- Set IsStreaming=false when the response is complete -->"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "SwipeActions": {
      "name": "SwipeActions",
      "category": "Utility",
      "subcategory": null,
      "description": "Swipe Actions component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/SwipeActions/SwipeActions.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "LeadingActions",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TrailingActions",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActivationThresholdPx",
          "type": "double",
          "default": "80",
          "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-background"
      ],
      "examples": [
        {
          "title": "Trailing Actions (swipe left)",
          "code": "<SwipeActions>\n    <TrailingActions>\n        <Button Variant=\"Button.ButtonVariant.Destructive\" Class=\"h-full rounded-none px-5\">Delete</Button>\n        <Button Variant=\"Button.ButtonVariant.Secondary\"    Class=\"h-full rounded-none px-5\">Archive</Button>\n    </TrailingActions>\n    <ChildContent>\n        <div class=\"flex items-center gap-3 border border-border/40 rounded-lg px-4 py-3 bg-background\">\n            <Text Size=\"sm\">Project proposal draft</Text>\n        </div>\n    </ChildContent>\n</SwipeActions>"
        },
        {
          "title": "Leading and Trailing Actions",
          "code": "<SwipeActions>\n    <LeadingActions>\n        <Button Variant=\"Button.ButtonVariant.Secondary\" Class=\"h-full rounded-none px-5\">Pin</Button>\n    </LeadingActions>\n    <TrailingActions>\n        <Button Variant=\"Button.ButtonVariant.Destructive\" Class=\"h-full rounded-none px-5\">Delete</Button>\n        <Button Variant=\"Button.ButtonVariant.Secondary\"    Class=\"h-full rounded-none px-5\">Snooze</Button>\n    </TrailingActions>\n    <ChildContent>\n        <div class=\"flex items-center gap-3 border border-border/40 rounded-lg px-4 py-3 bg-background\">\n            <Text Size=\"sm\">Meeting with design team</Text>\n        </div>\n    </ChildContent>\n</SwipeActions>"
        },
        {
          "title": "Custom Activation Threshold",
          "code": "<SwipeActions ActivationThresholdPx=\"40\">\n    <TrailingActions>\n        <Button Variant=\"Button.ButtonVariant.Destructive\" Class=\"h-full rounded-none px-6\">Remove</Button>\n    </TrailingActions>\n    <ChildContent>\n        <div class=\"flex items-center gap-3 border border-border/40 rounded-lg px-4 py-3 bg-background\">\n            <Text Size=\"sm\">Activates after only 40 px of swipe</Text>\n        </div>\n    </ChildContent>\n</SwipeActions>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Switch": {
      "name": "Switch",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Toggle switch for boolean settings.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Switch/Switch.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Checked",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CheckedChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Loading",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnLabel",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OffLabel",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible name for the switch button, exposed via aria-label. Recommended for icon-only switches that have no visible text. If omitted but OnLabel/OffLabel are set, the current one is used automatically so screen readers announce the switch's purpose.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "SwitchSize",
          "default": "SwitchSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": "When true, the thumb animates with a bouncy spring cubic-bezier timing instead of the default linear transition. Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HapticFeedback",
          "type": "bool",
          "default": null,
          "description": "When true, triggers a short haptic vibration via navigator.vibrate() each time the switch is toggled. Silently no-ops on browsers without the Vibration API (e.g. iOS Safari). Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "CheckedChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "SwitchSize",
          "values": [
            "Sm",
            "Default",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Flex Gap=\"2\" Align=\"center\">\n    <Switch @bind-Checked=\"_checked\" />\n    <Label>Airplane Mode</Label>\n</Flex>\n\n@code {\n    private bool _checked;\n}"
        },
        {
          "title": "With Binding",
          "code": "<Switch @bind-Checked=\"_checked\" />\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Dark Mode is @(_checked ? \"on\" : \"off\")</Lumeo.Text>\n\n@code {\n    private bool _checked = true;\n}"
        },
        {
          "title": "Disabled",
          "code": "<Switch Checked=\"false\" Disabled=\"true\" />\n<Switch Checked=\"true\" Disabled=\"true\" />"
        },
        {
          "title": "Settings Example",
          "code": "<Flex Align=\"center\" Justify=\"between\">\n    <Stack Gap=\"0\">\n        <Lumeo.Text Size=\"sm\" Weight=\"medium\" Leading=\"none\">Email Notifications</Lumeo.Text>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Receive emails about account activity.</Lumeo.Text>\n    </Stack>\n    <Switch @bind-Checked=\"_emailNotif\" />\n</Flex>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Table": {
      "name": "Table",
      "category": "Data Display",
      "subcategory": "Tables",
      "description": "Minimal styled HTML table with header, row, cell components.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Table/Table.razor",
        "UI/Table/TableBody.razor",
        "UI/Table/TableCaption.razor",
        "UI/Table/TableCell.razor",
        "UI/Table/TableHead.razor",
        "UI/Table/TableHeader.razor",
        "UI/Table/TableRow.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-muted",
        "--color-muted-foreground"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Table>\n    <TableCaption>A list of recent invoices.</TableCaption>\n    <TableHeader>\n        <TableRow>\n            <TableHead>Invoice</TableHead>\n            <TableHead>Status</TableHead>\n            <TableHead>Method</TableHead>\n            <TableHead Class=\"text-right\">Amount</TableHead>\n        </TableRow>\n    </TableHeader>\n    <TableBody>\n        @foreach (var invoice in _invoices)\n        {\n            <TableRow>\n                <TableCell Class=\"font-medium\">@invoice.Id</TableCell>\n                <TableCell>@invoice.Status</TableCell>\n                <TableCell>@invoice.Method</TableCell>\n                <TableCell Class=\"text-right\">@invoice.Amount</TableCell>\n            </TableRow>\n        }\n    </TableBody>\n</Table>"
        },
        {
          "title": "Simple Table",
          "code": "<Table>\n    <TableHeader>\n        <TableRow>\n            <TableHead>Name</TableHead>\n            <TableHead>Role</TableHead>\n            <TableHead>Department</TableHead>\n        </TableRow>\n    </TableHeader>\n    <TableBody>\n        <TableRow>\n            <TableCell Class=\"font-medium\">Alice Johnson</TableCell>\n            <TableCell>Engineer</TableCell>\n            <TableCell>Engineering</TableCell>\n        </TableRow>\n        <TableRow>\n            <TableCell Class=\"font-medium\">Bob Smith</TableCell>\n            <TableCell>Designer</TableCell>\n            <TableCell>Product</TableCell>\n        </TableRow>\n    </TableBody>\n</Table>"
        },
        {
          "title": "Table with Status Badges",
          "code": "<Table>\n    <TableHeader>\n        <TableRow>\n            <TableHead>Task</TableHead>\n            <TableHead>Assignee</TableHead>\n            <TableHead>Priority</TableHead>\n            <TableHead>Status</TableHead>\n        </TableRow>\n    </TableHeader>\n    <TableBody>\n        @foreach (var task in _tasks)\n        {\n            <TableRow>\n                <TableCell Class=\"font-medium\">@task.Name</TableCell>\n                <TableCell>@task.Assignee</TableCell>\n                <TableCell><Badge Variant=\"@task.PriorityVariant\">@task.Priority</Badge></TableCell>\n                <TableCell><Badge Variant=\"@task.StatusVariant\">@task.Status</Badge></TableCell>\n            </TableRow>\n        }\n    </TableBody>\n</Table>"
        },
        {
          "title": "Table with Pagination",
          "code": "<Table>\n    <TableHeader>\n        <TableRow>\n            <TableHead>Invoice</TableHead>\n            <TableHead>Status</TableHead>\n            <TableHead>Method</TableHead>\n            <TableHead Class=\"text-right\">Amount</TableHead>\n        </TableRow>\n    </TableHeader>\n    <TableBody>\n        @foreach (var invoice in _invoices.Skip(_pageStart).Take(_pageSize))\n        {\n            <TableRow>\n                <TableCell Class=\"font-medium\">@invoice.Id</TableCell>\n                <TableCell>@invoice.Status</TableCell>\n                <TableCell>@invoice.Method</TableCell>\n                <TableCell Class=\"text-right\">@invoice.Amount</TableCell>\n            </TableRow>\n        }\n    </TableBody>\n</Table>\n<Flex Align=\"center\" Justify=\"end\" Gap=\"2\" Class=\"mt-4\">\n    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\"\n            Disabled=\"@(_tablePage <= 1)\" OnClick=\"@(() => GoTablePage(_tablePage - 1))\">\n        <DynamicIcon Name=\"ChevronLeft\" Class=\"h-4 w-4\" /> Previous\n    </Button>\n    <Lumeo.Text As=\"span\" Size=\"sm\" Color=\"muted\">Page @_tablePage of @_tablePages</Lumeo.Text>\n    <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Sm\"\n            Disabled=\"@(_tablePage >= _tablePages)\" OnClick=\"@(() => GoTablePage(_tablePage + 1))\">\n        Next <DynamicIcon Name=\"ChevronRight\" Class=\"h-4 w-4\" />\n    </Button>\n</Flex>"
        }
      ],
      "subComponents": {
        "TableBody": {
          "componentName": "TableBody",
          "fileName": "TableBody.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TableCaption": {
          "componentName": "TableCaption",
          "fileName": "TableCaption.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TableCell": {
          "componentName": "TableCell",
          "fileName": "TableCell.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TableHead": {
          "componentName": "TableHead",
          "fileName": "TableHead.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TableHeader": {
          "componentName": "TableHeader",
          "fileName": "TableHeader.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TableRow": {
          "componentName": "TableRow",
          "fileName": "TableRow.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Tabs": {
      "name": "Tabs",
      "category": "Navigation",
      "subcategory": null,
      "description": "Tabbed content with keyboard nav and animated active indicator.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Tabs/Tabs.razor",
        "UI/Tabs/TabsContent.razor",
        "UI/Tabs/TabsList.razor",
        "UI/Tabs/TabsTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveValue",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "TabsOrientation",
          "default": "TabsOrientation.Horizontal",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "TabsVariant",
          "default": "TabsVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AnimatedIndicator",
          "type": "bool",
          "default": null,
          "description": "When true, renders a sliding underline that animates between active triggers inside each TabsList. Default is false (no underline, original behaviour).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "RenderMode",
          "type": "TabsRenderMode",
          "default": "TabsRenderMode.Active",
          "description": "Controls when each TabsContent panel is rendered into the DOM and whether its state survives a tab switch: Active (default) — only the active panel is in the DOM; switching away unmounts it (form inputs, scroll position and any component state are lost). Lightest footprint. Lazy — a panel is rendered the first time its tab becomes active, then kept in the DOM (hidden) so its state is preserved on subsequent switches. Like DevExpress OnDemand. Eager — every panel is rendered immediately; inactive ones are hidden. State always preserved, but the heaviest initial render. Like DevExpress Always. A single TabsContent can opt into eager rendering regardless of this setting via ForceMount=\"true\".",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SwipeEnabled",
          "type": "bool",
          "default": null,
          "description": "When true, a horizontal pointer drag (&gt;50 px horizontal, &lt;30 px vertical) on any TabsContent panel switches to the next or previous tab. Default is false (opt-in).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SwipeWrap",
          "type": "bool",
          "default": null,
          "description": "When true, swiping past the last tab wraps around to the first (and vice-versa). Default is false (no wrap-around at boundaries).",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ActiveValueChanged",
          "type": "EventCallback<string>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "TabsOrientation",
          "values": [
            "Horizontal",
            "Vertical"
          ],
          "description": null
        },
        {
          "name": "TabsVariant",
          "values": [
            "Default",
            "Card",
            "Pill"
          ],
          "description": null
        },
        {
          "name": "TabsRenderMode",
          "values": [
            "Active",
            "Lazy",
            "Eager"
          ],
          "description": "Render strategy for TabsContent panels. See RenderMode for the semantics of each value."
        }
      ],
      "records": [
        {
          "name": "TabsContext",
          "signature": "TabsContext(\n        string ActiveValue,\n        EventCallback<string> SetValue,\n        TabsOrientation Orientation,\n        TabsVariant Variant,\n        Dictionary<string, (string TabId, string PanelId)> TabIds,\n        bool AnimatedIndicator,\n        TabsRenderMode RenderMode,\n        HashSet<string> ActivatedValues,\n        bool SwipeEnabled,\n        bool SwipeWrap,\n        Action<string> RegisterContent,\n        Func<string, Task> SwipeNavigate)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Tabs ActiveValue=\"account\">\n    <TabsList>\n        <TabsTrigger Value=\"account\">Account</TabsTrigger>\n        <TabsTrigger Value=\"password\">Password</TabsTrigger>\n    </TabsList>\n    <TabsContent Value=\"account\">\n        <Card>\n            <CardHeader>\n                <Heading Level=\"3\" Size=\"lg\" Class=\"leading-none tracking-tight\">Account</Heading>\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">Make changes to your account here.</Lumeo.Text>\n            </CardHeader>\n            <CardContent>\n                <Stack Gap=\"4\">\n                    <FormField Label=\"Name\">\n                        <Input Value=\"Pedro Duarte\" />\n                    </FormField>\n                    <FormField Label=\"Username\">\n                        <Input Value=\"@peduarte\" />\n                    </FormField>\n                </Stack>\n            </CardContent>\n            <CardFooter>\n                <Button>Save changes</Button>\n            </CardFooter>\n        </Card>\n    </TabsContent>\n    <TabsContent Value=\"password\">\n        <Card>\n            <CardHeader>\n                <Heading Level=\"3\" Size=\"lg\" Class=\"leading-none tracking-tight\">Password</Heading>\n                <Lumeo.Text Size=\"sm\" Color=\"muted\">Change your password here.</Lumeo.Text>\n            </CardHeader>\n            <CardContent>\n                <Stack Gap=\"4\">\n                    <FormField Label=\"Current password\">\n                        <Input type=\"password\" />\n                    </FormField>\n                    <FormField Label=\"New password\">\n                        <Input type=\"password\" />\n                    </FormField>\n                </Stack>\n            </CardContent>\n            <CardFooter>\n                <Button>Save password</Button>\n            </CardFooter>\n        </Card>\n    </TabsContent>\n</Tabs>"
        },
        {
          "title": "Notifications",
          "code": "<Tabs ActiveValue=\"all\">\n    <TabsList>\n        <TabsTrigger Value=\"all\">All</TabsTrigger>\n        <TabsTrigger Value=\"unread\">Unread</TabsTrigger>\n        <TabsTrigger Value=\"archived\">Archived</TabsTrigger>\n    </TabsList>\n    <TabsContent Value=\"all\">\n        @foreach (var n in _notifications)\n        {\n            <Flex Gap=\"3\" Align=\"start\" Class=\"p-3 rounded-lg border\">\n                <span class=\"mt-1.5 h-2 w-2 rounded-full @(n.Unread ? \"bg-primary\" : \"bg-muted\")\"></span>\n                <Stack Gap=\"0\">\n                    <Lumeo.Text Size=\"sm\" Weight=\"medium\">@n.Title</Lumeo.Text>\n                    <Lumeo.Text Size=\"xs\" Color=\"muted\">@n.Time</Lumeo.Text>\n                </Stack>\n            </Flex>\n        }\n    </TabsContent>\n    <TabsContent Value=\"unread\">\n        @foreach (var n in _notifications.Where(x => x.Unread)) { /* same */ }\n    </TabsContent>\n    <TabsContent Value=\"archived\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"p-4 text-center\">No archived notifications.</Lumeo.Text>\n    </TabsContent>\n</Tabs>"
        },
        {
          "title": "Vertical Tabs",
          "code": "<Tabs Orientation=\"Tabs.TabsOrientation.Vertical\" @bind-ActiveValue=\"_verticalTab\" Class=\"flex gap-4\">\n    <TabsList>\n        <TabsTrigger Value=\"account\">Account</TabsTrigger>\n        <TabsTrigger Value=\"security\">Security</TabsTrigger>\n        <TabsTrigger Value=\"notifications\">Notifications</TabsTrigger>\n    </TabsList>\n    <div class=\"flex-1\">\n        <TabsContent Value=\"account\">\n            <Card>\n                <CardHeader><CardTitle>Account</CardTitle><CardDescription>Manage your account settings.</CardDescription></CardHeader>\n                <CardContent><Lumeo.Text Size=\"sm\" Color=\"muted\">Account settings content goes here.</Lumeo.Text></CardContent>\n            </Card>\n        </TabsContent>\n        <TabsContent Value=\"security\">\n            <Card>\n                <CardHeader><CardTitle>Security</CardTitle><CardDescription>Update your security preferences.</CardDescription></CardHeader>\n                <CardContent><Lumeo.Text Size=\"sm\" Color=\"muted\">Security settings content goes here.</Lumeo.Text></CardContent>\n            </Card>\n        </TabsContent>\n        <TabsContent Value=\"notifications\">\n            <Card>\n                <CardHeader><CardTitle>Notifications</CardTitle><CardDescription>Configure notification preferences.</CardDescription></CardHeader>\n                <CardContent><Lumeo.Text Size=\"sm\" Color=\"muted\">Notification settings content goes here.</Lumeo.Text></CardContent>\n            </Card>\n        </TabsContent>\n    </div>\n</Tabs>\n\n@code {\n    private string _verticalTab = \"account\";\n}"
        },
        {
          "title": "Simple",
          "code": "<Tabs ActiveValue=\"overview\">\n    <TabsList>\n        <TabsTrigger Value=\"overview\">Overview</TabsTrigger>\n        <TabsTrigger Value=\"analytics\">Analytics</TabsTrigger>\n        <TabsTrigger Value=\"reports\">Reports</TabsTrigger>\n    </TabsList>\n    <TabsContent Value=\"overview\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"p-4\">Overview content goes here.</Lumeo.Text>\n    </TabsContent>\n    <TabsContent Value=\"analytics\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"p-4\">Analytics content goes here.</Lumeo.Text>\n    </TabsContent>\n    <TabsContent Value=\"reports\">\n        <Lumeo.Text Size=\"sm\" Color=\"muted\" Class=\"p-4\">Reports content goes here.</Lumeo.Text>\n    </TabsContent>\n</Tabs>"
        }
      ],
      "subComponents": {
        "TabsContent": {
          "componentName": "TabsContent",
          "fileName": "TabsContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Tabs.TabsContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ForceMount",
              "type": "bool",
              "default": null,
              "description": "When true, this panel is always rendered into the DOM (hidden when inactive), regardless of the parent RenderMode. Use for panels whose state must survive every tab switch — e.g. a half-filled form — while leaving the rest of the tab set on the lighter default mode.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TabsList": {
          "componentName": "TabsList",
          "fileName": "TabsList.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Context",
              "type": "Tabs.TabsContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "TrailingContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Scrollable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TabsTrigger": {
          "componentName": "TabsTrigger",
          "fileName": "TabsTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Tabs.TabsContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "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": "TrailingContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsClosable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClose",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClose",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "TagInput": {
      "name": "TagInput",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Input that turns entries into removable tag chips.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/TagInput/TagInput.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Tags",
          "type": "List<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TagsChanged",
          "type": "EventCallback<List<TItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxTags",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AllowDuplicates",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Suggestions",
          "type": "List<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxTagsHelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GetTagText",
          "type": "Func<TItem, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "GetSuggestionText",
          "type": "Func<TItem, string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TagTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SuggestionTemplate",
          "type": "RenderFragment<TItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Separators",
          "type": "string[]",
          "default": "new[] { \",\" }",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValidateInput",
          "type": "Func<string, string?>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValidateInputAsync",
          "type": "Func<string, Task<string?>>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CreateTag",
          "type": "Func<string, TItem?>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "TagsChanged",
          "type": "EventCallback<List<TItem>>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-ring",
        "--color-secondary",
        "--color-secondary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic TagInput",
          "code": "<TagInput @bind-Tags=\"_tags\" Placeholder=\"Add tags...\" />"
        },
        {
          "title": "With Suggestions",
          "code": "<TagInput @bind-Tags=\"_tags\" Suggestions=\"@_suggestions\" />"
        },
        {
          "title": "Max Tags",
          "code": "<TagInput @bind-Tags=\"_tags\" MaxTags=\"3\" />"
        },
        {
          "title": "Generic TItem — User picker",
          "code": "public record UserOption(string Name, string Email);\n\nprivate List<UserOption> _users = new();\nprivate List<UserOption> _suggestions = new() { /* … */ };\n\n<TagInput TItem=\"UserOption\"\n          @bind-Tags=\"_users\"\n          Suggestions=\"@_suggestions\"\n          GetTagText=\"@(u => u.Name)\"\n          GetSuggestionText=\"@(u => $\"{u.Name} {u.Email}\")\"\n          CreateTag=\"@(text => new UserOption(text, text))\"\n          Separators=\"@(new[] { \",\", \";\", \" \" })\">\n    <TagTemplate Context=\"user\">\n        <span class=\"chip\">\n            <Avatar Initial=\"@user.Name[0]\" />\n            @user.Name\n        </span>\n    </TagTemplate>\n    <SuggestionTemplate Context=\"user\">\n        <Stack Direction=\"Row\" Gap=\"2\">\n            <Avatar Initial=\"@user.Name[0]\" />\n            <Stack Gap=\"0\">\n                <Text>@user.Name</Text>\n                <Text Color=\"muted\">@user.Email</Text>\n            </Stack>\n        </Stack>\n    </SuggestionTemplate>\n</TagInput>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Text": {
      "name": "Text",
      "category": "Typography",
      "subcategory": null,
      "description": "Paragraph text with size, color, weight props.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Text/Text.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Size",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Weight",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "As",
          "type": "string",
          "default": "\"p\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Leading",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Truncate",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Align",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary"
      ],
      "examples": [
        {
          "title": "Sizes",
          "code": "<Text Size=\"xs\">Extra small text</Text>\n<Text Size=\"sm\">Small text</Text>\n<Text>Default text</Text>\n<Text Size=\"lg\">Large text</Text>\n<Text Size=\"xl\">Extra large text</Text>"
        },
        {
          "title": "Colors",
          "code": "<Text Color=\"foreground\">Foreground</Text>\n<Text Color=\"muted\">Muted</Text>\n<Text Color=\"primary\">Primary</Text>\n<Text Color=\"destructive\">Destructive</Text>"
        },
        {
          "title": "Weights",
          "code": "<Text Weight=\"light\">Light</Text>\n<Text Weight=\"normal\">Normal</Text>\n<Text Weight=\"medium\">Medium</Text>\n<Text Weight=\"semibold\">Semibold</Text>\n<Text Weight=\"bold\">Bold</Text>"
        },
        {
          "title": "Truncation",
          "code": "<Container MaxWidth=\"xs\">\n    <Text Truncate=\"true\">This is a very long piece of text that will be truncated...</Text>\n</Container>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Textarea": {
      "name": "Textarea",
      "category": "Forms",
      "subcategory": "Inputs",
      "description": "Multiline text input with auto-resize option.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Textarea/Textarea.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnInput",
          "type": "EventCallback<ChangeEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AutoResize",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxRows",
          "type": "int",
          "default": "10",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowCount",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MaxLength",
          "type": "int?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Resize",
          "type": "TextareaResize",
          "default": "TextareaResize.Vertical",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "OnInput",
          "type": "EventCallback<ChangeEventArgs>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "TextareaResize",
          "values": [
            "Vertical",
            "Horizontal",
            "Both",
            "None"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Textarea placeholder=\"Type your message here.\" />"
        },
        {
          "title": "With Binding",
          "code": "<Textarea Value=\"@_text\" OnInput=\"@(e => _text = e.Value?.ToString() ?? \"\")\" placeholder=\"Write something...\" />\n<Lumeo.Text Size=\"sm\" Color=\"muted\">Character count: @_text.Length</Lumeo.Text>\n\n@code {\n    private string _text = \"\";\n}"
        },
        {
          "title": "Disabled",
          "code": "<Textarea placeholder=\"This textarea is disabled.\" disabled />"
        },
        {
          "title": "With Label",
          "code": "<FormField Label=\"Your Bio\" HelpText=\"You can use markdown for formatting.\">\n    <Textarea placeholder=\"Tell us a little bit about yourself.\" rows=\"4\" />\n</FormField>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "TextReveal": {
      "name": "TextReveal",
      "category": "Motion",
      "subcategory": null,
      "description": "Word-by-word reveal animation on scroll.",
      "nugetPackage": "Lumeo.Motion",
      "files": [
        "UI/TextReveal/TextReveal.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Text",
          "type": "string",
          "default": "string.Empty",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Stagger",
          "type": "int",
          "default": "80",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Threshold",
          "type": "double",
          "default": "0.3",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Default Reveal",
          "code": "<TextReveal Text=\"Build beautiful Blazor UIs faster than ever before.\" Class=\"text-2xl font-semibold\" />"
        },
        {
          "title": "Fast Stagger",
          "code": "<TextReveal Text=\"Every word fades in at lightning speed with Stagger set to 40ms.\" Stagger=\"40\" Class=\"text-xl font-medium\" />"
        },
        {
          "title": "Slow Stagger",
          "code": "<TextReveal Text=\"Each word takes its time revealing the message one by one.\" Stagger=\"180\" Class=\"text-xl font-medium\" />"
        },
        {
          "title": "Hero Heading",
          "code": "<TextReveal Text=\"The Blazor component library designed for modern applications.\"\n             Class=\"text-3xl font-bold leading-tight\" Stagger=\"80\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ThemeSwitcher": {
      "name": "ThemeSwitcher",
      "category": "Utility",
      "subcategory": null,
      "description": "Color-scheme picker that writes to ThemeService.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ThemeSwitcher/ThemeSwitcher.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IDisposable"
      ],
      "parameters": [
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<ThemeSwitcher />"
        },
        {
          "title": "In a Card",
          "code": "<Card>\n    <CardHeader>\n        <Heading Level=\"3\">Appearance</Heading>\n        <Lumeo.Text Size=\"sm\" Color=\"muted\">Customize the look and feel.</Lumeo.Text>\n    </CardHeader>\n    <CardContent>\n        <ThemeSwitcher />\n    </CardContent>\n</Card>"
        },
        {
          "title": "Settings Row",
          "code": "<Stack Gap=\"1\" Class=\"rounded-lg border bg-card p-1\">\n    <Flex Align=\"center\" Justify=\"between\" Class=\"rounded-md px-3 py-2\">\n        <Stack Gap=\"0\">\n            <Lumeo.Text Size=\"sm\" Weight=\"medium\">Appearance</Lumeo.Text>\n            <Lumeo.Text Size=\"xs\" Color=\"muted\">Choose your color scheme and mode</Lumeo.Text>\n        </Stack>\n    </Flex>\n    <Separator />\n    <Stack Class=\"px-3 py-3\">\n        <ThemeSwitcher />\n    </Stack>\n</Stack>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ThemeToggle": {
      "name": "ThemeToggle",
      "category": "Utility",
      "subcategory": null,
      "description": "Dark/light mode toggle button.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ThemeToggle/ThemeToggle.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IDisposable"
      ],
      "parameters": [
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-input",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<ThemeToggle />"
        },
        {
          "title": "In a Navbar",
          "code": "<Flex Align=\"center\" Justify=\"between\" Class=\"rounded-lg border bg-card px-4 py-2\">\n    <Lumeo.Text As=\"span\" Weight=\"semibold\">My App</Lumeo.Text>\n    <Flex Align=\"center\" Gap=\"2\">\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">About</Button>\n        <ThemeToggle />\n    </Flex>\n</Flex>"
        },
        {
          "title": "With Label",
          "code": "<Flex Align=\"center\" Gap=\"3\" Class=\"rounded-lg border bg-card px-4 py-3\">\n    <ThemeToggle />\n    <Stack Gap=\"0\">\n        <Lumeo.Text Size=\"sm\" Weight=\"medium\">Dark Mode</Lumeo.Text>\n        <Lumeo.Text Size=\"xs\" Color=\"muted\">Toggle light and dark theme</Lumeo.Text>\n    </Stack>\n</Flex>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Timeline": {
      "name": "Timeline",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Vertical event timeline with icons and connectors.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Timeline/Timeline.razor",
        "UI/Timeline/TimelineItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Orientation",
          "type": "TimelineOrientation",
          "default": "TimelineOrientation.Vertical",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Animated",
          "type": "bool",
          "default": null,
          "description": "When true, each TimelineItem fades+translates in with a staggered delay, the active indicator pulses, and connector segments draw themselves as the active step advances. Default is false.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveIndex",
          "type": "int?",
          "default": null,
          "description": "When set AND Animated is true, drives the active-dot progression: items with index &lt; ActiveIndex render as \"completed\" (solid primary), the item at ActiveIndex pulses, later items are pending (muted). Connectors up to the active index draw themselves. Use together with ActiveIndexChanged for two-way binding.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ActiveIndexChanged",
          "type": "EventCallback<int>",
          "default": null,
          "description": "Two-way binding callback for ActiveIndex.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ActiveIndexChanged",
          "type": "EventCallback<int>",
          "description": "Two-way binding callback for ActiveIndex."
        }
      ],
      "enums": [
        {
          "name": "TimelineOrientation",
          "values": [
            "Vertical",
            "Horizontal"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "TimelineContext",
          "signature": "TimelineContext(TimelineOrientation Orientation, bool Animated, int? ActiveIndex, int? PreviousActiveIndex, int ReplayKey, Timeline Parent)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-background",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Vertical Timeline",
          "code": "<Timeline>\n    <TimelineItem Title=\"Order placed\" Description=\"Your order has been placed.\" Time=\"Jan 1, 2025\" />\n    <TimelineItem Title=\"Processing\" Description=\"Being processed.\" Time=\"Jan 2, 2025\" />\n    <TimelineItem Title=\"Shipped\" Description=\"Shipped via express.\" Time=\"Jan 3, 2025\" />\n    <TimelineItem Title=\"Delivered\" Description=\"Has been delivered.\" Time=\"Jan 5, 2025\" />\n</Timeline>"
        },
        {
          "title": "With Icons",
          "code": "<Timeline>\n    <TimelineItem Title=\"Account created\" Time=\"9:00 AM\">\n        <IconContent><Blazicon Svg=\"Lucide.UserPlus\" class=\"h-4 w-4\" /></IconContent>\n    </TimelineItem>\n    <TimelineItem Title=\"Profile updated\" Time=\"10:30 AM\">\n        <IconContent><Blazicon Svg=\"Lucide.Pencil\" class=\"h-4 w-4\" /></IconContent>\n    </TimelineItem>\n</Timeline>"
        },
        {
          "title": "Horizontal Timeline",
          "code": "<Timeline Orientation=\"Timeline.TimelineOrientation.Horizontal\">\n    <TimelineItem Title=\"Step 1\" Description=\"Planning\" />\n    <TimelineItem Title=\"Step 2\" Description=\"Design\" />\n    <TimelineItem Title=\"Step 3\" Description=\"Development\" />\n    <TimelineItem Title=\"Step 4\" Description=\"Launch\" />\n</Timeline>"
        },
        {
          "title": "Orientation (interactive)",
          "code": "<Segmented @bind-Value=\"_orientation\">\n    <SegmentedItem Value=\"@Timeline.TimelineOrientation.Vertical\">Vertical</SegmentedItem>\n    <SegmentedItem Value=\"@Timeline.TimelineOrientation.Horizontal\">Horizontal</SegmentedItem>\n</Segmented>\n<Timeline Orientation=\"@_orientation\">\n    <TimelineItem Title=\"Planning\" Description=\"Scope defined\" Time=\"Jan 1\" />\n    <TimelineItem Title=\"Design\" Description=\"Wireframes approved\" Time=\"Jan 8\" />\n    <TimelineItem Title=\"Development\" Description=\"Sprint in progress\" Time=\"Jan 15\" />\n    <TimelineItem Title=\"Launch\" Description=\"Shipped to production\" Time=\"Feb 1\" />\n</Timeline>\n\n@code { private Timeline.TimelineOrientation _orientation = Timeline.TimelineOrientation.Vertical; }"
        }
      ],
      "subComponents": {
        "TimelineItem": {
          "componentName": "TimelineItem",
          "fileName": "TimelineItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Timeline.TimelineContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "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": "Title",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Description",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Time",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "IsActive",
              "type": "bool",
              "default": null,
              "description": "When set, marks this item as the \"active\" (current) item. When the parent Timeline has Animated=\"true\", this item's indicator pulses. If the parent also sets ActiveIndex, that value wins — use IsActive for static cases only.",
              "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": [
            {
              "name": "ProgressState",
              "values": [
                "Pending",
                "Completed",
                "Active"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "TimePicker": {
      "name": "TimePicker",
      "category": "Forms",
      "subcategory": "Specialized",
      "description": "Time-of-day picker with 12h/24h formats.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/TimePicker/TimePicker.razor",
        "UI/TimePicker/TimeWheelPicker.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Variant",
          "type": "TimePickerVariant",
          "default": "TimePickerVariant.List",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "TimeSpan?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<TimeSpan?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Use24Hour",
          "type": "bool?",
          "default": null,
          "description": "When true renders a 24-hour clock; when false renders 12-hour with AM/PM. When null (default) the picker derives the choice from EffectiveCulture's ShortTimePattern — de-DE, fr-FR and similar see 24-hour; en-US sees 12-hour.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSeconds",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MinuteStep",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SecondStep",
          "type": "int",
          "default": "1",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Culture",
          "type": "System.Globalization.CultureInfo?",
          "default": null,
          "description": "Overrides CurrentCulture for 24h/12h detection and AM/PM designators. Leave null to honour ASP.NET request localization.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<TimeSpan?>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "TimePickerVariant",
          "values": [
            "List",
            "Wheel"
          ],
          "description": "Visual style of the picker. List renders the existing scrollable hour/minute columns inside a popover (default). Wheel renders inline iOS-style snap-scrolling columns. The Wheel variant doesn't show seconds."
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-destructive",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic TimePicker",
          "code": "<TimePicker @bind-Value=\"_time\" />"
        },
        {
          "title": "12-Hour Format",
          "code": "<TimePicker @bind-Value=\"_time\" Use24Hour=\"false\" />"
        },
        {
          "title": "With Seconds",
          "code": "<TimePicker @bind-Value=\"_time\" ShowSeconds=\"true\" />"
        },
        {
          "title": "Minute Step",
          "code": "<TimePicker @bind-Value=\"_time\" MinuteStep=\"15\" />"
        }
      ],
      "subComponents": {
        "TimeWheelPicker": {
          "componentName": "TimeWheelPicker",
          "fileName": "TimeWheelPicker.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IDisposable"
          ],
          "parameters": [
            {
              "name": "Value",
              "type": "TimeSpan?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ValueChanged",
              "type": "EventCallback<TimeSpan?>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Use24Hour",
              "type": "bool?",
              "default": null,
              "description": "When true renders a 24-hour clock; when false renders 12-hour with AM/PM. When null (default), derived from ShortTimePattern.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MinuteStep",
              "type": "int",
              "default": "1",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Culture",
              "type": "CultureInfo?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "ValueChanged",
              "type": "EventCallback<TimeSpan?>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Toast": {
      "name": "Toast",
      "category": "Feedback",
      "subcategory": null,
      "description": "Notification toast — renders from ToastService queue.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Toast/Toast.razor",
        "UI/Toast/ToastAction.razor",
        "UI/Toast/ToastClose.razor",
        "UI/Toast/ToastDescription.razor",
        "UI/Toast/ToastProvider.razor",
        "UI/Toast/ToastProvider.razor.cs",
        "UI/Toast/ToastTitle.razor",
        "UI/Toast/ToastViewport.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ToastVariant",
          "default": "ToastVariant.Default",
          "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-border",
        "--color-card",
        "--color-destructive",
        "--color-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default Toast",
          "code": "@inject ToastService ToastService\n\n<Button OnClick=\"ShowDefault\">Show Toast</Button>\n\n<ToastProvider />\n\n@code {\n    private void ShowDefault()\n    {\n        ToastService.Show(\"Scheduled\", \"Your event has been created.\");\n    }\n}"
        },
        {
          "title": "Success Toast",
          "code": "ToastService.Success(\"Success\", \"Your changes have been saved.\");"
        },
        {
          "title": "Destructive Toast",
          "code": "ToastService.Error(\"Error\", \"Something went wrong. Please try again.\");"
        },
        {
          "title": "All Variants",
          "code": "@inject ToastService ToastService\n\n<Button OnClick=\"ShowDefault\">Default</Button>\n<Button OnClick=\"ShowSuccess\">Success</Button>\n<Button OnClick=\"ShowError\">Error</Button>\n\n<ToastProvider />\n\n@code {\n    private void ShowDefault()\n        => ToastService.Show(\"Scheduled\", \"Your event has been created.\");\n    private void ShowSuccess()\n        => ToastService.Success(\"Success\", \"Your changes have been saved.\");\n    private void ShowError()\n        => ToastService.Error(\"Error\", \"Something went wrong. Please try again.\");\n}"
        }
      ],
      "subComponents": {
        "ToastAction": {
          "componentName": "ToastAction",
          "fileName": "ToastAction.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Label",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnClick",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClick",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToastClose": {
          "componentName": "ToastClose",
          "fileName": "ToastClose.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "OnClose",
              "type": "EventCallback",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AriaLabel",
              "type": "string?",
              "default": null,
              "description": "Accessible name for the close button. Override for i18n.",
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [
            {
              "name": "OnClose",
              "type": "EventCallback",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToastDescription": {
          "componentName": "ToastDescription",
          "fileName": "ToastDescription.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToastProvider": {
          "componentName": "ToastProvider",
          "fileName": "ToastProvider.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [
            "IAsyncDisposable"
          ],
          "parameters": [
            {
              "name": "Position",
              "type": "ToastViewport.ToastPosition",
              "default": "ToastViewport.ToastPosition.BottomRight",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "DefaultDuration",
              "type": "int",
              "default": "5000",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MaxToasts",
              "type": "int",
              "default": "5",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [
            {
              "name": "ToastItem",
              "signature": "ToastItem(string Id, ToastOptions Options, bool Leaving = false)",
              "description": null
            }
          ],
          "parseFailed": false,
          "parseError": null
        },
        "ToastTitle": {
          "componentName": "ToastTitle",
          "fileName": "ToastTitle.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToastViewport": {
          "componentName": "ToastViewport",
          "fileName": "ToastViewport.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Position",
              "type": "ToastPosition",
              "default": "ToastPosition.BottomRight",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [
            {
              "name": "ToastPosition",
              "values": [
                "TopLeft",
                "TopCenter",
                "TopRight",
                "BottomLeft",
                "BottomCenter",
                "BottomRight"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Toggle": {
      "name": "Toggle",
      "category": "Forms",
      "subcategory": "Buttons & Actions",
      "description": "Two-state button with pressed/unpressed styling.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Toggle/Toggle.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Pressed",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "PressedChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ToggleVariant",
          "default": "ToggleVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ToggleSize",
          "default": "ToggleSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AriaLabel",
          "type": "string?",
          "default": null,
          "description": "Accessible name exposed via aria-label. Required when ChildContent is an icon only (no visible text) — otherwise screen readers announce the toggle as an unnamed button.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "PressedChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "ToggleVariant",
          "values": [
            "Default",
            "Outline"
          ],
          "description": null
        },
        {
          "name": "ToggleSize",
          "values": [
            "Default",
            "Sm",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Toggle @bind-Pressed=\"_bold\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n</Toggle>\n\n@code {\n    private bool _bold;\n}"
        },
        {
          "title": "Variants",
          "code": "<Toggle @bind-Pressed=\"_pressed1\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n</Toggle>\n<Toggle Variant=\"Toggle.ToggleVariant.Outline\" @bind-Pressed=\"_pressed2\">\n    <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n</Toggle>"
        },
        {
          "title": "Sizes",
          "code": "<Toggle Size=\"Toggle.ToggleSize.Sm\" @bind-Pressed=\"_sm\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-3 w-3\" />\n</Toggle>\n<Toggle @bind-Pressed=\"_md\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n</Toggle>\n<Toggle Size=\"Toggle.ToggleSize.Lg\" @bind-Pressed=\"_lg\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-5 w-5\" />\n</Toggle>"
        },
        {
          "title": "With Text",
          "code": "<Toggle @bind-Pressed=\"_pressed\">\n    <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n    Bold\n</Toggle>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "ToggleGroup": {
      "name": "ToggleGroup",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Group of toggles with single or multiple selection.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ToggleGroup/ToggleGroup.razor",
        "UI/ToggleGroup/ToggleGroupItem.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Type",
          "type": "ToggleGroupType",
          "default": "ToggleGroupType.Single",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Variant",
          "type": "ToggleGroupVariant",
          "default": "ToggleGroupVariant.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Size",
          "type": "ToggleGroupSize",
          "default": "ToggleGroupSize.Default",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedValues",
          "type": "IEnumerable<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedValuesChanged",
          "type": "EventCallback<IEnumerable<string>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string?>",
          "description": null
        },
        {
          "name": "SelectedValuesChanged",
          "type": "EventCallback<IEnumerable<string>>",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "ToggleGroupType",
          "values": [
            "Single",
            "Multiple"
          ],
          "description": null
        },
        {
          "name": "ToggleGroupVariant",
          "values": [
            "Default",
            "Outline"
          ],
          "description": null
        },
        {
          "name": "ToggleGroupSize",
          "values": [
            "Default",
            "Sm",
            "Lg"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "ToggleGroupContext",
          "signature": "ToggleGroupContext(ToggleGroupType Type, HashSet<string> SelectedItems, ToggleGroupVariant Variant, ToggleGroupSize Size, EventCallback<string> Toggle)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Single Selection",
          "code": "<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Single\">\n    <ToggleGroupItem Value=\"bold\">\n        <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"italic\">\n        <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"underline\">\n        <Blazicon Svg=\"Lucide.Underline\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n</ToggleGroup>"
        },
        {
          "title": "Multiple Selection",
          "code": "<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Multiple\">\n    <ToggleGroupItem Value=\"bold\">\n        <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"italic\">\n        <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"underline\">\n        <Blazicon Svg=\"Lucide.Underline\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n</ToggleGroup>"
        },
        {
          "title": "Outline Variant",
          "code": "<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Single\" Variant=\"ToggleGroup.ToggleGroupVariant.Outline\">\n    <ToggleGroupItem Value=\"left\">\n        <Blazicon Svg=\"Lucide.AlignLeft\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"center\">\n        <Blazicon Svg=\"Lucide.AlignCenter\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n    <ToggleGroupItem Value=\"right\">\n        <Blazicon Svg=\"Lucide.AlignRight\" class=\"h-4 w-4\" />\n    </ToggleGroupItem>\n</ToggleGroup>"
        },
        {
          "title": "Sizes",
          "code": "<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Single\" Size=\"ToggleGroup.ToggleGroupSize.Sm\">\n    ...\n</ToggleGroup>\n\n<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Single\">\n    ...\n</ToggleGroup>\n\n<ToggleGroup Type=\"ToggleGroup.ToggleGroupType.Single\" Size=\"ToggleGroup.ToggleGroupSize.Lg\">\n    ...\n</ToggleGroup>"
        }
      ],
      "subComponents": {
        "ToggleGroupItem": {
          "componentName": "ToggleGroupItem",
          "fileName": "ToggleGroupItem.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Value",
              "type": "string",
              "default": "\"\"",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Disabled",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "PressEffect",
              "type": "Button.ButtonPressEffect",
              "default": "Button.ButtonPressEffect.None",
              "description": "Visual feedback when the item is pressed. Default is None.",
              "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
            },
            {
              "name": "Context",
              "type": "ToggleGroup.ToggleGroupContext",
              "default": "default!",
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Toolbar": {
      "name": "Toolbar",
      "category": "Navigation",
      "subcategory": null,
      "description": "Horizontal toolbar container with separator, spacer, and group sub-components.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Toolbar/Toolbar.razor",
        "UI/Toolbar/ToolbarGroup.razor",
        "UI/Toolbar/ToolbarSeparator.razor",
        "UI/Toolbar/ToolbarSpacer.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        },
        {
          "name": "Overflow",
          "type": "bool",
          "default": null,
          "description": "When true the toolbar collapses items that don't fit into a trailing \"⋯\" dropdown. Use VisibleCount to control how many items are shown inline, or leave it at -1 (the default) to let the toolbar auto-measure via ResizeObserver.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "VisibleCount",
          "type": "int",
          "default": "-1",
          "description": "Number of leading items to show inline when Overflow is true. -1 (default) — auto-measure mode: a ResizeObserver measures the container width on every resize and computes the maximum number of items that fit before a \"⋯\" trigger button is needed. No consumer configuration required. Positive integer — manual mode: exactly that many items are shown inline and the rest collapse into the \"⋯\" dropdown regardless of available space.",
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OverflowLabel",
          "type": "string?",
          "default": null,
          "description": "aria-label for the \"⋯\" overflow button. Default: \"More\".",
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [],
      "enums": [
        {
          "name": "ToolbarRenderSlot",
          "values": [
            "Visible",
            "Dropdown"
          ],
          "description": "Slot that a child item should render for in overflow mode."
        }
      ],
      "records": [
        {
          "name": "ToolbarOverflowContext",
          "signature": "ToolbarOverflowContext(ToolbarRenderSlot Slot, int VisibleCount, int TotalCount)",
          "description": "Cascaded by Toolbar to all descendant items when overflow mode is active. Items use this to decide whether to render normally (Visible slot) or as a dropdown row (Dropdown slot), and whether to hide themselves when they fall past the VisibleCount boundary."
        }
      ],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Toolbar",
          "code": "<Toolbar>\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n        <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n    </Button>\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n        <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n    </Button>\n    <ToolbarSeparator />\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\n        <Blazicon Svg=\"Lucide.AlignLeft\" class=\"h-4 w-4\" />\n    </Button>\n</Toolbar>"
        },
        {
          "title": "With Spacer and Groups",
          "code": "<Toolbar>\n    <ToolbarGroup>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Undo</Button>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Redo</Button>\n    </ToolbarGroup>\n    <ToolbarSeparator />\n    <ToolbarGroup>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Bold</Button>\n        <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Italic</Button>\n    </ToolbarGroup>\n    <ToolbarSpacer />\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Settings</Button>\n</Toolbar>"
        },
        {
          "title": "Overflow Menu",
          "code": "<!-- VisibleCount=3: first 3 items inline, rest collapse into ⋯ menu -->\n<Toolbar Overflow=\"true\" VisibleCount=\"3\">\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Bold</Button>\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Italic</Button>\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Underline</Button>\n    <ToolbarSeparator />\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Left</Button>\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Center</Button>\n</Toolbar>"
        },
        {
          "title": "With Input",
          "code": "<Toolbar>\n    <Input Placeholder=\"Search...\" Class=\"h-7 text-sm w-48\" />\n    <ToolbarSeparator />\n    <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Filter</Button>\n    <ToolbarSpacer />\n    <Button Size=\"Button.ButtonSize.Sm\">Export</Button>\n</Toolbar>"
        }
      ],
      "subComponents": {
        "ToolbarGroup": {
          "componentName": "ToolbarGroup",
          "fileName": "ToolbarGroup.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToolbarSeparator": {
          "componentName": "ToolbarSeparator",
          "fileName": "ToolbarSeparator.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "ToolbarSpacer": {
          "componentName": "ToolbarSpacer",
          "fileName": "ToolbarSpacer.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "ToolCallCard": {
      "name": "ToolCallCard",
      "category": "AI",
      "subcategory": null,
      "description": "AI tool-invocation card showing call + result.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/ToolCallCard/ToolCallCard.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "ToolName",
          "type": "string",
          "default": "string.Empty",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Status",
          "type": "ToolCallStatus",
          "default": "ToolCallStatus.Pending",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Input",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Output",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorMessage",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "long?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DefaultOpen",
          "type": "bool",
          "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": [
        {
          "name": "ToolCallStatus",
          "values": [
            "Pending",
            "Running",
            "Success",
            "Error"
          ],
          "description": null
        }
      ],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Status Variants",
          "code": "<ToolCallCard ToolName=\"search_web\" Status=\"ToolCallCard.ToolCallStatus.Pending\"\n              Input=\"{&quot;query&quot;: &quot;latest Blazor news&quot;}\" />\n\n<ToolCallCard ToolName=\"read_file\" Status=\"ToolCallCard.ToolCallStatus.Running\"\n              Input=\"{&quot;path&quot;: &quot;/src/app.razor&quot;}\" />\n\n<ToolCallCard ToolName=\"execute_code\" Status=\"ToolCallCard.ToolCallStatus.Success\"\n              Input=\"{&quot;language&quot;: &quot;csharp&quot;}\" Output=\"Hello\" DurationMs=\"342\" />\n\n<ToolCallCard ToolName=\"fetch_url\" Status=\"ToolCallCard.ToolCallStatus.Error\"\n              ErrorMessage=\"Connection timeout after 5000ms\" DurationMs=\"5001\" />"
        },
        {
          "title": "Expanded by Default",
          "code": "<ToolCallCard ToolName=\"analyze_sentiment\"\n              Status=\"ToolCallCard.ToolCallStatus.Success\"\n              Input=\"{&quot;text&quot;: &quot;Lumeo makes Blazor development a joy!&quot;}\"\n              Output=\"{&quot;sentiment&quot;: &quot;positive&quot;, &quot;score&quot;: 0.96}\"\n              DurationMs=\"128\"\n              DefaultOpen=\"true\" />"
        },
        {
          "title": "Status (interactive)",
          "code": "<Segmented @bind-Value=\"_status\">\n    <SegmentedItem Value=\"@ToolCallCard.ToolCallStatus.Pending\">Pending</SegmentedItem>\n    <SegmentedItem Value=\"@ToolCallCard.ToolCallStatus.Running\">Running</SegmentedItem>\n    <SegmentedItem Value=\"@ToolCallCard.ToolCallStatus.Success\">Success</SegmentedItem>\n    <SegmentedItem Value=\"@ToolCallCard.ToolCallStatus.Error\">Error</SegmentedItem>\n</Segmented>\n<ToolCallCard ToolName=\"run_query\" Status=\"@_status\"\n              Input=\"{&quot;sql&quot;: &quot;SELECT * FROM users&quot;}\"\n              Output=\"@(_status == Success ? \"10 rows\" : null)\"\n              ErrorMessage=\"@(_status == Error ? \"Timeout\" : null)\" />\n\n@code { private ToolCallCard.ToolCallStatus _status = ToolCallCard.ToolCallStatus.Pending; }"
        },
        {
          "title": "Multiple Tool Calls",
          "code": "@foreach (var call in _toolCalls)\n{\n    <ToolCallCard ToolName=\"@call.Name\"\n                  Status=\"@call.Status\"\n                  Input=\"@call.Input\"\n                  Output=\"@call.Output\"\n                  DurationMs=\"@call.DurationMs\" />\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Tooltip": {
      "name": "Tooltip",
      "category": "Overlay",
      "subcategory": null,
      "description": "Hover/focus tooltip with arrow and configurable placement.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Tooltip/Tooltip.razor",
        "UI/Tooltip/TooltipContent.razor",
        "UI/Tooltip/TooltipTrigger.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowDelay",
          "type": "int",
          "default": "200",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HideDelay",
          "type": "int",
          "default": "0",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "TooltipContext",
          "signature": "TooltipContext(bool IsOpen)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-primary",
        "--color-primary-foreground",
        "--radius"
      ],
      "examples": [
        {
          "title": "Default",
          "code": "<Tooltip>\n    <TooltipTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Hover me</Button>\n    </TooltipTrigger>\n    <TooltipContent>\n        <p>Add to library</p>\n    </TooltipContent>\n</Tooltip>"
        },
        {
          "title": "Side Variations",
          "code": "<Tooltip>\n    <TooltipTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Top</Button>\n    </TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Top\">\n        <p>Tooltip on top</p>\n    </TooltipContent>\n</Tooltip>\n\n<Tooltip>\n    <TooltipTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\">Bottom</Button>\n    </TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Bottom\">\n        <p>Tooltip on bottom</p>\n    </TooltipContent>\n</Tooltip>"
        },
        {
          "title": "With Icons",
          "code": "<Tooltip>\n    <TooltipTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Icon\">\n            <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\n        </Button>\n    </TooltipTrigger>\n    <TooltipContent>\n        <p>Bold</p>\n    </TooltipContent>\n</Tooltip>\n\n<Tooltip>\n    <TooltipTrigger>\n        <Button Variant=\"Button.ButtonVariant.Outline\" Size=\"Button.ButtonSize.Icon\">\n            <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\n        </Button>\n    </TooltipTrigger>\n    <TooltipContent>\n        <p>Italic</p>\n    </TooltipContent>\n</Tooltip>"
        },
        {
          "title": "Placement",
          "code": "<Tooltip>\n    <TooltipTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Top</Button></TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Top\">Top tooltip</TooltipContent>\n</Tooltip>\n<Tooltip>\n    <TooltipTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Bottom</Button></TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Bottom\">Bottom tooltip</TooltipContent>\n</Tooltip>\n<Tooltip>\n    <TooltipTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Left</Button></TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Left\">Left tooltip</TooltipContent>\n</Tooltip>\n<Tooltip>\n    <TooltipTrigger><Button Variant=\"Button.ButtonVariant.Outline\">Right</Button></TooltipTrigger>\n    <TooltipContent Side=\"TooltipContent.TooltipSide.Right\">Right tooltip</TooltipContent>\n</Tooltip>"
        }
      ],
      "subComponents": {
        "TooltipContent": {
          "componentName": "TooltipContent",
          "fileName": "TooltipContent.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Context",
              "type": "Tooltip.TooltipContext?",
              "default": null,
              "description": null,
              "isCascading": true,
              "captureUnmatched": false
            },
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Side",
              "type": "TooltipSide",
              "default": "TooltipSide.Top",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowArrow",
              "type": "bool",
              "default": "true",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Offset",
              "type": "int",
              "default": "8",
              "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": [
            {
              "name": "TooltipSide",
              "values": [
                "Top",
                "Bottom",
                "Left",
                "Right"
              ],
              "description": null
            }
          ],
          "records": [],
          "parseFailed": false,
          "parseError": null
        },
        "TooltipTrigger": {
          "componentName": "TooltipTrigger",
          "fileName": "TooltipTrigger.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "ChildContent",
              "type": "RenderFragment?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Class",
              "type": "string?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "AdditionalAttributes",
              "type": "Dictionary<string, object>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": true
            }
          ],
          "events": [],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "TouchRipple": {
      "name": "TouchRipple",
      "category": "Utility",
      "subcategory": null,
      "description": "Touch Ripple component.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/TouchRipple/TouchRipple.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Color",
          "type": "string",
          "default": "\"currentColor\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Opacity",
          "type": "double",
          "default": "0.25",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "DurationMs",
          "type": "int",
          "default": "500",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [],
      "enums": [],
      "records": [
        {
          "name": "RippleEntry",
          "signature": "RippleEntry(Guid Id, double X, double Y)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-foreground"
      ],
      "examples": [
        {
          "title": "Basic Ripple on a Button",
          "code": "<TouchRipple Class=\"inline-block rounded-md\">\n    <Button>Tap me</Button>\n</TouchRipple>"
        },
        {
          "title": "Custom Color",
          "code": "<TouchRipple Color=\"#3b82f6\" Class=\"inline-block rounded-md\">\n    <Button Variant=\"ButtonVariant.Secondary\">Blue ripple</Button>\n</TouchRipple>\n\n<TouchRipple Color=\"#ef4444\" Class=\"inline-block rounded-md\">\n    <Button Variant=\"ButtonVariant.Secondary\">Red ripple</Button>\n</TouchRipple>"
        },
        {
          "title": "Custom Opacity and Duration",
          "code": "<!-- High opacity, fast -->\n<TouchRipple Opacity=\"0.5\" DurationMs=\"300\" Class=\"inline-block rounded-md\">\n    <Button Variant=\"ButtonVariant.Outline\">Fast (300 ms)</Button>\n</TouchRipple>\n\n<!-- Low opacity, slow -->\n<TouchRipple Opacity=\"0.1\" DurationMs=\"900\" Class=\"inline-block rounded-md\">\n    <Button Variant=\"ButtonVariant.Outline\">Slow (900 ms)</Button>\n</TouchRipple>"
        },
        {
          "title": "Ripple on a Card",
          "code": "<TouchRipple Class=\"block rounded-xl w-full max-w-sm cursor-pointer\">\n    <Card Class=\"p-5\">\n        <Text Class=\"font-medium\">Interactive card</Text>\n        <Text Size=\"sm\" Color=\"muted\">Tap anywhere to see the ripple.</Text>\n    </Card>\n</TouchRipple>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Tour": {
      "name": "Tour",
      "category": "Overlay",
      "subcategory": null,
      "description": "Multi-step spotlight onboarding tour.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Tour/Tour.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Steps",
          "type": "List<TourStepConfig>",
          "default": "[]",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpen",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentStep",
          "type": "int",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CurrentStepChanged",
          "type": "EventCallback<int>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnComplete",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnSkip",
          "type": "EventCallback",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "IsOpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        },
        {
          "name": "CurrentStepChanged",
          "type": "EventCallback<int>",
          "description": null
        },
        {
          "name": "OnComplete",
          "type": "EventCallback",
          "description": null
        },
        {
          "name": "OnSkip",
          "type": "EventCallback",
          "description": null
        }
      ],
      "enums": [
        {
          "name": "TourPlacement",
          "values": [
            "Top",
            "Bottom",
            "Left",
            "Right"
          ],
          "description": null
        }
      ],
      "records": [
        {
          "name": "TourStepConfig",
          "signature": "TourStepConfig(string? TargetSelector, string Title, string? Description = null, TourPlacement Placement = TourPlacement.Bottom)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-background",
        "--color-border",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-popover-foreground",
        "--color-primary",
        "--color-primary-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Tour",
          "code": "<Flex Class=\"gap-3 flex-wrap\">\n    <Button id=\"tour-feature-1\" Variant=\"Button.ButtonVariant.Outline\">Dashboard</Button>\n    <Button id=\"tour-feature-2\" Variant=\"Button.ButtonVariant.Outline\">Team</Button>\n    <Button id=\"tour-feature-3\" Variant=\"Button.ButtonVariant.Outline\">Settings</Button>\n</Flex>\n<Button Variant=\"Button.ButtonVariant.Default\" OnClick=\"@(() => _tourOpen = true)\">\n    Start Tour\n</Button>\n\n<Tour @bind-Open=\"_tourOpen\"\n      Steps=\"@_tourSteps\"\n      OnComplete=\"@HandleComplete\"\n      OnSkip=\"@(() => _tourOpen = false)\" />\n\n@code {\n    private bool _tourOpen;\n\n    private List<Tour.TourStepConfig> _tourSteps = new()\n    {\n        new(\"#tour-feature-1\", \"Dashboard\", \"Get an overview of your key metrics.\", Tour.TourPlacement.Bottom),\n        new(\"#tour-feature-2\", \"Team Management\", \"Invite members and manage permissions.\", Tour.TourPlacement.Bottom),\n        new(\"#tour-feature-3\", \"Settings\", \"Customize your workspace and account.\", Tour.TourPlacement.Bottom),\n    };\n\n    private void HandleComplete() => _tourOpen = false;\n}"
        },
        {
          "title": "Custom Placements",
          "code": "<Flex Class=\"justify-between gap-3\">\n    <Button id=\"tour-top\"    Variant=\"Button.ButtonVariant.Outline\">Top</Button>\n    <Button id=\"tour-right\"  Variant=\"Button.ButtonVariant.Outline\">Right</Button>\n    <Button id=\"tour-bottom\" Variant=\"Button.ButtonVariant.Outline\">Bottom</Button>\n    <Button id=\"tour-left\"   Variant=\"Button.ButtonVariant.Outline\">Left</Button>\n</Flex>\n<Button Variant=\"Button.ButtonVariant.Secondary\" OnClick=\"@(() => _open = true)\">\n    Tour Placements\n</Button>\n\n<Tour @bind-Open=\"_open\"\n      Steps=\"@_steps\"\n      OnComplete=\"@(() => _open = false)\"\n      OnSkip=\"@(() => _open = false)\" />\n\n@code {\n    private bool _open;\n\n    private List<Tour.TourStepConfig> _steps = new()\n    {\n        new(\"#tour-top\",    \"Top Placement\",    \"Tooltip above the element.\",  Tour.TourPlacement.Top),\n        new(\"#tour-right\",  \"Right Placement\",  \"Tooltip to the right.\",       Tour.TourPlacement.Right),\n        new(\"#tour-bottom\", \"Bottom Placement\", \"Tooltip below the element.\",  Tour.TourPlacement.Bottom),\n        new(\"#tour-left\",   \"Left Placement\",   \"Tooltip to the left.\",        Tour.TourPlacement.Left),\n    };\n}"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Transfer": {
      "name": "Transfer",
      "category": "Drag & Drop",
      "subcategory": null,
      "description": "Dual-list transfer picker — left/right with arrows.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Transfer/Transfer.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "SourceItems",
          "type": "List<TransferItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SourceItemsChanged",
          "type": "EventCallback<List<TransferItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TargetItems",
          "type": "List<TransferItem>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TargetItemsChanged",
          "type": "EventCallback<List<TransferItem>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SourceTitle",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TargetTitle",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnChange",
          "type": "EventCallback<TransferChangeEventArgs>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSearch",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "SourceItemsChanged",
          "type": "EventCallback<List<TransferItem>>",
          "description": null
        },
        {
          "name": "TargetItemsChanged",
          "type": "EventCallback<List<TransferItem>>",
          "description": null
        },
        {
          "name": "OnChange",
          "type": "EventCallback<TransferChangeEventArgs>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "TransferItem",
          "signature": "TransferItem(string Label, string Value)",
          "description": null
        },
        {
          "name": "TransferChangeEventArgs",
          "signature": "TransferChangeEventArgs(string Direction, List<TransferItem> MovedItems)",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Transfer",
          "code": "<Transfer @bind-SourceItems=\"_source\" @bind-TargetItems=\"_target\"\n          SourceTitle=\"Available\" TargetTitle=\"Selected\" />"
        },
        {
          "title": "OnChange — interactive",
          "code": "<Transfer @bind-SourceItems=\"_source\" @bind-TargetItems=\"_target\"\n          OnChange=\"@(args => _lastChange = $\"Moved {args.MovedItems.Count} item(s) → {(args.Direction == \"\"right\"\" ? \"\"Selected\"\" : \"\"Available\"\")}\")\"\n          SourceTitle=\"Available\" TargetTitle=\"Selected\" />\n@if (_lastChange is not null)\n{\n    <Lumeo.Text Size=\"sm\" Color=\"muted\">Last change: @_lastChange</Lumeo.Text>\n}\n\n@code { private string? _lastChange; }"
        },
        {
          "title": "With Search",
          "code": "<Transfer @bind-SourceItems=\"_source\" @bind-TargetItems=\"_target\"\n          SourceTitle=\"Users\" TargetTitle=\"Team\" ShowSearch=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "TreeSelect": {
      "name": "TreeSelect",
      "category": "Forms",
      "subcategory": "Selection",
      "description": "Select input with a hierarchical tree dropdown.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/TreeSelect/TreeSelect.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "FormField",
          "type": "FormField.FormFieldContext?",
          "default": null,
          "description": null,
          "isCascading": true,
          "captureUnmatched": false
        },
        {
          "name": "Value",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Items",
          "type": "List<TreeSelectItem>",
          "default": "new()",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Placeholder",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Searchable",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Multiple",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Values",
          "type": "List<string>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<List<string>?>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Disabled",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ExpandAll",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Required",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Invalid",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ErrorText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "HelperText",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Label",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Name",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "ValueChanged",
          "type": "EventCallback<string>",
          "description": null
        },
        {
          "name": "ValuesChanged",
          "type": "EventCallback<List<string>?>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-background",
        "--color-border",
        "--color-destructive",
        "--color-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-popover",
        "--color-primary",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Tree Select",
          "code": "<TreeSelect @bind-Value=\"_selected\" Items=\"@_categories\" />\n\n@code {\n    private string? _selected;\n    private List<TreeSelect.TreeSelectItem> _categories = new()\n    {\n        new() { Label = \"Electronics\", Value = \"electronics\", Children = new()\n        {\n            new() { Label = \"Phones\", Value = \"phones\" },\n            new() { Label = \"Computers\", Value = \"computers\" },\n        }},\n        new() { Label = \"Books\", Value = \"books\" },\n    };\n}"
        },
        {
          "title": "Searchable",
          "code": "<TreeSelect @bind-Value=\"_selected\" Items=\"@_categories\" Searchable=\"true\" />"
        },
        {
          "title": "Multi-select",
          "code": "<TreeSelect Values=\"@_values\" ValuesChanged=\"@(v => _values = v)\"\n            Items=\"@_categories\" Multiple=\"true\" Searchable=\"true\" />"
        },
        {
          "title": "Expand All",
          "code": "<TreeSelect @bind-Value=\"_selected\" Items=\"@_categories\" ExpandAll=\"true\" />"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "TreeView": {
      "name": "TreeView",
      "category": "Data Display",
      "subcategory": "Lists & Trees",
      "description": "Hierarchical tree with expand/collapse and selection.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/TreeView/TreeView.razor",
        "UI/TreeView/TreeViewNode.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Items",
          "type": "List<TreeViewItem<T>>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowCheckboxes",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Expandable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnItemClick",
          "type": "EventCallback<TreeViewItem<T>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OnItemCheck",
          "type": "EventCallback<TreeViewItem<T>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowSearch",
          "type": "bool",
          "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
        },
        {
          "name": "LoadChildren",
          "type": "Func<TreeViewItem<T>, Task<List<TreeViewItem<T>>>>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CascadeCheck",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "CheckedValuesChanged",
          "type": "EventCallback<List<T?>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "NodeTemplate",
          "type": "RenderFragment<TreeViewItem<T>>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ExpandAll",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "MultiSelect",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedValues",
          "type": "List<T>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "SelectedValuesChanged",
          "type": "EventCallback<List<T>>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        }
      ],
      "events": [
        {
          "name": "OnItemClick",
          "type": "EventCallback<TreeViewItem<T>>",
          "description": null
        },
        {
          "name": "OnItemCheck",
          "type": "EventCallback<TreeViewItem<T>>",
          "description": null
        },
        {
          "name": "CheckedValuesChanged",
          "type": "EventCallback<List<T?>>",
          "description": null
        },
        {
          "name": "SelectedValuesChanged",
          "type": "EventCallback<List<T>>",
          "description": null
        }
      ],
      "enums": [],
      "records": [
        {
          "name": "TreeViewItem",
          "signature": "TreeViewItem",
          "description": null
        }
      ],
      "cssVars": [
        "--color-accent",
        "--color-accent-foreground",
        "--color-input",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Tree",
          "code": "<TreeView TItem=\"string\" Items=\"_items\" />"
        },
        {
          "title": "With Checkboxes (Tri-state)",
          "code": "<TreeView TItem=\"string\" Items=\"_items\" ShowCheckboxes=\"true\" CascadeCheck=\"true\" />"
        },
        {
          "title": "With Search",
          "code": "<TreeView TItem=\"string\" Items=\"_items\" ShowSearch=\"true\" />"
        },
        {
          "title": "Multi-select",
          "code": "<TreeView TItem=\"string\" Items=\"_items\" MultiSelect=\"true\" @bind-SelectedValues=\"_selectedValues\" />"
        }
      ],
      "subComponents": {
        "TreeViewNode": {
          "componentName": "TreeViewNode",
          "fileName": "TreeViewNode.razor",
          "namespace": "Lumeo",
          "inheritsFrom": null,
          "implements": [],
          "parameters": [
            {
              "name": "Item",
              "type": "TreeView<T>.TreeViewItem<T>",
              "default": "default!",
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Level",
              "type": "int",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "ShowCheckboxes",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "Expandable",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnItemClick",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnItemCheck",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "CascadeCheck",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "MultiSelect",
              "type": "bool",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "SelectedValues",
              "type": "HashSet<T>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "NodeTemplate",
              "type": "RenderFragment<TreeView<T>.TreeViewItem<T>>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "LoadChildren",
              "type": "Func<TreeView<T>.TreeViewItem<T>, Task<List<TreeView<T>.TreeViewItem<T>>>>?",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnExpandChanged",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            },
            {
              "name": "OnSelectionChanged",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "default": null,
              "description": null,
              "isCascading": false,
              "captureUnmatched": false
            }
          ],
          "events": [
            {
              "name": "OnItemClick",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "description": null
            },
            {
              "name": "OnItemCheck",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "description": null
            },
            {
              "name": "OnExpandChanged",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "description": null
            },
            {
              "name": "OnSelectionChanged",
              "type": "EventCallback<TreeView<T>.TreeViewItem<T>>",
              "description": null
            }
          ],
          "enums": [],
          "records": [],
          "parseFailed": false,
          "parseError": null
        }
      },
      "parseFailed": false,
      "parseError": null
    },
    "Watermark": {
      "name": "Watermark",
      "category": "Data Display",
      "subcategory": "Cards & Layout",
      "description": "Repeating diagonal watermark overlay.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Watermark/Watermark.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [],
      "parameters": [
        {
          "name": "Text",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Rotation",
          "type": "int",
          "default": "-22",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Gap",
          "type": "int",
          "default": "100",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FontSize",
          "type": "int",
          "default": "14",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Opacity",
          "type": "double",
          "default": "0.1",
          "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-foreground"
      ],
      "examples": [
        {
          "title": "Basic Watermark",
          "code": "<Watermark Text=\"Confidential\">\n    <Stack Gap=\"4\" Class=\"p-8\">\n        <Lumeo.Text Color=\"foreground\">This document contains sensitive information.</Lumeo.Text>\n    </Stack>\n</Watermark>"
        },
        {
          "title": "Custom Settings",
          "code": "<Watermark Text=\"DRAFT\" Rotation=\"-30\" FontSize=\"20\" Opacity=\"0.15\" Gap=\"120\">\n    <Stack Gap=\"2\" Class=\"p-8\">\n        <Heading Level=\"3\" Size=\"lg\">Draft Document</Heading>\n        <Lumeo.Text Color=\"muted\">This is a work in progress.</Lumeo.Text>\n    </Stack>\n</Watermark>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    },
    "Window": {
      "name": "Window",
      "category": "Overlay",
      "subcategory": null,
      "description": "Non-modal draggable and resizable floating panel with minimize and maximize support.",
      "nugetPackage": "Lumeo",
      "files": [
        "UI/Window/Window.razor"
      ],
      "namespace": "Lumeo",
      "inheritsFrom": null,
      "implements": [
        "IAsyncDisposable"
      ],
      "parameters": [
        {
          "name": "Open",
          "type": "bool",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Title",
          "type": "string",
          "default": "\"\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "TitleContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ChildContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "FooterContent",
          "type": "RenderFragment?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Width",
          "type": "string",
          "default": "\"480px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Height",
          "type": "string",
          "default": "\"360px\"",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Resizable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Draggable",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowClose",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowMinimize",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "ShowMaximize",
          "type": "bool",
          "default": "true",
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialX",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "InitialY",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "Class",
          "type": "string?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": false
        },
        {
          "name": "AdditionalAttributes",
          "type": "Dictionary<string, object>?",
          "default": null,
          "description": null,
          "isCascading": false,
          "captureUnmatched": true
        }
      ],
      "events": [
        {
          "name": "OpenChanged",
          "type": "EventCallback<bool>",
          "description": null
        }
      ],
      "enums": [],
      "records": [],
      "cssVars": [
        "--color-border",
        "--color-card",
        "--color-foreground",
        "--color-muted",
        "--color-muted-foreground",
        "--color-ring",
        "--radius"
      ],
      "examples": [
        {
          "title": "Basic Window",
          "code": "<Window @bind-Open=\"_open\" Title=\"My Window\" Width=\"360px\" Height=\"200px\">\n    <p class=\"text-sm text-muted-foreground\">Drag the title bar to move. Drag the bottom-right corner to resize.</p>\n</Window>\n\n<Button @onclick=\"@(() => _open = true)\">Open Window</Button>\n\n@code { private bool _open; }"
        },
        {
          "title": "Window with Footer",
          "code": "<Window @bind-Open=\"_open\" Title=\"Save Document\">\n    <p class=\"text-sm text-muted-foreground\">You have unsaved changes.</p>\n    <FooterContent>\n        <div class=\"flex gap-2 justify-end\">\n            <Button Variant=\"Button.ButtonVariant.Outline\" @onclick=\"@(() => _open = false)\">Discard</Button>\n            <Button @onclick=\"@(() => _open = false)\">Save</Button>\n        </div>\n    </FooterContent>\n</Window>"
        },
        {
          "title": "Non-Resizable Window",
          "code": "<Window @bind-Open=\"_open\" Title=\"Fixed Panel\" Resizable=\"false\">\n    <p class=\"text-sm text-muted-foreground\">This window has a fixed size.</p>\n</Window>"
        }
      ],
      "subComponents": {},
      "parseFailed": false,
      "parseError": null
    }
  }
}