@lumeo-ui/mcp-server 3.0.5 → 3.1.0

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": "3.0.5",
3
+ "version": "3.1.0",
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": "3.0.5",
4
- "generated": "2026-05-22T08:15:04.0950107Z",
3
+ "version": "3.1.0",
4
+ "generated": "2026-05-22T09:36:50.7771470Z",
5
5
  "stats": {
6
- "componentCount": 149,
7
- "totalParameters": 3580,
6
+ "componentCount": 154,
7
+ "totalParameters": 3660,
8
8
  "totalEnums": 65,
9
- "totalRecords": 62,
9
+ "totalRecords": 63,
10
10
  "thinFallbacks": []
11
11
  },
12
12
  "themeTokens": [
@@ -1973,6 +1973,192 @@
1973
1973
  "parseFailed": false,
1974
1974
  "parseError": null
1975
1975
  },
1976
+ "AudioPlayer": {
1977
+ "name": "AudioPlayer",
1978
+ "category": "Utility",
1979
+ "subcategory": null,
1980
+ "description": "Audio Player component.",
1981
+ "nugetPackage": "Lumeo",
1982
+ "files": [
1983
+ "UI/AudioPlayer/AudioPlayer.razor"
1984
+ ],
1985
+ "namespace": "Lumeo",
1986
+ "inheritsFrom": null,
1987
+ "implements": [
1988
+ "IAsyncDisposable"
1989
+ ],
1990
+ "parameters": [
1991
+ {
1992
+ "name": "Src",
1993
+ "type": "string?",
1994
+ "default": null,
1995
+ "description": null,
1996
+ "isCascading": false,
1997
+ "captureUnmatched": false
1998
+ },
1999
+ {
2000
+ "name": "Autoplay",
2001
+ "type": "bool",
2002
+ "default": null,
2003
+ "description": null,
2004
+ "isCascading": false,
2005
+ "captureUnmatched": false
2006
+ },
2007
+ {
2008
+ "name": "Loop",
2009
+ "type": "bool",
2010
+ "default": null,
2011
+ "description": null,
2012
+ "isCascading": false,
2013
+ "captureUnmatched": false
2014
+ },
2015
+ {
2016
+ "name": "ShowDownload",
2017
+ "type": "bool",
2018
+ "default": null,
2019
+ "description": null,
2020
+ "isCascading": false,
2021
+ "captureUnmatched": false
2022
+ },
2023
+ {
2024
+ "name": "Title",
2025
+ "type": "string?",
2026
+ "default": null,
2027
+ "description": null,
2028
+ "isCascading": false,
2029
+ "captureUnmatched": false
2030
+ },
2031
+ {
2032
+ "name": "Artist",
2033
+ "type": "string?",
2034
+ "default": null,
2035
+ "description": null,
2036
+ "isCascading": false,
2037
+ "captureUnmatched": false
2038
+ },
2039
+ {
2040
+ "name": "Cover",
2041
+ "type": "RenderFragment?",
2042
+ "default": null,
2043
+ "description": null,
2044
+ "isCascading": false,
2045
+ "captureUnmatched": false
2046
+ },
2047
+ {
2048
+ "name": "PreloadMode",
2049
+ "type": "string?",
2050
+ "default": "\"metadata\"",
2051
+ "description": null,
2052
+ "isCascading": false,
2053
+ "captureUnmatched": false
2054
+ },
2055
+ {
2056
+ "name": "OnTimeUpdate",
2057
+ "type": "EventCallback<double>",
2058
+ "default": null,
2059
+ "description": null,
2060
+ "isCascading": false,
2061
+ "captureUnmatched": false
2062
+ },
2063
+ {
2064
+ "name": "OnEnded",
2065
+ "type": "EventCallback",
2066
+ "default": null,
2067
+ "description": null,
2068
+ "isCascading": false,
2069
+ "captureUnmatched": false
2070
+ },
2071
+ {
2072
+ "name": "OnPlay",
2073
+ "type": "EventCallback",
2074
+ "default": null,
2075
+ "description": null,
2076
+ "isCascading": false,
2077
+ "captureUnmatched": false
2078
+ },
2079
+ {
2080
+ "name": "OnPause",
2081
+ "type": "EventCallback",
2082
+ "default": null,
2083
+ "description": null,
2084
+ "isCascading": false,
2085
+ "captureUnmatched": false
2086
+ },
2087
+ {
2088
+ "name": "Class",
2089
+ "type": "string?",
2090
+ "default": null,
2091
+ "description": null,
2092
+ "isCascading": false,
2093
+ "captureUnmatched": false
2094
+ },
2095
+ {
2096
+ "name": "AdditionalAttributes",
2097
+ "type": "Dictionary<string, object>?",
2098
+ "default": null,
2099
+ "description": null,
2100
+ "isCascading": false,
2101
+ "captureUnmatched": true
2102
+ }
2103
+ ],
2104
+ "events": [
2105
+ {
2106
+ "name": "OnTimeUpdate",
2107
+ "type": "EventCallback<double>",
2108
+ "description": null
2109
+ },
2110
+ {
2111
+ "name": "OnEnded",
2112
+ "type": "EventCallback",
2113
+ "description": null
2114
+ },
2115
+ {
2116
+ "name": "OnPlay",
2117
+ "type": "EventCallback",
2118
+ "description": null
2119
+ },
2120
+ {
2121
+ "name": "OnPause",
2122
+ "type": "EventCallback",
2123
+ "description": null
2124
+ }
2125
+ ],
2126
+ "enums": [],
2127
+ "records": [],
2128
+ "cssVars": [
2129
+ "--color-accent",
2130
+ "--color-accent-foreground",
2131
+ "--color-border",
2132
+ "--color-card",
2133
+ "--color-foreground",
2134
+ "--color-muted",
2135
+ "--color-muted-foreground",
2136
+ "--color-primary",
2137
+ "--color-ring",
2138
+ "--radius"
2139
+ ],
2140
+ "examples": [
2141
+ {
2142
+ "title": "Basic",
2143
+ "code": "<AudioPlayer Src=\"https://www.kozco.com/tech/piano2-CoolEdit.mp3\"\n Title=\"Piano sample\"\n Artist=\"Cool Edit demo\" />"
2144
+ },
2145
+ {
2146
+ "title": "With cover art",
2147
+ "code": "<AudioPlayer Src=\"https://www.kozco.com/tech/piano2-CoolEdit.mp3\"\n Title=\"Piano sample\"\n Artist=\"Cool Edit demo\">\n <Cover>\n <Image Src=\"https://images.unsplash.com/photo-1511671782779-c97d3d27a1d4?w=160&h=160&fit=crop\"\n Alt=\"Album cover\"\n Class=\"h-16 w-16 rounded-md object-cover\" />\n </Cover>\n</AudioPlayer>"
2148
+ },
2149
+ {
2150
+ "title": "Looping + download",
2151
+ "code": "<AudioPlayer Src=\"https://www.kozco.com/tech/piano2-CoolEdit.mp3\"\n Title=\"Looping piano sample\"\n Artist=\"Cool Edit demo\"\n Loop=\"true\"\n Autoplay=\"false\"\n ShowDownload=\"true\" />"
2152
+ },
2153
+ {
2154
+ "title": "Playback events",
2155
+ "code": "<AudioPlayer Src=\"https://www.kozco.com/tech/piano2-CoolEdit.mp3\"\n Title=\"Tracked sample\"\n Artist=\"Cool Edit demo\"\n OnPlay=\"HandlePlay\"\n OnPause=\"HandlePause\"\n OnEnded=\"HandleEnded\" />\n\n@@code {\n private string _lastEvent = \"(none)\";\n private void HandlePlay() => _lastEvent = \"play\";\n private void HandlePause() => _lastEvent = \"pause\";\n private void HandleEnded() => _lastEvent = \"ended\";\n}"
2156
+ }
2157
+ ],
2158
+ "subComponents": {},
2159
+ "parseFailed": false,
2160
+ "parseError": null
2161
+ },
1976
2162
  "Avatar": {
1977
2163
  "name": "Avatar",
1978
2164
  "category": "Data Display",
@@ -13004,6 +13190,166 @@
13004
13190
  "parseFailed": false,
13005
13191
  "parseError": null
13006
13192
  },
