@lumeo-ui/mcp-server 2.0.0-rc.34 → 2.0.0-rc.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumeo-ui/mcp-server",
3
- "version": "2.0.0-rc.34",
3
+ "version": "2.0.0-rc.35",
4
4
  "description": "Model Context Protocol server for the Lumeo Blazor component library. Lets LLMs (Claude, Copilot, Cursor) author correct Lumeo markup.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "$schema": "https://lumeo.nativ.sh/components-api-schema.json",
3
- "version": "2.0.0-rc.34",
4
- "generated": "2026-05-12T14:10:54.8294645Z",
3
+ "version": "2.0.0-rc.35",
4
+ "generated": "2026-05-12T20:42:26.5402362Z",
5
5
  "stats": {
6
- "componentCount": 139,
7
- "totalParameters": 3356,
8
- "totalEnums": 98,
9
- "totalRecords": 52,
6
+ "componentCount": 145,
7
+ "totalParameters": 3423,
8
+ "totalEnums": 101,
9
+ "totalRecords": 56,
10
10
  "thinFallbacks": []
11
11
  },
12
12
  "themeTokens": [
@@ -2450,6 +2450,130 @@
2450
2450
  "parseFailed": false,
2451
2451
  "parseError": null
2452
2452
  },
2453
+ "Barcode": {
2454
+ "name": "Barcode",
2455
+ "category": "Data Display",
2456
+ "subcategory": null,
2457
+ "description": "Inline SVG Code 128B barcode renderer (scannable).",
2458
+ "nugetPackage": "Lumeo",
2459
+ "files": [
2460
+ "UI/Barcode/Barcode.razor"
2461
+ ],
2462
+ "namespace": "Lumeo",
2463
+ "inheritsFrom": null,
2464
+ "implements": [],
2465
+ "parameters": [
2466
+ {
2467
+ "name": "Value",
2468
+ "type": "string",
2469
+ "default": "\"\"",
2470
+ "description": null,
2471
+ "isCascading": false,
2472
+ "captureUnmatched": false
2473
+ },
2474
+ {
2475
+ "name": "Format",
2476
+ "type": "BarcodeFormat",
2477
+ "default": "BarcodeFormat.Code128",
2478
+ "description": null,
2479
+ "isCascading": false,
2480
+ "captureUnmatched": false
2481
+ },
2482
+ {
2483
+ "name": "Height",
2484
+ "type": "int",
2485
+ "default": "80",
2486
+ "description": null,
2487
+ "isCascading": false,
2488
+ "captureUnmatched": false
2489
+ },
2490
+ {
2491
+ "name": "BarWidth",
2492
+ "type": "double",
2493
+ "default": "2",
2494
+ "description": null,
2495
+ "isCascading": false,
2496
+ "captureUnmatched": false
2497
+ },
2498
+ {
2499
+ "name": "ShowText",
2500
+ "type": "bool",
2501
+ "default": "true",
2502
+ "description": null,
2503
+ "isCascading": false,
2504
+ "captureUnmatched": false
2505
+ },
2506
+ {
2507
+ "name": "Color",
2508
+ "type": "string",
2509
+ "default": "\"foreground\"",
2510
+ "description": null,
2511
+ "isCascading": false,
2512
+ "captureUnmatched": false
2513
+ },
2514
+ {
2515
+ "name": "BackgroundColor",
2516
+ "type": "string",
2517
+ "default": "\"background\"",
2518
+ "description": null,
2519
+ "isCascading": false,
2520
+ "captureUnmatched": false
2521
+ },
2522
+ {
2523
+ "name": "Class",
2524
+ "type": "string?",
2525
+ "default": null,
2526
+ "description": null,
2527
+ "isCascading": false,
2528
+ "captureUnmatched": false
2529
+ },
2530
+ {
2531
+ "name": "AdditionalAttributes",
2532
+ "type": "Dictionary<string, object>?",
2533
+ "default": null,
2534
+ "description": null,
2535
+ "isCascading": false,
2536
+ "captureUnmatched": true
2537
+ }
2538
+ ],
2539
+ "events": [],
2540
+ "enums": [
2541
+ {
2542
+ "name": "BarcodeFormat",
2543
+ "values": [
2544
+ "Code128",
2545
+ "Code39",
2546
+ "EAN13"
2547
+ ],
2548
+ "description": null
2549
+ }
2550
+ ],
2551
+ "records": [],
2552
+ "cssVars": [
2553
+ "--color-foreground"
2554
+ ],
2555
+ "examples": [
2556
+ {
2557
+ "title": "Default (Code 128B)",
2558
+ "code": "<Barcode Value=\"HELLO-WORLD\" />"
2559
+ },
2560
+ {
2561
+ "title": "Numeric Data",
2562
+ "code": "<Barcode Value=\"1234567890\" />"
2563
+ },
2564
+ {
2565
+ "title": "No Text",
2566
+ "code": "<Barcode Value=\"ABC-123\" ShowText=\"false\" />"
2567
+ },
2568
+ {
2569
+ "title": "Custom Height",
2570
+ "code": "<Barcode Value=\"SMALL\" Height=\"40\" />\n<Barcode Value=\"MEDIUM\" Height=\"80\" />\n<Barcode Value=\"TALL\" Height=\"120\" />"
2571
+ }
2572
+ ],
2573
+ "subComponents": {},
2574
+ "parseFailed": false,
2575
+ "parseError": null
2576
+ },
2453
2577
  "Bento": {
2454
2578
  "name": "Bento",
2455
2579
  "category": "Dashboard",
@@ -15422,6 +15546,62 @@
15422
15546
  "isCascading": false,
15423
15547
  "captureUnmatched": false
15424
15548
  },
