@almadar/patterns 2.45.0 → 2.47.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-06-17T02:07:52.301Z",
4
+ exportedAt: "2026-06-17T08:23:54.917Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -14052,6 +14052,323 @@ var patterns_registry_default = {
14052
14052
  ],
14053
14053
  description: "Unit draw-size multiplier",
14054
14054
  default: 1
14055
+ },
14056
+ tiles: {
14057
+ types: [
14058
+ "array"
14059
+ ],
14060
+ description: "Direct tile data \u2014 forwarded to BattleBoard; takes priority over entity.",
14061
+ items: {
14062
+ types: [
14063
+ "object"
14064
+ ],
14065
+ properties: {
14066
+ id: {
14067
+ types: [
14068
+ "string"
14069
+ ]
14070
+ },
14071
+ x: {
14072
+ types: [
14073
+ "number"
14074
+ ]
14075
+ },
14076
+ y: {
14077
+ types: [
14078
+ "number"
14079
+ ]
14080
+ },
14081
+ z: {
14082
+ types: [
14083
+ "number"
14084
+ ]
14085
+ },
14086
+ terrain: {
14087
+ types: [
14088
+ "string"
14089
+ ]
14090
+ },
14091
+ type: {
14092
+ types: [
14093
+ "string"
14094
+ ]
14095
+ },
14096
+ terrainSprite: {
14097
+ types: [
14098
+ "asset"
14099
+ ]
14100
+ },
14101
+ passable: {
14102
+ types: [
14103
+ "boolean"
14104
+ ]
14105
+ },
14106
+ movementCost: {
14107
+ types: [
14108
+ "number"
14109
+ ]
14110
+ },
14111
+ tileType: {
14112
+ types: [
14113
+ "string"
14114
+ ]
14115
+ },
14116
+ elevation: {
14117
+ types: [
14118
+ "number"
14119
+ ]
14120
+ }
14121
+ },
14122
+ required: [
14123
+ "x",
14124
+ "y"
14125
+ ]
14126
+ }
14127
+ },
14128
+ units: {
14129
+ types: [
14130
+ "array"
14131
+ ],
14132
+ description: "Direct unit data \u2014 forwarded to BattleBoard; takes priority over entity.",
14133
+ items: {
14134
+ types: [
14135
+ "object"
14136
+ ],
14137
+ properties: {
14138
+ id: {
14139
+ types: [
14140
+ "string"
14141
+ ]
14142
+ },
14143
+ position: {
14144
+ types: [
14145
+ "object"
14146
+ ],
14147
+ properties: {
14148
+ x: {
14149
+ types: [
14150
+ "number"
14151
+ ]
14152
+ },
14153
+ y: {
14154
+ types: [
14155
+ "number"
14156
+ ]
14157
+ }
14158
+ },
14159
+ required: [
14160
+ "x",
14161
+ "y"
14162
+ ]
14163
+ },
14164
+ x: {
14165
+ types: [
14166
+ "number"
14167
+ ]
14168
+ },
14169
+ y: {
14170
+ types: [
14171
+ "number"
14172
+ ]
14173
+ },
14174
+ z: {
14175
+ types: [
14176
+ "number"
14177
+ ]
14178
+ },
14179
+ sprite: {
14180
+ types: [
14181
+ "object"
14182
+ ]
14183
+ },
14184
+ unitType: {
14185
+ types: [
14186
+ "string"
14187
+ ]
14188
+ },
14189
+ heroId: {
14190
+ types: [
14191
+ "string"
14192
+ ]
14193
+ },
14194
+ name: {
14195
+ types: [
14196
+ "string"
14197
+ ]
14198
+ },
14199
+ team: {
14200
+ types: [
14201
+ "string"
14202
+ ],
14203
+ enumValues: [
14204
+ "player",
14205
+ "enemy",
14206
+ "neutral"
14207
+ ]
14208
+ },
14209
+ faction: {
14210
+ types: [
14211
+ "string"
14212
+ ],
14213
+ enumValues: [
14214
+ "player",
14215
+ "enemy",
14216
+ "neutral"
14217
+ ]
14218
+ },
14219
+ health: {
14220
+ types: [
14221
+ "number"
14222
+ ]
14223
+ },
14224
+ maxHealth: {
14225
+ types: [
14226
+ "number"
14227
+ ]
14228
+ },
14229
+ traits: {
14230
+ types: [
14231
+ "array"
14232
+ ],
14233
+ items: {
14234
+ types: [
14235
+ "object"
14236
+ ],
14237
+ properties: {
14238
+ name: {
14239
+ types: [
14240
+ "string"
14241
+ ]
14242
+ },
14243
+ currentState: {
14244
+ types: [
14245
+ "string"
14246
+ ]
14247
+ },
14248
+ states: {
14249
+ types: [
14250
+ "array"
14251
+ ],
14252
+ items: {
14253
+ types: [
14254
+ "string"
14255
+ ]
14256
+ }
14257
+ },
14258
+ cooldown: {
14259
+ types: [
14260
+ "number"
14261
+ ]
14262
+ }
14263
+ },
14264
+ required: [
14265
+ "name",
14266
+ "currentState",
14267
+ "states",
14268
+ "cooldown"
14269
+ ]
14270
+ }
14271
+ },
14272
+ previousPosition: {
14273
+ types: [
14274
+ "object"
14275
+ ],
14276
+ properties: {
14277
+ x: {
14278
+ types: [
14279
+ "number"
14280
+ ]
14281
+ },
14282
+ y: {
14283
+ types: [
14284
+ "number"
14285
+ ]
14286
+ }
14287
+ },
14288
+ required: [
14289
+ "x",
14290
+ "y"
14291
+ ]
14292
+ },
14293
+ elevation: {
14294
+ types: [
14295
+ "number"
14296
+ ]
14297
+ }
14298
+ },
14299
+ required: [
14300
+ "id"
14301
+ ]
14302
+ }
14303
+ },
14304
+ features: {
14305
+ types: [
14306
+ "array"
14307
+ ],
14308
+ description: "Direct feature data \u2014 forwarded to BattleBoard; takes priority over entity.",
14309
+ items: {
14310
+ types: [
14311
+ "object"
14312
+ ],
14313
+ properties: {
14314
+ id: {
14315
+ types: [
14316
+ "string"
14317
+ ]
14318
+ },
14319
+ x: {
14320
+ types: [
14321
+ "number"
14322
+ ]
14323
+ },
14324
+ y: {
14325
+ types: [
14326
+ "number"
14327
+ ]
14328
+ },
14329
+ z: {
14330
+ types: [
14331
+ "number"
14332
+ ]
14333
+ },
14334
+ type: {
14335
+ types: [
14336
+ "string"
14337
+ ]
14338
+ },
14339
+ sprite: {
14340
+ types: [
14341
+ "object"
14342
+ ]
14343
+ },
14344
+ assetUrl: {
14345
+ types: [
14346
+ "object"
14347
+ ]
14348
+ },
14349
+ color: {
14350
+ types: [
14351
+ "string"
14352
+ ]
14353
+ },
14354
+ elevation: {
14355
+ types: [
14356
+ "number"
14357
+ ]
14358
+ }
14359
+ },
14360
+ required: [
14361
+ "x",
14362
+ "y",
14363
+ "type"
14364
+ ]
14365
+ }
14366
+ },
14367
+ assetManifest: {
14368
+ types: [
14369
+ "string"
14370
+ ],
14371
+ description: "Direct asset manifest \u2014 forwarded to BattleBoard; takes priority over entity."
14055
14372
  }
14056
14373
  }
14057
14374
  },