13193
+ "CodeEditor": {
13194
+ "name": "CodeEditor",
13195
+ "category": "Forms",
13196
+ "subcategory": null,
13197
+ "description": "Source-code editor wrapping CodeMirror 6 with on-demand language packs, dark/light/auto theming, and line numbers.",
13198
+ "nugetPackage": "Lumeo.CodeEditor",
13199
+ "files": [
13200
+ "UI/CodeEditor/CodeEditor.razor"
13201
+ ],
13202
+ "namespace": "Lumeo",
13203
+ "inheritsFrom": null,
13204
+ "implements": [
13205
+ "IAsyncDisposable"
13206
+ ],
13207
+ "parameters": [
13208
+ {
13209
+ "name": "Value",
13210
+ "type": "string?",
13211
+ "default": null,
13212
+ "description": null,
13213
+ "isCascading": false,
13214
+ "captureUnmatched": false
13215
+ },
13216
+ {
13217
+ "name": "ValueChanged",
13218
+ "type": "EventCallback<string>",
13219
+ "default": null,
13220
+ "description": null,
13221
+ "isCascading": false,
13222
+ "captureUnmatched": false
13223
+ },
13224
+ {
13225
+ "name": "Language",
13226
+ "type": "string",
13227
+ "default": "\"plaintext\"",
13228
+ "description": "Source language. Currently supported: csharp, javascript, typescript, html, css, json, markdown, xml, sql, python, plaintext. Unknown values fall back to plaintext.",
13229
+ "isCascading": false,
13230
+ "captureUnmatched": false
13231
+ },
13232
+ {
13233
+ "name": "Theme",
13234
+ "type": "string",
13235
+ "default": "\"auto\"",
13236
+ "description": "light | dark | auto (follows page theme via the `dark` class on &lt;html&gt;).",
13237
+ "isCascading": false,
13238
+ "captureUnmatched": false
13239
+ },
13240
+ {
13241
+ "name": "Height",
13242
+ "type": "string",
13243
+ "default": "\"400px\"",
13244
+ "description": null,
13245
+ "isCascading": false,
13246
+ "captureUnmatched": false
13247
+ },
13248
+ {
13249
+ "name": "LineNumbers",
13250
+ "type": "bool",
13251
+ "default": "true",
13252
+ "description": null,
13253
+ "isCascading": false,
13254
+ "captureUnmatched": false
13255
+ },
13256
+ {
13257
+ "name": "ReadOnly",
13258
+ "type": "bool",
13259
+ "default": null,
13260
+ "description": null,
13261
+ "isCascading": false,
13262
+ "captureUnmatched": false
13263
+ },
13264
+ {
13265
+ "name": "ShowMinimap",
13266
+ "type": "bool",
13267
+ "default": null,
13268
+ "description": "CodeMirror 6 does not ship a native minimap. Kept for API symmetry with Monaco-style wrappers; today this is a no-op. A future revision may render a custom minimap using the scrollDOM viewport API.",
13269
+ "isCascading": false,
13270
+ "captureUnmatched": false
13271
+ },
13272
+ {
13273
+ "name": "TabSize",
13274
+ "type": "int",
13275
+ "default": "4",
13276
+ "description": null,
13277
+ "isCascading": false,
13278
+ "captureUnmatched": false
13279
+ },
13280
+ {
13281
+ "name": "UseTabs",
13282
+ "type": "bool",
13283
+ "default": null,
13284
+ "description": null,
13285
+ "isCascading": false,
13286
+ "captureUnmatched": false
13287
+ },
13288
+ {
13289
+ "name": "WordWrap",
13290
+ "type": "string",
13291
+ "default": "\"off\"",
13292
+ "description": "\"off\" | \"on\"",
13293
+ "isCascading": false,
13294
+ "captureUnmatched": false
13295
+ },
13296
+ {
13297
+ "name": "Placeholder",
13298
+ "type": "string?",
13299
+ "default": null,
13300
+ "description": null,
13301
+ "isCascading": false,
13302
+ "captureUnmatched": false
13303
+ },
13304
+ {
13305
+ "name": "OnChange",
13306
+ "type": "EventCallback<string>",
13307
+ "default": null,
13308
+ "description": "Fires alongside ValueChanged; provided for symmetry with Monaco-style APIs.",
13309
+ "isCascading": false,
13310
+ "captureUnmatched": false
13311
+ },
13312
+ {
13313
+ "name": "Class",
13314
+ "type": "string?",
13315
+ "default": null,
13316
+ "description": null,
13317
+ "isCascading": false,
13318
+ "captureUnmatched": false
13319
+ },
13320
+ {
13321
+ "name": "AdditionalAttributes",
13322
+ "type": "Dictionary<string, object>?",
13323
+ "default": null,
13324
+ "description": null,
13325
+ "isCascading": false,
13326
+ "captureUnmatched": true
13327
+ }
13328
+ ],
13329
+ "events": [
13330
+ {
13331
+ "name": "ValueChanged",
13332
+ "type": "EventCallback<string>",
13333
+ "description": null
13334
+ },
13335
+ {
13336
+ "name": "OnChange",
13337
+ "type": "EventCallback<string>",
13338
+ "description": "Fires alongside ValueChanged; provided for symmetry with Monaco-style APIs."
13339
+ }
13340
+ ],
13341
+ "enums": [],
13342
+ "records": [],
13343
+ "cssVars": [
13344
+ "--color-border",
13345
+ "--color-card",
13346
+ "--radius"
13347
+ ],
13348
+ "examples": [],
13349
+ "subComponents": {},
13350
+ "parseFailed": false,
13351
+ "parseError": null
13352
+ },
13007
13353
  "Collapsible": {
13008
13354
  "name": "Collapsible",
13009
13355
  "category": "Navigation",
@@ -16822,6 +17168,14 @@
16822
17168
  "isCascading": false,
16823
17169
  "captureUnmatched": false
16824
17170
  },