15549
+ {
15550
+ "name": "GroupByFields",
15551
+ "type": "IReadOnlyList<string>?",
15552
+ "default": null,
15553
+ "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.",
15554
+ "isCascading": false,
15555
+ "captureUnmatched": false
15556
+ },
15557
+ {
15558
+ "name": "ShowGroupPanel",
15559
+ "type": "bool",
15560
+ "default": null,
15561
+ "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.",
15562
+ "isCascading": false,
15563
+ "captureUnmatched": false
15564
+ },
15565
+ {
15566
+ "name": "GroupPanelText",
15567
+ "type": "string?",
15568
+ "default": null,
15569
+ "description": "Placeholder/hint text shown in the group panel when no fields are grouped.",
15570
+ "isCascading": false,
15571
+ "captureUnmatched": false
15572
+ },
15573
+ {
15574
+ "name": "ChildItemsSelector",
15575
+ "type": "Func<TItem, IEnumerable<TItem>?>?",
15576
+ "default": null,
15577
+ "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.",
15578
+ "isCascading": false,
15579
+ "captureUnmatched": false
15580
+ },
15581
+ {
15582
+ "name": "TreeGridDefaultExpanded",
15583
+ "type": "bool",
15584
+ "default": null,
15585
+ "description": "Whether tree nodes start expanded. Default false.",
15586
+ "isCascading": false,
15587
+ "captureUnmatched": false
15588
+ },
15589
+ {
15590
+ "name": "TreeColumnField",
15591
+ "type": "string?",
15592
+ "default": null,
15593
+ "description": "Field of the column that carries the tree chevron + indentation. Null (default) uses the first visible column.",
15594
+ "isCascading": false,
15595
+ "captureUnmatched": false
15596
+ },
15597
+ {
15598
+ "name": "OnTreeNodeExpand",
15599
+ "type": "EventCallback<TItem>",
15600
+ "default": null,
15601
+ "description": "Raised when a tree node is expanded or collapsed (the item, plus its new expanded state).",
15602
+ "isCascading": false,
15603
+ "captureUnmatched": false
15604
+ },
15425
15605
  {
15426
15606
  "name": "Expandable",
15427
15607
  "type": "bool",
@@ -15704,6 +15884,11 @@
15704
15884
  }
15705
15885
  ],