@@ -37018,6 +37335,323 @@ var patterns_registry_default = {
37018
37335
  description: "Single board-state entity row (or array). The internal `useBattleState`",
37019
37336
  kind: "entity",
37020
37337
  cardinality: "collection"
37338
+ },
37339
+ tiles: {
37340
+ types: [
37341
+ "array"
37342
+ ],
37343
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
37344
+ items: {
37345
+ types: [
37346
+ "object"
37347
+ ],
37348
+ properties: {
37349
+ id: {
37350
+ types: [
37351
+ "string"
37352
+ ]
37353
+ },
37354
+ x: {
37355
+ types: [
37356
+ "number"
37357
+ ]
37358
+ },
37359
+ y: {
37360
+ types: [
37361
+ "number"
37362
+ ]
37363
+ },
37364
+ z: {
37365
+ types: [
37366
+ "number"
37367
+ ]
37368
+ },
37369
+ terrain: {
37370
+ types: [
37371
+ "string"
37372
+ ]
37373
+ },
37374
+ type: {
37375
+ types: [
37376
+ "string"
37377
+ ]
37378
+ },
37379
+ terrainSprite: {
37380
+ types: [
37381
+ "asset"
37382
+ ]
37383
+ },
37384
+ passable: {
37385
+ types: [
37386
+ "boolean"
37387
+ ]
37388
+ },
37389
+ movementCost: {
37390
+ types: [
37391
+ "number"
37392
+ ]
37393
+ },
37394
+ tileType: {
37395
+ types: [
37396
+ "string"
37397
+ ]
37398
+ },
37399
+ elevation: {
37400
+ types: [
37401
+ "number"
37402
+ ]
37403
+ }
37404
+ },
37405
+ required: [
37406
+ "x",
37407
+ "y"
37408
+ ]
37409
+ }
37410
+ },
37411
+ units: {
37412
+ types: [
37413
+ "array"
37414
+ ],
37415
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
37416
+ items: {
37417
+ types: [
37418
+ "object"
37419
+ ],
37420
+ properties: {
37421
+ id: {
37422
+ types: [
37423
+ "string"
37424
+ ]
37425
+ },
37426
+ position: {
37427
+ types: [
37428
+ "object"
37429
+ ],
37430
+ properties: {
37431
+ x: {
37432
+ types: [
37433
+ "number"
37434
+ ]
37435
+ },
37436
+ y: {
37437
+ types: [
37438
+ "number"
37439
+ ]
37440
+ }
37441
+ },
37442
+ required: [
37443
+ "x",
37444
+ "y"
37445
+ ]
37446
+ },
37447
+ x: {
37448
+ types: [
37449
+ "number"
37450
+ ]
37451
+ },
37452
+ y: {
37453
+ types: [
37454
+ "number"
37455
+ ]
37456
+ },
37457
+ z: {
37458
+ types: [
37459
+ "number"
37460
+ ]
37461
+ },
37462
+ sprite: {
37463
+ types: [
37464
+ "object"
37465
+ ]
37466
+ },
37467
+ unitType: {
37468
+ types: [
37469
+ "string"
37470
+ ]
37471
+ },
37472
+ heroId: {
37473
+ types: [
37474
+ "string"
37475
+ ]
37476
+ },
37477
+ name: {
37478
+ types: [
37479
+ "string"
37480
+ ]
37481
+ },
37482
+ team: {
37483
+ types: [
37484
+ "string"
37485
+ ],
37486
+ enumValues: [
37487
+ "player",
37488
+ "enemy",
37489
+ "neutral"
37490
+ ]
37491
+ },
37492
+ faction: {
37493
+ types: [
37494
+ "string"
37495
+ ],
37496
+ enumValues: [
37497
+ "player",
37498
+ "enemy",
37499
+ "neutral"
37500
+ ]
37501
+ },
37502
+ health: {
37503
+ types: [
37504
+ "number"
37505
+ ]
37506
+ },
37507
+ maxHealth: {
37508
+ types: [
37509
+ "number"
37510
+ ]
37511
+ },
37512
+ traits: {
37513
+ types: [
37514
+ "array"
37515
+ ],
37516
+ items: {
37517
+ types: [
37518
+ "object"
37519
+ ],
37520
+ properties: {
37521
+ name: {
37522
+ types: [
37523
+ "string"
37524
+ ]
37525
+ },
37526
+ currentState: {
37527
+ types: [
37528
+ "string"
37529
+ ]
37530
+ },
37531
+ states: {
37532
+ types: [
37533
+ "array"
37534
+ ],
37535
+ items: {
37536
+ types: [
37537
+ "string"
37538
+ ]
37539
+ }
37540
+ },
37541
+ cooldown: {
37542
+ types: [
37543
+ "number"
37544
+ ]
37545
+ }
37546
+ },
37547
+ required: [
37548
+ "name",
37549
+ "currentState",
37550
+ "states",
37551
+ "cooldown"
37552
+ ]
37553
+ }
37554
+ },
37555
+ previousPosition: {
37556
+ types: [
37557
+ "object"
37558
+ ],
37559
+ properties: {
37560
+ x: {
37561
+ types: [
37562
+ "number"
37563
+ ]
37564
+ },
37565
+ y: {
37566
+ types: [
37567
+ "number"
37568
+ ]
37569
+ }
37570
+ },
37571
+ required: [
37572
+ "x",
37573
+ "y"
37574
+ ]
37575
+ },
37576
+ elevation: {
37577
+ types: [
37578
+ "number"
37579
+ ]
37580
+ }
37581
+ },
37582
+ required: [
37583
+ "id"
37584
+ ]
37585
+ }
37586
+ },
37587
+ features: {
37588
+ types: [
37589
+ "array"
37590
+ ],
37591
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
37592
+ items: {
37593
+ types: [
37594
+ "object"
37595
+ ],
37596
+ properties: {
37597
+ id: {
37598
+ types: [
37599
+ "string"
37600
+ ]
37601
+ },
37602
+ x: {
37603
+ types: [
37604
+ "number"
37605
+ ]
37606
+ },
37607
+ y: {
37608
+ types: [
37609
+ "number"
37610
+ ]
37611
+ },
37612
+ z: {
37613
+ types: [
37614
+ "number"
37615
+ ]
37616
+ },
37617
+ type: {
37618
+ types: [
37619
+ "string"
37620
+ ]
37621
+ },
37622
+ sprite: {
37623
+ types: [
37624
+ "object"
37625
+ ]
37626
+ },
37627
+ assetUrl: {
37628
+ types: [
37629
+ "object"
37630
+ ]
37631
+ },
37632
+ color: {
37633
+ types: [
37634
+ "string"
37635
+ ]
37636
+ },
37637
+ elevation: {
37638
+ types: [
37639
+ "number"
37640
+ ]
37641
+ }
37642
+ },
37643
+ required: [
37644
+ "x",
37645
+ "y",
37646
+ "type"
37647
+ ]
37648
+ }
37649
+ },
37650
+ assetManifest: {
37651
+ types: [
37652
+ "string"
37653
+ ],
37654
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest."
37021
37655
  }
37022
37656
  }
37023
37657
  },