17171
+ {
17172
+ "name": "OnColumnPin",
17173
+ "type": "EventCallback<ColumnPinEventArgs>",
17174
+ "default": null,
17175
+ "description": null,
17176
+ "isCascading": false,
17177
+ "captureUnmatched": false
17178
+ },
16825
17179
  {
16826
17180
  "name": "Class",
16827
17181
  "type": "string?",
@@ -16849,6 +17203,11 @@
16849
17203
  "name": "OnColumnReorder",
16850
17204
  "type": "EventCallback<ColumnReorderEventArgs>",
16851
17205
  "description": null
17206
+ },
17207
+ {
17208
+ "name": "OnColumnPin",
17209
+ "type": "EventCallback<ColumnPinEventArgs>",
17210
+ "description": null
16852
17211
  }
16853
17212
  ],
16854
17213
  "enums": [],
@@ -25596,6 +25955,239 @@
25596
25955
  "parseFailed": false,
25597
25956
  "parseError": null
25598
25957
  },
25958
+ "Map": {
25959
+ "name": "Map",
25960
+ "category": "Data Display",
25961
+ "subcategory": null,
25962
+ "description": "Interactive geographic map with declarative markers — Leaflet wrapper, open-source tiles, no API key required.",
25963
+ "nugetPackage": "Lumeo.Maps",
25964
+ "files": [
25965
+ "UI/Map/Map.razor",
25966
+ "UI/Map/MapMarker.razor"
25967
+ ],
25968
+ "namespace": "Lumeo",
25969
+ "inheritsFrom": null,
25970
+ "implements": [
25971
+ "IAsyncDisposable"
25972
+ ],
25973
+ "parameters": [
25974
+ {
25975
+ "name": "Center",
25976
+ "type": "(double Lat, double Lon)",
25977
+ "default": "(51.0, 10.4)",
25978
+ "description": null,
25979
+ "isCascading": false,
25980
+ "captureUnmatched": false
25981
+ },
25982
+ {
25983
+ "name": "CenterChanged",
25984
+ "type": "EventCallback<(double Lat, double Lon)>",
25985
+ "default": null,
25986
+ "description": null,
25987
+ "isCascading": false,
25988
+ "captureUnmatched": false
25989
+ },
25990
+ {
25991
+ "name": "Zoom",
25992
+ "type": "int",
25993
+ "default": "5",
25994
+ "description": null,
25995
+ "isCascading": false,
25996
+ "captureUnmatched": false
25997
+ },
25998
+ {
25999
+ "name": "ZoomChanged",
26000
+ "type": "EventCallback<int>",
26001
+ "default": null,
26002
+ "description": null,
26003
+ "isCascading": false,
26004
+ "captureUnmatched": false
26005
+ },
26006
+ {
26007
+ "name": "Height",
26008
+ "type": "string",
26009
+ "default": "\"400px\"",
26010
+ "description": null,
26011
+ "isCascading": false,
26012
+ "captureUnmatched": false
26013
+ },
26014
+ {
26015
+ "name": "TileLayer",
26016
+ "type": "string",
26017
+ "default": "\"OpenStreetMap\"",
26018
+ "description": "Accepts a preset name (\"OpenStreetMap\", \"CartoLight\", \"CartoDark\") or a raw tile URL template (e.g. \"https://your.tiles/{z}/{x}/{y}.png\").",
26019
+ "isCascading": false,
26020
+ "captureUnmatched": false
26021
+ },
26022
+ {
26023
+ "name": "ZoomControl",
26024
+ "type": "bool",
26025
+ "default": "true",
26026
+ "description": null,
26027
+ "isCascading": false,
26028
+ "captureUnmatched": false
26029
+ },
26030
+ {
26031
+ "name": "Attribution",
26032
+ "type": "bool",
26033
+ "default": "true",
26034
+ "description": null,
26035
+ "isCascading": false,
26036
+ "captureUnmatched": false
26037
+ },
26038
+ {
26039
+ "name": "ScrollWheelZoom",
26040
+ "type": "bool",
26041
+ "default": "true",
26042
+ "description": "Mirrors Leaflet's default (true). Set to false in dense scrollable page layouts to avoid trapping page scroll inside the map.",
26043
+ "isCascading": false,
26044
+ "captureUnmatched": false
26045
+ },
26046
+ {
26047
+ "name": "ChildContent",
26048
+ "type": "RenderFragment?",
26049
+ "default": null,
26050
+ "description": null,
26051
+ "isCascading": false,
26052
+ "captureUnmatched": false
26053
+ },
26054
+ {
26055
+ "name": "OnClick",
26056
+ "type": "EventCallback<(double Lat, double Lon)>",
26057
+ "default": null,
26058
+ "description": null,
26059
+ "isCascading": false,
26060
+ "captureUnmatched": false
26061
+ },
26062
+ {
26063
+ "name": "Class",
26064
+ "type": "string?",
26065
+ "default": null,
26066
+ "description": null,
26067
+ "isCascading": false,
26068
+ "captureUnmatched": false
26069
+ },
26070
+ {
26071
+ "name": "AdditionalAttributes",
26072
+ "type": "Dictionary<string, object>?",
26073
+ "default": null,
26074
+ "description": null,
26075
+ "isCascading": false,
26076
+ "captureUnmatched": true
26077
+ }
26078
+ ],
26079
+ "events": [
26080
+ {
26081
+ "name": "CenterChanged",
26082
+ "type": "EventCallback<(double Lat, double Lon)>",
26083
+ "description": null
26084
+ },
26085
+ {
26086
+ "name": "ZoomChanged",
26087
+ "type": "EventCallback<int>",
26088
+ "description": null
26089
+ },
26090
+ {
26091
+ "name": "OnClick",
26092
+ "type": "EventCallback<(double Lat, double Lon)>",
26093
+ "description": null
26094
+ }
26095
+ ],
26096
+ "enums": [],
26097
+ "records": [
26098
+ {
26099
+ "name": "MapContext",
26100
+ "signature": "MapContext(Map Owner)",
26101
+ "description": "Cascading context passed to MapMarker children so they can register themselves with the parent Map. Declared here so consumers don't need an extra using."
26102
+ }
26103
+ ],
26104
+ "cssVars": [
26105
+ "--color-foreground"
26106
+ ],
26107
+ "examples": [],
26108
+ "subComponents": {
26109
+ "MapMarker": {
26110
+ "componentName": "MapMarker",
26111
+ "fileName": "MapMarker.razor",
26112
+ "namespace": "Lumeo",
26113
+ "inheritsFrom": null,
26114
+ "implements": [
26115
+ "IDisposable"
26116
+ ],
26117
+ "parameters": [
26118
+ {
26119
+ "name": "Lat",
26120
+ "type": "double",
26121
+ "default": null,
26122
+ "description": null,
26123
+ "isCascading": false,
26124
+ "captureUnmatched": false
26125
+ },
26126
+ {
26127
+ "name": "Lon",
26128
+ "type": "double",
26129
+ "default": null,
26130
+ "description": null,
26131
+ "isCascading": false,
26132
+ "captureUnmatched": false
26133
+ },
26134
+ {
26135
+ "name": "Title",
26136
+ "type": "string?",
26137
+ "default": null,
26138
+ "description": null,
26139
+ "isCascading": false,
26140
+ "captureUnmatched": false
26141
+ },
26142
+ {
26143
+ "name": "IconUrl",
26144
+ "type": "string?",
26145
+ "default": null,
26146
+ "description": null,
26147
+ "isCascading": false,
26148
+ "captureUnmatched": false
26149
+ },
26150
+ {
26151
+ "name": "Popup",
26152
+ "type": "RenderFragment?",
26153
+ "default": null,
26154
+ "description": "Optional rich popup body. When present, it overrides the plain Title as the marker's popup content. The fragment renders into a hidden host div and Leaflet uses the host's innerHTML.",
26155
+ "isCascading": false,
26156
+ "captureUnmatched": false
26157
+ },
26158
+ {
26159
+ "name": "OnClick",
26160
+ "type": "EventCallback",
26161
+ "default": null,
26162
+ "description": null,
26163
+ "isCascading": false,
26164
+ "captureUnmatched": false
26165
+ },
26166
+ {
26167
+ "name": "MapCtx",
26168
+ "type": "Map.MapContext?",
26169
+ "default": null,
26170
+ "description": null,
26171
+ "isCascading": true,
26172
+ "captureUnmatched": false
26173
+ }
26174
+ ],
26175
+ "events": [
26176
+ {
26177
+ "name": "OnClick",
26178
+ "type": "EventCallback",
26179
+ "description": null
26180
+ }
26181
+ ],
26182
+ "enums": [],
26183
+ "records": [],
26184
+ "parseFailed": false,
26185
+ "parseError": null
26186
+ }
26187
+ },
26188
+ "parseFailed": false,
26189
+ "parseError": null
26190
+ },
25599
26191
  "Marquee": {
25600
26192
  "name": "Marquee",
25601
26193
  "category": "Motion",
@@ -28488,6 +29080,188 @@
28488
29080
  "parseFailed": false,
28489
29081
  "parseError": null
28490
29082
  },