15706
15886
  "events": [
15887
+ {
15888
+ "name": "OnTreeNodeExpand",
15889
+ "type": "EventCallback<TItem>",
15890
+ "description": "Raised when a tree node is expanded or collapsed (the item, plus its new expanded state)."
15891
+ },
15707
15892
  {
15708
15893
  "name": "IsExpandedChanged",
15709
15894
  "type": "EventCallback<bool>",
@@ -16504,6 +16689,14 @@
16504
16689
  "inheritsFrom": null,
16505
16690
  "implements": [],
16506
16691
  "parameters": [
16692
+ {
16693
+ "name": "Context",
16694
+ "type": "DataGridContext<TItem>?",
16695
+ "default": null,
16696
+ "description": null,
16697
+ "isCascading": true,
16698
+ "captureUnmatched": false
16699
+ },
16507
16700
  {
16508
16701
  "name": "GroupKey",
16509
16702
  "type": "string?",
@@ -16544,6 +16737,22 @@
16544
16737
  "isCascading": false,
16545
16738
  "captureUnmatched": false
16546
16739
  },
16740
+ {
16741
+ "name": "Level",
16742
+ "type": "int",
16743
+ "default": null,
16744
+ "description": "Nesting depth for multi-level grouping (0 = top level). Controls indentation.",
16745
+ "isCascading": false,
16746
+ "captureUnmatched": false
16747
+ },
16748
+ {
16749
+ "name": "Aggregates",
16750
+ "type": "IReadOnlyList<DataGridGroupAggregate>?",
16751
+ "default": null,
16752
+ "description": "Per-group aggregate strip rendered next to the group label.",
16753
+ "isCascading": false,
16754
+ "captureUnmatched": false
16755
+ },
16547
16756
  {
16548
16757
  "name": "Class",
16549
16758
  "type": "string?",
@@ -20685,6 +20894,43 @@
20685
20894
  "parseFailed": false,
20686
20895
  "parseError": null
20687
20896
  },
20897
+ "FileManager": {
20898
+ "name": "FileManager",
20899
+ "category": "Data Display",
20900
+ "subcategory": null,
20901
+ "description": "Headless file and folder explorer — folder tree, breadcrumb path, list/grid views, lazy loading, inline rename, context-menu operations.",
20902
+ "nugetPackage": "Lumeo",
20903
+ "files": [
20904
+ "UI/FileManager/FileManager.razor",
20905
+ "UI/FileManager/FileManagerModel.cs"
20906
+ ],
20907
+ "namespace": "Lumeo",
20908
+ "inheritsFrom": null,
20909
+ "implements": [],
20910
+ "parameters": [],
20911
+ "events": [],
20912
+ "enums": [],
20913
+ "records": [],
20914
+ "cssVars": [
20915
+ "--color-accent",
20916
+ "--color-accent-foreground",
20917
+ "--color-background",
20918
+ "--color-border",
20919
+ "--color-card",
20920
+ "--color-destructive",
20921
+ "--color-foreground",
20922
+ "--color-muted",
20923
+ "--color-muted-foreground",
20924
+ "--color-popover",
20925
+ "--color-popover-foreground",
20926
+ "--color-ring",
20927
+ "--radius"
20928
+ ],
20929
+ "examples": [],
20930
+ "subComponents": {},
20931
+ "parseFailed": false,
20932
+ "parseError": null
20933
+ },
20688
20934
  "FileUpload": {
20689
20935
  "name": "FileUpload",
20690
20936
  "category": "Forms",
@@ -21904,37 +22150,69 @@
21904
22150
  "parseFailed": false,
21905
22151
  "parseError": null
21906
22152
  },
21907
- "Grid": {
21908
- "name": "Grid",
21909
- "category": "Layout",
22153
+ "Gauge": {
22154
+ "name": "Gauge",
22155
+ "category": "Data Display",
21910
22156
  "subcategory": null,
21911
- "description": "CSS grid wrapper with columns + gap as props.",
22157
+ "description": "Single-value gauge with radial, arc, and linear variants and threshold colour bands.",
21912
22158
  "nugetPackage": "Lumeo",
21913
22159
  "files": [
21914
- "UI/Grid/Grid.razor"
22160
+ "UI/Gauge/Gauge.razor"
21915
22161
  ],
21916
22162
  "namespace": "Lumeo",
21917
22163
  "inheritsFrom": null,
21918
22164
  "implements": [],
21919
22165
  "parameters": [
21920
22166
  {
21921
- "name": "Columns",
22167
+ "name": "Value",
22168
+ "type": "double",
22169
+ "default": null,
22170
+ "description": null,
22171
+ "isCascading": false,
22172
+ "captureUnmatched": false
22173
+ },
22174
+ {
22175
+ "name": "Min",
22176
+ "type": "double",
22177
+ "default": "0",
22178
+ "description": null,
22179
+ "isCascading": false,
22180
+ "captureUnmatched": false
22181
+ },
22182
+ {
22183
+ "name": "Max",
22184
+ "type": "double",
22185
+ "default": "100",
22186
+ "description": null,
22187
+ "isCascading": false,
22188
+ "captureUnmatched": false
22189
+ },
22190
+ {
22191
+ "name": "Variant",
22192
+ "type": "GaugeVariant",
22193
+ "default": "GaugeVariant.Radial",
22194
+ "description": null,
22195
+ "isCascading": false,
22196
+ "captureUnmatched": false
22197
+ },
22198
+ {
22199
+ "name": "Size",
21922
22200
  "type": "int",
21923
- "default": "1",
22201
+ "default": "120",
21924
22202
  "description": null,
21925
22203
  "isCascading": false,
21926
22204
  "captureUnmatched": false
21927
22205
  },
21928
22206
  {
21929
- "name": "Gap",
21930
- "type": "string?",
21931
- "default": "\"4\"",
22207
+ "name": "StrokeWidth",
22208
+ "type": "int",
22209
+ "default": "8",
21932
22210
  "description": null,
21933
22211
  "isCascading": false,
21934
22212
  "captureUnmatched": false
21935
22213
  },
21936
22214
  {
21937
- "name": "RowGap",
22215
+ "name": "Label",
21938
22216
  "type": "string?",
21939
22217
  "default": null,
21940
22218
  "description": null,
@@ -21942,16 +22220,146 @@
21942
22220
  "captureUnmatched": false
21943
22221
  },
21944
22222
  {
21945
- "name": "ColGap",
21946
- "type": "string?",
21947
- "default": null,
22223
+ "name": "ShowValue",
22224
+ "type": "bool",
22225
+ "default": "true",
21948
22226
  "description": null,
21949
22227
  "isCascading": false,
21950
22228
  "captureUnmatched": false
21951
22229
  },
21952
22230
  {
21953
- "name": "ChildContent",
21954
- "type": "RenderFragment?",
22231
+ "name": "Color",
22232
+ "type": "string",
22233
+ "default": "\"primary\"",
22234
+ "description": null,
22235
+ "isCascading": false,
22236
+ "captureUnmatched": false
22237
+ },
22238
+ {
22239
+ "name": "TrackColor",
22240
+ "type": "string",
22241
+ "default": "\"muted\"",
22242
+ "description": null,
22243
+ "isCascading": false,
22244
+ "captureUnmatched": false
22245
+ },
22246
+ {
22247
+ "name": "Thresholds",
22248
+ "type": "IReadOnlyList<GaugeThreshold>?",
22249
+ "default": null,
22250
+ "description": null,
22251
+ "isCascading": false,
22252
+ "captureUnmatched": false
22253
+ },
22254
+ {
22255
+ "name": "Class",
22256
+ "type": "string?",
22257
+ "default": null,
22258
+ "description": null,
22259
+ "isCascading": false,
22260
+ "captureUnmatched": false
22261
+ },
22262
+ {
22263
+ "name": "AdditionalAttributes",
22264
+ "type": "Dictionary<string, object>?",
22265
+ "default": null,
22266
+ "description": null,
22267
+ "isCascading": false,
22268
+ "captureUnmatched": true
22269
+ }
22270
+ ],
22271
+ "events": [],
22272
+ "enums": [
22273
+ {
22274
+ "name": "GaugeVariant",
22275
+ "values": [
22276
+ "Radial",
22277
+ "Linear",
22278
+ "Arc"
22279
+ ],
22280
+ "description": null
22281
+ }
22282
+ ],
22283
+ "records": [
22284
+ {
22285
+ "name": "GaugeThreshold",
22286
+ "signature": "GaugeThreshold(double Value, string Color)",
22287
+ "description": null
22288
+ }
22289
+ ],
22290
+ "cssVars": [
22291
+ "--color-foreground"
22292
+ ],
22293
+ "examples": [
22294
+ {
22295
+ "title": "Radial (default)",
22296
+ "code": "<Gauge Value=\"25\" />\n<Gauge Value=\"60\" />\n<Gauge Value=\"90\" />"
22297
+ },
22298
+ {
22299
+ "title": "Arc (semicircle)",
22300
+ "code": "<Gauge Value=\"30\" Variant=\"Gauge.GaugeVariant.Arc\" />\n<Gauge Value=\"65\" Variant=\"Gauge.GaugeVariant.Arc\" />\n<Gauge Value=\"95\" Variant=\"Gauge.GaugeVariant.Arc\" />"
22301
+ },
22302
+ {
22303
+ "title": "Linear",
22304
+ "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\" />"
22305
+ },
22306
+ {
22307
+ "title": "Custom Label",
22308
+ "code": "<Gauge Value=\"72\" Label=\"CPU\" Size=\"120\" />\n<Gauge Value=\"48\" Label=\"RAM\" Size=\"120\" />\n<Gauge Value=\"33\" Label=\"Disk\" Size=\"120\" />"
22309
+ }
22310
+ ],
22311
+ "subComponents": {},
22312
+ "parseFailed": false,
22313
+ "parseError": null
22314
+ },
22315
+ "Grid": {
22316
+ "name": "Grid",
22317
+ "category": "Layout",
22318
+ "subcategory": null,
22319
+ "description": "CSS grid wrapper with columns + gap as props.",
22320
+ "nugetPackage": "Lumeo",
22321
+ "files": [
22322
+ "UI/Grid/Grid.razor"
22323
+ ],
22324
+ "namespace": "Lumeo",
22325
+ "inheritsFrom": null,
22326
+ "implements": [],
22327
+ "parameters": [
22328
+ {
22329
+ "name": "Columns",
22330
+ "type": "int",
22331
+ "default": "1",
22332
+ "description": null,
22333
+ "isCascading": false,
22334
+ "captureUnmatched": false
22335
+ },
22336
+ {
22337
+ "name": "Gap",
22338
+ "type": "string?",
22339
+ "default": "\"4\"",
22340
+ "description": null,
22341
+ "isCascading": false,
22342
+ "captureUnmatched": false
22343
+ },
22344
+ {
22345
+ "name": "RowGap",
22346
+ "type": "string?",
22347
+ "default": null,
22348
+ "description": null,
22349
+ "isCascading": false,
22350
+ "captureUnmatched": false
22351
+ },
22352
+ {
22353
+ "name": "ColGap",
22354
+ "type": "string?",
22355
+ "default": null,
22356
+ "description": null,
22357
+ "isCascading": false,
22358
+ "captureUnmatched": false
22359
+ },
22360
+ {
22361
+ "name": "ChildContent",
22362
+ "type": "RenderFragment?",
21955
22363
  "default": null,
21956
22364
  "description": null,
21957
22365
  "isCascading": false,
@@ -22092,6 +22500,127 @@
22092
22500
  "parseFailed": false,
22093
22501
  "parseError": null
22094
22502
  },
22503
+ "Highlighter": {
22504
+ "name": "Highlighter",
22505
+ "category": "Typography",
22506
+ "subcategory": null,
22507
+ "description": "Wraps occurrences of one or more search terms in the text with highlight marks.",
22508
+ "nugetPackage": "Lumeo",
22509
+ "files": [
22510
+ "UI/Highlighter/Highlighter.razor"
22511
+ ],
22512
+ "namespace": "Lumeo",
22513
+ "inheritsFrom": null,
22514
+ "implements": [],
22515
+ "parameters": [
22516
+ {
22517
+ "name": "Text",
22518
+ "type": "string",
22519
+ "default": "\"\"",
22520
+ "description": null,
22521
+ "isCascading": false,
22522
+ "captureUnmatched": false
22523
+ },
22524
+ {
22525
+ "name": "Highlight",
22526
+ "type": "string?",
22527
+ "default": null,
22528
+ "description": null,
22529
+ "isCascading": false,
22530
+ "captureUnmatched": false
22531
+ },
22532
+ {
22533
+ "name": "HighlightTerms",
22534
+ "type": "IEnumerable<string>?",
22535
+ "default": null,
22536
+ "description": null,
22537
+ "isCascading": false,
22538
+ "captureUnmatched": false
22539
+ },
22540
+ {
22541
+ "name": "CaseSensitive",
22542
+ "type": "bool",
22543
+ "default": null,
22544
+ "description": null,
22545
+ "isCascading": false,
22546
+ "captureUnmatched": false
22547
+ },
22548
+ {
22549
+ "name": "WholeWord",
22550
+ "type": "bool",
22551
+ "default": null,
22552
+ "description": null,
22553
+ "isCascading": false,
22554
+ "captureUnmatched": false
22555
+ },
22556
+ {
22557
+ "name": "HighlightClass",
22558
+ "type": "string?",
22559
+ "default": null,
22560
+ "description": null,
22561
+ "isCascading": false,
22562
+ "captureUnmatched": false
22563
+ },
22564
+ {
22565
+ "name": "Tag",
22566
+ "type": "string",
22567
+ "default": "\"mark\"",
22568
+ "description": null,
22569
+ "isCascading": false,
22570
+ "captureUnmatched": false
22571
+ },
22572
+ {
22573
+ "name": "Class",
22574
+ "type": "string?",
22575
+ "default": null,
22576
+ "description": null,
22577
+ "isCascading": false,
22578
+ "captureUnmatched": false
22579
+ },
22580
+ {
22581
+ "name": "AdditionalAttributes",
22582
+ "type": "Dictionary<string, object>?",
22583
+ "default": null,
22584
+ "description": null,
22585
+ "isCascading": false,
22586
+ "captureUnmatched": true
22587
+ }
22588
+ ],
22589
+ "events": [],
22590
+ "enums": [],
22591
+ "records": [
22592
+ {
22593
+ "name": "Segment",
22594
+ "signature": "Segment(string Text, bool IsMatch)",
22595
+ "description": null
22596
+ }
22597
+ ],
22598
+ "cssVars": [
22599
+ "--color-foreground",
22600
+ "--radius"
22601
+ ],
22602
+ "examples": [
22603
+ {
22604
+ "title": "Single Term",
22605
+ "code": "<Highlighter Text=\"The quick brown fox jumps over the lazy dog\" Highlight=\"fox\" />"
22606
+ },
22607
+ {
22608
+ "title": "Case Sensitive",
22609
+ "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\" />"
22610
+ },
22611
+ {
22612
+ "title": "Whole Word",
22613
+ "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\" />"
22614
+ },
22615
+ {
22616
+ "title": "Interactive Search",
22617
+ "code": "<Input Placeholder=\"Type to search...\" @bind-Value=\"_searchTerm\" />\n<Highlighter Text=\"@sampleText\" Highlight=\"@_searchTerm\" />"
22618
+ }
22619
+ ],
22620
+ "subComponents": {},
22621
+ "parseFailed": false,
22622
+ "parseError": null
22623
+ },
22095
22624
  "HoverCard": {
22096
22625
  "name": "HoverCard",
22097
22626
  "category": "Overlay",
@@ -28347,6 +28876,188 @@
28347
28876
  "parseFailed": false,
28348
28877
  "parseError": null
28349
28878
  },
28879
+ "QueryBuilder": {
28880
+ "name": "QueryBuilder",
28881
+ "category": "Forms",
28882
+ "subcategory": null,
28883
+ "description": "Visual AND/OR predicate-tree builder; serializes to JSON or a LINQ predicate.",
28884
+ "nugetPackage": "Lumeo",
28885
+ "files": [
28886
+ "UI/QueryBuilder/QueryBuilder.razor",
28887
+ "UI/QueryBuilder/QueryBuilderGroup.razor",
28888
+ "UI/QueryBuilder/QueryBuilderModel.cs"
28889
+ ],
28890
+ "namespace": "Lumeo",
28891
+ "inheritsFrom": null,
28892
+ "implements": [],
28893
+ "parameters": [
28894
+ {
28895
+ "name": "Fields",
28896
+ "type": "IReadOnlyList<QueryField>",
28897
+ "default": "Array.Empty<QueryField>()",
28898
+ "description": "The fields the consumer can build conditions against. Required.",
28899
+ "isCascading": false,
28900
+ "captureUnmatched": false
28901
+ },
28902
+ {
28903
+ "name": "Query",
28904
+ "type": "QueryGroup?",
28905
+ "default": null,
28906
+ "description": "The query tree. Two-way bindable via @bind-Query. When null on first render, an empty root group (And, no rules) is created.",
28907
+ "isCascading": false,
28908
+ "captureUnmatched": false
28909
+ },
28910
+ {
28911
+ "name": "QueryChanged",
28912
+ "type": "EventCallback<QueryGroup>",
28913
+ "default": null,
28914
+ "description": null,
28915
+ "isCascading": false,
28916
+ "captureUnmatched": false
28917
+ },
28918
+ {
28919
+ "name": "ShowJsonPreview",
28920
+ "type": "bool",
28921
+ "default": null,
28922
+ "description": "When true, renders a read-only JSON view of the query below the builder.",
28923
+ "isCascading": false,
28924
+ "captureUnmatched": false
28925
+ },
28926
+ {
28927
+ "name": "MaxDepth",
28928
+ "type": "int",
28929
+ "default": "5",
28930
+ "description": "Maximum group nesting depth. The \"Add group\" button is disabled at this depth.",
28931
+ "isCascading": false,
28932
+ "captureUnmatched": false
28933
+ },
28934
+ {
28935
+ "name": "AllowEmptyGroups",
28936
+ "type": "bool",
28937
+ "default": "true",
28938
+ "description": "When false, \"Remove rule\" / \"Remove group\" are hidden when it would leave a group empty (the root may always be empty).",
28939
+ "isCascading": false,
28940
+ "captureUnmatched": false
28941
+ },
28942
+ {
28943
+ "name": "ValueEditorTemplate",
28944
+ "type": "RenderFragment<QueryRule>?",
28945
+ "default": null,
28946
+ "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).",
28947
+ "isCascading": false,
28948
+ "captureUnmatched": false
28949
+ },
28950
+ {
28951
+ "name": "Class",
28952
+ "type": "string?",
28953
+ "default": null,
28954
+ "description": null,
28955
+ "isCascading": false,
28956
+ "captureUnmatched": false
28957
+ },
28958
+ {
28959
+ "name": "AdditionalAttributes",
28960
+ "type": "Dictionary<string, object>?",
28961
+ "default": null,
28962
+ "description": null,
28963
+ "isCascading": false,
28964
+ "captureUnmatched": true
28965
+ }
28966
+ ],
28967
+ "events": [
28968
+ {
28969
+ "name": "QueryChanged",
28970
+ "type": "EventCallback<QueryGroup>",
28971
+ "description": null
28972
+ }
28973
+ ],
28974
+ "enums": [],
28975
+ "records": [
28976
+ {
28977
+ "name": "QueryBuilderContext",
28978
+ "signature": "QueryBuilderContext(\n IReadOnlyList<QueryField> Fields,\n int MaxDepth,\n bool AllowEmptyGroups,\n RenderFragment<QueryRule>? ValueEditorTemplate,\n Func<Task> NotifyChanged)",
28979
+ "description": "Cascaded state shared with the recursive QueryBuilderGroup renderer."
28980
+ }
28981
+ ],
28982
+ "cssVars": [
28983
+ "--color-background",
28984
+ "--color-border",
28985
+ "--color-card",
28986
+ "--color-destructive",
28987
+ "--color-foreground",
28988
+ "--color-input",
28989
+ "--color-muted",
28990
+ "--color-muted-foreground",
28991
+ "--color-primary",
28992
+ "--color-primary-foreground",
28993
+ "--color-ring",
28994
+ "--radius"
28995
+ ],
28996
+ "examples": [
28997
+ {
28998
+ "title": "Basic builder",
28999
+ "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}"
29000
+ },
29001
+ {
29002
+ "title": "With JSON preview",
29003
+ "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}"
29004
+ },
29005
+ {
29006
+ "title": "Pre-populated nested groups",
29007
+ "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}"
29008
+ }
29009
+ ],
29010
+ "subComponents": {
29011
+ "QueryBuilderGroup": {
29012
+ "componentName": "QueryBuilderGroup",
29013
+ "fileName": "QueryBuilderGroup.razor",
29014
+ "namespace": "Lumeo",
29015
+ "inheritsFrom": null,
29016
+ "implements": [],
29017
+ "parameters": [
29018
+ {
29019
+ "name": "Ctx",
29020
+ "type": "QueryBuilder.QueryBuilderContext",
29021
+ "default": "default!",
29022
+ "description": null,
29023
+ "isCascading": true,
29024
+ "captureUnmatched": false
29025
+ },
29026
+ {
29027
+ "name": "Group",
29028
+ "type": "QueryGroup",
29029
+ "default": "default!",
29030
+ "description": null,
29031
+ "isCascading": false,
29032
+ "captureUnmatched": false
29033
+ },
29034
+ {
29035
+ "name": "Depth",
29036
+ "type": "int",
29037
+ "default": null,
29038
+ "description": null,
29039
+ "isCascading": false,
29040
+ "captureUnmatched": false
29041
+ },
29042
+ {
29043
+ "name": "Parent",
29044
+ "type": "QueryGroup?",
29045
+ "default": null,
29046
+ "description": "The parent group (null for the root) — used to support self-removal.",
29047
+ "isCascading": false,
29048
+ "captureUnmatched": false
29049
+ }
29050
+ ],
29051
+ "events": [],
29052
+ "enums": [],
29053
+ "records": [],
29054
+ "parseFailed": false,
29055
+ "parseError": null
29056
+ }
29057
+ },
29058
+ "parseFailed": false,
29059
+ "parseError": null
29060
+ },
28350
29061
  "RadioGroup": {
28351
29062
  "name": "RadioGroup",
28352
29063
  "category": "Forms",
@@ -29950,6 +30661,128 @@
29950
30661
  "parseFailed": false,
29951
30662
  "parseError": null
29952
30663
  },
30664
+ "RingProgress": {
30665
+ "name": "RingProgress",
30666
+ "category": "Feedback",
30667
+ "subcategory": null,
30668
+ "description": "Circular determinate progress ring with optional centre label or custom content.",
30669
+ "nugetPackage": "Lumeo",
30670
+ "files": [
30671
+ "UI/RingProgress/RingProgress.razor"
30672
+ ],
30673
+ "namespace": "Lumeo",
30674
+ "inheritsFrom": null,
30675
+ "implements": [],
30676
+ "parameters": [
30677
+ {
30678
+ "name": "Value",
30679
+ "type": "double",
30680
+ "default": null,
30681
+ "description": null,
30682
+ "isCascading": false,
30683
+ "captureUnmatched": false
30684
+ },
30685
+ {
30686
+ "name": "Size",
30687
+ "type": "int",
30688
+ "default": "64",
30689
+ "description": null,
30690
+ "isCascading": false,
30691
+ "captureUnmatched": false
30692
+ },
30693
+ {
30694
+ "name": "Thickness",
30695
+ "type": "int",
30696
+ "default": "6",
30697
+ "description": null,
30698
+ "isCascading": false,
30699
+ "captureUnmatched": false
30700
+ },
30701
+ {
30702
+ "name": "Color",
30703
+ "type": "string",
30704
+ "default": "\"primary\"",
30705
+ "description": null,
30706
+ "isCascading": false,
30707
+ "captureUnmatched": false
30708
+ },
30709
+ {
30710
+ "name": "TrackColor",
30711
+ "type": "string",
30712
+ "default": "\"muted\"",
30713
+ "description": null,
30714
+ "isCascading": false,
30715
+ "captureUnmatched": false
30716
+ },
30717
+ {
30718
+ "name": "ShowLabel",
30719
+ "type": "bool",
30720
+ "default": null,
30721
+ "description": null,
30722
+ "isCascading": false,
30723
+ "captureUnmatched": false
30724
+ },
30725
+ {
30726
+ "name": "LabelContent",
30727
+ "type": "RenderFragment?",
30728
+ "default": null,
30729
+ "description": null,
30730
+ "isCascading": false,
30731
+ "captureUnmatched": false
30732
+ },
30733
+ {
30734
+ "name": "RoundedCaps",
30735
+ "type": "bool",
30736
+ "default": "true",
30737
+ "description": null,
30738
+ "isCascading": false,
30739
+ "captureUnmatched": false
30740
+ },
30741
+ {
30742
+ "name": "Class",
30743
+ "type": "string?",
30744
+ "default": null,
30745
+ "description": null,
30746
+ "isCascading": false,
30747
+ "captureUnmatched": false
30748
+ },
30749
+ {
30750
+ "name": "AdditionalAttributes",
30751
+ "type": "Dictionary<string, object>?",
30752
+ "default": null,
30753
+ "description": null,
30754
+ "isCascading": false,
30755
+ "captureUnmatched": true
30756
+ }
30757
+ ],
30758
+ "events": [],
30759
+ "enums": [],
30760
+ "records": [],
30761
+ "cssVars": [
30762
+ "--color-foreground"
30763
+ ],
30764
+ "examples": [
30765
+ {
30766
+ "title": "Default",
30767
+ "code": "<RingProgress Value=\"25\" ShowLabel=\"true\" />\n<RingProgress Value=\"50\" ShowLabel=\"true\" />\n<RingProgress Value=\"75\" ShowLabel=\"true\" />"
30768
+ },
30769
+ {
30770
+ "title": "Sizes",
30771
+ "code": "<RingProgress Value=\"65\" Size=\"40\" ShowLabel=\"true\" />\n<RingProgress Value=\"65\" Size=\"64\" ShowLabel=\"true\" />\n<RingProgress Value=\"65\" Size=\"96\" ShowLabel=\"true\" />"
30772
+ },
30773
+ {
30774
+ "title": "Colors",
30775
+ "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\" />"
30776
+ },
30777
+ {
30778
+ "title": "Custom Label",
30779
+ "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>"
30780
+ }
30781
+ ],
30782
+ "subComponents": {},
30783
+ "parseFailed": false,
30784
+ "parseError": null
30785
+ },
29953
30786
  "Scheduler": {
29954
30787
  "name": "Scheduler",
29955
30788
  "category": "Data Display",
@@ -37870,11 +38703,50 @@
37870
38703
  "description": null,
37871
38704
  "isCascading": false,
37872
38705
  "captureUnmatched": true
38706
+ },
38707
+ {
38708
+ "name": "Overflow",
38709
+ "type": "bool",
38710
+ "default": null,
38711
+ "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.",
38712
+ "isCascading": false,
38713
+ "captureUnmatched": false
38714
+ },
38715
+ {
38716
+ "name": "VisibleCount",
38717
+ "type": "int",
38718
+ "default": "-1",
38719
+ "description": "Number of leading items to show inline when Overflow is true. Items past this index are collapsed into the \"⋯\" dropdown. -1 (default) means show all items (no overflow). Set to a positive integer to collapse trailing items.",
38720
+ "isCascading": false,
38721
+ "captureUnmatched": false
38722
+ },
38723
+ {
38724
+ "name": "OverflowLabel",
38725
+ "type": "string?",
38726
+ "default": null,
38727
+ "description": "aria-label for the \"⋯\" overflow button. Default: \"More\".",
38728
+ "isCascading": false,
38729
+ "captureUnmatched": false
37873
38730
  }
37874
38731
  ],
37875
38732
  "events": [],
37876
- "enums": [],
37877
- "records": [],
38733
+ "enums": [
38734
+ {
38735
+ "name": "ToolbarRenderSlot",
38736
+ "values": [
38737
+ "Visible",
38738
+ "Dropdown"
38739
+ ],
38740
+ "description": "Slot that a child item should render for in overflow mode."
38741
+ }
38742
+ ],
38743
+ "records": [
38744
+ {
38745
+ "name": "ToolbarOverflowContext",
38746
+ "signature": "ToolbarOverflowContext(ToolbarRenderSlot Slot, int VisibleCount, int TotalCount)",
38747
+ "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."
38748
+ }
38749
+ ],
37878
38750
  "cssVars": [
37879
38751
  "--color-border",
37880
38752
  "--color-card",
@@ -37883,15 +38755,19 @@
37883
38755
  "examples": [
37884
38756
  {
37885
38757
  "title": "Basic Toolbar",
37886
- "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>"
38758
+ "code": "<Toolbar>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\r\n <Blazicon Svg=\"Lucide.Bold\" class=\"h-4 w-4\" />\r\n </Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\r\n <Blazicon Svg=\"Lucide.Italic\" class=\"h-4 w-4\" />\r\n </Button>\r\n <ToolbarSeparator />\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">\r\n <Blazicon Svg=\"Lucide.AlignLeft\" class=\"h-4 w-4\" />\r\n </Button>\r\n</Toolbar>"
37887
38759
  },
37888
38760
  {
37889
38761
  "title": "With Spacer and Groups",
37890
- "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>"
38762
+ "code": "<Toolbar>\r\n <ToolbarGroup>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Undo</Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Redo</Button>\r\n </ToolbarGroup>\r\n <ToolbarSeparator />\r\n <ToolbarGroup>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Bold</Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Italic</Button>\r\n </ToolbarGroup>\r\n <ToolbarSpacer />\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Settings</Button>\r\n</Toolbar>"
38763
+ },
38764
+ {
38765
+ "title": "Overflow Menu",
38766
+ "code": "<!-- VisibleCount=3: first 3 items inline, rest collapse into ⋯ menu -->\r\n<Toolbar Overflow=\"true\" VisibleCount=\"3\">\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Bold</Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Italic</Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Underline</Button>\r\n <ToolbarSeparator />\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Left</Button>\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Center</Button>\r\n</Toolbar>"
37891
38767
  },
37892
38768
  {
37893
38769
  "title": "With Input",
37894
- "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>"
38770
+ "code": "<Toolbar>\r\n <Input Placeholder=\"Search...\" Class=\"h-7 text-sm w-48\" />\r\n <ToolbarSeparator />\r\n <Button Variant=\"Button.ButtonVariant.Ghost\" Size=\"Button.ButtonSize.Sm\">Filter</Button>\r\n <ToolbarSpacer />\r\n <Button Size=\"Button.ButtonSize.Sm\">Export</Button>\r\n</Toolbar>"
37895
38771
  }
37896
38772
  ],
37897
38773
  "subComponents": {
package/src/registry.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://lumeo.nativ.sh/registry-schema.json",
3
3
  "version": "2.0.0",
4
- "generated": "2026-05-12T14:10:53.8104355Z",
4
+ "generated": "2026-05-12T20:42:24.5776633Z",
5
5
  "components": {
6
6
  "accordion": {
7
7
  "name": "Accordion",
@@ -264,6 +264,24 @@
264
264
  ],
265
265
  "registryUrl": "https://lumeo.nativ.sh/registry/badge.json"
266
266
  },
267
+ "barcode": {
268
+ "name": "Barcode",
269
+ "category": "Data Display",
270
+ "subcategory": null,
271
+ "description": "Inline SVG Code 128B barcode renderer (scannable).",
272
+ "thumbnail": "/preview-cards/barcode.png",
273
+ "hasDocsPage": true,
274
+ "nugetPackage": "Lumeo",
275
+ "files": [
276
+ "UI/Barcode/Barcode.razor"
277
+ ],
278
+ "dependencies": [],
279
+ "packageDependencies": [],
280
+ "cssVars": [
281
+ "--color-foreground"
282
+ ],
283
+ "registryUrl": "https://lumeo.nativ.sh/registry/barcode.json"
284
+ },
267
285
  "bento": {
268
286
  "name": "Bento",
269
287
  "category": "Dashboard",
@@ -612,7 +630,9 @@
612
630
  "UI/Chart/Charts/WordCloudChart.razor",
613
631
  "UI/Chart/EChartOption.cs"
614
632
  ],
615
- "dependencies": [],
633
+ "dependencies": [
634
+ "gauge"
635
+ ],
616
636
  "packageDependencies": [
617
637
  "Blazicons.Lucide"
618
638
  ],
@@ -1289,6 +1309,41 @@
1289
1309
  ],
1290
1310
  "registryUrl": "https://lumeo.nativ.sh/registry/empty-state.json"
1291
1311
  },
1312
+ "file-manager": {
1313
+ "name": "FileManager",
1314
+ "category": "Data Display",
1315
+ "subcategory": null,
1316
+ "description": "Headless file and folder explorer — folder tree, breadcrumb path, list/grid views, lazy loading, inline rename, context-menu operations.",
1317
+ "thumbnail": "/preview-cards/file-manager.png",
1318
+ "hasDocsPage": true,
1319
+ "nugetPackage": "Lumeo",
1320
+ "files": [
1321
+ "UI/FileManager/FileManager.razor",
1322
+ "UI/FileManager/FileManagerModel.cs"
1323
+ ],
1324
+ "dependencies": [
1325
+ "list"
1326
+ ],
1327
+ "packageDependencies": [
1328
+ "Blazicons.Lucide"
1329
+ ],
1330
+ "cssVars": [
1331
+ "--color-accent",
1332
+ "--color-accent-foreground",
1333
+ "--color-background",
1334
+ "--color-border",
1335
+ "--color-card",
1336
+ "--color-destructive",
1337
+ "--color-foreground",
1338
+ "--color-muted",
1339
+ "--color-muted-foreground",
1340
+ "--color-popover",
1341
+ "--color-popover-foreground",
1342
+ "--color-ring",
1343
+ "--radius"
1344
+ ],
1345
+ "registryUrl": "https://lumeo.nativ.sh/registry/file-manager.json"
1346
+ },
1292
1347
  "file-upload": {
1293
1348
  "name": "FileUpload",
1294
1349
  "category": "Forms",
@@ -1414,6 +1469,24 @@
1414
1469
  ],
1415
1470
  "registryUrl": "https://lumeo.nativ.sh/registry/gantt.json"
1416
1471
  },
1472
+ "gauge": {
1473
+ "name": "Gauge",
1474
+ "category": "Data Display",
1475
+ "subcategory": null,
1476
+ "description": "Single-value gauge with radial, arc, and linear variants and threshold colour bands.",
1477
+ "thumbnail": "/preview-cards/gauge.png",
1478
+ "hasDocsPage": true,
1479
+ "nugetPackage": "Lumeo",
1480
+ "files": [
1481
+ "UI/Gauge/Gauge.razor"
1482
+ ],
1483
+ "dependencies": [],
1484
+ "packageDependencies": [],
1485
+ "cssVars": [
1486
+ "--color-foreground"
1487
+ ],
1488
+ "registryUrl": "https://lumeo.nativ.sh/registry/gauge.json"
1489
+ },
1417
1490
  "grid": {
1418
1491
  "name": "Grid",
1419
1492
  "category": "Layout",
@@ -1450,6 +1523,25 @@
1450
1523
  ],
1451
1524
  "registryUrl": "https://lumeo.nativ.sh/registry/heading.json"
1452
1525
  },
1526
+ "highlighter": {
1527
+ "name": "Highlighter",
1528
+ "category": "Typography",
1529
+ "subcategory": null,
1530
+ "description": "Wraps occurrences of one or more search terms in the text with highlight marks.",
1531
+ "thumbnail": "/preview-cards/highlighter.png",
1532
+ "hasDocsPage": true,
1533
+ "nugetPackage": "Lumeo",
1534
+ "files": [
1535
+ "UI/Highlighter/Highlighter.razor"
1536
+ ],
1537
+ "dependencies": [],
1538
+ "packageDependencies": [],
1539
+ "cssVars": [
1540
+ "--color-foreground",
1541
+ "--radius"
1542
+ ],
1543
+ "registryUrl": "https://lumeo.nativ.sh/registry/highlighter.json"
1544
+ },
1453
1545
  "hover-card": {
1454
1546
  "name": "HoverCard",
1455
1547
  "category": "Overlay",
@@ -2228,6 +2320,41 @@
2228
2320
  ],
2229
2321
  "registryUrl": "https://lumeo.nativ.sh/registry/qr-code.json"
2230
2322
  },
2323
+ "query-builder": {
2324
+ "name": "QueryBuilder",
2325
+ "category": "Forms",
2326
+ "subcategory": null,
2327
+ "description": "Visual AND/OR predicate-tree builder; serializes to JSON or a LINQ predicate.",
2328
+ "thumbnail": "/preview-cards/query-builder.png",
2329
+ "hasDocsPage": true,
2330
+ "nugetPackage": "Lumeo",
2331
+ "files": [
2332
+ "UI/QueryBuilder/QueryBuilder.razor",
2333
+ "UI/QueryBuilder/QueryBuilderGroup.razor",
2334
+ "UI/QueryBuilder/QueryBuilderModel.cs"
2335
+ ],
2336
+ "dependencies": [
2337
+ "button"
2338
+ ],
2339
+ "packageDependencies": [
2340
+ "Blazicons.Lucide"
2341
+ ],
2342
+ "cssVars": [
2343
+ "--color-background",
2344
+ "--color-border",
2345
+ "--color-card",
2346
+ "--color-destructive",
2347
+ "--color-foreground",
2348
+ "--color-input",
2349
+ "--color-muted",
2350
+ "--color-muted-foreground",
2351
+ "--color-primary",
2352
+ "--color-primary-foreground",
2353
+ "--color-ring",
2354
+ "--radius"
2355
+ ],
2356
+ "registryUrl": "https://lumeo.nativ.sh/registry/query-builder.json"
2357
+ },
2231
2358
  "radio-group": {
2232
2359
  "name": "RadioGroup",
2233
2360
  "category": "Forms",
@@ -2400,6 +2527,24 @@
2400
2527
  ],
2401
2528
  "registryUrl": "https://lumeo.nativ.sh/registry/rich-text-editor.json"
2402
2529
  },
2530
+ "ring-progress": {
2531
+ "name": "RingProgress",
2532
+ "category": "Feedback",
2533
+ "subcategory": null,
2534
+ "description": "Circular determinate progress ring with optional centre label or custom content.",
2535
+ "thumbnail": "/preview-cards/ring-progress.png",
2536
+ "hasDocsPage": true,
2537
+ "nugetPackage": "Lumeo",
2538
+ "files": [
2539
+ "UI/RingProgress/RingProgress.razor"
2540
+ ],
2541
+ "dependencies": [],
2542
+ "packageDependencies": [],
2543
+ "cssVars": [
2544
+ "--color-foreground"
2545
+ ],
2546
+ "registryUrl": "https://lumeo.nativ.sh/registry/ring-progress.json"
2547
+ },
2403
2548
  "scheduler": {
2404
2549
  "name": "Scheduler",
2405
2550
  "category": "Data Display",
@@ -3434,8 +3579,13 @@
3434
3579
  "UI/Toolbar/ToolbarSeparator.razor",
3435
3580
  "UI/Toolbar/ToolbarSpacer.razor"
3436
3581
  ],
3437
- "dependencies": [],
3438
- "packageDependencies": [],
3582
+ "dependencies": [
3583
+ "button",
3584
+ "dropdown-menu"
3585
+ ],
3586
+ "packageDependencies": [
3587
+ "Blazicons.Lucide"
3588
+ ],
3439
3589
  "cssVars": [
3440
3590
  "--color-border",
3441
3591
  "--color-card",