@almadar/patterns 2.2.0 → 2.5.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/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/patterns-registry.json
2
2
  var patterns_registry_default = {
3
3
  version: "1.0.0",
4
- exportedAt: "2026-03-08T11:32:49.899Z",
4
+ exportedAt: "2026-03-10T17:18:23.379Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -2159,9 +2159,10 @@ var patterns_registry_default = {
2159
2159
  },
2160
2160
  icon: {
2161
2161
  types: [
2162
- "icon"
2162
+ "icon",
2163
+ "string"
2163
2164
  ],
2164
- description: "Icon to display"
2165
+ description: "Icon to display (Lucide component or icon name string)"
2165
2166
  },
2166
2167
  iconBg: {
2167
2168
  types: [
@@ -2198,6 +2199,12 @@ var patterns_registry_default = {
2198
2199
  "boolean"
2199
2200
  ],
2200
2201
  description: "Compact display mode"
2202
+ },
2203
+ sparklineData: {
2204
+ types: [
2205
+ "unknown"
2206
+ ],
2207
+ description: "Sparkline data points for an inline trend chart"
2201
2208
  }
2202
2209
  }
2203
2210
  },
@@ -2387,6 +2394,12 @@ var patterns_registry_default = {
2387
2394
  "string"
2388
2395
  ],
2389
2396
  description: "Declarative close event \u2014 emits UI:{closeEvent} via eventBus when modal should close"
2397
+ },
2398
+ swipeDownToClose: {
2399
+ types: [
2400
+ "boolean"
2401
+ ],
2402
+ description: "Enable swipe-down-to-close on mobile bottom sheet (default: true)"
2390
2403
  }
2391
2404
  }
2392
2405
  },
@@ -3455,15 +3468,17 @@ var patterns_registry_default = {
3455
3468
  },
3456
3469
  icon: {
3457
3470
  types: [
3458
- "icon"
3471
+ "icon",
3472
+ "string"
3459
3473
  ],
3460
- description: "Left icon as Lucide icon component (convenience prop, renders with default size)"
3474
+ description: 'Left icon as Lucide icon component or string name (e.g. "plus", "trash")'
3461
3475
  },
3462
3476
  iconRight: {
3463
3477
  types: [
3464
- "icon"
3478
+ "icon",
3479
+ "string"
3465
3480
  ],
3466
- description: "Right icon as Lucide icon component (convenience prop)"
3481
+ description: "Right icon as Lucide icon component or string name"
3467
3482
  },
3468
3483
  action: {
3469
3484
  types: [
@@ -3513,6 +3528,18 @@ var patterns_registry_default = {
3513
3528
  "number"
3514
3529
  ],
3515
3530
  description: "Numeric count or amount to display in badge"
3531
+ },
3532
+ label: {
3533
+ types: [
3534
+ "string"
3535
+ ],
3536
+ description: "Badge label text (alternative to children for schema-driven rendering)"
3537
+ },
3538
+ icon: {
3539
+ types: [
3540
+ "node"
3541
+ ],
3542
+ description: "Icon name (Lucide icon string) or React node"
3516
3543
  }
3517
3544
  }
3518
3545
  },
@@ -3745,6 +3772,18 @@ var patterns_registry_default = {
3745
3772
  "number"
3746
3773
  ],
3747
3774
  description: "Maximum level"
3775
+ },
3776
+ longPressEvent: {
3777
+ types: [
3778
+ "string"
3779
+ ],
3780
+ description: "Event emitted on long press: UI:{longPressEvent}"
3781
+ },
3782
+ longPressPayload: {
3783
+ types: [
3784
+ "object"
3785
+ ],
3786
+ description: "Additional payload for long-press events"
3748
3787
  }
3749
3788
  }
3750
3789
  },
@@ -4847,6 +4886,12 @@ var patterns_registry_default = {
4847
4886
  "object"
4848
4887
  ],
4849
4888
  description: "Payload to include with the action event"
4889
+ },
4890
+ responsive: {
4891
+ types: [
4892
+ "boolean"
4893
+ ],
4894
+ description: "When true, horizontal stacks flip to vertical below the md breakpoint (768px)"
4850
4895
  }
4851
4896
  }
4852
4897
  },
@@ -8479,7 +8524,7 @@ var patterns_registry_default = {
8479
8524
  },
8480
8525
  "graph-canvas": {
8481
8526
  type: "graph-canvas",
8482
- category: "visualization",
8527
+ category: "game",
8483
8528
  description: "Force-directed graph visualization for node-link data with interactive zoom, pan, and layout",
8484
8529
  suggestedFor: [
8485
8530
  "knowledge graphs",
@@ -12604,6 +12649,7 @@ var patterns_registry_default = {
12604
12649
  propsSchema: {
12605
12650
  preset: {
12606
12651
  types: [
12652
+ "string",
12607
12653
  "physicspreset"
12608
12654
  ],
12609
12655
  description: "preset prop",
@@ -13708,6 +13754,30 @@ var patterns_registry_default = {
13708
13754
  "string"
13709
13755
  ],
13710
13756
  description: "Additional CSS classes"
13757
+ },
13758
+ longPressEvent: {
13759
+ types: [
13760
+ "string"
13761
+ ],
13762
+ description: "Event emitted on long-press of a time slot: UI:{longPressEvent} with { date, time }"
13763
+ },
13764
+ longPressPayload: {
13765
+ types: [
13766
+ "object"
13767
+ ],
13768
+ description: "Additional payload for long-press events"
13769
+ },
13770
+ swipeLeftEvent: {
13771
+ types: [
13772
+ "string"
13773
+ ],
13774
+ description: "Event emitted on swipe left (next week): UI:{swipeLeftEvent}"
13775
+ },
13776
+ swipeRightEvent: {
13777
+ types: [
13778
+ "string"
13779
+ ],
13780
+ description: "Event emitted on swipe right (prev week): UI:{swipeRightEvent}"
13711
13781
  }
13712
13782
  }
13713
13783
  },
@@ -14020,206 +14090,1649 @@ var patterns_registry_default = {
14020
14090
  }
14021
14091
  }
14022
14092
  },