29083
+ "PdfViewer": {
29084
+ "name": "PdfViewer",
29085
+ "category": "Data Display",
29086
+ "subcategory": null,
29087
+ "description": "Inline PDF document viewer powered by pdf.js — page navigation, zoom controls, optional text search, and download.",
29088
+ "nugetPackage": "Lumeo.PdfViewer",
29089
+ "files": [
29090
+ "UI/PdfViewer/PdfViewer.razor"
29091
+ ],
29092
+ "namespace": "Lumeo",
29093
+ "inheritsFrom": null,
29094
+ "implements": [
29095
+ "IAsyncDisposable"
29096
+ ],
29097
+ "parameters": [
29098
+ {
29099
+ "name": "Src",
29100
+ "type": "string?",
29101
+ "default": null,
29102
+ "description": null,
29103
+ "isCascading": false,
29104
+ "captureUnmatched": false
29105
+ },
29106
+ {
29107
+ "name": "Page",
29108
+ "type": "int",
29109
+ "default": "1",
29110
+ "description": null,
29111
+ "isCascading": false,
29112
+ "captureUnmatched": false
29113
+ },
29114
+ {
29115
+ "name": "PageChanged",
29116
+ "type": "EventCallback<int>",
29117
+ "default": null,
29118
+ "description": null,
29119
+ "isCascading": false,
29120
+ "captureUnmatched": false
29121
+ },
29122
+ {
29123
+ "name": "Zoom",
29124
+ "type": "double",
29125
+ "default": "1.0",
29126
+ "description": null,
29127
+ "isCascading": false,
29128
+ "captureUnmatched": false
29129
+ },
29130
+ {
29131
+ "name": "ZoomChanged",
29132
+ "type": "EventCallback<double>",
29133
+ "default": null,
29134
+ "description": null,
29135
+ "isCascading": false,
29136
+ "captureUnmatched": false
29137
+ },
29138
+ {
29139
+ "name": "ShowToolbar",
29140
+ "type": "bool",
29141
+ "default": "true",
29142
+ "description": null,
29143
+ "isCascading": false,
29144
+ "captureUnmatched": false
29145
+ },
29146
+ {
29147
+ "name": "ShowPageNav",
29148
+ "type": "bool",
29149
+ "default": "true",
29150
+ "description": null,
29151
+ "isCascading": false,
29152
+ "captureUnmatched": false
29153
+ },
29154
+ {
29155
+ "name": "ShowZoomControls",
29156
+ "type": "bool",
29157
+ "default": "true",
29158
+ "description": null,
29159
+ "isCascading": false,
29160
+ "captureUnmatched": false
29161
+ },
29162
+ {
29163
+ "name": "ShowDownload",
29164
+ "type": "bool",
29165
+ "default": "true",
29166
+ "description": null,
29167
+ "isCascading": false,
29168
+ "captureUnmatched": false
29169
+ },
29170
+ {
29171
+ "name": "ShowSearch",
29172
+ "type": "bool",
29173
+ "default": null,
29174
+ "description": null,
29175
+ "isCascading": false,
29176
+ "captureUnmatched": false
29177
+ },
29178
+ {
29179
+ "name": "OnLoaded",
29180
+ "type": "EventCallback<int>",
29181
+ "default": null,
29182
+ "description": null,
29183
+ "isCascading": false,
29184
+ "captureUnmatched": false
29185
+ },
29186
+ {
29187
+ "name": "OnPageChanged",
29188
+ "type": "EventCallback<int>",
29189
+ "default": null,
29190
+ "description": null,
29191
+ "isCascading": false,
29192
+ "captureUnmatched": false
29193
+ },
29194
+ {
29195
+ "name": "Class",
29196
+ "type": "string?",
29197
+ "default": null,
29198
+ "description": null,
29199
+ "isCascading": false,
29200
+ "captureUnmatched": false
29201
+ },
29202
+ {
29203
+ "name": "AdditionalAttributes",
29204
+ "type": "Dictionary<string, object>?",
29205
+ "default": null,
29206
+ "description": null,
29207
+ "isCascading": false,
29208
+ "captureUnmatched": true
29209
+ }
29210
+ ],
29211
+ "events": [
29212
+ {
29213
+ "name": "PageChanged",
29214
+ "type": "EventCallback<int>",
29215
+ "description": null
29216
+ },
29217
+ {
29218
+ "name": "ZoomChanged",
29219
+ "type": "EventCallback<double>",
29220
+ "description": null
29221
+ },
29222
+ {
29223
+ "name": "OnLoaded",
29224
+ "type": "EventCallback<int>",
29225
+ "description": null
29226
+ },
29227
+ {
29228
+ "name": "OnPageChanged",
29229
+ "type": "EventCallback<int>",
29230
+ "description": null
29231
+ }
29232
+ ],
29233
+ "enums": [],
29234
+ "records": [],
29235
+ "cssVars": [
29236
+ "--color-accent",
29237
+ "--color-accent-foreground",
29238
+ "--color-background",
29239
+ "--color-border",
29240
+ "--color-card",
29241
+ "--color-foreground",
29242
+ "--color-muted",
29243
+ "--color-muted-foreground",
29244
+ "--color-ring",
29245
+ "--radius"
29246
+ ],
29247
+ "examples": [
29248
+ {
29249
+ "title": "Basic",
29250
+ "code": "<PdfViewer Src=\"@SamplePdfUrl\"\n @bind-Page=\"_page\"\n @bind-Zoom=\"_zoom\"\n OnLoaded=\"HandleLoaded\"\n Class=\"h-[600px]\" />"
29251
+ },
29252
+ {
29253
+ "title": "With search bar",
29254
+ "code": "<PdfViewer Src=\"@SamplePdfUrl\"\n ShowSearch=\"true\"\n Class=\"h-[600px]\" />"
29255
+ },
29256
+ {
29257
+ "title": "Toolbar-less (chromeless embed)",
29258
+ "code": "<PdfViewer Src=\"@SamplePdfUrl\"\n ShowToolbar=\"false\"\n Class=\"h-[500px]\" />"
29259
+ }
29260
+ ],
29261
+ "subComponents": {},
29262
+ "parseFailed": false,
29263
+ "parseError": null
29264
+ },
28491
29265
  "PickList": {
28492
29266
  "name": "PickList",
28493
29267
  "category": "Dashboard",
@@ -34587,6 +35361,198 @@
34587
35361
  "parseFailed": false,
34588
35362
  "parseError": null
34589
35363
  },
