@almadar/core 10.61.0 → 10.63.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.
@@ -1,10 +1,10 @@
1
- import { A as AnyPatternConfig, h as RenderBinding, F as FieldValue, aY as PatternType } from '../effect-a1W_hXyG.js';
2
- export { aR as PATTERN_TYPES, aV as PatternConfig, aW as PatternProps, aX as PatternPropsMap, cO as isValidPatternType } from '../effect-a1W_hXyG.js';
1
+ import { A as AnyPatternConfig, h as RenderBinding, F as FieldValue, a_ as PatternType } from '../effect-CgDrWfKW.js';
2
+ export { aT as PATTERN_TYPES, aX as PatternConfig, aY as PatternProps, aZ as PatternPropsMap, cR as isValidPatternType } from '../effect-CgDrWfKW.js';
3
3
  import { d as EventPayloadValue, a as EventPayload, J as JsonValue } from '../expression-Fk8bQWef.js';
4
4
  import 'zod';
5
5
 
6
6
  var version$3 = "1.0.0";
7
- var exportedAt$3 = "2026-08-19T03:03:56.666Z";
7
+ var exportedAt$3 = "2026-08-20T23:14:19.545Z";
8
8
  var patterns = {
9
9
  "entity-table": {
10
10
  type: "entity-table",
@@ -1242,6 +1242,7 @@ var patterns = {
1242
1242
  tier: "organisms",
1243
1243
  family: "core",
1244
1244
  description: "Detail view panel for drawers/sidebars",
1245
+ fieldsContract: "display",
1245
1246
  suggestedFor: [
1246
1247
  "drawer content",
1247
1248
  "side panels",
@@ -1523,6 +1524,54 @@ var patterns = {
1523
1524
  ]
1524
1525
  }
1525
1526
  },
1527
+ backAction: {
1528
+ types: [
1529
+ "object"
1530
+ ],
1531
+ description: "Navigation-back affordance. Renders top-LEFT before the title (OS/back convention — Almadar_UX §8.4), spatially separated from the right-aligned action buttons + close X. Never inferred from actions[] labels.",
1532
+ properties: {
1533
+ label: {
1534
+ types: [
1535
+ "string"
1536
+ ]
1537
+ },
1538
+ icon: {
1539
+ types: [
1540
+ "icon",
1541
+ "string"
1542
+ ]
1543
+ },
1544
+ onClick: {
1545
+ types: [
1546
+ "function"
1547
+ ]
1548
+ },
1549
+ event: {
1550
+ types: [
1551
+ "string"
1552
+ ]
1553
+ },
1554
+ navigatesTo: {
1555
+ types: [
1556
+ "string"
1557
+ ]
1558
+ },
1559
+ variant: {
1560
+ types: [
1561
+ "string"
1562
+ ],
1563
+ enumValues: [
1564
+ "primary",
1565
+ "secondary",
1566
+ "ghost",
1567
+ "danger"
1568
+ ]
1569
+ }
1570
+ },
1571
+ propertyRequired: [
1572
+ "label"
1573
+ ]
1574
+ },
1526
1575
  footer: {
1527
1576
  types: [
1528
1577
  "node"
@@ -1557,6 +1606,26 @@ var patterns = {
1557
1606
  types: [
1558
1607
  "string"
1559
1608
  ]
1609
+ },
1610
+ type: {
1611
+ types: [
1612
+ "string"
1613
+ ]
1614
+ },
1615
+ values: {
1616
+ types: [
1617
+ "array"
1618
+ ],
1619
+ items: {
1620
+ types: [
1621
+ "string"
1622
+ ]
1623
+ }
1624
+ },
1625
+ relation: {
1626
+ types: [
1627
+ "string"
1628
+ ]
1560
1629
  }
1561
1630
  },
1562
1631
  required: [
@@ -1621,6 +1690,48 @@ var patterns = {
1621
1690
  "boolean"
1622
1691
  ],
1623
1692
  description: "Show actions flag"
1693
+ },
1694
+ relationsData: {
1695
+ types: [
1696
+ "object"
1697
+ ],
1698
+ description: "Relation display data: { fieldName: [{value, label}] } — injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names.",
1699
+ mapValue: {
1700
+ types: [
1701
+ "array"
1702
+ ],
1703
+ items: {
1704
+ types: [
1705
+ "object"
1706
+ ],
1707
+ properties: {
1708
+ value: {
1709
+ types: [
1710
+ "string"
1711
+ ]
1712
+ },
1713
+ label: {
1714
+ types: [
1715
+ "string"
1716
+ ]
1717
+ },
1718
+ description: {
1719
+ types: [
1720
+ "string"
1721
+ ]
1722
+ },
1723
+ disabled: {
1724
+ types: [
1725
+ "boolean"
1726
+ ]
1727
+ }
1728
+ },
1729
+ required: [
1730
+ "value",
1731
+ "label"
1732
+ ]
1733
+ }
1734
+ }
1624
1735
  }
1625
1736
  }
1626
1737
  },
@@ -1696,9 +1807,10 @@ var patterns = {
1696
1807
  },
1697
1808
  status: {
1698
1809
  types: [
1699
- "object"
1810
+ "object",
1811
+ "string"
1700
1812
  ],
1701
- description: "Status badge",
1813
+ description: "Status badge — a bare string (an entity's status field bound directly, e.g. `status: @entity.status`) renders as a default-variant badge",
1702
1814
  properties: {
1703
1815
  label: {
1704
1816
  types: [
@@ -1893,6 +2005,7 @@ var patterns = {
1893
2005
  tier: "organisms",
1894
2006
  family: "core",
1895
2007
  description: "Complete form with fields and actions",
2008
+ fieldsContract: "form",
1896
2009
  suggestedFor: [
1897
2010
  "create forms",
1898
2011
  "edit forms",
@@ -2125,6 +2238,11 @@ var patterns = {
2125
2238
  types: [
2126
2239
  "boolean"
2127
2240
  ]
2241
+ },
2242
+ hint: {
2243
+ types: [
2244
+ "string"
2245
+ ]
2128
2246
  }
2129
2247
  }
2130
2248
  }
@@ -2279,6 +2397,42 @@ var patterns = {
2279
2397
  "default": {
2280
2398
  }
2281
2399
  },
2400
+ fieldOverrides: {
2401
+ types: [
2402
+ "array"
2403
+ ],
2404
+ description: "Per-field display-copy overrides (label/placeholder/hint), merged by field name over the schema-enriched fields.",
2405
+ items: {
2406
+ types: [
2407
+ "object"
2408
+ ],
2409
+ properties: {
2410
+ name: {
2411
+ types: [
2412
+ "string"
2413
+ ]
2414
+ },
2415
+ label: {
2416
+ types: [
2417
+ "string"
2418
+ ]
2419
+ },
2420
+ placeholder: {
2421
+ types: [
2422
+ "string"
2423
+ ]
2424
+ },
2425
+ hint: {
2426
+ types: [
2427
+ "string"
2428
+ ]
2429
+ }
2430
+ },
2431
+ required: [
2432
+ "name"
2433
+ ]
2434
+ }
2435
+ },
2282
2436
  conditionalFields: {
2283
2437
  types: [
2284
2438
  "object",
@@ -2405,7 +2559,12 @@ var patterns = {
2405
2559
  formValues: {
2406
2560
  types: [
2407
2561
  "object"
2408
- ]
2562
+ ],
2563
+ mapValue: {
2564
+ types: [
2565
+ "object"
2566
+ ]
2567
+ }
2409
2568
  },
2410
2569
  globalVariables: {
2411
2570
  types: [
@@ -2432,7 +2591,12 @@ var patterns = {
2432
2591
  entity: {
2433
2592
  types: [
2434
2593
  "object"
2435
- ]
2594
+ ],
2595
+ mapValue: {
2596
+ types: [
2597
+ "object"
2598
+ ]
2599
+ }
2436
2600
  }
2437
2601
  },
2438
2602
  propertyRequired: [
@@ -2621,6 +2785,11 @@ var patterns = {
2621
2785
  types: [
2622
2786
  "boolean"
2623
2787
  ]
2788
+ },
2789
+ hint: {
2790
+ types: [
2791
+ "string"
2792
+ ]
2624
2793
  }
2625
2794
  }
2626
2795
  }
@@ -2705,6 +2874,7 @@ var patterns = {
2705
2874
  tier: "organisms",
2706
2875
  family: "core",
2707
2876
  description: "Alias for form — Complete form with fields and actions",
2877
+ fieldsContract: "form",
2708
2878
  suggestedFor: [
2709
2879
  "create forms",
2710
2880
  "edit forms",
@@ -2937,6 +3107,11 @@ var patterns = {
2937
3107
  types: [
2938
3108
  "boolean"
2939
3109
  ]
3110
+ },
3111
+ hint: {
3112
+ types: [
3113
+ "string"
3114
+ ]
2940
3115
  }
2941
3116
  }
2942
3117
  }
@@ -3091,6 +3266,42 @@ var patterns = {
3091
3266
  "default": {
3092
3267
  }
3093
3268
  },
3269
+ fieldOverrides: {
3270
+ types: [
3271
+ "array"
3272
+ ],
3273
+ description: "Per-field display-copy overrides (label/placeholder/hint), merged by field name over the schema-enriched fields.",
3274
+ items: {
3275
+ types: [
3276
+ "object"
3277
+ ],
3278
+ properties: {
3279
+ name: {
3280
+ types: [
3281
+ "string"
3282
+ ]
3283
+ },
3284
+ label: {
3285
+ types: [
3286
+ "string"
3287
+ ]
3288
+ },
3289
+ placeholder: {
3290
+ types: [
3291
+ "string"
3292
+ ]
3293
+ },
3294
+ hint: {
3295
+ types: [
3296
+ "string"
3297
+ ]
3298
+ }
3299
+ },
3300
+ required: [
3301
+ "name"
3302
+ ]
3303
+ }
3304
+ },
3094
3305
  conditionalFields: {
3095
3306
  types: [
3096
3307
  "object",
@@ -3217,7 +3428,12 @@ var patterns = {
3217
3428
  formValues: {
3218
3429
  types: [
3219
3430
  "object"
3220
- ]
3431
+ ],
3432
+ mapValue: {
3433
+ types: [
3434
+ "object"
3435
+ ]
3436
+ }
3221
3437
  },
3222
3438
  globalVariables: {
3223
3439
  types: [
@@ -3244,7 +3460,12 @@ var patterns = {
3244
3460
  entity: {
3245
3461
  types: [
3246
3462
  "object"
3247
- ]
3463
+ ],
3464
+ mapValue: {
3465
+ types: [
3466
+ "object"
3467
+ ]
3468
+ }
3248
3469
  }
3249
3470
  },
3250
3471
  propertyRequired: [
@@ -3433,6 +3654,11 @@ var patterns = {
3433
3654
  types: [
3434
3655
  "boolean"
3435
3656
  ]
3657
+ },
3658
+ hint: {
3659
+ types: [
3660
+ "string"
3661
+ ]
3436
3662
  }
3437
3663
  }
3438
3664
  }
@@ -12870,7 +13096,7 @@ var patterns = {
12870
13096
  types: [
12871
13097
  "object"
12872
13098
  ],
12873
- description: "Current user info (optional - auto-populated from auth context if not provided)",
13099
+ description: "Current user info (optional - auto-populated from auth context if not provided). Accepts `null` as well as `undefined`: the `.lolo` substrate's signed-out spelling is `(if @config.viewerName {…} null)`, and the compiled path passes that `null` through verbatim.",
12874
13100
  properties: {
12875
13101
  name: {
12876
13102
  types: [
@@ -12889,8 +13115,7 @@ var patterns = {
12889
13115
  }
12890
13116
  },
12891
13117
  propertyRequired: [
12892
- "name",
12893
- "email"
13118
+ "name"
12894
13119
  ]
12895
13120
  },
12896
13121
  headerActions: {
@@ -40159,6 +40384,28 @@ var patterns = {
40159
40384
  }
40160
40385
  ]
40161
40386
  },
40387
+ keyMap: {
40388
+ types: [
40389
+ "object"
40390
+ ],
40391
+ description: "Maps a keydown `e.code` → the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}` — same contract as the game canvas keyMap.",
40392
+ mapValue: {
40393
+ types: [
40394
+ "string"
40395
+ ]
40396
+ }
40397
+ },
40398
+ keyUpMap: {
40399
+ types: [
40400
+ "object"
40401
+ ],
40402
+ description: "Maps a keyup `e.code` → the board's SEMANTIC event.",
40403
+ mapValue: {
40404
+ types: [
40405
+ "string"
40406
+ ]
40407
+ }
40408
+ },
40162
40409
  isLoading: {
40163
40410
  types: [
40164
40411
  "boolean"
@@ -46899,6 +47146,566 @@ var patterns = {
46899
47146
  ]
46900
47147
  }
46901
47148
  }
47149
+ },
47150
+ "fx-overlay": {
47151
+ type: "fx-overlay",
47152
+ category: "container",
47153
+ tier: "molecules",
47154
+ family: "core",
47155
+ description: "FxOverlay component",
47156
+ suggestedFor: [
47157
+ "overlay",
47158
+ "fx overlay"
47159
+ ],
47160
+ typicalSize: "medium",
47161
+ propsSchema: {
47162
+ items: {
47163
+ types: [
47164
+ "array"
47165
+ ],
47166
+ description: "Live screen-space fx entries (the mechanic's fx list filtered to `space == \"screen\"`); mount starts each item's animation, ttl decay unmounts it.",
47167
+ required: true,
47168
+ items: {
47169
+ types: [
47170
+ "object"
47171
+ ],
47172
+ properties: {
47173
+ id: {
47174
+ types: [
47175
+ "string"
47176
+ ]
47177
+ },
47178
+ type: {
47179
+ types: [
47180
+ "string"
47181
+ ]
47182
+ },
47183
+ effect: {
47184
+ types: [
47185
+ "string"
47186
+ ],
47187
+ enumValues: [
47188
+ "confetti",
47189
+ "flash",
47190
+ "shake",
47191
+ "sparkle",
47192
+ "float-text",
47193
+ "streak-glow"
47194
+ ]
47195
+ },
47196
+ message: {
47197
+ types: [
47198
+ "string"
47199
+ ]
47200
+ },
47201
+ color: {
47202
+ types: [
47203
+ "string"
47204
+ ]
47205
+ },
47206
+ size: {
47207
+ types: [
47208
+ "number"
47209
+ ]
47210
+ },
47211
+ x: {
47212
+ types: [
47213
+ "number"
47214
+ ]
47215
+ },
47216
+ z: {
47217
+ types: [
47218
+ "number"
47219
+ ]
47220
+ },
47221
+ y: {
47222
+ types: [
47223
+ "number"
47224
+ ]
47225
+ },
47226
+ ttl: {
47227
+ types: [
47228
+ "number"
47229
+ ]
47230
+ },
47231
+ maxTtl: {
47232
+ types: [
47233
+ "number"
47234
+ ]
47235
+ },
47236
+ bornAt: {
47237
+ types: [
47238
+ "number"
47239
+ ]
47240
+ },
47241
+ space: {
47242
+ types: [
47243
+ "string"
47244
+ ],
47245
+ enumValues: [
47246
+ "world",
47247
+ "screen"
47248
+ ]
47249
+ },
47250
+ particleCount: {
47251
+ types: [
47252
+ "number"
47253
+ ]
47254
+ },
47255
+ vx: {
47256
+ types: [
47257
+ "number"
47258
+ ]
47259
+ },
47260
+ vy: {
47261
+ types: [
47262
+ "number"
47263
+ ]
47264
+ },
47265
+ vz: {
47266
+ types: [
47267
+ "number"
47268
+ ]
47269
+ }
47270
+ },
47271
+ required: [
47272
+ "id",
47273
+ "type",
47274
+ "ttl"
47275
+ ]
47276
+ }
47277
+ },
47278
+ tickMs: {
47279
+ types: [
47280
+ "number"
47281
+ ],
47282
+ description: "The fx mechanic's decay tick period in ms; per-item animation duration = maxTtl × tickMs. Default 500."
47283
+ },
47284
+ children: {
47285
+ types: [
47286
+ "node"
47287
+ ],
47288
+ description: "Wrapped content — the `shake` target and the overlay's bounds."
47289
+ },
47290
+ className: {
47291
+ types: [
47292
+ "string"
47293
+ ],
47294
+ description: "Additional class names on the outermost element."
47295
+ }
47296
+ }
47297
+ },
47298
+ "draw-fx-layer": {
47299
+ type: "draw-fx-layer",
47300
+ category: "game",
47301
+ tier: "molecules",
47302
+ family: "game",
47303
+ description: "DrawFxLayer component",
47304
+ suggestedFor: [
47305
+ "draw",
47306
+ "layer",
47307
+ "draw fx layer"
47308
+ ],
47309
+ typicalSize: "medium",
47310
+ propsSchema: {
47311
+ id: {
47312
+ types: [
47313
+ "string"
47314
+ ],
47315
+ description: "Optional source-tagged hit-test handle — the host indexes the drawable's ScenePos→id so a pointer/raycast at that cell resolves to this id (unit/entity click). No id → the host emits only the coordinate (tile click)."
47316
+ },
47317
+ type: {
47318
+ types: [
47319
+ "unknown"
47320
+ ],
47321
+ description: "type prop",
47322
+ required: true
47323
+ },
47324
+ items: {
47325
+ types: [
47326
+ "array"
47327
+ ],
47328
+ description: "The live fx entries — the mechanic's `@entity.fx` list passed whole; `space: \"screen\"` entries are skipped (the overlay owns those).",
47329
+ required: true,
47330
+ items: {
47331
+ types: [
47332
+ "object"
47333
+ ],
47334
+ properties: {
47335
+ id: {
47336
+ types: [
47337
+ "string"
47338
+ ]
47339
+ },
47340
+ type: {
47341
+ types: [
47342
+ "string"
47343
+ ]
47344
+ },
47345
+ position: {
47346
+ types: [
47347
+ "object"
47348
+ ],
47349
+ scenePos: true,
47350
+ properties: {
47351
+ x: {
47352
+ types: [
47353
+ "number"
47354
+ ]
47355
+ },
47356
+ y: {
47357
+ types: [
47358
+ "number"
47359
+ ]
47360
+ },
47361
+ z: {
47362
+ types: [
47363
+ "number"
47364
+ ]
47365
+ }
47366
+ },
47367
+ required: [
47368
+ "x",
47369
+ "y"
47370
+ ]
47371
+ },
47372
+ x: {
47373
+ types: [
47374
+ "number"
47375
+ ]
47376
+ },
47377
+ z: {
47378
+ types: [
47379
+ "number"
47380
+ ]
47381
+ },
47382
+ y: {
47383
+ types: [
47384
+ "number"
47385
+ ]
47386
+ },
47387
+ message: {
47388
+ types: [
47389
+ "string"
47390
+ ]
47391
+ },
47392
+ ttl: {
47393
+ types: [
47394
+ "number"
47395
+ ]
47396
+ },
47397
+ maxTtl: {
47398
+ types: [
47399
+ "number"
47400
+ ]
47401
+ },
47402
+ bornAt: {
47403
+ types: [
47404
+ "number"
47405
+ ]
47406
+ },
47407
+ space: {
47408
+ types: [
47409
+ "string"
47410
+ ],
47411
+ enumValues: [
47412
+ "world",
47413
+ "screen"
47414
+ ]
47415
+ },
47416
+ effect: {
47417
+ types: [
47418
+ "string"
47419
+ ],
47420
+ enumValues: [
47421
+ "confetti",
47422
+ "flash",
47423
+ "shake",
47424
+ "sparkle",
47425
+ "float-text",
47426
+ "streak-glow"
47427
+ ]
47428
+ },
47429
+ color: {
47430
+ types: [
47431
+ "string"
47432
+ ]
47433
+ },
47434
+ size: {
47435
+ types: [
47436
+ "number"
47437
+ ]
47438
+ },
47439
+ vx: {
47440
+ types: [
47441
+ "number"
47442
+ ]
47443
+ },
47444
+ vy: {
47445
+ types: [
47446
+ "number"
47447
+ ]
47448
+ },
47449
+ vz: {
47450
+ types: [
47451
+ "number"
47452
+ ]
47453
+ },
47454
+ particleCount: {
47455
+ types: [
47456
+ "number"
47457
+ ]
47458
+ }
47459
+ },
47460
+ required: [
47461
+ "id",
47462
+ "type",
47463
+ "x",
47464
+ "ttl"
47465
+ ]
47466
+ }
47467
+ },
47468
+ presets: {
47469
+ types: [
47470
+ "array"
47471
+ ],
47472
+ description: "Consumer-declared effect vocabulary — one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst.",
47473
+ items: {
47474
+ types: [
47475
+ "object"
47476
+ ],
47477
+ properties: {
47478
+ type: {
47479
+ types: [
47480
+ "string"
47481
+ ]
47482
+ },
47483
+ color: {
47484
+ types: [
47485
+ "string"
47486
+ ]
47487
+ },
47488
+ color2: {
47489
+ types: [
47490
+ "string"
47491
+ ]
47492
+ },
47493
+ size: {
47494
+ types: [
47495
+ "number"
47496
+ ]
47497
+ },
47498
+ shape: {
47499
+ types: [
47500
+ "string"
47501
+ ],
47502
+ enumValues: [
47503
+ "spark",
47504
+ "ring",
47505
+ "puff",
47506
+ "streak"
47507
+ ]
47508
+ },
47509
+ count: {
47510
+ types: [
47511
+ "number"
47512
+ ]
47513
+ },
47514
+ glow: {
47515
+ types: [
47516
+ "number"
47517
+ ]
47518
+ },
47519
+ gravity: {
47520
+ types: [
47521
+ "number"
47522
+ ]
47523
+ },
47524
+ vx: {
47525
+ types: [
47526
+ "number"
47527
+ ]
47528
+ },
47529
+ vy: {
47530
+ types: [
47531
+ "number"
47532
+ ]
47533
+ },
47534
+ vz: {
47535
+ types: [
47536
+ "number"
47537
+ ]
47538
+ },
47539
+ space: {
47540
+ types: [
47541
+ "string"
47542
+ ],
47543
+ enumValues: [
47544
+ "world",
47545
+ "screen"
47546
+ ]
47547
+ },
47548
+ effect: {
47549
+ types: [
47550
+ "string"
47551
+ ],
47552
+ enumValues: [
47553
+ "confetti",
47554
+ "flash",
47555
+ "shake",
47556
+ "sparkle",
47557
+ "float-text",
47558
+ "streak-glow"
47559
+ ]
47560
+ },
47561
+ particleCount: {
47562
+ types: [
47563
+ "number"
47564
+ ]
47565
+ }
47566
+ },
47567
+ required: [
47568
+ "type"
47569
+ ]
47570
+ }
47571
+ },
47572
+ art: {
47573
+ types: [
47574
+ "object"
47575
+ ],
47576
+ description: "Vector art per fx type (an asset-art map: type → anim-state → drawables); a type's `idle` state wins over sprites/procedural.",
47577
+ mapValue: {
47578
+ types: [
47579
+ "object"
47580
+ ],
47581
+ mapValue: {
47582
+ types: [
47583
+ "array"
47584
+ ],
47585
+ items: {
47586
+ types: [
47587
+ "object"
47588
+ ],
47589
+ drawableSlot: true
47590
+ }
47591
+ }
47592
+ }
47593
+ },
47594
+ sprites: {
47595
+ types: [
47596
+ "object"
47597
+ ],
47598
+ description: "Sprite asset per fx type (an asset-manifest effects map) — used when no vector art matches.",
47599
+ mapValue: {
47600
+ types: [
47601
+ "object"
47602
+ ],
47603
+ properties: {
47604
+ url: {
47605
+ types: [
47606
+ "asset"
47607
+ ]
47608
+ },
47609
+ role: {
47610
+ types: [
47611
+ "string"
47612
+ ]
47613
+ },
47614
+ category: {
47615
+ types: [
47616
+ "string"
47617
+ ]
47618
+ },
47619
+ animations: {
47620
+ types: [
47621
+ "array"
47622
+ ],
47623
+ items: {
47624
+ types: [
47625
+ "string"
47626
+ ]
47627
+ }
47628
+ },
47629
+ style: {
47630
+ types: [
47631
+ "string"
47632
+ ],
47633
+ enumValues: [
47634
+ "pixel",
47635
+ "vector",
47636
+ "hd",
47637
+ "1-bit",
47638
+ "isometric"
47639
+ ]
47640
+ },
47641
+ variant: {
47642
+ types: [
47643
+ "string"
47644
+ ]
47645
+ },
47646
+ dimension: {
47647
+ types: [
47648
+ "string"
47649
+ ],
47650
+ enumValues: [
47651
+ "2d",
47652
+ "3d"
47653
+ ]
47654
+ },
47655
+ aspect: {
47656
+ types: [
47657
+ "string"
47658
+ ],
47659
+ enumValues: [
47660
+ "1:1",
47661
+ "16:9",
47662
+ "5:7",
47663
+ "8:1"
47664
+ ]
47665
+ },
47666
+ atlas: {
47667
+ types: [
47668
+ "asset"
47669
+ ]
47670
+ },
47671
+ sprite: {
47672
+ types: [
47673
+ "string"
47674
+ ]
47675
+ },
47676
+ name: {
47677
+ types: [
47678
+ "string"
47679
+ ]
47680
+ },
47681
+ thumbnailUrl: {
47682
+ types: [
47683
+ "string"
47684
+ ]
47685
+ }
47686
+ },
47687
+ required: [
47688
+ "url",
47689
+ "role",
47690
+ "category"
47691
+ ]
47692
+ }
47693
+ },
47694
+ tickMs: {
47695
+ types: [
47696
+ "number"
47697
+ ],
47698
+ description: "The fx mechanic's decay tick period in ms; lifetime = maxTtl × tickMs. Default 500."
47699
+ },
47700
+ textColor: {
47701
+ types: [
47702
+ "string"
47703
+ ],
47704
+ description: "Floating-message text color when an item declares none. Default `#ffe066`."
47705
+ }
47706
+ },
47707
+ drawable: true,
47708
+ drawHost: true
46902
47709
  }
46903
47710
  };
46904
47711
  var categories$1 = [
@@ -47889,7 +48696,7 @@ var integratorsRegistry = {
47889
48696
  };
47890
48697
 
47891
48698
  var version$1 = "1.0.0";
47892
- var exportedAt$1 = "2026-08-19T03:03:56.666Z";
48699
+ var exportedAt$1 = "2026-08-20T23:14:19.545Z";
47893
48700
  var mappings = {
47894
48701
  "page-header": {
47895
48702
  component: "PageHeader",
@@ -49282,6 +50089,16 @@ var mappings = {
49282
50089
  component: "AlgoGraphCanvas",
49283
50090
  importPath: "@/components/learning/molecules/AlgoGraphCanvas",
49284
50091
  category: "learning"
50092
+ },
50093
+ "fx-overlay": {
50094
+ component: "FxOverlay",
50095
+ importPath: "@/components/core/molecules/FxOverlay",
50096
+ category: "container"
50097
+ },
50098
+ "draw-fx-layer": {
50099
+ component: "DrawFxLayer",
50100
+ importPath: "@/components/game/molecules/DrawFxLayer",
50101
+ category: "game"
49285
50102
  }
49286
50103
  };
49287
50104
  var componentMapping = {
@@ -49291,7 +50108,7 @@ var componentMapping = {
49291
50108
  };
49292
50109
 
49293
50110
  var version = "1.0.0";
49294
- var exportedAt = "2026-08-19T03:03:56.666Z";
50111
+ var exportedAt = "2026-08-20T23:14:19.545Z";
49295
50112
  var contracts = {
49296
50113
  form: {
49297
50114
  emits: [
@@ -51791,6 +52608,7 @@ declare const registry: {
51791
52608
  tier: string;
51792
52609
  family: string;
51793
52610
  description: string;
52611
+ fieldsContract: string;
51794
52612
  suggestedFor: string[];
51795
52613
  typicalSize: string;
51796
52614
  propsSchema: {
@@ -51956,6 +52774,32 @@ declare const registry: {
51956
52774
  required: string[];
51957
52775
  };
51958
52776
  };
52777
+ backAction: {
52778
+ types: string[];
52779
+ description: string;
52780
+ properties: {
52781
+ label: {
52782
+ types: string[];
52783
+ };
52784
+ icon: {
52785
+ types: string[];
52786
+ };
52787
+ onClick: {
52788
+ types: string[];
52789
+ };
52790
+ event: {
52791
+ types: string[];
52792
+ };
52793
+ navigatesTo: {
52794
+ types: string[];
52795
+ };
52796
+ variant: {
52797
+ types: string[];
52798
+ enumValues: string[];
52799
+ };
52800
+ };
52801
+ propertyRequired: string[];
52802
+ };
51959
52803
  footer: {
51960
52804
  types: string[];
51961
52805
  description: string;
@@ -51978,6 +52822,18 @@ declare const registry: {
51978
52822
  header: {
51979
52823
  types: string[];
51980
52824
  };
52825
+ type: {
52826
+ types: string[];
52827
+ };
52828
+ values: {
52829
+ types: string[];
52830
+ items: {
52831
+ types: string[];
52832
+ };
52833
+ };
52834
+ relation: {
52835
+ types: string[];
52836
+ };
51981
52837
  };
51982
52838
  required: string[];
51983
52839
  };
@@ -52019,6 +52875,31 @@ declare const registry: {
52019
52875
  types: string[];
52020
52876
  description: string;
52021
52877
  };
52878
+ relationsData: {
52879
+ types: string[];
52880
+ description: string;
52881
+ mapValue: {
52882
+ types: string[];
52883
+ items: {
52884
+ types: string[];
52885
+ properties: {
52886
+ value: {
52887
+ types: string[];
52888
+ };
52889
+ label: {
52890
+ types: string[];
52891
+ };
52892
+ description: {
52893
+ types: string[];
52894
+ };
52895
+ disabled: {
52896
+ types: string[];
52897
+ };
52898
+ };
52899
+ required: string[];
52900
+ };
52901
+ };
52902
+ };
52022
52903
  };
52023
52904
  };
52024
52905
  "page-header": {
@@ -52186,6 +53067,7 @@ declare const registry: {
52186
53067
  tier: string;
52187
53068
  family: string;
52188
53069
  description: string;
53070
+ fieldsContract: string;
52189
53071
  suggestedFor: string[];
52190
53072
  typicalSize: string;
52191
53073
  propsSchema: {
@@ -52323,6 +53205,9 @@ declare const registry: {
52323
53205
  disabled: {
52324
53206
  types: string[];
52325
53207
  };
53208
+ hint: {
53209
+ types: string[];
53210
+ };
52326
53211
  };
52327
53212
  };
52328
53213
  };
@@ -52423,6 +53308,28 @@ declare const registry: {
52423
53308
  };
52424
53309
  default: {};
52425
53310
  };
53311
+ fieldOverrides: {
53312
+ types: string[];
53313
+ description: string;
53314
+ items: {
53315
+ types: string[];
53316
+ properties: {
53317
+ name: {
53318
+ types: string[];
53319
+ };
53320
+ label: {
53321
+ types: string[];
53322
+ };
53323
+ placeholder: {
53324
+ types: string[];
53325
+ };
53326
+ hint: {
53327
+ types: string[];
53328
+ };
53329
+ };
53330
+ required: string[];
53331
+ };
53332
+ };
52426
53333
  conditionalFields: {
52427
53334
  types: string[];
52428
53335
  description: string;
@@ -52493,6 +53400,9 @@ declare const registry: {
52493
53400
  properties: {
52494
53401
  formValues: {
52495
53402
  types: string[];
53403
+ mapValue: {
53404
+ types: string[];
53405
+ };
52496
53406
  };
52497
53407
  globalVariables: {
52498
53408
  types: string[];
@@ -52510,6 +53420,9 @@ declare const registry: {
52510
53420
  };
52511
53421
  entity: {
52512
53422
  types: string[];
53423
+ mapValue: {
53424
+ types: string[];
53425
+ };
52513
53426
  };
52514
53427
  };
52515
53428
  propertyRequired: string[];
@@ -52622,6 +53535,9 @@ declare const registry: {
52622
53535
  disabled: {
52623
53536
  types: string[];
52624
53537
  };
53538
+ hint: {
53539
+ types: string[];
53540
+ };
52625
53541
  };
52626
53542
  };
52627
53543
  };
@@ -52676,6 +53592,7 @@ declare const registry: {
52676
53592
  tier: string;
52677
53593
  family: string;
52678
53594
  description: string;
53595
+ fieldsContract: string;
52679
53596
  suggestedFor: string[];
52680
53597
  typicalSize: string;
52681
53598
  propsSchema: {
@@ -52813,6 +53730,9 @@ declare const registry: {
52813
53730
  disabled: {
52814
53731
  types: string[];
52815
53732
  };
53733
+ hint: {
53734
+ types: string[];
53735
+ };
52816
53736
  };
52817
53737
  };
52818
53738
  };
@@ -52913,6 +53833,28 @@ declare const registry: {
52913
53833
  };
52914
53834
  default: {};
52915
53835
  };
53836
+ fieldOverrides: {
53837
+ types: string[];
53838
+ description: string;
53839
+ items: {
53840
+ types: string[];
53841
+ properties: {
53842
+ name: {
53843
+ types: string[];
53844
+ };
53845
+ label: {
53846
+ types: string[];
53847
+ };
53848
+ placeholder: {
53849
+ types: string[];
53850
+ };
53851
+ hint: {
53852
+ types: string[];
53853
+ };
53854
+ };
53855
+ required: string[];
53856
+ };
53857
+ };
52916
53858
  conditionalFields: {
52917
53859
  types: string[];
52918
53860
  description: string;
@@ -52983,6 +53925,9 @@ declare const registry: {
52983
53925
  properties: {
52984
53926
  formValues: {
52985
53927
  types: string[];
53928
+ mapValue: {
53929
+ types: string[];
53930
+ };
52986
53931
  };
52987
53932
  globalVariables: {
52988
53933
  types: string[];
@@ -53000,6 +53945,9 @@ declare const registry: {
53000
53945
  };
53001
53946
  entity: {
53002
53947
  types: string[];
53948
+ mapValue: {
53949
+ types: string[];
53950
+ };
53003
53951
  };
53004
53952
  };
53005
53953
  propertyRequired: string[];
@@ -53112,6 +54060,9 @@ declare const registry: {
53112
54060
  disabled: {
53113
54061
  types: string[];
53114
54062
  };
54063
+ hint: {
54064
+ types: string[];
54065
+ };
53115
54066
  };
53116
54067
  };
53117
54068
  };
@@ -75474,6 +76425,20 @@ declare const registry: {
75474
76425
  };
75475
76426
  }[];
75476
76427
  };
76428
+ keyMap: {
76429
+ types: string[];
76430
+ description: string;
76431
+ mapValue: {
76432
+ types: string[];
76433
+ };
76434
+ };
76435
+ keyUpMap: {
76436
+ types: string[];
76437
+ description: string;
76438
+ mapValue: {
76439
+ types: string[];
76440
+ };
76441
+ };
75477
76442
  isLoading: {
75478
76443
  types: string[];
75479
76444
  description: string;
@@ -79481,6 +80446,324 @@ declare const registry: {
79481
80446
  };
79482
80447
  };
79483
80448
  };
80449
+ "fx-overlay": {
80450
+ type: string;
80451
+ category: string;
80452
+ tier: string;
80453
+ family: string;
80454
+ description: string;
80455
+ suggestedFor: string[];
80456
+ typicalSize: string;
80457
+ propsSchema: {
80458
+ items: {
80459
+ types: string[];
80460
+ description: string;
80461
+ required: boolean;
80462
+ items: {
80463
+ types: string[];
80464
+ properties: {
80465
+ id: {
80466
+ types: string[];
80467
+ };
80468
+ type: {
80469
+ types: string[];
80470
+ };
80471
+ effect: {
80472
+ types: string[];
80473
+ enumValues: string[];
80474
+ };
80475
+ message: {
80476
+ types: string[];
80477
+ };
80478
+ color: {
80479
+ types: string[];
80480
+ };
80481
+ size: {
80482
+ types: string[];
80483
+ };
80484
+ x: {
80485
+ types: string[];
80486
+ };
80487
+ z: {
80488
+ types: string[];
80489
+ };
80490
+ y: {
80491
+ types: string[];
80492
+ };
80493
+ ttl: {
80494
+ types: string[];
80495
+ };
80496
+ maxTtl: {
80497
+ types: string[];
80498
+ };
80499
+ bornAt: {
80500
+ types: string[];
80501
+ };
80502
+ space: {
80503
+ types: string[];
80504
+ enumValues: string[];
80505
+ };
80506
+ particleCount: {
80507
+ types: string[];
80508
+ };
80509
+ vx: {
80510
+ types: string[];
80511
+ };
80512
+ vy: {
80513
+ types: string[];
80514
+ };
80515
+ vz: {
80516
+ types: string[];
80517
+ };
80518
+ };
80519
+ required: string[];
80520
+ };
80521
+ };
80522
+ tickMs: {
80523
+ types: string[];
80524
+ description: string;
80525
+ };
80526
+ children: {
80527
+ types: string[];
80528
+ description: string;
80529
+ };
80530
+ className: {
80531
+ types: string[];
80532
+ description: string;
80533
+ };
80534
+ };
80535
+ };
80536
+ "draw-fx-layer": {
80537
+ type: string;
80538
+ category: string;
80539
+ tier: string;
80540
+ family: string;
80541
+ description: string;
80542
+ suggestedFor: string[];
80543
+ typicalSize: string;
80544
+ propsSchema: {
80545
+ id: {
80546
+ types: string[];
80547
+ description: string;
80548
+ };
80549
+ type: {
80550
+ types: string[];
80551
+ description: string;
80552
+ required: boolean;
80553
+ };
80554
+ items: {
80555
+ types: string[];
80556
+ description: string;
80557
+ required: boolean;
80558
+ items: {
80559
+ types: string[];
80560
+ properties: {
80561
+ id: {
80562
+ types: string[];
80563
+ };
80564
+ type: {
80565
+ types: string[];
80566
+ };
80567
+ position: {
80568
+ types: string[];
80569
+ scenePos: boolean;
80570
+ properties: {
80571
+ x: {
80572
+ types: string[];
80573
+ };
80574
+ y: {
80575
+ types: string[];
80576
+ };
80577
+ z: {
80578
+ types: string[];
80579
+ };
80580
+ };
80581
+ required: string[];
80582
+ };
80583
+ x: {
80584
+ types: string[];
80585
+ };
80586
+ z: {
80587
+ types: string[];
80588
+ };
80589
+ y: {
80590
+ types: string[];
80591
+ };
80592
+ message: {
80593
+ types: string[];
80594
+ };
80595
+ ttl: {
80596
+ types: string[];
80597
+ };
80598
+ maxTtl: {
80599
+ types: string[];
80600
+ };
80601
+ bornAt: {
80602
+ types: string[];
80603
+ };
80604
+ space: {
80605
+ types: string[];
80606
+ enumValues: string[];
80607
+ };
80608
+ effect: {
80609
+ types: string[];
80610
+ enumValues: string[];
80611
+ };
80612
+ color: {
80613
+ types: string[];
80614
+ };
80615
+ size: {
80616
+ types: string[];
80617
+ };
80618
+ vx: {
80619
+ types: string[];
80620
+ };
80621
+ vy: {
80622
+ types: string[];
80623
+ };
80624
+ vz: {
80625
+ types: string[];
80626
+ };
80627
+ particleCount: {
80628
+ types: string[];
80629
+ };
80630
+ };
80631
+ required: string[];
80632
+ };
80633
+ };
80634
+ presets: {
80635
+ types: string[];
80636
+ description: string;
80637
+ items: {
80638
+ types: string[];
80639
+ properties: {
80640
+ type: {
80641
+ types: string[];
80642
+ };
80643
+ color: {
80644
+ types: string[];
80645
+ };
80646
+ color2: {
80647
+ types: string[];
80648
+ };
80649
+ size: {
80650
+ types: string[];
80651
+ };
80652
+ shape: {
80653
+ types: string[];
80654
+ enumValues: string[];
80655
+ };
80656
+ count: {
80657
+ types: string[];
80658
+ };
80659
+ glow: {
80660
+ types: string[];
80661
+ };
80662
+ gravity: {
80663
+ types: string[];
80664
+ };
80665
+ vx: {
80666
+ types: string[];
80667
+ };
80668
+ vy: {
80669
+ types: string[];
80670
+ };
80671
+ vz: {
80672
+ types: string[];
80673
+ };
80674
+ space: {
80675
+ types: string[];
80676
+ enumValues: string[];
80677
+ };
80678
+ effect: {
80679
+ types: string[];
80680
+ enumValues: string[];
80681
+ };
80682
+ particleCount: {
80683
+ types: string[];
80684
+ };
80685
+ };
80686
+ required: string[];
80687
+ };
80688
+ };
80689
+ art: {
80690
+ types: string[];
80691
+ description: string;
80692
+ mapValue: {
80693
+ types: string[];
80694
+ mapValue: {
80695
+ types: string[];
80696
+ items: {
80697
+ types: string[];
80698
+ drawableSlot: boolean;
80699
+ };
80700
+ };
80701
+ };
80702
+ };
80703
+ sprites: {
80704
+ types: string[];
80705
+ description: string;
80706
+ mapValue: {
80707
+ types: string[];
80708
+ properties: {
80709
+ url: {
80710
+ types: string[];
80711
+ };
80712
+ role: {
80713
+ types: string[];
80714
+ };
80715
+ category: {
80716
+ types: string[];
80717
+ };
80718
+ animations: {
80719
+ types: string[];
80720
+ items: {
80721
+ types: string[];
80722
+ };
80723
+ };
80724
+ style: {
80725
+ types: string[];
80726
+ enumValues: string[];
80727
+ };
80728
+ variant: {
80729
+ types: string[];
80730
+ };
80731
+ dimension: {
80732
+ types: string[];
80733
+ enumValues: string[];
80734
+ };
80735
+ aspect: {
80736
+ types: string[];
80737
+ enumValues: string[];
80738
+ };
80739
+ atlas: {
80740
+ types: string[];
80741
+ };
80742
+ sprite: {
80743
+ types: string[];
80744
+ };
80745
+ name: {
80746
+ types: string[];
80747
+ };
80748
+ thumbnailUrl: {
80749
+ types: string[];
80750
+ };
80751
+ };
80752
+ required: string[];
80753
+ };
80754
+ };
80755
+ tickMs: {
80756
+ types: string[];
80757
+ description: string;
80758
+ };
80759
+ textColor: {
80760
+ types: string[];
80761
+ description: string;
80762
+ };
80763
+ };
80764
+ drawable: boolean;
80765
+ drawHost: boolean;
80766
+ };
79484
80767
  };
79485
80768
  categories: string[];
79486
80769
  };
@@ -80240,6 +81523,7 @@ declare const PATTERN_REGISTRY: {
80240
81523
  tier: string;
80241
81524
  family: string;
80242
81525
  description: string;
81526
+ fieldsContract: string;
80243
81527
  suggestedFor: string[];
80244
81528
  typicalSize: string;
80245
81529
  propsSchema: {
@@ -80405,6 +81689,32 @@ declare const PATTERN_REGISTRY: {
80405
81689
  required: string[];
80406
81690
  };
80407
81691
  };
81692
+ backAction: {
81693
+ types: string[];
81694
+ description: string;
81695
+ properties: {
81696
+ label: {
81697
+ types: string[];
81698
+ };
81699
+ icon: {
81700
+ types: string[];
81701
+ };
81702
+ onClick: {
81703
+ types: string[];
81704
+ };
81705
+ event: {
81706
+ types: string[];
81707
+ };
81708
+ navigatesTo: {
81709
+ types: string[];
81710
+ };
81711
+ variant: {
81712
+ types: string[];
81713
+ enumValues: string[];
81714
+ };
81715
+ };
81716
+ propertyRequired: string[];
81717
+ };
80408
81718
  footer: {
80409
81719
  types: string[];
80410
81720
  description: string;
@@ -80427,6 +81737,18 @@ declare const PATTERN_REGISTRY: {
80427
81737
  header: {
80428
81738
  types: string[];
80429
81739
  };
81740
+ type: {
81741
+ types: string[];
81742
+ };
81743
+ values: {
81744
+ types: string[];
81745
+ items: {
81746
+ types: string[];
81747
+ };
81748
+ };
81749
+ relation: {
81750
+ types: string[];
81751
+ };
80430
81752
  };
80431
81753
  required: string[];
80432
81754
  };
@@ -80468,6 +81790,31 @@ declare const PATTERN_REGISTRY: {
80468
81790
  types: string[];
80469
81791
  description: string;
80470
81792
  };
81793
+ relationsData: {
81794
+ types: string[];
81795
+ description: string;
81796
+ mapValue: {
81797
+ types: string[];
81798
+ items: {
81799
+ types: string[];
81800
+ properties: {
81801
+ value: {
81802
+ types: string[];
81803
+ };
81804
+ label: {
81805
+ types: string[];
81806
+ };
81807
+ description: {
81808
+ types: string[];
81809
+ };
81810
+ disabled: {
81811
+ types: string[];
81812
+ };
81813
+ };
81814
+ required: string[];
81815
+ };
81816
+ };
81817
+ };
80471
81818
  };
80472
81819
  };
80473
81820
  "page-header": {
@@ -80635,6 +81982,7 @@ declare const PATTERN_REGISTRY: {
80635
81982
  tier: string;
80636
81983
  family: string;
80637
81984
  description: string;
81985
+ fieldsContract: string;
80638
81986
  suggestedFor: string[];
80639
81987
  typicalSize: string;
80640
81988
  propsSchema: {
@@ -80772,6 +82120,9 @@ declare const PATTERN_REGISTRY: {
80772
82120
  disabled: {
80773
82121
  types: string[];
80774
82122
  };
82123
+ hint: {
82124
+ types: string[];
82125
+ };
80775
82126
  };
80776
82127
  };
80777
82128
  };
@@ -80872,6 +82223,28 @@ declare const PATTERN_REGISTRY: {
80872
82223
  };
80873
82224
  default: {};
80874
82225
  };
82226
+ fieldOverrides: {
82227
+ types: string[];
82228
+ description: string;
82229
+ items: {
82230
+ types: string[];
82231
+ properties: {
82232
+ name: {
82233
+ types: string[];
82234
+ };
82235
+ label: {
82236
+ types: string[];
82237
+ };
82238
+ placeholder: {
82239
+ types: string[];
82240
+ };
82241
+ hint: {
82242
+ types: string[];
82243
+ };
82244
+ };
82245
+ required: string[];
82246
+ };
82247
+ };
80875
82248
  conditionalFields: {
80876
82249
  types: string[];
80877
82250
  description: string;
@@ -80942,6 +82315,9 @@ declare const PATTERN_REGISTRY: {
80942
82315
  properties: {
80943
82316
  formValues: {
80944
82317
  types: string[];
82318
+ mapValue: {
82319
+ types: string[];
82320
+ };
80945
82321
  };
80946
82322
  globalVariables: {
80947
82323
  types: string[];
@@ -80959,6 +82335,9 @@ declare const PATTERN_REGISTRY: {
80959
82335
  };
80960
82336
  entity: {
80961
82337
  types: string[];
82338
+ mapValue: {
82339
+ types: string[];
82340
+ };
80962
82341
  };
80963
82342
  };
80964
82343
  propertyRequired: string[];
@@ -81071,6 +82450,9 @@ declare const PATTERN_REGISTRY: {
81071
82450
  disabled: {
81072
82451
  types: string[];
81073
82452
  };
82453
+ hint: {
82454
+ types: string[];
82455
+ };
81074
82456
  };
81075
82457
  };
81076
82458
  };
@@ -81125,6 +82507,7 @@ declare const PATTERN_REGISTRY: {
81125
82507
  tier: string;
81126
82508
  family: string;
81127
82509
  description: string;
82510
+ fieldsContract: string;
81128
82511
  suggestedFor: string[];
81129
82512
  typicalSize: string;
81130
82513
  propsSchema: {
@@ -81262,6 +82645,9 @@ declare const PATTERN_REGISTRY: {
81262
82645
  disabled: {
81263
82646
  types: string[];
81264
82647
  };
82648
+ hint: {
82649
+ types: string[];
82650
+ };
81265
82651
  };
81266
82652
  };
81267
82653
  };
@@ -81362,6 +82748,28 @@ declare const PATTERN_REGISTRY: {
81362
82748
  };
81363
82749
  default: {};
81364
82750
  };
82751
+ fieldOverrides: {
82752
+ types: string[];
82753
+ description: string;
82754
+ items: {
82755
+ types: string[];
82756
+ properties: {
82757
+ name: {
82758
+ types: string[];
82759
+ };
82760
+ label: {
82761
+ types: string[];
82762
+ };
82763
+ placeholder: {
82764
+ types: string[];
82765
+ };
82766
+ hint: {
82767
+ types: string[];
82768
+ };
82769
+ };
82770
+ required: string[];
82771
+ };
82772
+ };
81365
82773
  conditionalFields: {
81366
82774
  types: string[];
81367
82775
  description: string;
@@ -81432,6 +82840,9 @@ declare const PATTERN_REGISTRY: {
81432
82840
  properties: {
81433
82841
  formValues: {
81434
82842
  types: string[];
82843
+ mapValue: {
82844
+ types: string[];
82845
+ };
81435
82846
  };
81436
82847
  globalVariables: {
81437
82848
  types: string[];
@@ -81449,6 +82860,9 @@ declare const PATTERN_REGISTRY: {
81449
82860
  };
81450
82861
  entity: {
81451
82862
  types: string[];
82863
+ mapValue: {
82864
+ types: string[];
82865
+ };
81452
82866
  };
81453
82867
  };
81454
82868
  propertyRequired: string[];
@@ -81561,6 +82975,9 @@ declare const PATTERN_REGISTRY: {
81561
82975
  disabled: {
81562
82976
  types: string[];
81563
82977
  };
82978
+ hint: {
82979
+ types: string[];
82980
+ };
81564
82981
  };
81565
82982
  };
81566
82983
  };
@@ -103923,6 +105340,20 @@ declare const PATTERN_REGISTRY: {
103923
105340
  };
103924
105341
  }[];
103925
105342
  };
105343
+ keyMap: {
105344
+ types: string[];
105345
+ description: string;
105346
+ mapValue: {
105347
+ types: string[];
105348
+ };
105349
+ };
105350
+ keyUpMap: {
105351
+ types: string[];
105352
+ description: string;
105353
+ mapValue: {
105354
+ types: string[];
105355
+ };
105356
+ };
103926
105357
  isLoading: {
103927
105358
  types: string[];
103928
105359
  description: string;
@@ -107930,6 +109361,324 @@ declare const PATTERN_REGISTRY: {
107930
109361
  };
107931
109362
  };
107932
109363
  };
109364
+ "fx-overlay": {
109365
+ type: string;
109366
+ category: string;
109367
+ tier: string;
109368
+ family: string;
109369
+ description: string;
109370
+ suggestedFor: string[];
109371
+ typicalSize: string;
109372
+ propsSchema: {
109373
+ items: {
109374
+ types: string[];
109375
+ description: string;
109376
+ required: boolean;
109377
+ items: {
109378
+ types: string[];
109379
+ properties: {
109380
+ id: {
109381
+ types: string[];
109382
+ };
109383
+ type: {
109384
+ types: string[];
109385
+ };
109386
+ effect: {
109387
+ types: string[];
109388
+ enumValues: string[];
109389
+ };
109390
+ message: {
109391
+ types: string[];
109392
+ };
109393
+ color: {
109394
+ types: string[];
109395
+ };
109396
+ size: {
109397
+ types: string[];
109398
+ };
109399
+ x: {
109400
+ types: string[];
109401
+ };
109402
+ z: {
109403
+ types: string[];
109404
+ };
109405
+ y: {
109406
+ types: string[];
109407
+ };
109408
+ ttl: {
109409
+ types: string[];
109410
+ };
109411
+ maxTtl: {
109412
+ types: string[];
109413
+ };
109414
+ bornAt: {
109415
+ types: string[];
109416
+ };
109417
+ space: {
109418
+ types: string[];
109419
+ enumValues: string[];
109420
+ };
109421
+ particleCount: {
109422
+ types: string[];
109423
+ };
109424
+ vx: {
109425
+ types: string[];
109426
+ };
109427
+ vy: {
109428
+ types: string[];
109429
+ };
109430
+ vz: {
109431
+ types: string[];
109432
+ };
109433
+ };
109434
+ required: string[];
109435
+ };
109436
+ };
109437
+ tickMs: {
109438
+ types: string[];
109439
+ description: string;
109440
+ };
109441
+ children: {
109442
+ types: string[];
109443
+ description: string;
109444
+ };
109445
+ className: {
109446
+ types: string[];
109447
+ description: string;
109448
+ };
109449
+ };
109450
+ };
109451
+ "draw-fx-layer": {
109452
+ type: string;
109453
+ category: string;
109454
+ tier: string;
109455
+ family: string;
109456
+ description: string;
109457
+ suggestedFor: string[];
109458
+ typicalSize: string;
109459
+ propsSchema: {
109460
+ id: {
109461
+ types: string[];
109462
+ description: string;
109463
+ };
109464
+ type: {
109465
+ types: string[];
109466
+ description: string;
109467
+ required: boolean;
109468
+ };
109469
+ items: {
109470
+ types: string[];
109471
+ description: string;
109472
+ required: boolean;
109473
+ items: {
109474
+ types: string[];
109475
+ properties: {
109476
+ id: {
109477
+ types: string[];
109478
+ };
109479
+ type: {
109480
+ types: string[];
109481
+ };
109482
+ position: {
109483
+ types: string[];
109484
+ scenePos: boolean;
109485
+ properties: {
109486
+ x: {
109487
+ types: string[];
109488
+ };
109489
+ y: {
109490
+ types: string[];
109491
+ };
109492
+ z: {
109493
+ types: string[];
109494
+ };
109495
+ };
109496
+ required: string[];
109497
+ };
109498
+ x: {
109499
+ types: string[];
109500
+ };
109501
+ z: {
109502
+ types: string[];
109503
+ };
109504
+ y: {
109505
+ types: string[];
109506
+ };
109507
+ message: {
109508
+ types: string[];
109509
+ };
109510
+ ttl: {
109511
+ types: string[];
109512
+ };
109513
+ maxTtl: {
109514
+ types: string[];
109515
+ };
109516
+ bornAt: {
109517
+ types: string[];
109518
+ };
109519
+ space: {
109520
+ types: string[];
109521
+ enumValues: string[];
109522
+ };
109523
+ effect: {
109524
+ types: string[];
109525
+ enumValues: string[];
109526
+ };
109527
+ color: {
109528
+ types: string[];
109529
+ };
109530
+ size: {
109531
+ types: string[];
109532
+ };
109533
+ vx: {
109534
+ types: string[];
109535
+ };
109536
+ vy: {
109537
+ types: string[];
109538
+ };
109539
+ vz: {
109540
+ types: string[];
109541
+ };
109542
+ particleCount: {
109543
+ types: string[];
109544
+ };
109545
+ };
109546
+ required: string[];
109547
+ };
109548
+ };
109549
+ presets: {
109550
+ types: string[];
109551
+ description: string;
109552
+ items: {
109553
+ types: string[];
109554
+ properties: {
109555
+ type: {
109556
+ types: string[];
109557
+ };
109558
+ color: {
109559
+ types: string[];
109560
+ };
109561
+ color2: {
109562
+ types: string[];
109563
+ };
109564
+ size: {
109565
+ types: string[];
109566
+ };
109567
+ shape: {
109568
+ types: string[];
109569
+ enumValues: string[];
109570
+ };
109571
+ count: {
109572
+ types: string[];
109573
+ };
109574
+ glow: {
109575
+ types: string[];
109576
+ };
109577
+ gravity: {
109578
+ types: string[];
109579
+ };
109580
+ vx: {
109581
+ types: string[];
109582
+ };
109583
+ vy: {
109584
+ types: string[];
109585
+ };
109586
+ vz: {
109587
+ types: string[];
109588
+ };
109589
+ space: {
109590
+ types: string[];
109591
+ enumValues: string[];
109592
+ };
109593
+ effect: {
109594
+ types: string[];
109595
+ enumValues: string[];
109596
+ };
109597
+ particleCount: {
109598
+ types: string[];
109599
+ };
109600
+ };
109601
+ required: string[];
109602
+ };
109603
+ };
109604
+ art: {
109605
+ types: string[];
109606
+ description: string;
109607
+ mapValue: {
109608
+ types: string[];
109609
+ mapValue: {
109610
+ types: string[];
109611
+ items: {
109612
+ types: string[];
109613
+ drawableSlot: boolean;
109614
+ };
109615
+ };
109616
+ };
109617
+ };
109618
+ sprites: {
109619
+ types: string[];
109620
+ description: string;
109621
+ mapValue: {
109622
+ types: string[];
109623
+ properties: {
109624
+ url: {
109625
+ types: string[];
109626
+ };
109627
+ role: {
109628
+ types: string[];
109629
+ };
109630
+ category: {
109631
+ types: string[];
109632
+ };
109633
+ animations: {
109634
+ types: string[];
109635
+ items: {
109636
+ types: string[];
109637
+ };
109638
+ };
109639
+ style: {
109640
+ types: string[];
109641
+ enumValues: string[];
109642
+ };
109643
+ variant: {
109644
+ types: string[];
109645
+ };
109646
+ dimension: {
109647
+ types: string[];
109648
+ enumValues: string[];
109649
+ };
109650
+ aspect: {
109651
+ types: string[];
109652
+ enumValues: string[];
109653
+ };
109654
+ atlas: {
109655
+ types: string[];
109656
+ };
109657
+ sprite: {
109658
+ types: string[];
109659
+ };
109660
+ name: {
109661
+ types: string[];
109662
+ };
109663
+ thumbnailUrl: {
109664
+ types: string[];
109665
+ };
109666
+ };
109667
+ required: string[];
109668
+ };
109669
+ };
109670
+ tickMs: {
109671
+ types: string[];
109672
+ description: string;
109673
+ };
109674
+ textColor: {
109675
+ types: string[];
109676
+ description: string;
109677
+ };
109678
+ };
109679
+ drawable: boolean;
109680
+ drawHost: boolean;
109681
+ };
107933
109682
  };
107934
109683
  categories: string[];
107935
109684
  };
@@ -110067,6 +111816,16 @@ declare const COMPONENT_MAPPING: {
110067
111816
  importPath: string;
110068
111817
  category: string;
110069
111818
  };
111819
+ "fx-overlay": {
111820
+ component: string;
111821
+ importPath: string;
111822
+ category: string;
111823
+ };
111824
+ "draw-fx-layer": {
111825
+ component: string;
111826
+ importPath: string;
111827
+ category: string;
111828
+ };
110070
111829
  };
110071
111830
  };
110072
111831
  declare const EVENT_CONTRACTS: {
@@ -110776,6 +112535,12 @@ type PatternEntry = {
110776
112535
  * identity (not a name/signal); UISlotRenderer routes the host's authored
110777
112536
  * `children` into its `drawables` prop (painted) instead of DOM-wrapping them. */
110778
112537
  drawHost?: boolean;
112538
+ /** Declared fields-consumption contract from the component's
112539
+ * `@fieldsContract` JSDoc tag: `form` = editable SchemaFields (schema
112540
+ * enrichment + relationsData), `display` = read-only display fields
112541
+ * ({key, header} + typed meta). THE capability every enrichment consumer
112542
+ * keys on — never a hardcoded pattern-name list. */
112543
+ fieldsContract?: 'form' | 'display';
110779
112544
  };
110780
112545
  declare function getPatternDefinition(patternType: string): PatternEntry | null;
110781
112546
  declare function getComponentForPattern(patternType: string): string | null;
@@ -110840,6 +112605,14 @@ declare function eventListPropsOf(patternType: string): ReadonlyMap<string, stri
110840
112605
  * @param patternType - Pattern type to check
110841
112606
  * @returns true if the pattern is a drawable
110842
112607
  */
112608
+ /**
112609
+ * The pattern's declared fields-consumption contract (`@fieldsContract` on
112610
+ * the owning component), or undefined for patterns without entity-bound
112611
+ * field lists. Consumers: UISlotRenderer's schema enrichment, the server
112612
+ * runtime's relation-option injection, and orbital-rust codegen (via the
112613
+ * baked registry) — all key on THIS declaration, never on pattern names.
112614
+ */
112615
+ declare function getPatternFieldsContract(patternType: string): 'form' | 'display' | undefined;
110843
112616
  declare function isDrawablePattern(patternType: string): boolean;
110844
112617
  /**
110845
112618
  * Check if a pattern is a canvas DRAW-HOST — a component that paints authored
@@ -110858,4 +112631,4 @@ declare function isDrawablePattern(patternType: string): boolean;
110858
112631
  */
110859
112632
  declare function isDrawHostPattern(patternType: string): boolean;
110860
112633
 
110861
- export { AnyPatternConfig, COMPONENT_MAPPING, EVENT_CONTRACTS, type EmojiPickPayload, type FormSubmitPayload, INTEGRATORS_REGISTRY, type ItemActionPayload, type LoadMoreRequestPayload, PATTERN_REGISTRY, type PatternCallbackArg, type PatternEntry, type PatternPayloadField, type PatternPropDef, type PatternRecommendation, type PatternSwapGate, PatternType, type PropKind, type RecommendationContext, type RenderUiPayload, type SelectionChangePayload, buildRecommendationContext, collectRenderUiPatternTypes, componentMapping, eventContracts, eventKeyPropsOf, eventListPropsOf, findCompatiblePatterns, formatRecommendationsForPrompt, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getEmittedEvents, getEntityCardinality, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternDefinition, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, integratorsRegistry, isContentBodyPattern, isContentBodyPatternType, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isMainSlotRenderUi, isValueInputPattern, patternsRegistry, recommendPatterns, registry, renderUiPatternTypesOf };
112634
+ export { AnyPatternConfig, COMPONENT_MAPPING, EVENT_CONTRACTS, type EmojiPickPayload, type FormSubmitPayload, INTEGRATORS_REGISTRY, type ItemActionPayload, type LoadMoreRequestPayload, PATTERN_REGISTRY, type PatternCallbackArg, type PatternEntry, type PatternPayloadField, type PatternPropDef, type PatternRecommendation, type PatternSwapGate, PatternType, type PropKind, type RecommendationContext, type RenderUiPayload, type SelectionChangePayload, buildRecommendationContext, collectRenderUiPatternTypes, componentMapping, eventContracts, eventKeyPropsOf, eventListPropsOf, findCompatiblePatterns, formatRecommendationsForPrompt, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getEmittedEvents, getEntityCardinality, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternDefinition, getPatternFieldsContract, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, integratorsRegistry, isContentBodyPattern, isContentBodyPatternType, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isMainSlotRenderUi, isValueInputPattern, patternsRegistry, recommendPatterns, registry, renderUiPatternTypesOf };