@@ -41285,7 +41919,7 @@ var patterns_registry_default = {
41285
41919
  "feature-renderer": {
41286
41920
  type: "feature-renderer",
41287
41921
  category: "game",
41288
- tier: "organisms",
41922
+ tier: "molecules",
41289
41923
  family: "game",
41290
41924
  description: "FeatureRenderer component",
41291
41925
  suggestedFor: [
@@ -42608,434 +43242,2236 @@ var patterns_registry_default = {
42608
43242
  ]
42609
43243
  }
42610
43244
  },
42611
- fields: {
43245
+ fields: {
43246
+ types: [
43247
+ "array"
43248
+ ],
43249
+ description: "Alias for `columns`.",
43250
+ items: {
43251
+ types: [
43252
+ "object"
43253
+ ],
43254
+ properties: {
43255
+ key: {
43256
+ types: [
43257
+ "string"
43258
+ ]
43259
+ },
43260
+ field: {
43261
+ types: [
43262
+ "string"
43263
+ ]
43264
+ },
43265
+ header: {
43266
+ types: [
43267
+ "string"
43268
+ ]
43269
+ },
43270
+ label: {
43271
+ types: [
43272
+ "string"
43273
+ ]
43274
+ },
43275
+ width: {
43276
+ types: [
43277
+ "string"
43278
+ ]
43279
+ },
43280
+ align: {
43281
+ types: [
43282
+ "string"
43283
+ ],
43284
+ enumValues: [
43285
+ "left",
43286
+ "center",
43287
+ "right"
43288
+ ]
43289
+ },
43290
+ className: {
43291
+ types: [
43292
+ "string"
43293
+ ]
43294
+ },
43295
+ weight: {
43296
+ types: [
43297
+ "string"
43298
+ ],
43299
+ enumValues: [
43300
+ "normal",
43301
+ "medium",
43302
+ "semibold"
43303
+ ]
43304
+ },
43305
+ format: {
43306
+ types: [
43307
+ "string"
43308
+ ],
43309
+ enumValues: [
43310
+ "badge",
43311
+ "date",
43312
+ "currency",
43313
+ "number",
43314
+ "percent",
43315
+ "boolean"
43316
+ ]
43317
+ },
43318
+ icon: {
43319
+ types: [
43320
+ "icon",
43321
+ "string"
43322
+ ]
43323
+ },
43324
+ sortable: {
43325
+ types: [
43326
+ "boolean"
43327
+ ]
43328
+ }
43329
+ },
43330
+ required: [
43331
+ "key"
43332
+ ]
43333
+ }
43334
+ },
43335
+ itemActions: {
43336
+ types: [
43337
+ "array"
43338
+ ],
43339
+ description: "Per-row action buttons (trailing column).",
43340
+ kind: "event-list",
43341
+ eventField: "event",
43342
+ items: {
43343
+ types: [
43344
+ "object"
43345
+ ],
43346
+ properties: {
43347
+ label: {
43348
+ types: [
43349
+ "string"
43350
+ ]
43351
+ },
43352
+ event: {
43353
+ types: [
43354
+ "string"
43355
+ ]
43356
+ },
43357
+ icon: {
43358
+ types: [
43359
+ "icon",
43360
+ "string"
43361
+ ]
43362
+ },
43363
+ variant: {
43364
+ types: [
43365
+ "string"
43366
+ ],
43367
+ enumValues: [
43368
+ "primary",
43369
+ "secondary",
43370
+ "ghost",
43371
+ "danger"
43372
+ ]
43373
+ }
43374
+ },
43375
+ required: [
43376
+ "label",
43377
+ "event"
43378
+ ]
43379
+ }
43380
+ },
43381
+ maxInlineActions: {
43382
+ types: [
43383
+ "number"
43384
+ ],
43385
+ description: 'Max inline action buttons before the rest collapse into a "\u22EF" overflow menu. Omit = all inline.'
43386
+ },
43387
+ selectable: {
43388
+ types: [
43389
+ "boolean"
43390
+ ],
43391
+ description: "Render a leading checkbox column. Selection changes emit `selectEvent`.",
43392
+ default: false
43393
+ },
43394
+ selectEvent: {
43395
+ types: [
43396
+ "string"
43397
+ ],
43398
+ description: "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
43399
+ kind: "event"
43400
+ },
43401
+ selectedIds: {
43402
+ types: [
43403
+ "array"
43404
+ ],
43405
+ description: "Currently-selected ids (controlled). Falls back to local state when omitted.",
43406
+ items: {
43407
+ types: [
43408
+ "string"
43409
+ ]
43410
+ }
43411
+ },
43412
+ sortEvent: {
43413
+ types: [
43414
+ "string"
43415
+ ],
43416
+ description: "Event emitted on sortable-header click: UI:{sortEvent} with { column, direction }.",
43417
+ kind: "event"
43418
+ },
43419
+ sortColumn: {
43420
+ types: [
43421
+ "string"
43422
+ ],
43423
+ description: "Current sort column (display hint for the active header arrow)."
43424
+ },
43425
+ sortDirection: {
43426
+ types: [
43427
+ "string"
43428
+ ],
43429
+ description: "Current sort direction (display hint).",
43430
+ enumValues: [
43431
+ "asc",
43432
+ "desc"
43433
+ ]
43434
+ },
43435
+ className: {
43436
+ types: [
43437
+ "string"
43438
+ ],
43439
+ description: "Additional CSS classes applied to the table root."
43440
+ },
43441
+ emptyMessage: {
43442
+ types: [
43443
+ "string"
43444
+ ],
43445
+ description: "Message shown when there are no rows."
43446
+ },
43447
+ isLoading: {
43448
+ types: [
43449
+ "boolean"
43450
+ ],
43451
+ description: "Loading state.",
43452
+ default: false
43453
+ },
43454
+ error: {
43455
+ types: [
43456
+ "object"
43457
+ ],
43458
+ description: "Error state.",
43459
+ properties: {
43460
+ message: {
43461
+ types: [
43462
+ "string"
43463
+ ]
43464
+ },
43465
+ name: {
43466
+ types: [
43467
+ "string"
43468
+ ]
43469
+ },
43470
+ code: {
43471
+ types: [
43472
+ "string"
43473
+ ]
43474
+ },
43475
+ stack: {
43476
+ types: [
43477
+ "string"
43478
+ ]
43479
+ }
43480
+ },
43481
+ propertyRequired: [
43482
+ "message"
43483
+ ],
43484
+ default: null
43485
+ },
43486
+ groupBy: {
43487
+ types: [
43488
+ "string"
43489
+ ],
43490
+ description: "Group rows under section headers by a field value."
43491
+ },
43492
+ pageSize: {
43493
+ types: [
43494
+ "number"
43495
+ ],
43496
+ description: 'Max rows before a "Show More" button. Defaults to 0 (show all).',
43497
+ default: 0
43498
+ },
43499
+ children: {
43500
+ types: [
43501
+ "function"
43502
+ ],
43503
+ description: "Custom per-row render. When provided, the whole row content is delegated to this function (columns are ignored for the body; the header still renders). Mirrors DataList's children render prop.",
43504
+ kind: "callback",
43505
+ callbackArgs: [
43506
+ {
43507
+ name: "item",
43508
+ type: "object"
43509
+ },
43510
+ {
43511
+ name: "index",
43512
+ type: "number"
43513
+ }
43514
+ ],
43515
+ renderCallback: true
43516
+ },
43517
+ renderItem: {
43518
+ types: [
43519
+ "function"
43520
+ ],
43521
+ description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
43522
+ kind: "callback",
43523
+ callbackArgs: [
43524
+ {
43525
+ name: "item",
43526
+ type: "object"
43527
+ },
43528
+ {
43529
+ name: "index",
43530
+ type: "number"
43531
+ }
43532
+ ],
43533
+ renderCallback: true
43534
+ },
43535
+ look: {
43536
+ types: [
43537
+ "string"
43538
+ ],
43539
+ description: "Layer 2 visual treatment \u2014 mirrors the data-list / entity-table look enum so authors share one knob name across row renderers.",
43540
+ enumValues: [
43541
+ "dense",
43542
+ "spacious",
43543
+ "striped",
43544
+ "borderless",
43545
+ "bordered"
43546
+ ],
43547
+ default: "dense"
43548
+ }
43549
+ }
43550
+ },
43551
+ "step-flow": {
43552
+ type: "step-flow",
43553
+ category: "component",
43554
+ tier: "molecules",
43555
+ family: "marketing",
43556
+ description: "StepFlow component",
43557
+ suggestedFor: [
43558
+ "step",
43559
+ "flow",
43560
+ "step flow"
43561
+ ],
43562
+ typicalSize: "medium",
43563
+ propsSchema: {
43564
+ steps: {
43565
+ types: [
43566
+ "array"
43567
+ ],
43568
+ description: "steps prop",
43569
+ required: true,
43570
+ items: {
43571
+ types: [
43572
+ "object"
43573
+ ],
43574
+ properties: {
43575
+ number: {
43576
+ types: [
43577
+ "number"
43578
+ ]
43579
+ },
43580
+ title: {
43581
+ types: [
43582
+ "string"
43583
+ ]
43584
+ },
43585
+ description: {
43586
+ types: [
43587
+ "string"
43588
+ ]
43589
+ },
43590
+ icon: {
43591
+ types: [
43592
+ "icon",
43593
+ "string"
43594
+ ]
43595
+ }
43596
+ },
43597
+ required: [
43598
+ "title",
43599
+ "description"
43600
+ ]
43601
+ }
43602
+ },
43603
+ orientation: {
43604
+ types: [
43605
+ "string"
43606
+ ],
43607
+ description: "orientation prop",
43608
+ enumValues: [
43609
+ "horizontal",
43610
+ "vertical"
43611
+ ],
43612
+ default: "horizontal"
43613
+ },
43614
+ showConnectors: {
43615
+ types: [
43616
+ "boolean"
43617
+ ],
43618
+ description: "showConnectors prop",
43619
+ default: true
43620
+ },
43621
+ className: {
43622
+ types: [
43623
+ "string"
43624
+ ],
43625
+ description: "className prop"
43626
+ }
43627
+ }
43628
+ },
43629
+ "stat-card": {
43630
+ type: "stat-card",
43631
+ category: "display",
43632
+ tier: "atoms",
43633
+ family: "marketing",
43634
+ description: "StatCard component",
43635
+ suggestedFor: [
43636
+ "stat",
43637
+ "card",
43638
+ "stat card"
43639
+ ],
43640
+ typicalSize: "small",
43641
+ propsSchema: {
43642
+ value: {
43643
+ types: [
43644
+ "string"
43645
+ ],
43646
+ description: "The stat value to display prominently",
43647
+ required: true
43648
+ },
43649
+ label: {
43650
+ types: [
43651
+ "string"
43652
+ ],
43653
+ description: "Label describing the value",
43654
+ required: true
43655
+ },
43656
+ size: {
43657
+ types: [
43658
+ "string"
43659
+ ],
43660
+ description: "Size of the value text",
43661
+ enumValues: [
43662
+ "sm",
43663
+ "md",
43664
+ "lg"
43665
+ ],
43666
+ default: "md"
43667
+ },
43668
+ className: {
43669
+ types: [
43670
+ "string"
43671
+ ],
43672
+ description: "Additional class names"
43673
+ }
43674
+ }
43675
+ },
43676
+ "game-canvas-3d": {
43677
+ type: "game-canvas-3d",
43678
+ category: "game",
43679
+ tier: "molecules",
43680
+ family: "game",
43681
+ description: "Props for GameCanvas3D component",
43682
+ suggestedFor: [
43683
+ "game",
43684
+ "canvas3",
43685
+ "game canvas3 d"
43686
+ ],
43687
+ typicalSize: "medium",
43688
+ propsSchema: {
43689
+ className: {
43690
+ types: [
43691
+ "string"
43692
+ ],
43693
+ description: "--- Closed-circuit props (MANDATORY) ---"
43694
+ },
43695
+ children: {
43696
+ types: [
43697
+ "node"
43698
+ ],
43699
+ description: "Children to render inside the 3D canvas (e.g., physics objects, custom meshes)"
43700
+ },
43701
+ isLoading: {
43702
+ types: [
43703
+ "boolean"
43704
+ ],
43705
+ description: "Loading state indicator"
43706
+ },
43707
+ error: {
43708
+ types: [
43709
+ "string"
43710
+ ],
43711
+ description: "Error state"
43712
+ },
43713
+ entity: {
43714
+ types: [
43715
+ "string"
43716
+ ],
43717
+ description: "Entity name for schema-driven auto-fetch"
43718
+ },
43719
+ tiles: {
43720
+ types: [
43721
+ "array"
43722
+ ],
43723
+ description: "Array of tiles to render",
43724
+ items: {
43725
+ types: [
43726
+ "object"
43727
+ ],
43728
+ properties: {
43729
+ id: {
43730
+ types: [
43731
+ "string"
43732
+ ]
43733
+ },
43734
+ x: {
43735
+ types: [
43736
+ "number"
43737
+ ]
43738
+ },
43739
+ y: {
43740
+ types: [
43741
+ "number"
43742
+ ]
43743
+ },
43744
+ z: {
43745
+ types: [
43746
+ "number"
43747
+ ]
43748
+ },
43749
+ terrain: {
43750
+ types: [
43751
+ "string"
43752
+ ]
43753
+ },
43754
+ type: {
43755
+ types: [
43756
+ "string"
43757
+ ]
43758
+ },
43759
+ terrainSprite: {
43760
+ types: [
43761
+ "asset"
43762
+ ]
43763
+ },
43764
+ passable: {
43765
+ types: [
43766
+ "boolean"
43767
+ ]
43768
+ },
43769
+ movementCost: {
43770
+ types: [
43771
+ "number"
43772
+ ]
43773
+ },
43774
+ tileType: {
43775
+ types: [
43776
+ "string"
43777
+ ]
43778
+ },
43779
+ elevation: {
43780
+ types: [
43781
+ "number"
43782
+ ]
43783
+ }
43784
+ },
43785
+ required: [
43786
+ "x",
43787
+ "y"
43788
+ ]
43789
+ },
43790
+ default: []
43791
+ },
43792
+ units: {
43793
+ types: [
43794
+ "array"
43795
+ ],
43796
+ description: "Array of units to render",
43797
+ items: {
43798
+ types: [
43799
+ "object"
43800
+ ],
43801
+ properties: {
43802
+ id: {
43803
+ types: [
43804
+ "string"
43805
+ ]
43806
+ },
43807
+ position: {
43808
+ types: [
43809
+ "object"
43810
+ ],
43811
+ properties: {
43812
+ x: {
43813
+ types: [
43814
+ "number"
43815
+ ]
43816
+ },
43817
+ y: {
43818
+ types: [
43819
+ "number"
43820
+ ]
43821
+ }
43822
+ },
43823
+ required: [
43824
+ "x",
43825
+ "y"
43826
+ ]
43827
+ },
43828
+ x: {
43829
+ types: [
43830
+ "number"
43831
+ ]
43832
+ },
43833
+ y: {
43834
+ types: [
43835
+ "number"
43836
+ ]
43837
+ },
43838
+ z: {
43839
+ types: [
43840
+ "number"
43841
+ ]
43842
+ },
43843
+ sprite: {
43844
+ types: [
43845
+ "object"
43846
+ ]
43847
+ },
43848
+ unitType: {
43849
+ types: [
43850
+ "string"
43851
+ ]
43852
+ },
43853
+ heroId: {
43854
+ types: [
43855
+ "string"
43856
+ ]
43857
+ },
43858
+ name: {
43859
+ types: [
43860
+ "string"
43861
+ ]
43862
+ },
43863
+ team: {
43864
+ types: [
43865
+ "string"
43866
+ ],
43867
+ enumValues: [
43868
+ "player",
43869
+ "enemy",
43870
+ "neutral"
43871
+ ]
43872
+ },
43873
+ faction: {
43874
+ types: [
43875
+ "string"
43876
+ ],
43877
+ enumValues: [
43878
+ "player",
43879
+ "enemy",
43880
+ "neutral"
43881
+ ]
43882
+ },
43883
+ health: {
43884
+ types: [
43885
+ "number"
43886
+ ]
43887
+ },
43888
+ maxHealth: {
43889
+ types: [
43890
+ "number"
43891
+ ]
43892
+ },
43893
+ traits: {
43894
+ types: [
43895
+ "array"
43896
+ ],
43897
+ items: {
43898
+ types: [
43899
+ "object"
43900
+ ],
43901
+ properties: {
43902
+ name: {
43903
+ types: [
43904
+ "string"
43905
+ ]
43906
+ },
43907
+ currentState: {
43908
+ types: [
43909
+ "string"
43910
+ ]
43911
+ },
43912
+ states: {
43913
+ types: [
43914
+ "array"
43915
+ ],
43916
+ items: {
43917
+ types: [
43918
+ "string"
43919
+ ]
43920
+ }
43921
+ },
43922
+ cooldown: {
43923
+ types: [
43924
+ "number"
43925
+ ]
43926
+ }
43927
+ },
43928
+ required: [
43929
+ "name",
43930
+ "currentState",
43931
+ "states",
43932
+ "cooldown"
43933
+ ]
43934
+ }
43935
+ },
43936
+ previousPosition: {
43937
+ types: [
43938
+ "object"
43939
+ ],
43940
+ properties: {
43941
+ x: {
43942
+ types: [
43943
+ "number"
43944
+ ]
43945
+ },
43946
+ y: {
43947
+ types: [
43948
+ "number"
43949
+ ]
43950
+ }
43951
+ },
43952
+ required: [
43953
+ "x",
43954
+ "y"
43955
+ ]
43956
+ },
43957
+ elevation: {
43958
+ types: [
43959
+ "number"
43960
+ ]
43961
+ }
43962
+ },
43963
+ required: [
43964
+ "id"
43965
+ ]
43966
+ },
43967
+ default: []
43968
+ },
43969
+ features: {
43970
+ types: [
43971
+ "array"
43972
+ ],
43973
+ description: "Array of features to render",
43974
+ items: {
43975
+ types: [
43976
+ "object"
43977
+ ],
43978
+ properties: {
43979
+ id: {
43980
+ types: [
43981
+ "string"
43982
+ ]
43983
+ },
43984
+ x: {
43985
+ types: [
43986
+ "number"
43987
+ ]
43988
+ },
43989
+ y: {
43990
+ types: [
43991
+ "number"
43992
+ ]
43993
+ },
43994
+ z: {
43995
+ types: [
43996
+ "number"
43997
+ ]
43998
+ },
43999
+ type: {
44000
+ types: [
44001
+ "string"
44002
+ ]
44003
+ },
44004
+ sprite: {
44005
+ types: [
44006
+ "object"
44007
+ ]
44008
+ },
44009
+ assetUrl: {
44010
+ types: [
44011
+ "object"
44012
+ ]
44013
+ },
44014
+ color: {
44015
+ types: [
44016
+ "string"
44017
+ ]
44018
+ },
44019
+ elevation: {
44020
+ types: [
44021
+ "number"
44022
+ ]
44023
+ }
44024
+ },
44025
+ required: [
44026
+ "x",
44027
+ "y",
44028
+ "type"
44029
+ ]
44030
+ },
44031
+ default: []
44032
+ },
44033
+ events: {
44034
+ types: [
44035
+ "array"
44036
+ ],
44037
+ description: "Array of events to display",
44038
+ items: {
44039
+ types: [
44040
+ "object"
44041
+ ],
44042
+ properties: {
44043
+ id: {
44044
+ types: [
44045
+ "string"
44046
+ ]
44047
+ },
44048
+ type: {
44049
+ types: [
44050
+ "string"
44051
+ ]
44052
+ },
44053
+ x: {
44054
+ types: [
44055
+ "number"
44056
+ ]
44057
+ },
44058
+ z: {
44059
+ types: [
44060
+ "number"
44061
+ ]
44062
+ },
44063
+ y: {
44064
+ types: [
44065
+ "number"
44066
+ ]
44067
+ },
44068
+ message: {
44069
+ types: [
44070
+ "string"
44071
+ ]
44072
+ }
44073
+ },
44074
+ required: [
44075
+ "id",
44076
+ "type",
44077
+ "x"
44078
+ ]
44079
+ },
44080
+ default: []
44081
+ },
44082
+ fogOfWar: {
44083
+ types: [
44084
+ "array"
44085
+ ],
44086
+ description: "Fog of war data",
44087
+ items: {
44088
+ types: [
44089
+ "array"
44090
+ ],
44091
+ items: {
44092
+ types: [
44093
+ "boolean"
44094
+ ]
44095
+ }
44096
+ }
44097
+ },
44098
+ orientation: {
44099
+ types: [
44100
+ "string"
44101
+ ],
44102
+ description: "Map orientation",
44103
+ enumValues: [
44104
+ "standard",
44105
+ "rotated"
44106
+ ],
44107
+ default: "standard"
44108
+ },
44109
+ cameraMode: {
44110
+ types: [
44111
+ "string"
44112
+ ],
44113
+ description: "Camera mode",
44114
+ enumValues: [
44115
+ "isometric",
44116
+ "perspective",
44117
+ "top-down"
44118
+ ],
44119
+ default: "isometric"
44120
+ },
44121
+ showGrid: {
44122
+ types: [
44123
+ "boolean"
44124
+ ],
44125
+ description: "Show grid",
44126
+ default: true
44127
+ },
44128
+ showCoordinates: {
44129
+ types: [
44130
+ "boolean"
44131
+ ],
44132
+ description: "Show coordinates overlay",
44133
+ default: false
44134
+ },
44135
+ showTileInfo: {
44136
+ types: [
44137
+ "boolean"
44138
+ ],
44139
+ description: "Show tile information",
44140
+ default: false
44141
+ },
44142
+ overlay: {
44143
+ types: [
44144
+ "string"
44145
+ ],
44146
+ description: "Overlay control mode",
44147
+ enumValues: [
44148
+ "default",
44149
+ "hidden",
44150
+ "minimap"
44151
+ ],
44152
+ default: "default"
44153
+ },
44154
+ shadows: {
44155
+ types: [
44156
+ "boolean"
44157
+ ],
44158
+ description: "Enable shadows",
44159
+ default: true
44160
+ },
44161
+ backgroundColor: {
44162
+ types: [
44163
+ "string"
44164
+ ],
44165
+ description: "Background color",
44166
+ default: "#1a1a2e"
44167
+ },
44168
+ onTileClick: {
44169
+ types: [
44170
+ "function"
44171
+ ],
44172
+ description: "Callback when a tile is clicked",
44173
+ kind: "callback",
44174
+ callbackArgs: [
44175
+ {
44176
+ name: "tile",
44177
+ type: "object",
44178
+ schema: {
44179
+ types: [
44180
+ "object"
44181
+ ],
44182
+ properties: {
44183
+ id: {
44184
+ types: [
44185
+ "string"
44186
+ ]
44187
+ },
44188
+ x: {
44189
+ types: [
44190
+ "number"
44191
+ ]
44192
+ },
44193
+ y: {
44194
+ types: [
44195
+ "number"
44196
+ ]
44197
+ },
44198
+ z: {
44199
+ types: [
44200
+ "number"
44201
+ ]
44202
+ },
44203
+ terrain: {
44204
+ types: [
44205
+ "string"
44206
+ ]
44207
+ },
44208
+ type: {
44209
+ types: [
44210
+ "string"
44211
+ ]
44212
+ },
44213
+ terrainSprite: {
44214
+ types: [
44215
+ "asset"
44216
+ ]
44217
+ },
44218
+ passable: {
44219
+ types: [
44220
+ "boolean"
44221
+ ]
44222
+ },
44223
+ movementCost: {
44224
+ types: [
44225
+ "number"
44226
+ ]
44227
+ },
44228
+ tileType: {
44229
+ types: [
44230
+ "string"
44231
+ ]
44232
+ },
44233
+ elevation: {
44234
+ types: [
44235
+ "number"
44236
+ ]
44237
+ }
44238
+ },
44239
+ required: [
44240
+ "x",
44241
+ "y"
44242
+ ]
44243
+ }
44244
+ },
44245
+ {
44246
+ name: "event",
44247
+ type: "object"
44248
+ }
44249
+ ],
44250
+ nonEmittable: true
44251
+ },
44252
+ onUnitClick: {
44253
+ types: [
44254
+ "function"
44255
+ ],
44256
+ description: "Callback when a unit is clicked",
44257
+ kind: "callback",
44258
+ callbackArgs: [
44259
+ {
44260
+ name: "unit",
44261
+ type: "object",
44262
+ schema: {
44263
+ types: [
44264
+ "object"
44265
+ ],
44266
+ properties: {
44267
+ id: {
44268
+ types: [
44269
+ "string"
44270
+ ]
44271
+ },
44272
+ position: {
44273
+ types: [
44274
+ "object"
44275
+ ],
44276
+ properties: {
44277
+ x: {
44278
+ types: [
44279
+ "number"
44280
+ ]
44281
+ },
44282
+ y: {
44283
+ types: [
44284
+ "number"
44285
+ ]
44286
+ }
44287
+ },
44288
+ required: [
44289
+ "x",
44290
+ "y"
44291
+ ]
44292
+ },
44293
+ x: {
44294
+ types: [
44295
+ "number"
44296
+ ]
44297
+ },
44298
+ y: {
44299
+ types: [
44300
+ "number"
44301
+ ]
44302
+ },
44303
+ z: {
44304
+ types: [
44305
+ "number"
44306
+ ]
44307
+ },
44308
+ sprite: {
44309
+ types: [
44310
+ "object"
44311
+ ]
44312
+ },
44313
+ unitType: {
44314
+ types: [
44315
+ "string"
44316
+ ]
44317
+ },
44318
+ heroId: {
44319
+ types: [
44320
+ "string"
44321
+ ]
44322
+ },
44323
+ name: {
44324
+ types: [
44325
+ "string"
44326
+ ]
44327
+ },
44328
+ team: {
44329
+ types: [
44330
+ "string"
44331
+ ],
44332
+ enumValues: [
44333
+ "player",
44334
+ "enemy",
44335
+ "neutral"
44336
+ ]
44337
+ },
44338
+ faction: {
44339
+ types: [
44340
+ "string"
44341
+ ],
44342
+ enumValues: [
44343
+ "player",
44344
+ "enemy",
44345
+ "neutral"
44346
+ ]
44347
+ },
44348
+ health: {
44349
+ types: [
44350
+ "number"
44351
+ ]
44352
+ },
44353
+ maxHealth: {
44354
+ types: [
44355
+ "number"
44356
+ ]
44357
+ },
44358
+ traits: {
44359
+ types: [
44360
+ "array"
44361
+ ],
44362
+ items: {
44363
+ types: [
44364
+ "object"
44365
+ ],
44366
+ properties: {
44367
+ name: {
44368
+ types: [
44369
+ "string"
44370
+ ]
44371
+ },
44372
+ currentState: {
44373
+ types: [
44374
+ "string"
44375
+ ]
44376
+ },
44377
+ states: {
44378
+ types: [
44379
+ "array"
44380
+ ],
44381
+ items: {
44382
+ types: [
44383
+ "string"
44384
+ ]
44385
+ }
44386
+ },
44387
+ cooldown: {
44388
+ types: [
44389
+ "number"
44390
+ ]
44391
+ }
44392
+ },
44393
+ required: [
44394
+ "name",
44395
+ "currentState",
44396
+ "states",
44397
+ "cooldown"
44398
+ ]
44399
+ }
44400
+ },
44401
+ previousPosition: {
44402
+ types: [
44403
+ "object"
44404
+ ],
44405
+ properties: {
44406
+ x: {
44407
+ types: [
44408
+ "number"
44409
+ ]
44410
+ },
44411
+ y: {
44412
+ types: [
44413
+ "number"
44414
+ ]
44415
+ }
44416
+ },
44417
+ required: [
44418
+ "x",
44419
+ "y"
44420
+ ]
44421
+ },
44422
+ elevation: {
44423
+ types: [
44424
+ "number"
44425
+ ]
44426
+ }
44427
+ },
44428
+ required: [
44429
+ "id"
44430
+ ]
44431
+ }
44432
+ },
44433
+ {
44434
+ name: "event",
44435
+ type: "object"
44436
+ }
44437
+ ],
44438
+ nonEmittable: true
44439
+ },
44440
+ onFeatureClick: {
44441
+ types: [
44442
+ "function"
44443
+ ],
44444
+ description: "Callback when a feature is clicked",
44445
+ kind: "callback",
44446
+ callbackArgs: [
44447
+ {
44448
+ name: "feature",
44449
+ type: "object",
44450
+ schema: {
44451
+ types: [
44452
+ "object"
44453
+ ],
44454
+ properties: {
44455
+ id: {
44456
+ types: [
44457
+ "string"
44458
+ ]
44459
+ },
44460
+ x: {
44461
+ types: [
44462
+ "number"
44463
+ ]
44464
+ },
44465
+ y: {
44466
+ types: [
44467
+ "number"
44468
+ ]
44469
+ },
44470
+ z: {
44471
+ types: [
44472
+ "number"
44473
+ ]
44474
+ },
44475
+ type: {
44476
+ types: [
44477
+ "string"
44478
+ ]
44479
+ },
44480
+ sprite: {
44481
+ types: [
44482
+ "object"
44483
+ ]
44484
+ },
44485
+ assetUrl: {
44486
+ types: [
44487
+ "object"
44488
+ ]
44489
+ },
44490
+ color: {
44491
+ types: [
44492
+ "string"
44493
+ ]
44494
+ },
44495
+ elevation: {
44496
+ types: [
44497
+ "number"
44498
+ ]
44499
+ }
44500
+ },
44501
+ required: [
44502
+ "x",
44503
+ "y",
44504
+ "type"
44505
+ ]
44506
+ }
44507
+ },
44508
+ {
44509
+ name: "event",
44510
+ type: "object"
44511
+ }
44512
+ ],
44513
+ nonEmittable: true
44514
+ },
44515
+ onCanvasClick: {
44516
+ types: [
44517
+ "function"
44518
+ ],
44519
+ description: "Callback when canvas is clicked (background)",
44520
+ kind: "callback",
44521
+ callbackArgs: [
44522
+ {
44523
+ name: "event",
44524
+ type: "object"
44525
+ }
44526
+ ],
44527
+ nonEmittable: true
44528
+ },
44529
+ onTileHover: {
44530
+ types: [
44531
+ "function"
44532
+ ],
44533
+ description: "Callback when mouse moves over a tile",
44534
+ kind: "callback",
44535
+ callbackArgs: [
44536
+ {
44537
+ name: "tile",
44538
+ type: "object",
44539
+ schema: {
44540
+ types: [
44541
+ "object"
44542
+ ],
44543
+ properties: {
44544
+ id: {
44545
+ types: [
44546
+ "string"
44547
+ ]
44548
+ },
44549
+ x: {
44550
+ types: [
44551
+ "number"
44552
+ ]
44553
+ },
44554
+ y: {
44555
+ types: [
44556
+ "number"
44557
+ ]
44558
+ },
44559
+ z: {
44560
+ types: [
44561
+ "number"
44562
+ ]
44563
+ },
44564
+ terrain: {
44565
+ types: [
44566
+ "string"
44567
+ ]
44568
+ },
44569
+ type: {
44570
+ types: [
44571
+ "string"
44572
+ ]
44573
+ },
44574
+ terrainSprite: {
44575
+ types: [
44576
+ "asset"
44577
+ ]
44578
+ },
44579
+ passable: {
44580
+ types: [
44581
+ "boolean"
44582
+ ]
44583
+ },
44584
+ movementCost: {
44585
+ types: [
44586
+ "number"
44587
+ ]
44588
+ },
44589
+ tileType: {
44590
+ types: [
44591
+ "string"
44592
+ ]
44593
+ },
44594
+ elevation: {
44595
+ types: [
44596
+ "number"
44597
+ ]
44598
+ }
44599
+ },
44600
+ required: [
44601
+ "x",
44602
+ "y"
44603
+ ]
44604
+ }
44605
+ },
44606
+ {
44607
+ name: "event",
44608
+ type: "object"
44609
+ }
44610
+ ],
44611
+ nonEmittable: true
44612
+ },
44613
+ onUnitAnimation: {
44614
+ types: [
44615
+ "function"
44616
+ ],
44617
+ description: "Callback for unit animation state change",
44618
+ kind: "callback",
44619
+ callbackArgs: [
44620
+ {
44621
+ name: "unitId",
44622
+ type: "string"
44623
+ },
44624
+ {
44625
+ name: "state",
44626
+ type: "string"
44627
+ }
44628
+ ]
44629
+ },
44630
+ assetLoader: {
44631
+ types: [
44632
+ "object"
44633
+ ],
44634
+ description: "Asset loader instance (uses global singleton if not provided)"
44635
+ },
44636
+ tileRenderer: {
44637
+ types: [
44638
+ "object"
44639
+ ],
44640
+ description: "Custom tile renderer component"
44641
+ },
44642
+ unitRenderer: {
44643
+ types: [
44644
+ "object"
44645
+ ],
44646
+ description: "Custom unit renderer component"
44647
+ },
44648
+ featureRenderer: {
44649
+ types: [
44650
+ "object"
44651
+ ],
44652
+ description: "Custom feature renderer component"
44653
+ },
44654
+ preloadAssets: {
44655
+ types: [
44656
+ "array"
44657
+ ],
44658
+ description: "URLs to preload",
44659
+ items: {
44660
+ types: [
44661
+ "string"
44662
+ ]
44663
+ },
44664
+ default: []
44665
+ },
44666
+ tileClickEvent: {
44667
+ types: [
44668
+ "string"
44669
+ ],
44670
+ description: "Declarative event: tile click",
44671
+ kind: "event-ref",
44672
+ emitPayloadSchema: [
44673
+ {
44674
+ name: "tileId",
44675
+ type: "string",
44676
+ required: true
44677
+ },
44678
+ {
44679
+ name: "x",
44680
+ type: "number",
44681
+ required: true
44682
+ },
44683
+ {
44684
+ name: "z",
44685
+ type: "number",
44686
+ required: true
44687
+ },
44688
+ {
44689
+ name: "type",
44690
+ type: "string",
44691
+ required: false
44692
+ },
44693
+ {
44694
+ name: "terrain",
44695
+ type: "string",
44696
+ required: false
44697
+ },
44698
+ {
44699
+ name: "elevation",
44700
+ type: "number",
44701
+ required: false
44702
+ }
44703
+ ]
44704
+ },
44705
+ unitClickEvent: {
44706
+ types: [
44707
+ "string"
44708
+ ],
44709
+ description: "Declarative event: unit click",
44710
+ kind: "event-ref",
44711
+ emitPayloadSchema: [
44712
+ {
44713
+ name: "unitId",
44714
+ type: "string",
44715
+ required: true
44716
+ },
44717
+ {
44718
+ name: "x",
44719
+ type: "number",
44720
+ required: true
44721
+ },
44722
+ {
44723
+ name: "z",
44724
+ type: "number",
44725
+ required: true
44726
+ },
44727
+ {
44728
+ name: "unitType",
44729
+ type: "string",
44730
+ required: false
44731
+ },
44732
+ {
44733
+ name: "name",
44734
+ type: "string",
44735
+ required: false
44736
+ },
44737
+ {
44738
+ name: "team",
44739
+ type: "string",
44740
+ required: false
44741
+ },
44742
+ {
44743
+ name: "faction",
44744
+ type: "string",
44745
+ required: false
44746
+ },
44747
+ {
44748
+ name: "health",
44749
+ type: "number",
44750
+ required: false
44751
+ },
44752
+ {
44753
+ name: "maxHealth",
44754
+ type: "number",
44755
+ required: false
44756
+ }
44757
+ ]
44758
+ },
44759
+ featureClickEvent: {
44760
+ types: [
44761
+ "string"
44762
+ ],
44763
+ description: "Declarative event: feature click",
44764
+ kind: "event-ref",
44765
+ emitPayloadSchema: [
44766
+ {
44767
+ name: "featureId",
44768
+ type: "string",
44769
+ required: true
44770
+ },
44771
+ {
44772
+ name: "x",
44773
+ type: "number",
44774
+ required: true
44775
+ },
44776
+ {
44777
+ name: "z",
44778
+ type: "number",
44779
+ required: true
44780
+ },
44781
+ {
44782
+ name: "type",
44783
+ type: "string",
44784
+ required: false
44785
+ },
44786
+ {
44787
+ name: "elevation",
44788
+ type: "number",
44789
+ required: false
44790
+ }
44791
+ ]
44792
+ },
44793
+ canvasClickEvent: {
44794
+ types: [
44795
+ "string"
44796
+ ],
44797
+ description: "Declarative event: canvas click",
44798
+ kind: "event-ref",
44799
+ emitPayloadSchema: [
44800
+ {
44801
+ name: "clientX",
44802
+ type: "number",
44803
+ required: true
44804
+ },
44805
+ {
44806
+ name: "clientY",
44807
+ type: "number",
44808
+ required: true
44809
+ },
44810
+ {
44811
+ name: "button",
44812
+ type: "number",
44813
+ required: true
44814
+ }
44815
+ ]
44816
+ },
44817
+ tileHoverEvent: {
44818
+ types: [
44819
+ "string"
44820
+ ],
44821
+ description: "Declarative event: tile hover",
44822
+ kind: "event-ref",
44823
+ emitPayloadSchema: [
44824
+ {
44825
+ name: "tileId",
44826
+ type: "string",
44827
+ required: true
44828
+ },
44829
+ {
44830
+ name: "x",
44831
+ type: "number",
44832
+ required: true
44833
+ },
44834
+ {
44835
+ name: "z",
44836
+ type: "number",
44837
+ required: true
44838
+ },
44839
+ {
44840
+ name: "type",
44841
+ type: "string",
44842
+ required: false
44843
+ }
44844
+ ]
44845
+ },
44846
+ tileLeaveEvent: {
44847
+ types: [
44848
+ "string"
44849
+ ],
44850
+ description: "Declarative event: tile leave",
44851
+ kind: "event-ref",
44852
+ emitPayloadSchema: []
44853
+ },
44854
+ unitAnimationEvent: {
44855
+ types: [
44856
+ "string"
44857
+ ],
44858
+ description: "Declarative event: unit animation",
44859
+ kind: "event-ref",
44860
+ emitPayloadSchema: [
44861
+ {
44862
+ name: "unitId",
44863
+ type: "string",
44864
+ required: true
44865
+ },
44866
+ {
44867
+ name: "state",
44868
+ type: "string",
44869
+ required: true
44870
+ },
44871
+ {
44872
+ name: "timestamp",
44873
+ type: "number",
44874
+ required: true
44875
+ }
44876
+ ]
44877
+ },
44878
+ cameraChangeEvent: {
44879
+ types: [
44880
+ "string"
44881
+ ],
44882
+ description: "Declarative event: camera change",
44883
+ kind: "event-ref",
44884
+ emitPayloadSchema: [
44885
+ {
44886
+ name: "position",
44887
+ type: "object",
44888
+ required: true
44889
+ },
44890
+ {
44891
+ name: "timestamp",
44892
+ type: "number",
44893
+ required: true
44894
+ }
44895
+ ]
44896
+ },
44897
+ loadingMessage: {
44898
+ types: [
44899
+ "string"
44900
+ ],
44901
+ description: "Loading message",
44902
+ default: "Loading 3D Scene..."
44903
+ },
44904
+ useInstancing: {
44905
+ types: [
44906
+ "boolean"
44907
+ ],
44908
+ description: "Whether to use instancing for tiles",
44909
+ default: true
44910
+ },
44911
+ validMoves: {
44912
+ types: [
44913
+ "array"
44914
+ ],
44915
+ description: "Valid move positions",
44916
+ items: {
44917
+ types: [
44918
+ "object"
44919
+ ],
44920
+ properties: {
44921
+ x: {
44922
+ types: [
44923
+ "number"
44924
+ ]
44925
+ },
44926
+ z: {
44927
+ types: [
44928
+ "number"
44929
+ ]
44930
+ }
44931
+ },
44932
+ required: [
44933
+ "x",
44934
+ "z"
44935
+ ]
44936
+ },
44937
+ default: []
44938
+ },
44939
+ attackTargets: {
44940
+ types: [
44941
+ "array"
44942
+ ],
44943
+ description: "Attack target positions",
44944
+ items: {
44945
+ types: [
44946
+ "object"
44947
+ ],
44948
+ properties: {
44949
+ x: {
44950
+ types: [
44951
+ "number"
44952
+ ]
44953
+ },
44954
+ z: {
44955
+ types: [
44956
+ "number"
44957
+ ]
44958
+ }
44959
+ },
44960
+ required: [
44961
+ "x",
44962
+ "z"
44963
+ ]
44964
+ },
44965
+ default: []
44966
+ },
44967
+ selectedTileIds: {
44968
+ types: [
44969
+ "array"
44970
+ ],
44971
+ description: "Selected tile IDs",
44972
+ items: {
44973
+ types: [
44974
+ "string"
44975
+ ]
44976
+ },
44977
+ default: []
44978
+ },
44979
+ selectedUnitId: {
44980
+ types: [
44981
+ "string"
44982
+ ],
44983
+ description: "Selected unit ID",
44984
+ default: null
44985
+ }
44986
+ }
44987
+ },
44988
+ "game-canvas-3d-battle-template": {
44989
+ type: "game-canvas-3d-battle-template",
44990
+ category: "game",
44991
+ tier: "templates",
44992
+ family: "game",
44993
+ description: "GameCanvas3DBattleTemplate Pure declarative template wrapper for 3D battle scenes. Optimized for tactical combat view with turn indicators. Page: Battle3DPage Entity: Battle3D ViewType: detail Events Emitted: - TILE_SELECTED - When a tile is clicked - UNIT_SELECTED - When a unit is clicked - UNIT_ATTACK - When attacking a unit - UNIT_MOVE - When moving a unit - END_TURN - When ending turn - EXIT_BATTLE - When exiting battle",
44994
+ suggestedFor: [
44995
+ "game",
44996
+ "canvas3",
44997
+ "battle",
44998
+ "template",
44999
+ "game canvas3 d battle template"
45000
+ ],
45001
+ typicalSize: "full",
45002
+ propsSchema: {
45003
+ entity: {
45004
+ types: [
45005
+ "object"
45006
+ ],
45007
+ description: "Entity data, the sole source of runtime state",
45008
+ required: true
45009
+ },
45010
+ className: {
45011
+ types: [
45012
+ "string"
45013
+ ],
45014
+ description: "External styling override"
45015
+ },
45016
+ cameraMode: {
45017
+ types: [
45018
+ "string"
45019
+ ],
45020
+ description: "3D camera mode - defaults to perspective for dramatic effect",
45021
+ enumValues: [
45022
+ "isometric",
45023
+ "perspective",
45024
+ "top-down"
45025
+ ],
45026
+ default: "perspective"
45027
+ },
45028
+ showGrid: {
45029
+ types: [
45030
+ "boolean"
45031
+ ],
45032
+ description: "Show grid helper",
45033
+ default: true
45034
+ },
45035
+ shadows: {
45036
+ types: [
45037
+ "boolean"
45038
+ ],
45039
+ description: "Enable shadows",
45040
+ default: true
45041
+ },
45042
+ backgroundColor: {
45043
+ types: [
45044
+ "string"
45045
+ ],
45046
+ description: "Background color - darker for battle atmosphere",
45047
+ default: "#2a1a1a"
45048
+ },
45049
+ tileClickEvent: {
45050
+ types: [
45051
+ "string"
45052
+ ],
45053
+ description: "Event name for tile clicks"
45054
+ },
45055
+ unitClickEvent: {
45056
+ types: [
45057
+ "string"
45058
+ ],
45059
+ description: "Event name for unit clicks"
45060
+ },
45061
+ unitAttackEvent: {
45062
+ types: [
45063
+ "string"
45064
+ ],
45065
+ description: "Event name for unit attack"
45066
+ },
45067
+ unitMoveEvent: {
45068
+ types: [
45069
+ "string"
45070
+ ],
45071
+ description: "Event name for unit move"
45072
+ },
45073
+ endTurnEvent: {
45074
+ types: [
45075
+ "string"
45076
+ ],
45077
+ description: "Event name for ending turn"
45078
+ },
45079
+ exitEvent: {
45080
+ types: [
45081
+ "string"
45082
+ ],
45083
+ description: "Event name for exiting battle"
45084
+ },
45085
+ selectedUnitId: {
45086
+ types: [
45087
+ "string"
45088
+ ],
45089
+ description: "Currently selected unit ID"
45090
+ },
45091
+ validMoves: {
42612
45092
  types: [
42613
45093
  "array"
42614
45094
  ],
42615
- description: "Alias for `columns`.",
45095
+ description: "Valid move positions",
42616
45096
  items: {
42617
45097
  types: [
42618
45098
  "object"
42619
45099
  ],
42620
45100
  properties: {
42621
- key: {
42622
- types: [
42623
- "string"
42624
- ]
42625
- },
42626
- field: {
42627
- types: [
42628
- "string"
42629
- ]
42630
- },
42631
- header: {
42632
- types: [
42633
- "string"
42634
- ]
42635
- },
42636
- label: {
42637
- types: [
42638
- "string"
42639
- ]
42640
- },
42641
- width: {
42642
- types: [
42643
- "string"
42644
- ]
42645
- },
42646
- align: {
42647
- types: [
42648
- "string"
42649
- ],
42650
- enumValues: [
42651
- "left",
42652
- "center",
42653
- "right"
42654
- ]
42655
- },
42656
- className: {
42657
- types: [
42658
- "string"
42659
- ]
42660
- },
42661
- weight: {
42662
- types: [
42663
- "string"
42664
- ],
42665
- enumValues: [
42666
- "normal",
42667
- "medium",
42668
- "semibold"
42669
- ]
42670
- },
42671
- format: {
42672
- types: [
42673
- "string"
42674
- ],
42675
- enumValues: [
42676
- "badge",
42677
- "date",
42678
- "currency",
42679
- "number",
42680
- "percent",
42681
- "boolean"
42682
- ]
42683
- },
42684
- icon: {
45101
+ x: {
42685
45102
  types: [
42686
- "icon",
42687
- "string"
45103
+ "number"
42688
45104
  ]
42689
45105
  },
42690
- sortable: {
45106
+ z: {
42691
45107
  types: [
42692
- "boolean"
45108
+ "number"
42693
45109
  ]
42694
45110
  }
42695
45111
  },
42696
45112
  required: [
42697
- "key"
45113
+ "x",
45114
+ "z"
42698
45115
  ]
42699
45116
  }
42700
45117
  },
42701
- itemActions: {
45118
+ attackTargets: {
42702
45119
  types: [
42703
45120
  "array"
42704
45121
  ],
42705
- description: "Per-row action buttons (trailing column).",
42706
- kind: "event-list",
42707
- eventField: "event",
45122
+ description: "Valid attack targets",
42708
45123
  items: {
42709
45124
  types: [
42710
45125
  "object"
42711
45126
  ],
42712
45127
  properties: {
42713
- label: {
42714
- types: [
42715
- "string"
42716
- ]
42717
- },
42718
- event: {
42719
- types: [
42720
- "string"
42721
- ]
42722
- },
42723
- icon: {
45128
+ x: {
42724
45129
  types: [
42725
- "icon",
42726
- "string"
45130
+ "number"
42727
45131
  ]
42728
45132
  },
42729
- variant: {
45133
+ z: {
42730
45134
  types: [
42731
- "string"
42732
- ],
42733
- enumValues: [
42734
- "primary",
42735
- "secondary",
42736
- "ghost",
42737
- "danger"
45135
+ "number"
42738
45136
  ]
42739
45137
  }
42740
45138
  },
42741
45139
  required: [
42742
- "label",
42743
- "event"
45140
+ "x",
45141
+ "z"
42744
45142
  ]
42745
45143
  }
42746
45144
  },
42747
- maxInlineActions: {
42748
- types: [
42749
- "number"
42750
- ],
42751
- description: 'Max inline action buttons before the rest collapse into a "\u22EF" overflow menu. Omit = all inline.'
42752
- },
42753
- selectable: {
45145
+ showTurnIndicator: {
42754
45146
  types: [
42755
45147
  "boolean"
42756
45148
  ],
42757
- description: "Render a leading checkbox column. Selection changes emit `selectEvent`.",
42758
- default: false
42759
- },
42760
- selectEvent: {
42761
- types: [
42762
- "string"
42763
- ],
42764
- description: "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
42765
- kind: "event"
42766
- },
42767
- selectedIds: {
42768
- types: [
42769
- "array"
42770
- ],
42771
- description: "Currently-selected ids (controlled). Falls back to local state when omitted.",
42772
- items: {
42773
- types: [
42774
- "string"
42775
- ]
42776
- }
42777
- },
42778
- sortEvent: {
45149
+ description: "Show turn indicator overlay"
45150
+ }
45151
+ }
45152
+ },
45153
+ "game-canvas-3d-castle-template": {
45154
+ type: "game-canvas-3d-castle-template",
45155
+ category: "game",
45156
+ tier: "templates",
45157
+ family: "game",
45158
+ description: "GameCanvas3DCastleTemplate Pure declarative template wrapper for 3D castle/settlement view. Shows castle layout with buildings and garrisoned units. Page: Castle3DPage, Settlement3DPage Entity: Castle3D, Settlement3D ViewType: detail Events Emitted: - BUILDING_SELECTED - When a building is clicked - UNIT_SELECTED - When a garrison unit is clicked - BUILD - When building/upgrading - RECRUIT - When recruiting units - EXIT - When exiting castle view",
45159
+ suggestedFor: [
45160
+ "game",
45161
+ "canvas3",
45162
+ "castle",
45163
+ "template",
45164
+ "game canvas3 d castle template"
45165
+ ],
45166
+ typicalSize: "full",
45167
+ propsSchema: {
45168
+ entity: {
42779
45169
  types: [
42780
- "string"
45170
+ "object"
42781
45171
  ],
42782
- description: "Event emitted on sortable-header click: UI:{sortEvent} with { column, direction }.",
42783
- kind: "event"
45172
+ description: "Entity data, the sole source of runtime state",
45173
+ required: true
42784
45174
  },
42785
- sortColumn: {
45175
+ className: {
42786
45176
  types: [
42787
45177
  "string"
42788
45178
  ],
42789
- description: "Current sort column (display hint for the active header arrow)."
45179
+ description: "External styling override"
42790
45180
  },
42791
- sortDirection: {
45181
+ cameraMode: {
42792
45182
  types: [
42793
45183
  "string"
42794
45184
  ],
42795
- description: "Current sort direction (display hint).",
45185
+ description: "3D camera mode",
42796
45186
  enumValues: [
42797
- "asc",
42798
- "desc"
42799
- ]
42800
- },
42801
- className: {
42802
- types: [
42803
- "string"
45187
+ "isometric",
45188
+ "perspective",
45189
+ "top-down"
42804
45190
  ],
42805
- description: "Additional CSS classes applied to the table root."
45191
+ default: "isometric"
42806
45192
  },
42807
- emptyMessage: {
45193
+ showGrid: {
42808
45194
  types: [
42809
- "string"
45195
+ "boolean"
42810
45196
  ],
42811
- description: "Message shown when there are no rows."
45197
+ description: "Show grid helper",
45198
+ default: true
42812
45199
  },
42813
- isLoading: {
45200
+ shadows: {
42814
45201
  types: [
42815
45202
  "boolean"
42816
45203
  ],
42817
- description: "Loading state.",
42818
- default: false
45204
+ description: "Enable shadows",
45205
+ default: true
42819
45206
  },
42820
- error: {
45207
+ backgroundColor: {
42821
45208
  types: [
42822
- "object"
42823
- ],
42824
- description: "Error state.",
42825
- properties: {
42826
- message: {
42827
- types: [
42828
- "string"
42829
- ]
42830
- },
42831
- name: {
42832
- types: [
42833
- "string"
42834
- ]
42835
- },
42836
- code: {
42837
- types: [
42838
- "string"
42839
- ]
42840
- },
42841
- stack: {
42842
- types: [
42843
- "string"
42844
- ]
42845
- }
42846
- },
42847
- propertyRequired: [
42848
- "message"
45209
+ "string"
42849
45210
  ],
42850
- default: null
45211
+ description: "Background color",
45212
+ default: "#1e1e2e"
42851
45213
  },
42852
- groupBy: {
45214
+ buildingClickEvent: {
42853
45215
  types: [
42854
45216
  "string"
42855
45217
  ],
42856
- description: "Group rows under section headers by a field value."
45218
+ description: "Event name for building clicks"
42857
45219
  },
42858
- pageSize: {
45220
+ unitClickEvent: {
42859
45221
  types: [
42860
- "number"
45222
+ "string"
42861
45223
  ],
42862
- description: 'Max rows before a "Show More" button. Defaults to 0 (show all).',
42863
- default: 0
45224
+ description: "Event name for unit clicks"
42864
45225
  },
42865
- children: {
45226
+ buildEvent: {
42866
45227
  types: [
42867
- "function"
42868
- ],
42869
- description: "Custom per-row render. When provided, the whole row content is delegated to this function (columns are ignored for the body; the header still renders). Mirrors DataList's children render prop.",
42870
- kind: "callback",
42871
- callbackArgs: [
42872
- {
42873
- name: "item",
42874
- type: "object"
42875
- },
42876
- {
42877
- name: "index",
42878
- type: "number"
42879
- }
45228
+ "string"
42880
45229
  ],
42881
- renderCallback: true
45230
+ description: "Event name for build action"
42882
45231
  },
42883
- renderItem: {
45232
+ recruitEvent: {
42884
45233
  types: [
42885
- "function"
42886
- ],
42887
- description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
42888
- kind: "callback",
42889
- callbackArgs: [
42890
- {
42891
- name: "item",
42892
- type: "object"
42893
- },
42894
- {
42895
- name: "index",
42896
- type: "number"
42897
- }
45234
+ "string"
42898
45235
  ],
42899
- renderCallback: true
45236
+ description: "Event name for recruit action"
42900
45237
  },
42901
- look: {
45238
+ exitEvent: {
42902
45239
  types: [
42903
45240
  "string"
42904
45241
  ],
42905
- description: "Layer 2 visual treatment \u2014 mirrors the data-list / entity-table look enum so authors share one knob name across row renderers.",
42906
- enumValues: [
42907
- "dense",
42908
- "spacious",
42909
- "striped",
42910
- "borderless",
42911
- "bordered"
45242
+ description: "Event name for exit"
45243
+ },
45244
+ selectedBuildingId: {
45245
+ types: [
45246
+ "string"
42912
45247
  ],
42913
- default: "dense"
42914
- }
42915
- }
42916
- },
42917
- "step-flow": {
42918
- type: "step-flow",
42919
- category: "component",
42920
- tier: "molecules",
42921
- family: "marketing",
42922
- description: "StepFlow component",
42923
- suggestedFor: [
42924
- "step",
42925
- "flow",
42926
- "step flow"
42927
- ],
42928
- typicalSize: "medium",
42929
- propsSchema: {
42930
- steps: {
45248
+ description: "Currently selected building ID"
45249
+ },
45250
+ availableBuildSites: {
42931
45251
  types: [
42932
45252
  "array"
42933
45253
  ],
42934
- description: "steps prop",
42935
- required: true,
45254
+ description: "Available build positions",
42936
45255
  items: {
42937
45256
  types: [
42938
45257
  "object"
42939
45258
  ],
42940
45259
  properties: {
42941
- number: {
45260
+ x: {
42942
45261
  types: [
42943
45262
  "number"
42944
45263
  ]
42945
45264
  },
42946
- title: {
42947
- types: [
42948
- "string"
42949
- ]
42950
- },
42951
- description: {
42952
- types: [
42953
- "string"
42954
- ]
42955
- },
42956
- icon: {
45265
+ z: {
42957
45266
  types: [
42958
- "icon",
42959
- "string"
45267
+ "number"
42960
45268
  ]
42961
45269
  }
42962
45270
  },
42963
45271
  required: [
42964
- "title",
42965
- "description"
45272
+ "x",
45273
+ "z"
42966
45274
  ]
42967
45275
  }
42968
45276
  },
42969
- orientation: {
42970
- types: [
42971
- "string"
42972
- ],
42973
- description: "orientation prop",
42974
- enumValues: [
42975
- "horizontal",
42976
- "vertical"
42977
- ],
42978
- default: "horizontal"
42979
- },
42980
- showConnectors: {
45277
+ showHeader: {
42981
45278
  types: [
42982
45279
  "boolean"
42983
45280
  ],
42984
- description: "showConnectors prop",
45281
+ description: "Show castle name header",
42985
45282
  default: true
42986
45283
  },
42987
- className: {
45284
+ selectedTileIds: {
42988
45285
  types: [
42989
- "string"
45286
+ "array"
42990
45287
  ],
42991
- description: "className prop"
45288
+ description: "Pre-computed selected tile IDs array",
45289
+ items: {
45290
+ types: [
45291
+ "string"
45292
+ ]
45293
+ },
45294
+ default: []
42992
45295
  }
42993
45296
  }
42994
45297
  },
42995
- "stat-card": {
42996
- type: "stat-card",
42997
- category: "display",
42998
- tier: "atoms",
42999
- family: "marketing",
43000
- description: "StatCard component",
45298
+ "game-canvas-3d-world-map-template": {
45299
+ type: "game-canvas-3d-world-map-template",
45300
+ category: "game",
45301
+ tier: "templates",
45302
+ family: "game",
45303
+ description: "GameCanvas3DWorldMapTemplate Pure declarative template wrapper for 3D world map. No hooks, no callbacks, no local state -- just entity data and config props. Page: WorldMap3DPage Entity: WorldMap3D ViewType: detail Events Emitted: - TILE_SELECTED - When a tile is clicked ({ tileId, x, z, type }) - UNIT_SELECTED - When a unit is clicked ({ unitId, x, z, name }) - FEATURE_SELECTED - When a feature is clicked ({ featureId, x, z, type }) - TILE_HOVERED - When hovering over a tile ({ tileId, x, z }) - TILE_LEAVE - When leaving a tile ({}) - CAMERA_CHANGED - When camera position changes ({ position })",
43001
45304
  suggestedFor: [
43002
- "stat",
43003
- "card",
43004
- "stat card"
45305
+ "game",
45306
+ "canvas3",
45307
+ "world",
45308
+ "map",
45309
+ "template",
45310
+ "game canvas3 d world map template"
43005
45311
  ],
43006
- typicalSize: "small",
45312
+ typicalSize: "full",
43007
45313
  propsSchema: {
43008
- value: {
45314
+ entity: {
43009
45315
  types: [
43010
- "string"
45316
+ "object"
43011
45317
  ],
43012
- description: "The stat value to display prominently",
45318
+ description: "Entity data, the sole source of runtime state",
43013
45319
  required: true
43014
45320
  },
43015
- label: {
45321
+ className: {
43016
45322
  types: [
43017
45323
  "string"
43018
45324
  ],
43019
- description: "Label describing the value",
43020
- required: true
45325
+ description: "External styling override"
43021
45326
  },
43022
- size: {
45327
+ cameraMode: {
43023
45328
  types: [
43024
45329
  "string"
43025
45330
  ],
43026
- description: "Size of the value text",
45331
+ description: "3D camera mode",
43027
45332
  enumValues: [
43028
- "sm",
43029
- "md",
43030
- "lg"
45333
+ "isometric",
45334
+ "perspective",
45335
+ "top-down"
43031
45336
  ],
43032
- default: "md"
45337
+ default: "isometric"
43033
45338
  },
43034
- className: {
45339
+ showGrid: {
45340
+ types: [
45341
+ "boolean"
45342
+ ],
45343
+ description: "Show grid helper",
45344
+ default: true
45345
+ },
45346
+ showCoordinates: {
45347
+ types: [
45348
+ "boolean"
45349
+ ],
45350
+ description: "Show coordinate overlay",
45351
+ default: true
45352
+ },
45353
+ showTileInfo: {
45354
+ types: [
45355
+ "boolean"
45356
+ ],
45357
+ description: "Show tile info on hover",
45358
+ default: true
45359
+ },
45360
+ shadows: {
45361
+ types: [
45362
+ "boolean"
45363
+ ],
45364
+ description: "Enable shadows",
45365
+ default: true
45366
+ },
45367
+ backgroundColor: {
43035
45368
  types: [
43036
45369
  "string"
43037
45370
  ],
43038
- description: "Additional class names"
45371
+ description: "Background color",
45372
+ default: "#1a1a2e"
45373
+ },
45374
+ tileClickEvent: {
45375
+ types: [
45376
+ "string"
45377
+ ],
45378
+ description: "Event name for tile clicks"
45379
+ },
45380
+ unitClickEvent: {
45381
+ types: [
45382
+ "string"
45383
+ ],
45384
+ description: "Event name for unit clicks"
45385
+ },
45386
+ featureClickEvent: {
45387
+ types: [
45388
+ "string"
45389
+ ],
45390
+ description: "Event name for feature clicks"
45391
+ },
45392
+ tileHoverEvent: {
45393
+ types: [
45394
+ "string"
45395
+ ],
45396
+ description: "Event name for tile hover"
45397
+ },
45398
+ tileLeaveEvent: {
45399
+ types: [
45400
+ "string"
45401
+ ],
45402
+ description: "Event name for tile leave"
45403
+ },
45404
+ cameraChangeEvent: {
45405
+ types: [
45406
+ "string"
45407
+ ],
45408
+ description: "Event name for camera changes"
45409
+ },
45410
+ exitEvent: {
45411
+ types: [
45412
+ "string"
45413
+ ],
45414
+ description: "Exit/back event name"
45415
+ },
45416
+ selectedUnitId: {
45417
+ types: [
45418
+ "string"
45419
+ ],
45420
+ description: "Currently selected unit ID"
45421
+ },
45422
+ validMoves: {
45423
+ types: [
45424
+ "array"
45425
+ ],
45426
+ description: "Valid move positions for selected unit",
45427
+ items: {
45428
+ types: [
45429
+ "object"
45430
+ ],
45431
+ properties: {
45432
+ x: {
45433
+ types: [
45434
+ "number"
45435
+ ]
45436
+ },
45437
+ z: {
45438
+ types: [
45439
+ "number"
45440
+ ]
45441
+ }
45442
+ },
45443
+ required: [
45444
+ "x",
45445
+ "z"
45446
+ ]
45447
+ }
45448
+ },
45449
+ attackTargets: {
45450
+ types: [
45451
+ "array"
45452
+ ],
45453
+ description: "Attack target positions",
45454
+ items: {
45455
+ types: [
45456
+ "object"
45457
+ ],
45458
+ properties: {
45459
+ x: {
45460
+ types: [
45461
+ "number"
45462
+ ]
45463
+ },
45464
+ z: {
45465
+ types: [
45466
+ "number"
45467
+ ]
45468
+ }
45469
+ },
45470
+ required: [
45471
+ "x",
45472
+ "z"
45473
+ ]
45474
+ }
43039
45475
  }
43040
45476
  }
43041
45477
  }
@@ -43665,7 +46101,7 @@ var integrators_registry_default = {
43665
46101
  // src/component-mapping.json
43666
46102
  var component_mapping_default = {
43667
46103
  version: "1.0.0",
43668
- exportedAt: "2026-06-17T02:07:52.301Z",
46104
+ exportedAt: "2026-06-17T08:23:54.917Z",
43669
46105
  mappings: {
43670
46106
  "page-header": {
43671
46107
  component: "PageHeader",
@@ -45096,7 +47532,7 @@ var component_mapping_default = {
45096
47532
  },
45097
47533
  "feature-renderer": {
45098
47534
  component: "FeatureRenderer",
45099
- importPath: "@/components/organisms/FeatureRenderer",
47535
+ importPath: "@/components/molecules/FeatureRenderer",
45100
47536
  category: "game"
45101
47537
  },
45102
47538
  "dashboard-grid": {
@@ -45163,6 +47599,26 @@ var component_mapping_default = {
45163
47599
  component: "StatCard",
45164
47600
  importPath: "@/components/atoms/StatCard",
45165
47601
  category: "display"
47602
+ },
47603
+ "game-canvas-3d": {
47604
+ component: "GameCanvas3D",
47605
+ importPath: "@almadar/ui/components/organisms/game/three",
47606
+ category: "game"
47607
+ },
47608
+ "game-canvas-3d-battle-template": {
47609
+ component: "GameCanvas3DBattleTemplate",
47610
+ importPath: "@/components/templates/GameCanvas3DBattleTemplate",
47611
+ category: "game"
47612
+ },
47613
+ "game-canvas-3d-castle-template": {
47614
+ component: "GameCanvas3DCastleTemplate",
47615
+ importPath: "@/components/templates/GameCanvas3DCastleTemplate",
47616
+ category: "game"
47617
+ },
47618
+ "game-canvas-3d-world-map-template": {
47619
+ component: "GameCanvas3DWorldMapTemplate",
47620
+ importPath: "@/components/templates/GameCanvas3DWorldMapTemplate",
47621
+ category: "game"
45166
47622
  }
45167
47623
  }
45168
47624
  };
@@ -45170,7 +47626,7 @@ var component_mapping_default = {
45170
47626
  // src/event-contracts.json
45171
47627
  var event_contracts_default = {
45172
47628
  version: "1.0.0",
45173
- exportedAt: "2026-06-17T02:07:52.301Z",
47629
+ exportedAt: "2026-06-17T08:23:54.917Z",
45174
47630
  contracts: {
45175
47631
  form: {
45176
47632
  emits: [