35364
+ "SignaturePad": {
35365
+ "name": "SignaturePad",
35366
+ "category": "Utility",
35367
+ "subcategory": null,
35368
+ "description": "Signature Pad component.",
35369
+ "nugetPackage": "Lumeo",
35370
+ "files": [
35371
+ "UI/SignaturePad/SignaturePad.razor"
35372
+ ],
35373
+ "namespace": "Lumeo",
35374
+ "inheritsFrom": null,
35375
+ "implements": [
35376
+ "IAsyncDisposable"
35377
+ ],
35378
+ "parameters": [
35379
+ {
35380
+ "name": "Value",
35381
+ "type": "string?",
35382
+ "default": null,
35383
+ "description": null,
35384
+ "isCascading": false,
35385
+ "captureUnmatched": false
35386
+ },
35387
+ {
35388
+ "name": "ValueChanged",
35389
+ "type": "EventCallback<string?>",
35390
+ "default": null,
35391
+ "description": null,
35392
+ "isCascading": false,
35393
+ "captureUnmatched": false
35394
+ },
35395
+ {
35396
+ "name": "Width",
35397
+ "type": "int",
35398
+ "default": "500",
35399
+ "description": null,
35400
+ "isCascading": false,
35401
+ "captureUnmatched": false
35402
+ },
35403
+ {
35404
+ "name": "Height",
35405
+ "type": "int",
35406
+ "default": "200",
35407
+ "description": null,
35408
+ "isCascading": false,
35409
+ "captureUnmatched": false
35410
+ },
35411
+ {
35412
+ "name": "StrokeColor",
35413
+ "type": "string",
35414
+ "default": "\"currentColor\"",
35415
+ "description": null,
35416
+ "isCascading": false,
35417
+ "captureUnmatched": false
35418
+ },
35419
+ {
35420
+ "name": "StrokeWidth",
35421
+ "type": "double",
35422
+ "default": "2.0",
35423
+ "description": null,
35424
+ "isCascading": false,
35425
+ "captureUnmatched": false
35426
+ },
35427
+ {
35428
+ "name": "BackgroundColor",
35429
+ "type": "string",
35430
+ "default": "\"transparent\"",
35431
+ "description": null,
35432
+ "isCascading": false,
35433
+ "captureUnmatched": false
35434
+ },
35435
+ {
35436
+ "name": "ShowClearButton",
35437
+ "type": "bool",
35438
+ "default": "true",
35439
+ "description": null,
35440
+ "isCascading": false,
35441
+ "captureUnmatched": false
35442
+ },
35443
+ {
35444
+ "name": "ShowDownloadButton",
35445
+ "type": "bool",
35446
+ "default": null,
35447
+ "description": null,
35448
+ "isCascading": false,
35449
+ "captureUnmatched": false
35450
+ },
35451
+ {
35452
+ "name": "Format",
35453
+ "type": "string",
35454
+ "default": "\"png\"",
35455
+ "description": "Export format for the emitted data URL. \"png\" is the safe default (universal browser support, transparent backgrounds work). \"svg\" would require capturing strokes as path data rather than raster pixels; not implemented in this initial 3.1.0 cut — falls back to PNG. TODO: real SVG export by recording pointer paths client-side.",
35456
+ "isCascading": false,
35457
+ "captureUnmatched": false
35458
+ },
35459
+ {
35460
+ "name": "Disabled",
35461
+ "type": "bool",
35462
+ "default": null,
35463
+ "description": null,
35464
+ "isCascading": false,
35465
+ "captureUnmatched": false
35466
+ },
35467
+ {
35468
+ "name": "OnSign",
35469
+ "type": "EventCallback",
35470
+ "default": null,
35471
+ "description": null,
35472
+ "isCascading": false,
35473
+ "captureUnmatched": false
35474
+ },
35475
+ {
35476
+ "name": "OnClear",
35477
+ "type": "EventCallback",
35478
+ "default": null,
35479
+ "description": null,
35480
+ "isCascading": false,
35481
+ "captureUnmatched": false
35482
+ },
35483
+ {
35484
+ "name": "Placeholder",
35485
+ "type": "string?",
35486
+ "default": "\"Sign here\"",
35487
+ "description": null,
35488
+ "isCascading": false,
35489
+ "captureUnmatched": false
35490
+ },
35491
+ {
35492
+ "name": "Class",
35493
+ "type": "string?",
35494
+ "default": null,
35495
+ "description": null,
35496
+ "isCascading": false,
35497
+ "captureUnmatched": false
35498
+ },
35499
+ {
35500
+ "name": "AdditionalAttributes",
35501
+ "type": "Dictionary<string, object>?",
35502
+ "default": null,
35503
+ "description": null,
35504
+ "isCascading": false,
35505
+ "captureUnmatched": true
35506
+ }
35507
+ ],
35508
+ "events": [
35509
+ {
35510
+ "name": "ValueChanged",
35511
+ "type": "EventCallback<string?>",
35512
+ "description": null
35513
+ },
35514
+ {
35515
+ "name": "OnSign",
35516
+ "type": "EventCallback",
35517
+ "description": null
35518
+ },
35519
+ {
35520
+ "name": "OnClear",
35521
+ "type": "EventCallback",
35522
+ "description": null
35523
+ }
35524
+ ],
35525
+ "enums": [],
35526
+ "records": [],
35527
+ "cssVars": [
35528
+ "--color-border",
35529
+ "--color-card",
35530
+ "--color-muted",
35531
+ "--color-muted-foreground",
35532
+ "--radius"
35533
+ ],
35534
+ "examples": [
35535
+ {
35536
+ "title": "Basic",
35537
+ "code": "<SignaturePad @bind-Value=\"_signature\" />\n\n@@if (!string.IsNullOrEmpty(_signature))\n{\n <Image Src=\"@_signature\" Alt=\"Captured signature\" />\n}\n\n@@code {\n private string? _signature;\n}"
35538
+ },
35539
+ {
35540
+ "title": "Custom stroke",
35541
+ "code": "<SignaturePad StrokeColor=\"#dc2626\"\n StrokeWidth=\"4\"\n BackgroundColor=\"white\" />"
35542
+ },
35543
+ {
35544
+ "title": "With download",
35545
+ "code": "<SignaturePad ShowDownloadButton=\"true\"\n Placeholder=\"Sign and click download\" />"
35546
+ },
35547
+ {
35548
+ "title": "Disabled / read-only",
35549
+ "code": "<SignaturePad Disabled=\"true\" Value=\"@_savedSignature\" />\n\n@@code {\n private string _savedSignature = \"data:image/png;base64,...\";\n}"
35550
+ }
35551
+ ],
35552
+ "subComponents": {},
35553
+ "parseFailed": false,
35554
+ "parseError": null
35555
+ },
34590
35556
  "Skeleton": {
34591
35557
  "name": "Skeleton",
34592
35558
  "category": "Feedback",
package/src/registry.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://lumeo.nativ.sh/registry-schema.json",
3
- "version": "3.0.5",
4
- "generated": "2026-05-22T08:15:03.0005336Z",
3
+ "version": "3.1.0",
4
+ "generated": "2026-05-22T09:36:49.7962064Z",
5
5
  "components": {
6
6
  "accordion": {
7
7
  "name": "Accordion",
@@ -190,6 +190,37 @@
190
190
  ],
191
191
  "registryUrl": "https://lumeo.nativ.sh/registry/aspect-ratio.json"
192
192
  },
193
+ "audio-player": {
194
+ "name": "AudioPlayer",
195
+ "category": "Utility",
196
+ "subcategory": null,
197
+ "description": "Audio Player component.",
198
+ "thumbnail": "/preview-cards/audio-player.png",
199
+ "hasDocsPage": true,
200
+ "nugetPackage": "Lumeo",
201
+ "files": [
202
+ "UI/AudioPlayer/AudioPlayer.razor"
203
+ ],
204
+ "dependencies": [
205
+ "button"
206
+ ],
207
+ "packageDependencies": [
208
+ "Blazicons.Lucide"
209
+ ],
210
+ "cssVars": [
211
+ "--color-accent",
212
+ "--color-accent-foreground",
213
+ "--color-border",
214
+ "--color-card",
215
+ "--color-foreground",
216
+ "--color-muted",
217
+ "--color-muted-foreground",
218
+ "--color-primary",
219
+ "--color-ring",
220
+ "--radius"
221
+ ],
222
+ "registryUrl": "https://lumeo.nativ.sh/registry/audio-player.json"
223
+ },
193
224
  "avatar": {
194
225
  "name": "Avatar",
195
226
  "category": "Data Display",
@@ -723,6 +754,26 @@
723
754
  ],
724
755
  "registryUrl": "https://lumeo.nativ.sh/registry/code.json"
725
756
  },