14023
- heading: {
14024
- type: "heading",
14025
- category: "component",
14026
- description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
14093
+ "data-grid": {
14094
+ type: "data-grid",
14095
+ category: "display",
14096
+ description: "DataGrid component",
14027
14097
  suggestedFor: [
14028
- "typography"
14098
+ "data",
14099
+ "grid",
14100
+ "data grid"
14029
14101
  ],
14030
- typicalSize: "small",
14102
+ typicalSize: "medium",
14031
14103
  propsSchema: {
14032
- variant: {
14104
+ entity: {
14033
14105
  types: [
14034
- "typographyvariant"
14106
+ "unknown"
14035
14107
  ],
14036
- description: "Typography variant"
14108
+ description: "Entity data array"
14037
14109
  },
14038
- level: {
14110
+ fields: {
14111
+ types: [
14112
+ "unknown"
14113
+ ],
14114
+ description: "Field definitions for rendering each card"
14115
+ },
14116
+ columns: {
14117
+ types: [
14118
+ "unknown"
14119
+ ],
14120
+ description: "Alias for fields (compiler generates `columns` for field definitions)"
14121
+ },
14122
+ itemActions: {
14123
+ types: [
14124
+ "unknown"
14125
+ ],
14126
+ description: "Per-item action buttons"
14127
+ },
14128
+ cols: {
14039
14129
  types: [
14040
14130
  "number"
14041
14131
  ],
14042
- description: "Heading level (1-6) - alternative to variant for headings"
14132
+ description: "Number of columns (uses auto-fit if omitted)"
14043
14133
  },
14044
- color: {
14134
+ gap: {
14045
14135
  types: [
14046
14136
  "string"
14047
14137
  ],
14048
- description: "Text color"
14138
+ description: "Gap between cards"
14049
14139
  },
14050
- align: {
14140
+ minCardWidth: {
14051
14141
  types: [
14052
- "string"
14142
+ "number"
14053
14143
  ],
14054
- description: "Text alignment"
14144
+ description: "Minimum card width in pixels (used when cols is not set, default 280)"
14055
14145
  },
14056
- weight: {
14146
+ className: {
14057
14147
  types: [
14058
14148
  "string"
14059
14149
  ],
14060
- description: "Font weight override"
14150
+ description: "Additional CSS classes"
14061
14151
  },
14062
- size: {
14152
+ isLoading: {
14063
14153
  types: [
14064
- "typographysize"
14154
+ "boolean"
14065
14155
  ],
14066
- description: "Font size override"
14156
+ description: "Loading state"
14067
14157
  },
14068
- truncate: {
14158
+ error: {
14069
14159
  types: [
14070
- "boolean"
14160
+ "error"
14071
14161
  ],
14072
- description: "Truncate with ellipsis (single line)"
14162
+ description: "Error state"
14073
14163
  },
14074
- overflow: {
14164
+ imageField: {
14075
14165
  types: [
14076
14166
  "string"
14077
14167
  ],
14078
- description: "Overflow handling mode"
14168
+ description: "Entity field name containing an image URL for card thumbnails"
14079
14169
  },
14080
- as: {
14170
+ selectable: {
14081
14171
  types: [
14082
- "unknown"
14172
+ "boolean"
14083
14173
  ],
14084
- description: "Custom HTML element"
14174
+ description: "Enable multi-select with checkboxes"
14085
14175
  },
14086
- id: {
14176
+ selectionEvent: {
14087
14177
  types: [
14088
14178
  "string"
14089
14179
  ],
14090
- description: "HTML id attribute"
14180
+ description: "Selection change event name (emits UI:{selectionEvent} with { selectedIds: string[] })"
14091
14181
  },
14092
- className: {
14182
+ infiniteScroll: {
14093
14183
  types: [
14094
- "string"
14184
+ "boolean"
14095
14185
  ],
14096
- description: "Additional class names"
14186
+ description: "Enable infinite scroll loading"
14097
14187
  },
14098
- style: {
14188
+ loadMoreEvent: {
14099
14189
  types: [
14100
- "object"
14190
+ "string"
14101
14191
  ],
14102
- description: "Inline style"
14192
+ description: "Event emitted when more items needed: UI:{loadMoreEvent}"
14103
14193
  },
14104
- content: {
14194
+ hasMore: {
14105
14195
  types: [
14106
- "node"
14196
+ "boolean"
14107
14197
  ],
14108
- description: "Text content (alternative to children)"
14198
+ description: "Whether more items are available for infinite scroll"
14109
14199
  },
14110
14200
  children: {
14111
14201
  types: [
14112
- "node"
14202
+ "function"
14113
14203
  ],
14114
- description: "Children elements"
14204
+ description: "Render prop for custom per-item content. When provided, `fields` and `itemActions` are ignored."
14205
+ },
14206
+ pageSize: {
14207
+ types: [
14208
+ "number"
14209
+ ],
14210
+ description: 'Max items to show before "Show More" button. Defaults to 0 (disabled).'
14115
14211
  }
14116
14212
  }
14117
14213
  },
14118
- text: {
14119
- type: "text",
14120
- category: "component",
14121
- description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
14214
+ "data-list": {
14215
+ type: "data-list",
14216
+ category: "display",
14217
+ description: "DataList component",
14122
14218
  suggestedFor: [
14123
- "typography"
14219
+ "data",
14220
+ "list",
14221
+ "data list"
14124
14222
  ],
14125
- typicalSize: "small",
14223
+ typicalSize: "medium",
14126
14224
  propsSchema: {
14225
+ entity: {
14226
+ types: [
14227
+ "unknown"
14228
+ ],
14229
+ description: "Entity data array"
14230
+ },
14231
+ fields: {
14232
+ types: [
14233
+ "unknown"
14234
+ ],
14235
+ description: "Field definitions for rendering each row"
14236
+ },
14237
+ columns: {
14238
+ types: [
14239
+ "unknown"
14240
+ ],
14241
+ description: "Alias for fields (compiler may generate `columns` for field definitions)"
14242
+ },
14243
+ itemActions: {
14244
+ types: [
14245
+ "unknown"
14246
+ ],
14247
+ description: "Per-item action buttons"
14248
+ },
14249
+ gap: {
14250
+ types: [
14251
+ "string"
14252
+ ],
14253
+ description: "Gap between rows"
14254
+ },
14127
14255
  variant: {
14128
14256
  types: [
14129
- "typographyvariant"
14257
+ "string"
14130
14258
  ],
14131
- description: "Typography variant"
14259
+ description: "Visual variant"
14132
14260
  },
14133
- level: {
14261
+ groupBy: {
14134
14262
  types: [
14135
- "number"
14263
+ "string"
14136
14264
  ],
14137
- description: "Heading level (1-6) - alternative to variant for headings"
14265
+ description: "Group items by a field value (renders section headers between groups)"
14138
14266
  },
14139
- color: {
14267
+ senderField: {
14140
14268
  types: [
14141
14269
  "string"
14142
14270
  ],
14143
- description: "Text color"
14271
+ description: 'Field name identifying the sender (used with variant: "message")'
14144
14272
  },
14145
- align: {
14273
+ currentUser: {
14146
14274
  types: [
14147
14275
  "string"
14148
14276
  ],
14149
- description: "Text alignment"
14277
+ description: 'Current user identifier; messages matching this value align right (used with variant: "message")'
14150
14278
  },
14151
- weight: {
14279
+ className: {
14152
14280
  types: [
14153
14281
  "string"
14154
14282
  ],
14155
- description: "Font weight override"
14283
+ description: "Additional CSS classes"
14156
14284
  },
14157
- size: {
14285
+ isLoading: {
14158
14286
  types: [
14159
- "typographysize"
14287
+ "boolean"
14160
14288
  ],
14161
- description: "Font size override"
14289
+ description: "Loading state"
14162
14290
  },
14163
- truncate: {
14291
+ error: {
14292
+ types: [
14293
+ "error"
14294
+ ],
14295
+ description: "Error state"
14296
+ },
14297
+ reorderable: {
14164
14298
  types: [
14165
14299
  "boolean"
14166
14300
  ],
14167
- description: "Truncate with ellipsis (single line)"
14301
+ description: "Enable drag-to-reorder with grip handles"
14168
14302
  },
14169
- overflow: {
14303
+ reorderEvent: {
14170
14304
  types: [
14171
14305
  "string"
14172
14306
  ],
14173
- description: "Overflow handling mode"
14307
+ description: "Event emitted on reorder: UI:{reorderEvent} with { fromIndex, toIndex }"
14174
14308
  },
14175
- as: {
14309
+ swipeLeftEvent: {
14310
+ types: [
14311
+ "string"
14312
+ ],
14313
+ description: "Event emitted on left swipe: UI:{swipeLeftEvent} with { row }"
14314
+ },
14315
+ swipeLeftActions: {
14176
14316
  types: [
14177
14317
  "unknown"
14178
14318
  ],
14179
- description: "Custom HTML element"
14319
+ description: "Actions revealed on left swipe"
14180
14320
  },
14181
- id: {
14321
+ swipeRightEvent: {
14182
14322
  types: [
14183
14323
  "string"
14184
14324
  ],
14185
- description: "HTML id attribute"
14325
+ description: "Event emitted on right swipe: UI:{swipeRightEvent} with { row }"
14186
14326
  },
14187
- className: {
14327
+ swipeRightActions: {
14328
+ types: [
14329
+ "unknown"
14330
+ ],
14331
+ description: "Actions revealed on right swipe"
14332
+ },
14333
+ longPressEvent: {
14188
14334
  types: [
14189
14335
  "string"
14190
14336
  ],
14191
- description: "Additional class names"
14337
+ description: "Event emitted on long press: UI:{longPressEvent} with { row }"
14192
14338
  },
14193
- style: {
14339
+ infiniteScroll: {
14194
14340
  types: [
14195
- "object"
14341
+ "boolean"
14196
14342
  ],
14197
- description: "Inline style"
14343
+ description: "Enable infinite scroll loading"
14198
14344
  },
14199
- content: {
14345
+ loadMoreEvent: {
14200
14346
  types: [
14201
- "node"
14347
+ "string"
14202
14348
  ],
14203
- description: "Text content (alternative to children)"
14349
+ description: "Event emitted when more items needed: UI:{loadMoreEvent}"
14350
+ },
14351
+ hasMore: {
14352
+ types: [
14353
+ "boolean"
14354
+ ],
14355
+ description: "Whether more items are available for infinite scroll"
14204
14356
  },
14205
14357
  children: {
14206
14358
  types: [
14207
- "node"
14359
+ "function"
14208
14360
  ],
14209
- description: "Children elements"
14361
+ description: "Render prop for custom per-item content. When provided, `fields` and `itemActions` are ignored."
14362
+ },
14363
+ pageSize: {
14364
+ types: [
14365
+ "number"
14366
+ ],
14367
+ description: 'Max items to show before "Show More" button. Defaults to 5. Set to 0 to disable.'
14210
14368
  }
14211
14369
  }
14212
- }
14213
- },
14214
- categories: [
14215
- "display",
14216
- "header",
14217
- "form",
14218
- "filter",
14219
- "navigation",
14220
- "state",
14221
- "dashboard",
14222
- "container",
14370
+ },
14371
+ "platformer-canvas": {
14372
+ type: "platformer-canvas",
14373
+ category: "game",
14374
+ description: "PlatformerCanvas component",
14375
+ suggestedFor: [
14376
+ "platformer",
14377
+ "canvas",
14378
+ "platformer canvas"
14379
+ ],
14380
+ typicalSize: "large",
14381
+ propsSchema: {
14382
+ player: {
14383
+ types: [
14384
+ "platformerplayer"
14385
+ ],
14386
+ description: "Player entity data"
14387
+ },
14388
+ platforms: {
14389
+ types: [
14390
+ "unknown"
14391
+ ],
14392
+ description: "Static platforms / level geometry"
14393
+ },
14394
+ worldWidth: {
14395
+ types: [
14396
+ "number"
14397
+ ],
14398
+ description: "World dimensions"
14399
+ },
14400
+ worldHeight: {
14401
+ types: [
14402
+ "number"
14403
+ ],
14404
+ description: "worldHeight prop"
14405
+ },
14406
+ canvasWidth: {
14407
+ types: [
14408
+ "number"
14409
+ ],
14410
+ description: "Canvas display size"
14411
+ },
14412
+ canvasHeight: {
14413
+ types: [
14414
+ "number"
14415
+ ],
14416
+ description: "canvasHeight prop"
14417
+ },
14418
+ followCamera: {
14419
+ types: [
14420
+ "boolean"
14421
+ ],
14422
+ description: "Camera follows player"
14423
+ },
14424
+ bgColor: {
14425
+ types: [
14426
+ "string"
14427
+ ],
14428
+ description: "Background color"
14429
+ },
14430
+ playerSprite: {
14431
+ types: [
14432
+ "string"
14433
+ ],
14434
+ description: "Player sprite image URL"
14435
+ },
14436
+ tileSprites: {
14437
+ types: [
14438
+ "object"
14439
+ ],
14440
+ description: "Map of platform type to tile sprite URL"
14441
+ },
14442
+ backgroundImage: {
14443
+ types: [
14444
+ "string"
14445
+ ],
14446
+ description: "Background image URL"
14447
+ },
14448
+ assetBaseUrl: {
14449
+ types: [
14450
+ "string"
14451
+ ],
14452
+ description: "Base URL prefix for asset URLs"
14453
+ },
14454
+ leftEvent: {
14455
+ types: [
14456
+ "string"
14457
+ ],
14458
+ description: "Event names for keyboard controls"
14459
+ },
14460
+ rightEvent: {
14461
+ types: [
14462
+ "string"
14463
+ ],
14464
+ description: "rightEvent prop"
14465
+ },
14466
+ jumpEvent: {
14467
+ types: [
14468
+ "string"
14469
+ ],
14470
+ description: "jumpEvent prop"
14471
+ },
14472
+ stopEvent: {
14473
+ types: [
14474
+ "string"
14475
+ ],
14476
+ description: "stopEvent prop"
14477
+ },
14478
+ className: {
14479
+ types: [
14480
+ "string"
14481
+ ],
14482
+ description: "Additional CSS classes"
14483
+ },
14484
+ entity: {
14485
+ types: [
14486
+ "object"
14487
+ ],
14488
+ description: "Entity data (schema binding)"
14489
+ }
14490
+ }
14491
+ },
14492
+ "map-view": {
14493
+ type: "map-view",
14494
+ category: "component",
14495
+ description: "MapView component",
14496
+ suggestedFor: [
14497
+ "map",
14498
+ "view",
14499
+ "map view"
14500
+ ],
14501
+ typicalSize: "medium",
14502
+ propsSchema: {
14503
+ markers: {
14504
+ types: [
14505
+ "array"
14506
+ ],
14507
+ description: "Array of markers to display"
14508
+ },
14509
+ centerLat: {
14510
+ types: [
14511
+ "number"
14512
+ ],
14513
+ description: "Map center latitude"
14514
+ },
14515
+ centerLng: {
14516
+ types: [
14517
+ "number"
14518
+ ],
14519
+ description: "Map center longitude"
14520
+ },
14521
+ zoom: {
14522
+ types: [
14523
+ "number"
14524
+ ],
14525
+ description: "Zoom level (1-18, default 13)"
14526
+ },
14527
+ height: {
14528
+ types: [
14529
+ "string"
14530
+ ],
14531
+ description: 'Height of the map container (default "400px")'
14532
+ },
14533
+ onMarkerClick: {
14534
+ types: [
14535
+ "function"
14536
+ ],
14537
+ description: "Callback when a marker is clicked (programmatic use)"
14538
+ },
14539
+ onMapClick: {
14540
+ types: [
14541
+ "function"
14542
+ ],
14543
+ description: "Callback when the map is clicked (programmatic use)"
14544
+ },
14545
+ mapClickEvent: {
14546
+ types: [
14547
+ "string"
14548
+ ],
14549
+ description: "Event name dispatched via event bus when the map is clicked. Payload: { latitude, longitude }"
14550
+ },
14551
+ markerClickEvent: {
14552
+ types: [
14553
+ "string"
14554
+ ],
14555
+ description: "Event name dispatched via event bus when a marker is clicked. Payload: marker data"
14556
+ },
14557
+ showClickedPin: {
14558
+ types: [
14559
+ "boolean"
14560
+ ],
14561
+ description: "Whether to show a pin at the clicked location"
14562
+ },
14563
+ className: {
14564
+ types: [
14565
+ "string"
14566
+ ],
14567
+ description: "Additional CSS classes"
14568
+ },
14569
+ showAttribution: {
14570
+ types: [
14571
+ "boolean"
14572
+ ],
14573
+ description: "Show attribution (default true)"
14574
+ }
14575
+ }
14576
+ },
14577
+ "range-slider": {
14578
+ type: "range-slider",
14579
+ category: "component",
14580
+ description: "RangeSlider component",
14581
+ suggestedFor: [
14582
+ "range",
14583
+ "slider",
14584
+ "range slider"
14585
+ ],
14586
+ typicalSize: "small",
14587
+ propsSchema: {
14588
+ min: {
14589
+ types: [
14590
+ "number"
14591
+ ],
14592
+ description: "Minimum value"
14593
+ },
14594
+ max: {
14595
+ types: [
14596
+ "number"
14597
+ ],
14598
+ description: "Maximum value"
14599
+ },
14600
+ value: {
14601
+ types: [
14602
+ "number"
14603
+ ],
14604
+ description: "Current value"
14605
+ },
14606
+ step: {
14607
+ types: [
14608
+ "number"
14609
+ ],
14610
+ description: "Step increment"
14611
+ },
14612
+ showTooltip: {
14613
+ types: [
14614
+ "boolean"
14615
+ ],
14616
+ description: "Show tooltip with current value on drag"
14617
+ },
14618
+ showTicks: {
14619
+ types: [
14620
+ "boolean"
14621
+ ],
14622
+ description: "Show tick marks at step intervals"
14623
+ },
14624
+ buffered: {
14625
+ types: [
14626
+ "number"
14627
+ ],
14628
+ description: "Buffered range (0-100), for media seek bars"
14629
+ },
14630
+ size: {
14631
+ types: [
14632
+ "rangeslidersize"
14633
+ ],
14634
+ description: "Slider size"
14635
+ },
14636
+ disabled: {
14637
+ types: [
14638
+ "boolean"
14639
+ ],
14640
+ description: "Disabled state"
14641
+ },
14642
+ action: {
14643
+ types: [
14644
+ "string"
14645
+ ],
14646
+ description: "Declarative event name for value changes"
14647
+ },
14648
+ actionPayload: {
14649
+ types: [
14650
+ "object"
14651
+ ],
14652
+ description: "Payload to include with the action event"
14653
+ },
14654
+ onChange: {
14655
+ types: [
14656
+ "function"
14657
+ ],
14658
+ description: "Direct onChange callback"
14659
+ },
14660
+ formatValue: {
14661
+ types: [
14662
+ "function"
14663
+ ],
14664
+ description: "Format function for tooltip display"
14665
+ }
14666
+ }
14667
+ },
14668
+ "status-dot": {
14669
+ type: "status-dot",
14670
+ category: "display",
14671
+ description: "StatusDot component",
14672
+ suggestedFor: [
14673
+ "status",
14674
+ "dot",
14675
+ "status dot"
14676
+ ],
14677
+ typicalSize: "small",
14678
+ propsSchema: {
14679
+ status: {
14680
+ types: [
14681
+ "statusdotstatus"
14682
+ ],
14683
+ description: "Status determines the dot color"
14684
+ },
14685
+ pulse: {
14686
+ types: [
14687
+ "boolean"
14688
+ ],
14689
+ description: "Enable pulse animation for active/critical states"
14690
+ },
14691
+ size: {
14692
+ types: [
14693
+ "statusdotsize"
14694
+ ],
14695
+ description: "Dot size"
14696
+ },
14697
+ label: {
14698
+ types: [
14699
+ "string"
14700
+ ],
14701
+ description: "Accessible label (rendered as sr-only text)"
14702
+ }
14703
+ }
14704
+ },
14705
+ "trend-indicator": {
14706
+ type: "trend-indicator",
14707
+ category: "component",
14708
+ description: "TrendIndicator component",
14709
+ suggestedFor: [
14710
+ "trend",
14711
+ "indicator",
14712
+ "trend indicator"
14713
+ ],
14714
+ typicalSize: "small",
14715
+ propsSchema: {
14716
+ value: {
14717
+ types: [
14718
+ "number"
14719
+ ],
14720
+ description: "Numeric value to display (e.g., 12.5 for +12.5%)"
14721
+ },
14722
+ direction: {
14723
+ types: [
14724
+ "trenddirection"
14725
+ ],
14726
+ description: "Override automatic direction detection (positive=up, negative=down, zero=flat)"
14727
+ },
14728
+ showValue: {
14729
+ types: [
14730
+ "boolean"
14731
+ ],
14732
+ description: "Show the formatted value text next to the arrow"
14733
+ },
14734
+ invert: {
14735
+ types: [
14736
+ "boolean"
14737
+ ],
14738
+ description: "Invert color logic (for metrics where down is good, e.g., error rate, bounce rate)"
14739
+ },
14740
+ label: {
14741
+ types: [
14742
+ "string"
14743
+ ],
14744
+ description: "Accessible label override"
14745
+ },
14746
+ size: {
14747
+ types: [
14748
+ "trendindicatorsize"
14749
+ ],
14750
+ description: "Size of the indicator"
14751
+ }
14752
+ }
14753
+ },
14754
+ lightbox: {
14755
+ type: "lightbox",
14756
+ category: "component",
14757
+ description: "Lightbox component",
14758
+ suggestedFor: [
14759
+ "lightbox"
14760
+ ],
14761
+ typicalSize: "medium",
14762
+ propsSchema: {
14763
+ images: {
14764
+ types: [
14765
+ "array"
14766
+ ],
14767
+ description: "Array of images to display",
14768
+ required: true
14769
+ },
14770
+ currentIndex: {
14771
+ types: [
14772
+ "number"
14773
+ ],
14774
+ description: "Current image index"
14775
+ },
14776
+ isOpen: {
14777
+ types: [
14778
+ "boolean"
14779
+ ],
14780
+ description: "Whether the lightbox is open"
14781
+ },
14782
+ showCounter: {
14783
+ types: [
14784
+ "boolean"
14785
+ ],
14786
+ description: 'Show image counter (e.g., "3 of 12")'
14787
+ },
14788
+ closeAction: {
14789
+ types: [
14790
+ "string"
14791
+ ],
14792
+ description: "Declarative close event name"
14793
+ },
14794
+ onClose: {
14795
+ types: [
14796
+ "function"
14797
+ ],
14798
+ description: "Direct onClose callback"
14799
+ },
14800
+ onIndexChange: {
14801
+ types: [
14802
+ "function"
14803
+ ],
14804
+ description: "Direct onIndexChange callback"
14805
+ },
14806
+ className: {
14807
+ types: [
14808
+ "string"
14809
+ ],
14810
+ description: "Additional CSS classes"
14811
+ }
14812
+ }
14813
+ },
14814
+ "number-stepper": {
14815
+ type: "number-stepper",
14816
+ category: "component",
14817
+ description: "NumberStepper component",
14818
+ suggestedFor: [
14819
+ "number",
14820
+ "stepper",
14821
+ "number stepper"
14822
+ ],
14823
+ typicalSize: "medium",
14824
+ propsSchema: {
14825
+ value: {
14826
+ types: [
14827
+ "number"
14828
+ ],
14829
+ description: "Current value"
14830
+ },
14831
+ min: {
14832
+ types: [
14833
+ "number"
14834
+ ],
14835
+ description: "Minimum value"
14836
+ },
14837
+ max: {
14838
+ types: [
14839
+ "number"
14840
+ ],
14841
+ description: "Maximum value"
14842
+ },
14843
+ step: {
14844
+ types: [
14845
+ "number"
14846
+ ],
14847
+ description: "Step increment"
14848
+ },
14849
+ size: {
14850
+ types: [
14851
+ "numbersteppersize"
14852
+ ],
14853
+ description: "Size variant"
14854
+ },
14855
+ disabled: {
14856
+ types: [
14857
+ "boolean"
14858
+ ],
14859
+ description: "Disabled state"
14860
+ },
14861
+ onChange: {
14862
+ types: [
14863
+ "function"
14864
+ ],
14865
+ description: "Direct onChange callback"
14866
+ },
14867
+ action: {
14868
+ types: [
14869
+ "string"
14870
+ ],
14871
+ description: "Declarative event name for value changes"
14872
+ },
14873
+ actionPayload: {
14874
+ types: [
14875
+ "object"
14876
+ ],
14877
+ description: "Payload to include with the action event"
14878
+ },
14879
+ className: {
14880
+ types: [
14881
+ "string"
14882
+ ],
14883
+ description: "Additional CSS classes"
14884
+ },
14885
+ label: {
14886
+ types: [
14887
+ "string"
14888
+ ],
14889
+ description: "Accessible label"
14890
+ }
14891
+ }
14892
+ },
14893
+ "star-rating": {
14894
+ type: "star-rating",
14895
+ category: "component",
14896
+ description: "StarRating component",
14897
+ suggestedFor: [
14898
+ "star",
14899
+ "rating",
14900
+ "star rating"
14901
+ ],
14902
+ typicalSize: "medium",
14903
+ propsSchema: {
14904
+ value: {
14905
+ types: [
14906
+ "number"
14907
+ ],
14908
+ description: "Current rating value"
14909
+ },
14910
+ max: {
14911
+ types: [
14912
+ "number"
14913
+ ],
14914
+ description: "Maximum number of stars"
14915
+ },
14916
+ readOnly: {
14917
+ types: [
14918
+ "boolean"
14919
+ ],
14920
+ description: "Read-only display mode"
14921
+ },
14922
+ precision: {
14923
+ types: [
14924
+ "starratingprecision"
14925
+ ],
14926
+ description: "Full or half-star precision"
14927
+ },
14928
+ size: {
14929
+ types: [
14930
+ "starratingsize"
14931
+ ],
14932
+ description: "Star size"
14933
+ },
14934
+ action: {
14935
+ types: [
14936
+ "string"
14937
+ ],
14938
+ description: "Declarative event name for rating changes"
14939
+ },
14940
+ actionPayload: {
14941
+ types: [
14942
+ "object"
14943
+ ],
14944
+ description: "Payload to include with the action event"
14945
+ },
14946
+ onChange: {
14947
+ types: [
14948
+ "function"
14949
+ ],
14950
+ description: "Direct onChange callback"
14951
+ },
14952
+ className: {
14953
+ types: [
14954
+ "string"
14955
+ ],
14956
+ description: "Additional CSS classes"
14957
+ },
14958
+ label: {
14959
+ types: [
14960
+ "string"
14961
+ ],
14962
+ description: "Accessible label"
14963
+ }
14964
+ }
14965
+ },
14966
+ "upload-drop-zone": {
14967
+ type: "upload-drop-zone",
14968
+ category: "component",
14969
+ description: "UploadDropZone component",
14970
+ suggestedFor: [
14971
+ "upload",
14972
+ "drop",
14973
+ "zone",
14974
+ "upload drop zone"
14975
+ ],
14976
+ typicalSize: "medium",
14977
+ propsSchema: {
14978
+ accept: {
14979
+ types: [
14980
+ "string"
14981
+ ],
14982
+ description: 'Accepted MIME types (e.g., "image/*", "application/pdf")'
14983
+ },
14984
+ maxSize: {
14985
+ types: [
14986
+ "number"
14987
+ ],
14988
+ description: "Max file size in bytes"
14989
+ },
14990
+ maxFiles: {
14991
+ types: [
14992
+ "number"
14993
+ ],
14994
+ description: "Max number of files"
14995
+ },
14996
+ label: {
14997
+ types: [
14998
+ "string"
14999
+ ],
15000
+ description: "Label text"
15001
+ },
15002
+ description: {
15003
+ types: [
15004
+ "string"
15005
+ ],
15006
+ description: "Description text below label"
15007
+ },
15008
+ icon: {
15009
+ types: [
15010
+ "string"
15011
+ ],
15012
+ description: "Icon name (Lucide string)"
15013
+ },
15014
+ disabled: {
15015
+ types: [
15016
+ "boolean"
15017
+ ],
15018
+ description: "Disabled state"
15019
+ },
15020
+ action: {
15021
+ types: [
15022
+ "string"
15023
+ ],
15024
+ description: "Declarative event name for file selection"
15025
+ },
15026
+ actionPayload: {
15027
+ types: [
15028
+ "object"
15029
+ ],
15030
+ description: "Payload to include with the action event"
15031
+ },
15032
+ onFiles: {
15033
+ types: [
15034
+ "function"
15035
+ ],
15036
+ description: "Direct onFiles callback"
15037
+ },
15038
+ className: {
15039
+ types: [
15040
+ "string"
15041
+ ],
15042
+ description: "Additional CSS classes"
15043
+ }
15044
+ }
15045
+ },
15046
+ "animated-counter": {
15047
+ type: "animated-counter",
15048
+ category: "component",
15049
+ description: "AnimatedCounter component",
15050
+ suggestedFor: [
15051
+ "animated",
15052
+ "counter",
15053
+ "animated counter"
15054
+ ],
15055
+ typicalSize: "small",
15056
+ propsSchema: {
15057
+ value: {
15058
+ types: [
15059
+ "number"
15060
+ ],
15061
+ description: "The target number to animate to",
15062
+ required: true
15063
+ },
15064
+ duration: {
15065
+ types: [
15066
+ "number"
15067
+ ],
15068
+ description: "Animation duration in milliseconds"
15069
+ },
15070
+ prefix: {
15071
+ types: [
15072
+ "string"
15073
+ ],
15074
+ description: "Text to display before the number"
15075
+ },
15076
+ suffix: {
15077
+ types: [
15078
+ "string"
15079
+ ],
15080
+ description: "Text to display after the number"
15081
+ },
15082
+ className: {
15083
+ types: [
15084
+ "string"
15085
+ ],
15086
+ description: "Additional class names"
15087
+ }
15088
+ }
15089
+ },
15090
+ "confetti-effect": {
15091
+ type: "confetti-effect",
15092
+ category: "component",
15093
+ description: "ConfettiEffect component",
15094
+ suggestedFor: [
15095
+ "confetti",
15096
+ "effect",
15097
+ "confetti effect"
15098
+ ],
15099
+ typicalSize: "small",
15100
+ propsSchema: {
15101
+ trigger: {
15102
+ types: [
15103
+ "boolean"
15104
+ ],
15105
+ description: "When this changes from false to true, a burst of particles is spawned",
15106
+ required: true
15107
+ },
15108
+ duration: {
15109
+ types: [
15110
+ "number"
15111
+ ],
15112
+ description: "How long the animation lasts in milliseconds"
15113
+ },
15114
+ particleCount: {
15115
+ types: [
15116
+ "number"
15117
+ ],
15118
+ description: "Number of particles to spawn"
15119
+ },
15120
+ className: {
15121
+ types: [
15122
+ "string"
15123
+ ],
15124
+ description: "Additional class names"
15125
+ }
15126
+ }
15127
+ },
15128
+ "infinite-scroll-sentinel": {
15129
+ type: "infinite-scroll-sentinel",
15130
+ category: "component",
15131
+ description: "InfiniteScrollSentinel component",
15132
+ suggestedFor: [
15133
+ "infinite",
15134
+ "scroll",
15135
+ "sentinel",
15136
+ "infinite scroll sentinel"
15137
+ ],
15138
+ typicalSize: "small",
15139
+ propsSchema: {
15140
+ loadMoreEvent: {
15141
+ types: [
15142
+ "string"
15143
+ ],
15144
+ description: "Event name to emit when load-more is triggered (emitted as UI:{loadMoreEvent})",
15145
+ required: true
15146
+ },
15147
+ loadMorePayload: {
15148
+ types: [
15149
+ "object"
15150
+ ],
15151
+ description: "Optional payload to include with the load-more event"
15152
+ },
15153
+ isLoading: {
15154
+ types: [
15155
+ "boolean"
15156
+ ],
15157
+ description: "Whether a load operation is currently in progress"
15158
+ },
15159
+ hasMore: {
15160
+ types: [
15161
+ "boolean"
15162
+ ],
15163
+ description: "Whether there are more items to load"
15164
+ },
15165
+ threshold: {
15166
+ types: [
15167
+ "string"
15168
+ ],
15169
+ description: "IntersectionObserver rootMargin for early trigger"
15170
+ },
15171
+ className: {
15172
+ types: [
15173
+ "string"
15174
+ ],
15175
+ description: "Additional class names"
15176
+ }
15177
+ }
15178
+ },
15179
+ "typewriter-text": {
15180
+ type: "typewriter-text",
15181
+ category: "component",
15182
+ description: "TypewriterText component",
15183
+ suggestedFor: [
15184
+ "typewriter",
15185
+ "text",
15186
+ "typewriter text"
15187
+ ],
15188
+ typicalSize: "small",
15189
+ propsSchema: {
15190
+ text: {
15191
+ types: [
15192
+ "string"
15193
+ ],
15194
+ description: "The full text to reveal",
15195
+ required: true
15196
+ },
15197
+ speed: {
15198
+ types: [
15199
+ "number"
15200
+ ],
15201
+ description: "Milliseconds per character"
15202
+ },
15203
+ startDelay: {
15204
+ types: [
15205
+ "number"
15206
+ ],
15207
+ description: "Delay before typing starts (ms)"
15208
+ },
15209
+ className: {
15210
+ types: [
15211
+ "string"
15212
+ ],
15213
+ description: "Additional class names"
15214
+ },
15215
+ onComplete: {
15216
+ types: [
15217
+ "function"
15218
+ ],
15219
+ description: "Called when the entire text has been revealed"
15220
+ }
15221
+ }
15222
+ },
15223
+ carousel: {
15224
+ type: "carousel",
15225
+ category: "component",
15226
+ description: "Carousel component",
15227
+ suggestedFor: [
15228
+ "carousel"
15229
+ ],
15230
+ typicalSize: "medium",
15231
+ propsSchema: {
15232
+ items: {
15233
+ types: [
15234
+ "array"
15235
+ ],
15236
+ description: "Array of items to display as slides",
15237
+ required: true
15238
+ },
15239
+ renderItem: {
15240
+ types: [
15241
+ "function"
15242
+ ],
15243
+ description: "Render function for each slide",
15244
+ required: true
15245
+ },
15246
+ autoPlay: {
15247
+ types: [
15248
+ "boolean"
15249
+ ],
15250
+ description: "Enable auto-play rotation"
15251
+ },
15252
+ autoPlayInterval: {
15253
+ types: [
15254
+ "number"
15255
+ ],
15256
+ description: "Auto-play interval in milliseconds (default: 5000)"
15257
+ },
15258
+ showDots: {
15259
+ types: [
15260
+ "boolean"
15261
+ ],
15262
+ description: "Show dot indicators"
15263
+ },
15264
+ showArrows: {
15265
+ types: [
15266
+ "boolean"
15267
+ ],
15268
+ description: "Show prev/next arrow buttons"
15269
+ },
15270
+ loop: {
15271
+ types: [
15272
+ "boolean"
15273
+ ],
15274
+ description: "Enable infinite loop"
15275
+ },
15276
+ slideChangeEvent: {
15277
+ types: [
15278
+ "string"
15279
+ ],
15280
+ description: "Declarative event name for slide change"
15281
+ },
15282
+ slideChangePayload: {
15283
+ types: [
15284
+ "object"
15285
+ ],
15286
+ description: "Payload to include with the slide change event"
15287
+ },
15288
+ className: {
15289
+ types: [
15290
+ "string"
15291
+ ],
15292
+ description: "Additional CSS classes"
15293
+ }
15294
+ }
15295
+ },
15296
+ "pull-to-refresh": {
15297
+ type: "pull-to-refresh",
15298
+ category: "component",
15299
+ description: "PullToRefresh component",
15300
+ suggestedFor: [
15301
+ "pull",
15302
+ "refresh",
15303
+ "pull to refresh"
15304
+ ],
15305
+ typicalSize: "medium",
15306
+ propsSchema: {
15307
+ refreshEvent: {
15308
+ types: [
15309
+ "string"
15310
+ ],
15311
+ description: "Event name to emit on refresh (emitted as UI:{refreshEvent})",
15312
+ required: true
15313
+ },
15314
+ refreshPayload: {
15315
+ types: [
15316
+ "object"
15317
+ ],
15318
+ description: "Payload to include with the refresh event"
15319
+ },
15320
+ threshold: {
15321
+ types: [
15322
+ "number"
15323
+ ],
15324
+ description: "Pull distance threshold to trigger refresh in px (default: 60)"
15325
+ },
15326
+ children: {
15327
+ types: [
15328
+ "node"
15329
+ ],
15330
+ description: "Content to wrap",
15331
+ required: true
15332
+ },
15333
+ className: {
15334
+ types: [
15335
+ "string"
15336
+ ],
15337
+ description: "Additional CSS classes"
15338
+ }
15339
+ }
15340
+ },
15341
+ "sortable-list": {
15342
+ type: "sortable-list",
15343
+ category: "display",
15344
+ description: "SortableList component",
15345
+ suggestedFor: [
15346
+ "sortable",
15347
+ "list",
15348
+ "sortable list"
15349
+ ],
15350
+ typicalSize: "medium",
15351
+ propsSchema: {
15352
+ items: {
15353
+ types: [
15354
+ "array"
15355
+ ],
15356
+ description: "items prop",
15357
+ required: true
15358
+ },
15359
+ renderItem: {
15360
+ types: [
15361
+ "function"
15362
+ ],
15363
+ description: "renderItem prop",
15364
+ required: true
15365
+ },
15366
+ reorderEvent: {
15367
+ types: [
15368
+ "string"
15369
+ ],
15370
+ description: "reorderEvent prop",
15371
+ required: true
15372
+ },
15373
+ reorderPayload: {
15374
+ types: [
15375
+ "object"
15376
+ ],
15377
+ description: "reorderPayload prop"
15378
+ },
15379
+ dragHandlePosition: {
15380
+ types: [
15381
+ "string"
15382
+ ],
15383
+ description: "dragHandlePosition prop"
15384
+ },
15385
+ className: {
15386
+ types: [
15387
+ "string"
15388
+ ],
15389
+ description: "className prop"
15390
+ }
15391
+ }
15392
+ },
15393
+ "swipeable-row": {
15394
+ type: "swipeable-row",
15395
+ category: "component",
15396
+ description: "SwipeableRow component",
15397
+ suggestedFor: [
15398
+ "swipeable",
15399
+ "row",
15400
+ "swipeable row"
15401
+ ],
15402
+ typicalSize: "medium",
15403
+ propsSchema: {
15404
+ leftActions: {
15405
+ types: [
15406
+ "array"
15407
+ ],
15408
+ description: "leftActions prop"
15409
+ },
15410
+ rightActions: {
15411
+ types: [
15412
+ "array"
15413
+ ],
15414
+ description: "rightActions prop"
15415
+ },
15416
+ threshold: {
15417
+ types: [
15418
+ "number"
15419
+ ],
15420
+ description: "threshold prop"
15421
+ },
15422
+ children: {
15423
+ types: [
15424
+ "node"
15425
+ ],
15426
+ description: "children prop",
15427
+ required: true
15428
+ },
15429
+ itemData: {
15430
+ types: [
15431
+ "object"
15432
+ ],
15433
+ description: "itemData prop"
15434
+ },
15435
+ className: {
15436
+ types: [
15437
+ "string"
15438
+ ],
15439
+ description: "className prop"
15440
+ }
15441
+ }
15442
+ },
15443
+ "stat-display": {
15444
+ type: "stat-display",
15445
+ category: "display",
15446
+ description: "StatDisplay component",
15447
+ suggestedFor: [
15448
+ "stat",
15449
+ "display",
15450
+ "stat display"
15451
+ ],
15452
+ typicalSize: "medium",
15453
+ propsSchema: {
15454
+ label: {
15455
+ types: [
15456
+ "string"
15457
+ ],
15458
+ description: 'Display label (e.g., "Total", "Remaining")',
15459
+ required: true
15460
+ },
15461
+ value: {
15462
+ types: [
15463
+ "number",
15464
+ "string"
15465
+ ],
15466
+ description: "Primary value (number or formatted string)"
15467
+ },
15468
+ max: {
15469
+ types: [
15470
+ "number"
15471
+ ],
15472
+ description: 'Maximum value (renders as "value / max")'
15473
+ },
15474
+ icon: {
15475
+ types: [
15476
+ "node"
15477
+ ],
15478
+ description: "Lucide icon name or React node"
15479
+ },
15480
+ iconBg: {
15481
+ types: [
15482
+ "string"
15483
+ ],
15484
+ description: "Icon background color class"
15485
+ },
15486
+ iconColor: {
15487
+ types: [
15488
+ "string"
15489
+ ],
15490
+ description: "Icon color class"
15491
+ },
15492
+ format: {
15493
+ types: [
15494
+ "string"
15495
+ ],
15496
+ description: 'Display format: "number", "currency", "percent"'
15497
+ },
15498
+ size: {
15499
+ types: [
15500
+ "string"
15501
+ ],
15502
+ description: "Size variant"
15503
+ },
15504
+ variant: {
15505
+ types: [
15506
+ "string"
15507
+ ],
15508
+ description: "Color variant"
15509
+ },
15510
+ compact: {
15511
+ types: [
15512
+ "boolean"
15513
+ ],
15514
+ description: "Compact mode (inline, no card wrapper)"
15515
+ },
15516
+ className: {
15517
+ types: [
15518
+ "string"
15519
+ ],
15520
+ description: "Additional CSS classes"
15521
+ },
15522
+ isLoading: {
15523
+ types: [
15524
+ "boolean"
15525
+ ],
15526
+ description: "Loading state"
15527
+ },
15528
+ error: {
15529
+ types: [
15530
+ "error"
15531
+ ],
15532
+ description: "Error state"
15533
+ }
15534
+ }
15535
+ },
15536
+ heading: {
15537
+ type: "heading",
15538
+ category: "component",
15539
+ description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
15540
+ suggestedFor: [
15541
+ "typography"
15542
+ ],
15543
+ typicalSize: "small",
15544
+ propsSchema: {
15545
+ variant: {
15546
+ types: [
15547
+ "typographyvariant"
15548
+ ],
15549
+ description: "Typography variant"
15550
+ },
15551
+ level: {
15552
+ types: [
15553
+ "number"
15554
+ ],
15555
+ description: "Heading level (1-6) - alternative to variant for headings"
15556
+ },
15557
+ color: {
15558
+ types: [
15559
+ "string"
15560
+ ],
15561
+ description: "Text color"
15562
+ },
15563
+ align: {
15564
+ types: [
15565
+ "string"
15566
+ ],
15567
+ description: "Text alignment"
15568
+ },
15569
+ weight: {
15570
+ types: [
15571
+ "string"
15572
+ ],
15573
+ description: "Font weight override"
15574
+ },
15575
+ size: {
15576
+ types: [
15577
+ "typographysize"
15578
+ ],
15579
+ description: "Font size override"
15580
+ },
15581
+ truncate: {
15582
+ types: [
15583
+ "boolean"
15584
+ ],
15585
+ description: "Truncate with ellipsis (single line)"
15586
+ },
15587
+ overflow: {
15588
+ types: [
15589
+ "string"
15590
+ ],
15591
+ description: "Overflow handling mode"
15592
+ },
15593
+ as: {
15594
+ types: [
15595
+ "unknown"
15596
+ ],
15597
+ description: "Custom HTML element"
15598
+ },
15599
+ id: {
15600
+ types: [
15601
+ "string"
15602
+ ],
15603
+ description: "HTML id attribute"
15604
+ },
15605
+ className: {
15606
+ types: [
15607
+ "string"
15608
+ ],
15609
+ description: "Additional class names"
15610
+ },
15611
+ style: {
15612
+ types: [
15613
+ "object"
15614
+ ],
15615
+ description: "Inline style"
15616
+ },
15617
+ content: {
15618
+ types: [
15619
+ "node"
15620
+ ],
15621
+ description: "Text content (alternative to children)"
15622
+ },
15623
+ children: {
15624
+ types: [
15625
+ "node"
15626
+ ],
15627
+ description: "Children elements"
15628
+ }
15629
+ }
15630
+ },
15631
+ text: {
15632
+ type: "text",
15633
+ category: "component",
15634
+ description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
15635
+ suggestedFor: [
15636
+ "typography"
15637
+ ],
15638
+ typicalSize: "small",
15639
+ propsSchema: {
15640
+ variant: {
15641
+ types: [
15642
+ "typographyvariant"
15643
+ ],
15644
+ description: "Typography variant"
15645
+ },
15646
+ level: {
15647
+ types: [
15648
+ "number"
15649
+ ],
15650
+ description: "Heading level (1-6) - alternative to variant for headings"
15651
+ },
15652
+ color: {
15653
+ types: [
15654
+ "string"
15655
+ ],
15656
+ description: "Text color"
15657
+ },
15658
+ align: {
15659
+ types: [
15660
+ "string"
15661
+ ],
15662
+ description: "Text alignment"
15663
+ },
15664
+ weight: {
15665
+ types: [
15666
+ "string"
15667
+ ],
15668
+ description: "Font weight override"
15669
+ },
15670
+ size: {
15671
+ types: [
15672
+ "typographysize"
15673
+ ],
15674
+ description: "Font size override"
15675
+ },
15676
+ truncate: {
15677
+ types: [
15678
+ "boolean"
15679
+ ],
15680
+ description: "Truncate with ellipsis (single line)"
15681
+ },
15682
+ overflow: {
15683
+ types: [
15684
+ "string"
15685
+ ],
15686
+ description: "Overflow handling mode"
15687
+ },
15688
+ as: {
15689
+ types: [
15690
+ "unknown"
15691
+ ],
15692
+ description: "Custom HTML element"
15693
+ },
15694
+ id: {
15695
+ types: [
15696
+ "string"
15697
+ ],
15698
+ description: "HTML id attribute"
15699
+ },
15700
+ className: {
15701
+ types: [
15702
+ "string"
15703
+ ],
15704
+ description: "Additional class names"
15705
+ },
15706
+ style: {
15707
+ types: [
15708
+ "object"
15709
+ ],
15710
+ description: "Inline style"
15711
+ },
15712
+ content: {
15713
+ types: [
15714
+ "node"
15715
+ ],
15716
+ description: "Text content (alternative to children)"
15717
+ },
15718
+ children: {
15719
+ types: [
15720
+ "node"
15721
+ ],
15722
+ description: "Children elements"
15723
+ }
15724
+ }
15725
+ }
15726
+ },
15727
+ categories: [
15728
+ "display",
15729
+ "header",
15730
+ "form",
15731
+ "filter",
15732
+ "navigation",
15733
+ "state",
15734
+ "dashboard",
15735
+ "container",
14223
15736
  "layout",
14224
15737
  "game",
14225
15738
  "debug",
@@ -14836,7 +16349,7 @@ var integrators_registry_default = {
14836
16349
  // src/component-mapping.json
14837
16350
  var component_mapping_default = {
14838
16351
  version: "1.0.0",
14839
- exportedAt: "2026-03-08T11:32:49.899Z",
16352
+ exportedAt: "2026-03-10T17:18:23.379Z",
14840
16353
  mappings: {
14841
16354
  "page-header": {
14842
16355
  component: "PageHeader",
@@ -15293,7 +16806,12 @@ var component_mapping_default = {
15293
16806
  },
15294
16807
  "stat-badge": {
15295
16808
  component: "StatBadge",
15296
- importPath: "@/components/molecules/StatBadge",
16809
+ importPath: "@/components/molecules/game/StatBadge",
16810
+ category: "game"
16811
+ },
16812
+ "stat-display": {
16813
+ component: "StatDisplay",
16814
+ importPath: "@/components/molecules/StatDisplay",
15297
16815
  category: "display"
15298
16816
  },
15299
16817
  "button-pattern": {
@@ -15413,7 +16931,7 @@ var component_mapping_default = {
15413
16931
  },
15414
16932
  meter: {
15415
16933
  component: "Meter",
15416
- importPath: "@almadar/ui",
16934
+ importPath: "@/components/molecules/Meter",
15417
16935
  category: "visualization"
15418
16936
  },
15419
16937
  timeline: {
@@ -15816,6 +17334,16 @@ var component_mapping_default = {
15816
17334
  importPath: "@/components/molecules/GraphView",
15817
17335
  category: "component"
15818
17336
  },
17337
+ "data-grid": {
17338
+ component: "DataGrid",
17339
+ importPath: "@/components/molecules/DataGrid",
17340
+ category: "display"
17341
+ },
17342
+ "data-list": {
17343
+ component: "DataList",
17344
+ importPath: "@/components/molecules/DataList",
17345
+ category: "display"
17346
+ },
15819
17347
  "line-chart": {
15820
17348
  component: "LineChart",
15821
17349
  importPath: "@/components/molecules/LineChart",
@@ -15826,6 +17354,91 @@ var component_mapping_default = {
15826
17354
  importPath: "@/components/molecules/ProgressDots",
15827
17355
  category: "component"
15828
17356
  },
17357
+ "platformer-canvas": {
17358
+ component: "PlatformerCanvas",
17359
+ importPath: "@/components/organisms/PlatformerCanvas",
17360
+ category: "form"
17361
+ },
17362
+ "map-view": {
17363
+ component: "MapView",
17364
+ importPath: "@/components/molecules/MapView",
17365
+ category: "component"
17366
+ },
17367
+ "range-slider": {
17368
+ component: "RangeSlider",
17369
+ importPath: "@/components/atoms/RangeSlider",
17370
+ category: "component"
17371
+ },
17372
+ "status-dot": {
17373
+ component: "StatusDot",
17374
+ importPath: "@/components/atoms/StatusDot",
17375
+ category: "display"
17376
+ },
17377
+ "trend-indicator": {
17378
+ component: "TrendIndicator",
17379
+ importPath: "@/components/atoms/TrendIndicator",
17380
+ category: "component"
17381
+ },
17382
+ lightbox: {
17383
+ component: "Lightbox",
17384
+ importPath: "@/components/molecules/Lightbox",
17385
+ category: "component"
17386
+ },
17387
+ "number-stepper": {
17388
+ component: "NumberStepper",
17389
+ importPath: "@/components/molecules/NumberStepper",
17390
+ category: "component"
17391
+ },
17392
+ "star-rating": {
17393
+ component: "StarRating",
17394
+ importPath: "@/components/molecules/StarRating",
17395
+ category: "component"
17396
+ },
17397
+ "upload-drop-zone": {
17398
+ component: "UploadDropZone",
17399
+ importPath: "@/components/molecules/UploadDropZone",
17400
+ category: "component"
17401
+ },
17402
+ "animated-counter": {
17403
+ component: "AnimatedCounter",
17404
+ importPath: "@/components/atoms/AnimatedCounter",
17405
+ category: "component"
17406
+ },
17407
+ "confetti-effect": {
17408
+ component: "ConfettiEffect",
17409
+ importPath: "@/components/atoms/ConfettiEffect",
17410
+ category: "component"
17411
+ },
17412
+ "infinite-scroll-sentinel": {
17413
+ component: "InfiniteScrollSentinel",
17414
+ importPath: "@/components/atoms/InfiniteScrollSentinel",
17415
+ category: "component"
17416
+ },
17417
+ "typewriter-text": {
17418
+ component: "TypewriterText",
17419
+ importPath: "@/components/atoms/TypewriterText",
17420
+ category: "component"
17421
+ },
17422
+ carousel: {
17423
+ component: "Carousel",
17424
+ importPath: "@/components/molecules/Carousel",
17425
+ category: "component"
17426
+ },
17427
+ "pull-to-refresh": {
17428
+ component: "PullToRefresh",
17429
+ importPath: "@/components/molecules/PullToRefresh",
17430
+ category: "component"
17431
+ },
17432
+ "sortable-list": {
17433
+ component: "SortableList",
17434
+ importPath: "@/components/molecules/SortableList",
17435
+ category: "display"
17436
+ },
17437
+ "swipeable-row": {
17438
+ component: "SwipeableRow",
17439
+ importPath: "@/components/molecules/SwipeableRow",
17440
+ category: "component"
17441
+ },
15829
17442
  heading: {
15830
17443
  component: "Typography",
15831
17444
  importPath: "@/components/atoms/Typography",
@@ -15842,7 +17455,7 @@ var component_mapping_default = {
15842
17455
  // src/event-contracts.json
15843
17456
  var event_contracts_default = {
15844
17457
  version: "1.0.0",
15845
- exportedAt: "2026-03-08T11:32:49.899Z",
17458
+ exportedAt: "2026-03-10T17:18:23.379Z",
15846
17459
  contracts: {
15847
17460
  form: {
15848
17461
  emits: [