757
+ "code-editor": {
758
+ "name": "CodeEditor",
759
+ "category": "Forms",
760
+ "subcategory": null,
761
+ "description": "Source-code editor wrapping CodeMirror 6 with on-demand language packs, dark/light/auto theming, and line numbers.",
762
+ "thumbnail": "/preview-cards/code-editor.png",
763
+ "hasDocsPage": true,
764
+ "nugetPackage": "Lumeo.CodeEditor",
765
+ "files": [
766
+ "UI/CodeEditor/CodeEditor.razor"
767
+ ],
768
+ "dependencies": [],
769
+ "packageDependencies": [],
770
+ "cssVars": [
771
+ "--color-border",
772
+ "--color-card",
773
+ "--radius"
774
+ ],
775
+ "registryUrl": "https://lumeo.nativ.sh/registry/code-editor.json"
776
+ },
726
777
  "collapsible": {
727
778
  "name": "Collapsible",
728
779
  "category": "Navigation",
@@ -1000,6 +1051,7 @@
1000
1051
  "pagination",
1001
1052
  "select",
1002
1053
  "skeleton",
1054
+ "sortable",
1003
1055
  "toolbar"
1004
1056
  ],
1005
1057
  "packageDependencies": [
@@ -1870,6 +1922,25 @@
1870
1922
  ],
1871
1923
  "registryUrl": "https://lumeo.nativ.sh/registry/list.json"
1872
1924
  },
1925
+ "map": {
1926
+ "name": "Map",
1927
+ "category": "Data Display",
1928
+ "subcategory": null,
1929
+ "description": "Interactive geographic map with declarative markers — Leaflet wrapper, open-source tiles, no API key required.",
1930
+ "thumbnail": "/preview-cards/map.png",
1931
+ "hasDocsPage": true,
1932
+ "nugetPackage": "Lumeo.Maps",
1933
+ "files": [
1934
+ "UI/Map/Map.razor",
1935
+ "UI/Map/MapMarker.razor"
1936
+ ],
1937
+ "dependencies": [],
1938
+ "packageDependencies": [],
1939
+ "cssVars": [
1940
+ "--color-foreground"
1941
+ ],
1942
+ "registryUrl": "https://lumeo.nativ.sh/registry/map.json"
1943
+ },
1873
1944
  "marquee": {
1874
1945
  "name": "Marquee",
1875
1946
  "category": "Motion",
@@ -2173,6 +2244,39 @@
2173
2244
  ],
2174
2245
  "registryUrl": "https://lumeo.nativ.sh/registry/password-input.json"
2175
2246
  },
2247
+ "pdf-viewer": {
2248
+ "name": "PdfViewer",
2249
+ "category": "Data Display",
2250
+ "subcategory": null,
2251
+ "description": "Inline PDF document viewer powered by pdf.js — page navigation, zoom controls, optional text search, and download.",
2252
+ "thumbnail": "/preview-cards/pdf-viewer.png",
2253
+ "hasDocsPage": true,
2254
+ "nugetPackage": "Lumeo.PdfViewer",
2255
+ "files": [
2256
+ "UI/PdfViewer/PdfViewer.razor"
2257
+ ],
2258
+ "dependencies": [
2259
+ "empty-state",
2260
+ "icon",
2261
+ "spinner"
2262
+ ],
2263
+ "packageDependencies": [
2264
+ "Blazicons.Lucide"
2265
+ ],
2266
+ "cssVars": [
2267
+ "--color-accent",
2268
+ "--color-accent-foreground",
2269
+ "--color-background",
2270
+ "--color-border",
2271
+ "--color-card",
2272
+ "--color-foreground",
2273
+ "--color-muted",
2274
+ "--color-muted-foreground",
2275
+ "--color-ring",
2276
+ "--radius"
2277
+ ],
2278
+ "registryUrl": "https://lumeo.nativ.sh/registry/pdf-viewer.json"
2279
+ },
2176
2280
  "pick-list": {
2177
2281
  "name": "PickList",
2178
2282
  "category": "Dashboard",
@@ -2879,6 +2983,33 @@
2879
2983
  ],
2880
2984
  "registryUrl": "https://lumeo.nativ.sh/registry/sidebar.json"
2881
2985
  },
2986
+ "signature-pad": {
2987
+ "name": "SignaturePad",
2988
+ "category": "Utility",
2989
+ "subcategory": null,
2990
+ "description": "Signature Pad component.",
2991
+ "thumbnail": "/preview-cards/signature-pad.png",
2992
+ "hasDocsPage": true,
2993
+ "nugetPackage": "Lumeo",
2994
+ "files": [
2995
+ "UI/SignaturePad/SignaturePad.razor"
2996
+ ],
2997
+ "dependencies": [
2998
+ "button",
2999
+ "flex"
3000
+ ],
3001
+ "packageDependencies": [
3002
+ "Blazicons.Lucide"
3003
+ ],
3004
+ "cssVars": [
3005
+ "--color-border",
3006
+ "--color-card",
3007
+ "--color-muted",
3008
+ "--color-muted-foreground",
3009
+ "--radius"
3010
+ ],
3011
+ "registryUrl": "https://lumeo.nativ.sh/registry/signature-pad.json"
3012
+ },
2882
3013
  "skeleton": {
2883
3014
  "name": "Skeleton",
2884
3015
  "category": "Feedback",