@almadar/core 10.89.0 → 10.91.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.
Files changed (36) hide show
  1. package/dist/builders.d.ts +3 -3
  2. package/dist/builders.js +11 -3
  3. package/dist/builders.js.map +1 -1
  4. package/dist/{effect-CdLBg9zL.d.ts → effect-Bt8vKHwd.d.ts} +66 -42
  5. package/dist/{entityAccess-BmZHpQUv.d.ts → entityAccess-BdDX85rM.d.ts} +1 -1
  6. package/dist/factory/index.d.ts +4 -4
  7. package/dist/factory/index.js +662 -49
  8. package/dist/factory/index.js.map +1 -1
  9. package/dist/factory-runtime/index.d.ts +3 -3
  10. package/dist/factory-runtime/index.js +11 -3
  11. package/dist/factory-runtime/index.js.map +1 -1
  12. package/dist/i18n/index.js +12 -0
  13. package/dist/i18n/index.js.map +1 -1
  14. package/dist/{index-CV_iM5Cm.d.ts → index-rOBf1Oag.d.ts} +83 -6
  15. package/dist/index.d.ts +34 -12
  16. package/dist/index.js +975 -57
  17. package/dist/index.js.map +1 -1
  18. package/dist/mock/index.d.ts +60 -5
  19. package/dist/mock/index.js +35 -4
  20. package/dist/mock/index.js.map +1 -1
  21. package/dist/patterns/component-mapping.json +6 -1
  22. package/dist/patterns/event-contracts.json +1 -1
  23. package/dist/patterns/index.d.ts +1875 -53
  24. package/dist/patterns/index.js +930 -51
  25. package/dist/patterns/index.js.map +1 -1
  26. package/dist/patterns/integrators-registry.json +264 -1
  27. package/dist/patterns/patterns-registry.json +654 -47
  28. package/dist/patterns/registry.json +654 -47
  29. package/dist/patterns/services-registry.json +284 -1
  30. package/dist/{schema-DYC_RnBX.d.ts → schema-ovDTDQz9.d.ts} +495 -323
  31. package/dist/{trait-DmWdtKlP.d.ts → trait-C3e3btfn.d.ts} +98 -55
  32. package/dist/types/index.d.ts +5 -5
  33. package/dist/types/index.js +13 -7
  34. package/dist/types/index.js.map +1 -1
  35. package/dist/{types-DdK77hq2.d.ts → types-rh0naR6C.d.ts} +2 -2
  36. package/package.json +1 -1
@@ -5221,7 +5221,10 @@ var patterns_registry_default = {
5221
5221
  "1:1",
5222
5222
  "16:9",
5223
5223
  "5:7",
5224
- "8:1"
5224
+ "8:1",
5225
+ "4:1",
5226
+ "5:3",
5227
+ "1:2"
5225
5228
  ]
5226
5229
  },
5227
5230
  atlas: {
@@ -5381,7 +5384,10 @@ var patterns_registry_default = {
5381
5384
  "1:1",
5382
5385
  "16:9",
5383
5386
  "5:7",
5384
- "8:1"
5387
+ "8:1",
5388
+ "4:1",
5389
+ "5:3",
5390
+ "1:2"
5385
5391
  ]
5386
5392
  },
5387
5393
  atlas: {
@@ -8415,6 +8421,7 @@ var patterns_registry_default = {
8415
8421
  button: {
8416
8422
  type: "button",
8417
8423
  category: "component",
8424
+ sourceFile: "components/core/atoms/Button.tsx",
8418
8425
  tier: "atoms",
8419
8426
  family: "core",
8420
8427
  description: "Clickable button that emits events",
@@ -8559,7 +8566,10 @@ var patterns_registry_default = {
8559
8566
  "1:1",
8560
8567
  "16:9",
8561
8568
  "5:7",
8562
- "8:1"
8569
+ "8:1",
8570
+ "4:1",
8571
+ "5:3",
8572
+ "1:2"
8563
8573
  ]
8564
8574
  },
8565
8575
  atlas: {
@@ -8601,7 +8611,8 @@ var patterns_registry_default = {
8601
8611
  "object"
8602
8612
  ],
8603
8613
  description: "Payload to include with the action event",
8604
- payloadFor: "action"
8614
+ payloadFor: "action",
8615
+ eventPayloadBrand: true
8605
8616
  },
8606
8617
  label: {
8607
8618
  types: [
@@ -8626,6 +8637,7 @@ var patterns_registry_default = {
8626
8637
  badge: {
8627
8638
  type: "badge",
8628
8639
  category: "component",
8640
+ sourceFile: "components/core/atoms/Badge.tsx",
8629
8641
  tier: "atoms",
8630
8642
  family: "core",
8631
8643
  description: "Small label for status or count",
@@ -8757,7 +8769,10 @@ var patterns_registry_default = {
8757
8769
  "1:1",
8758
8770
  "16:9",
8759
8771
  "5:7",
8760
- "8:1"
8772
+ "8:1",
8773
+ "4:1",
8774
+ "5:3",
8775
+ "1:2"
8761
8776
  ]
8762
8777
  },
8763
8778
  atlas: {
@@ -9257,6 +9272,7 @@ var patterns_registry_default = {
9257
9272
  input: {
9258
9273
  type: "input",
9259
9274
  category: "component",
9275
+ sourceFile: "components/core/atoms/Input.tsx",
9260
9276
  tier: "atoms",
9261
9277
  family: "core",
9262
9278
  description: "Text input field",
@@ -9425,7 +9441,15 @@ var patterns_registry_default = {
9425
9441
  "function",
9426
9442
  "string"
9427
9443
  ],
9428
- description: "onChange handler or declarative event key for trait dispatch"
9444
+ description: "onChange handler or declarative event key for trait dispatch",
9445
+ kind: "event-ref",
9446
+ emitPayloadSchema: [
9447
+ {
9448
+ name: "_payload",
9449
+ type: "object",
9450
+ required: false
9451
+ }
9452
+ ]
9429
9453
  }
9430
9454
  }
9431
9455
  },
@@ -9478,13 +9502,22 @@ var patterns_registry_default = {
9478
9502
  "function",
9479
9503
  "string"
9480
9504
  ],
9481
- description: "onChange handler or declarative event key for trait dispatch"
9505
+ description: "onChange handler or declarative event key for trait dispatch",
9506
+ kind: "event-ref",
9507
+ emitPayloadSchema: [
9508
+ {
9509
+ name: "value",
9510
+ type: "string",
9511
+ required: true
9512
+ }
9513
+ ]
9482
9514
  }
9483
9515
  }
9484
9516
  },
9485
9517
  select: {
9486
9518
  type: "select",
9487
9519
  category: "component",
9520
+ sourceFile: "components/core/atoms/Select.tsx",
9488
9521
  tier: "atoms",
9489
9522
  family: "core",
9490
9523
  description: "Dropdown select input",
@@ -9648,14 +9681,52 @@ var patterns_registry_default = {
9648
9681
  "function",
9649
9682
  "string"
9650
9683
  ],
9651
- description: "onChange handler (native ChangeEvent) or declarative event key for trait dispatch"
9684
+ description: "onChange handler (native ChangeEvent) or declarative event key for trait dispatch",
9685
+ kind: "event-ref",
9686
+ emitPayloadSchema: [
9687
+ {
9688
+ name: "value",
9689
+ type: "string",
9690
+ required: true,
9691
+ schema: {
9692
+ types: [
9693
+ "string",
9694
+ "array"
9695
+ ],
9696
+ items: {
9697
+ types: [
9698
+ "string"
9699
+ ]
9700
+ }
9701
+ }
9702
+ }
9703
+ ]
9652
9704
  },
9653
9705
  onValueChange: {
9654
9706
  types: [
9655
9707
  "function",
9656
9708
  "string"
9657
9709
  ],
9658
- description: "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback."
9710
+ description: "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback.",
9711
+ kind: "event-ref",
9712
+ emitPayloadSchema: [
9713
+ {
9714
+ name: "value",
9715
+ type: "string",
9716
+ required: true,
9717
+ schema: {
9718
+ types: [
9719
+ "string",
9720
+ "array"
9721
+ ],
9722
+ items: {
9723
+ types: [
9724
+ "string"
9725
+ ]
9726
+ }
9727
+ }
9728
+ }
9729
+ ]
9659
9730
  }
9660
9731
  }
9661
9732
  },
@@ -9701,7 +9772,15 @@ var patterns_registry_default = {
9701
9772
  "function",
9702
9773
  "string"
9703
9774
  ],
9704
- description: "onChange handler or declarative event key for trait dispatch"
9775
+ description: "onChange handler or declarative event key for trait dispatch",
9776
+ kind: "event-ref",
9777
+ emitPayloadSchema: [
9778
+ {
9779
+ name: "checked",
9780
+ type: "boolean",
9781
+ required: true
9782
+ }
9783
+ ]
9705
9784
  }
9706
9785
  }
9707
9786
  },
@@ -12202,6 +12281,7 @@ var patterns_registry_default = {
12202
12281
  "input-group": {
12203
12282
  type: "input-group",
12204
12283
  category: "form",
12284
+ sourceFile: "components/core/molecules/InputGroup.tsx",
12205
12285
  tier: "molecules",
12206
12286
  family: "core",
12207
12287
  description: "InputGroup Molecule Component A component for grouping input with addons (icons, buttons, text). Uses Input, Button, Icon, and Typography atoms.",
@@ -12362,7 +12442,15 @@ var patterns_registry_default = {
12362
12442
  "function",
12363
12443
  "string"
12364
12444
  ],
12365
- description: "onChange handler or declarative event key for trait dispatch"
12445
+ description: "onChange handler or declarative event key for trait dispatch",
12446
+ kind: "event-ref",
12447
+ emitPayloadSchema: [
12448
+ {
12449
+ name: "_payload",
12450
+ type: "object",
12451
+ required: false
12452
+ }
12453
+ ]
12366
12454
  },
12367
12455
  leftAddon: {
12368
12456
  types: [
@@ -14660,6 +14748,7 @@ var patterns_registry_default = {
14660
14748
  "game-shell": {
14661
14749
  type: "game-shell",
14662
14750
  category: "game",
14751
+ sourceFile: "components/game/templates/GameShell.tsx",
14663
14752
  tier: "templates",
14664
14753
  family: "game",
14665
14754
  description: 'GameShell A full-screen layout wrapper for game applications. Replaces DashboardLayout for game clients \u2014 no sidebar nav, just full-viewport rendering with an optional HUD overlay bar. Used as a React Router layout route element: <Route element={<GameShell appName="TraitWars" />}> <Route index element={<WorldMapPage />} /> ... </Route>',
@@ -14785,7 +14874,10 @@ var patterns_registry_default = {
14785
14874
  "1:1",
14786
14875
  "16:9",
14787
14876
  "5:7",
14788
- "8:1"
14877
+ "8:1",
14878
+ "4:1",
14879
+ "5:3",
14880
+ "1:2"
14789
14881
  ]
14790
14882
  },
14791
14883
  atlas: {
@@ -14880,7 +14972,10 @@ var patterns_registry_default = {
14880
14972
  "1:1",
14881
14973
  "16:9",
14882
14974
  "5:7",
14883
- "8:1"
14975
+ "8:1",
14976
+ "4:1",
14977
+ "5:3",
14978
+ "1:2"
14884
14979
  ]
14885
14980
  },
14886
14981
  atlas: {
@@ -29148,6 +29243,7 @@ var patterns_registry_default = {
29148
29243
  "choice-button": {
29149
29244
  type: "choice-button",
29150
29245
  category: "game",
29246
+ sourceFile: "components/game/atoms/ChoiceButton.tsx",
29151
29247
  tier: "atoms",
29152
29248
  family: "game",
29153
29249
  description: "ChoiceButton component",
@@ -29237,7 +29333,10 @@ var patterns_registry_default = {
29237
29333
  "1:1",
29238
29334
  "16:9",
29239
29335
  "5:7",
29240
- "8:1"
29336
+ "8:1",
29337
+ "4:1",
29338
+ "5:3",
29339
+ "1:2"
29241
29340
  ]
29242
29341
  },
29243
29342
  atlas: {
@@ -29327,6 +29426,7 @@ var patterns_registry_default = {
29327
29426
  "control-button": {
29328
29427
  type: "control-button",
29329
29428
  category: "game",
29429
+ sourceFile: "components/game/atoms/ControlButton.tsx",
29330
29430
  tier: "atoms",
29331
29431
  family: "game",
29332
29432
  description: "ControlButton component",
@@ -29402,7 +29502,10 @@ var patterns_registry_default = {
29402
29502
  "1:1",
29403
29503
  "16:9",
29404
29504
  "5:7",
29405
- "8:1"
29505
+ "8:1",
29506
+ "4:1",
29507
+ "5:3",
29508
+ "1:2"
29406
29509
  ]
29407
29510
  },
29408
29511
  atlas: {
@@ -29519,6 +29622,7 @@ var patterns_registry_default = {
29519
29622
  "dialogue-bubble": {
29520
29623
  type: "dialogue-bubble",
29521
29624
  category: "game",
29625
+ sourceFile: "components/game/atoms/DialogueBubble.tsx",
29522
29626
  tier: "atoms",
29523
29627
  family: "game",
29524
29628
  description: "DialogueBubble component",
@@ -29609,7 +29713,10 @@ var patterns_registry_default = {
29609
29713
  "1:1",
29610
29714
  "16:9",
29611
29715
  "5:7",
29612
- "8:1"
29716
+ "8:1",
29717
+ "4:1",
29718
+ "5:3",
29719
+ "1:2"
29613
29720
  ]
29614
29721
  },
29615
29722
  atlas: {
@@ -29680,6 +29787,7 @@ var patterns_registry_default = {
29680
29787
  "health-bar": {
29681
29788
  type: "health-bar",
29682
29789
  category: "game",
29790
+ sourceFile: "components/game/atoms/HealthBar.tsx",
29683
29791
  tier: "atoms",
29684
29792
  family: "game",
29685
29793
  description: "HealthBar component",
@@ -29828,7 +29936,10 @@ var patterns_registry_default = {
29828
29936
  "1:1",
29829
29937
  "16:9",
29830
29938
  "5:7",
29831
- "8:1"
29939
+ "8:1",
29940
+ "4:1",
29941
+ "5:3",
29942
+ "1:2"
29832
29943
  ]
29833
29944
  },
29834
29945
  atlas: {
@@ -29923,7 +30034,10 @@ var patterns_registry_default = {
29923
30034
  "1:1",
29924
30035
  "16:9",
29925
30036
  "5:7",
29926
- "8:1"
30037
+ "8:1",
30038
+ "4:1",
30039
+ "5:3",
30040
+ "1:2"
29927
30041
  ]
29928
30042
  },
29929
30043
  atlas: {
@@ -29958,6 +30072,7 @@ var patterns_registry_default = {
29958
30072
  "score-display": {
29959
30073
  type: "score-display",
29960
30074
  category: "game",
30075
+ sourceFile: "components/game/atoms/ScoreDisplay.tsx",
29961
30076
  tier: "atoms",
29962
30077
  family: "game",
29963
30078
  description: "ScoreDisplay component",
@@ -30033,7 +30148,10 @@ var patterns_registry_default = {
30033
30148
  "1:1",
30034
30149
  "16:9",
30035
30150
  "5:7",
30036
- "8:1"
30151
+ "8:1",
30152
+ "4:1",
30153
+ "5:3",
30154
+ "1:2"
30037
30155
  ]
30038
30156
  },
30039
30157
  atlas: {
@@ -30120,6 +30238,7 @@ var patterns_registry_default = {
30120
30238
  "timer-display": {
30121
30239
  type: "timer-display",
30122
30240
  category: "game",
30241
+ sourceFile: "components/game/atoms/TimerDisplay.tsx",
30123
30242
  tier: "atoms",
30124
30243
  family: "game",
30125
30244
  description: "TimerDisplay component",
@@ -30246,7 +30365,10 @@ var patterns_registry_default = {
30246
30365
  "1:1",
30247
30366
  "16:9",
30248
30367
  "5:7",
30249
- "8:1"
30368
+ "8:1",
30369
+ "4:1",
30370
+ "5:3",
30371
+ "1:2"
30250
30372
  ]
30251
30373
  },
30252
30374
  atlas: {
@@ -32516,6 +32638,7 @@ var patterns_registry_default = {
32516
32638
  "game-hud": {
32517
32639
  type: "game-hud",
32518
32640
  category: "game",
32641
+ sourceFile: "components/game/molecules/GameHud.tsx",
32519
32642
  tier: "molecules",
32520
32643
  family: "game",
32521
32644
  description: "GameHud component",
@@ -32606,7 +32729,10 @@ var patterns_registry_default = {
32606
32729
  "1:1",
32607
32730
  "16:9",
32608
32731
  "5:7",
32609
- "8:1"
32732
+ "8:1",
32733
+ "4:1",
32734
+ "5:3",
32735
+ "1:2"
32610
32736
  ]
32611
32737
  },
32612
32738
  atlas: {
@@ -32700,7 +32826,10 @@ var patterns_registry_default = {
32700
32826
  "1:1",
32701
32827
  "16:9",
32702
32828
  "5:7",
32703
- "8:1"
32829
+ "8:1",
32830
+ "4:1",
32831
+ "5:3",
32832
+ "1:2"
32704
32833
  ]
32705
32834
  },
32706
32835
  atlas: {
@@ -32857,7 +32986,10 @@ var patterns_registry_default = {
32857
32986
  "1:1",
32858
32987
  "16:9",
32859
32988
  "5:7",
32860
- "8:1"
32989
+ "8:1",
32990
+ "4:1",
32991
+ "5:3",
32992
+ "1:2"
32861
32993
  ]
32862
32994
  },
32863
32995
  atlas: {
@@ -32951,7 +33083,10 @@ var patterns_registry_default = {
32951
33083
  "1:1",
32952
33084
  "16:9",
32953
33085
  "5:7",
32954
- "8:1"
33086
+ "8:1",
33087
+ "4:1",
33088
+ "5:3",
33089
+ "1:2"
32955
33090
  ]
32956
33091
  },
32957
33092
  atlas: {
@@ -33140,7 +33275,10 @@ var patterns_registry_default = {
33140
33275
  "1:1",
33141
33276
  "16:9",
33142
33277
  "5:7",
33143
- "8:1"
33278
+ "8:1",
33279
+ "4:1",
33280
+ "5:3",
33281
+ "1:2"
33144
33282
  ]
33145
33283
  },
33146
33284
  atlas: {
@@ -33487,7 +33625,10 @@ var patterns_registry_default = {
33487
33625
  "1:1",
33488
33626
  "16:9",
33489
33627
  "5:7",
33490
- "8:1"
33628
+ "8:1",
33629
+ "4:1",
33630
+ "5:3",
33631
+ "1:2"
33491
33632
  ]
33492
33633
  },
33493
33634
  atlas: {
@@ -33528,6 +33669,7 @@ var patterns_registry_default = {
33528
33669
  "stat-badge": {
33529
33670
  type: "stat-badge",
33530
33671
  category: "game",
33672
+ sourceFile: "components/game/molecules/StatBadge.tsx",
33531
33673
  tier: "molecules",
33532
33674
  family: "game",
33533
33675
  description: "StatBadge component",
@@ -33603,7 +33745,10 @@ var patterns_registry_default = {
33603
33745
  "1:1",
33604
33746
  "16:9",
33605
33747
  "5:7",
33606
- "8:1"
33748
+ "8:1",
33749
+ "4:1",
33750
+ "5:3",
33751
+ "1:2"
33607
33752
  ]
33608
33753
  },
33609
33754
  atlas: {
@@ -33698,7 +33843,10 @@ var patterns_registry_default = {
33698
33843
  "1:1",
33699
33844
  "16:9",
33700
33845
  "5:7",
33701
- "8:1"
33846
+ "8:1",
33847
+ "4:1",
33848
+ "5:3",
33849
+ "1:2"
33702
33850
  ]
33703
33851
  },
33704
33852
  atlas: {
@@ -34224,6 +34372,7 @@ var patterns_registry_default = {
34224
34372
  "game-audio-toggle": {
34225
34373
  type: "game-audio-toggle",
34226
34374
  category: "game",
34375
+ sourceFile: "components/game/atoms/GameAudioToggle.tsx",
34227
34376
  tier: "atoms",
34228
34377
  family: "game",
34229
34378
  description: "GameAudioToggle component",
@@ -34355,7 +34504,10 @@ var patterns_registry_default = {
34355
34504
  "1:1",
34356
34505
  "16:9",
34357
34506
  "5:7",
34358
- "8:1"
34507
+ "8:1",
34508
+ "4:1",
34509
+ "5:3",
34510
+ "1:2"
34359
34511
  ]
34360
34512
  },
34361
34513
  atlas: {
@@ -34450,7 +34602,10 @@ var patterns_registry_default = {
34450
34602
  "1:1",
34451
34603
  "16:9",
34452
34604
  "5:7",
34453
- "8:1"
34605
+ "8:1",
34606
+ "4:1",
34607
+ "5:3",
34608
+ "1:2"
34454
34609
  ]
34455
34610
  },
34456
34611
  atlas: {
@@ -34499,6 +34654,7 @@ var patterns_registry_default = {
34499
34654
  "trait-slot": {
34500
34655
  type: "trait-slot",
34501
34656
  category: "game",
34657
+ sourceFile: "components/game/molecules/TraitSlot.tsx",
34502
34658
  tier: "molecules",
34503
34659
  family: "game",
34504
34660
  description: "Event Contract: Emits: UI:CLICK Emits: UI:REMOVE",
@@ -34611,7 +34767,10 @@ var patterns_registry_default = {
34611
34767
  "1:1",
34612
34768
  "16:9",
34613
34769
  "5:7",
34614
- "8:1"
34770
+ "8:1",
34771
+ "4:1",
34772
+ "5:3",
34773
+ "1:2"
34615
34774
  ]
34616
34775
  },
34617
34776
  atlas: {
@@ -34854,7 +35013,10 @@ var patterns_registry_default = {
34854
35013
  "1:1",
34855
35014
  "16:9",
34856
35015
  "5:7",
34857
- "8:1"
35016
+ "8:1",
35017
+ "4:1",
35018
+ "5:3",
35019
+ "1:2"
34858
35020
  ]
34859
35021
  },
34860
35022
  atlas: {
@@ -35031,7 +35193,10 @@ var patterns_registry_default = {
35031
35193
  "1:1",
35032
35194
  "16:9",
35033
35195
  "5:7",
35034
- "8:1"
35196
+ "8:1",
35197
+ "4:1",
35198
+ "5:3",
35199
+ "1:2"
35035
35200
  ]
35036
35201
  },
35037
35202
  atlas: {
@@ -35257,7 +35422,10 @@ var patterns_registry_default = {
35257
35422
  "1:1",
35258
35423
  "16:9",
35259
35424
  "5:7",
35260
- "8:1"
35425
+ "8:1",
35426
+ "4:1",
35427
+ "5:3",
35428
+ "1:2"
35261
35429
  ]
35262
35430
  },
35263
35431
  atlas: {
@@ -35452,6 +35620,7 @@ var patterns_registry_default = {
35452
35620
  "action-palette": {
35453
35621
  type: "action-palette",
35454
35622
  category: "game",
35623
+ sourceFile: "components/game/molecules/ActionPalette.tsx",
35455
35624
  tier: "molecules",
35456
35625
  family: "game",
35457
35626
  description: "ActionPalette Component Grid of draggable ActionTile components for the Sequencer tier. Kids pick from these to build their sequence.",
@@ -35562,7 +35731,10 @@ var patterns_registry_default = {
35562
35731
  "1:1",
35563
35732
  "16:9",
35564
35733
  "5:7",
35565
- "8:1"
35734
+ "8:1",
35735
+ "4:1",
35736
+ "5:3",
35737
+ "1:2"
35566
35738
  ]
35567
35739
  },
35568
35740
  atlas: {
@@ -35750,6 +35922,7 @@ var patterns_registry_default = {
35750
35922
  "action-tile": {
35751
35923
  type: "action-tile",
35752
35924
  category: "game",
35925
+ sourceFile: "components/game/molecules/ActionTile.tsx",
35753
35926
  tier: "molecules",
35754
35927
  family: "game",
35755
35928
  description: "ActionTile Component A draggable action tile for the Sequencer tier (ages 5-8). Kids drag these from the ActionPalette into SequenceBar slots. Sets SlotItemData on dataTransfer for TraitSlot compatibility.",
@@ -35962,7 +36135,10 @@ var patterns_registry_default = {
35962
36135
  "1:1",
35963
36136
  "16:9",
35964
36137
  "5:7",
35965
- "8:1"
36138
+ "8:1",
36139
+ "4:1",
36140
+ "5:3",
36141
+ "1:2"
35966
36142
  ]
35967
36143
  },
35968
36144
  atlas: {
@@ -36125,6 +36301,7 @@ var patterns_registry_default = {
36125
36301
  "sequence-bar": {
36126
36302
  type: "sequence-bar",
36127
36303
  category: "game",
36304
+ sourceFile: "components/game/molecules/SequenceBar.tsx",
36128
36305
  tier: "molecules",
36129
36306
  family: "game",
36130
36307
  description: "SequenceBar Component A row of TraitSlot components forming the action sequence for the Sequencer tier (ages 5-8). Kids drag ActionTiles from the palette into these slots to build their sequence.",
@@ -36235,7 +36412,10 @@ var patterns_registry_default = {
36235
36412
  "1:1",
36236
36413
  "16:9",
36237
36414
  "5:7",
36238
- "8:1"
36415
+ "8:1",
36416
+ "4:1",
36417
+ "5:3",
36418
+ "1:2"
36239
36419
  ]
36240
36420
  },
36241
36421
  atlas: {
@@ -36463,7 +36643,10 @@ var patterns_registry_default = {
36463
36643
  "1:1",
36464
36644
  "16:9",
36465
36645
  "5:7",
36466
- "8:1"
36646
+ "8:1",
36647
+ "4:1",
36648
+ "5:3",
36649
+ "1:2"
36467
36650
  ]
36468
36651
  },
36469
36652
  atlas: {
@@ -39512,6 +39695,7 @@ var patterns_registry_default = {
39512
39695
  "canvas-2d": {
39513
39696
  type: "canvas-2d",
39514
39697
  category: "game",
39698
+ sourceFile: "components/game/molecules/Canvas2D.tsx",
39515
39699
  tier: "molecules",
39516
39700
  family: "game",
39517
39701
  description: "Canvas2D component",
@@ -39658,7 +39842,10 @@ var patterns_registry_default = {
39658
39842
  "1:1",
39659
39843
  "16:9",
39660
39844
  "5:7",
39661
- "8:1"
39845
+ "8:1",
39846
+ "4:1",
39847
+ "5:3",
39848
+ "1:2"
39662
39849
  ]
39663
39850
  },
39664
39851
  atlas: {
@@ -39970,6 +40157,7 @@ var patterns_registry_default = {
39970
40157
  "control-grid": {
39971
40158
  type: "control-grid",
39972
40159
  category: "game",
40160
+ sourceFile: "components/game/molecules/ControlGrid.tsx",
39973
40161
  tier: "molecules",
39974
40162
  family: "game",
39975
40163
  description: "ControlGrid component",
@@ -40081,7 +40269,10 @@ var patterns_registry_default = {
40081
40269
  "1:1",
40082
40270
  "16:9",
40083
40271
  "5:7",
40084
- "8:1"
40272
+ "8:1",
40273
+ "4:1",
40274
+ "5:3",
40275
+ "1:2"
40085
40276
  ]
40086
40277
  },
40087
40278
  atlas: {
@@ -40310,7 +40501,10 @@ var patterns_registry_default = {
40310
40501
  "1:1",
40311
40502
  "16:9",
40312
40503
  "5:7",
40313
- "8:1"
40504
+ "8:1",
40505
+ "4:1",
40506
+ "5:3",
40507
+ "1:2"
40314
40508
  ]
40315
40509
  },
40316
40510
  atlas: {
@@ -40381,6 +40575,7 @@ var patterns_registry_default = {
40381
40575
  "game-icon": {
40382
40576
  type: "game-icon",
40383
40577
  category: "game",
40578
+ sourceFile: "components/core/atoms/GameIcon.tsx",
40384
40579
  tier: "atoms",
40385
40580
  family: "core",
40386
40581
  description: "GameIcon component",
@@ -40456,7 +40651,10 @@ var patterns_registry_default = {
40456
40651
  "1:1",
40457
40652
  "16:9",
40458
40653
  "5:7",
40459
- "8:1"
40654
+ "8:1",
40655
+ "4:1",
40656
+ "5:3",
40657
+ "1:2"
40460
40658
  ]
40461
40659
  },
40462
40660
  atlas: {
@@ -48754,6 +48952,7 @@ var patterns_registry_default = {
48754
48952
  "draw-sprite": {
48755
48953
  type: "draw-sprite",
48756
48954
  category: "game",
48955
+ sourceFile: "components/game/atoms/DrawSprite.tsx",
48757
48956
  tier: "atoms",
48758
48957
  family: "game",
48759
48958
  description: "DrawSprite component",
@@ -48875,7 +49074,10 @@ var patterns_registry_default = {
48875
49074
  "1:1",
48876
49075
  "16:9",
48877
49076
  "5:7",
48878
- "8:1"
49077
+ "8:1",
49078
+ "4:1",
49079
+ "5:3",
49080
+ "1:2"
48879
49081
  ]
48880
49082
  },
48881
49083
  atlas: {
@@ -49859,6 +50061,7 @@ var patterns_registry_default = {
49859
50061
  "draw-sprite-layer": {
49860
50062
  type: "draw-sprite-layer",
49861
50063
  category: "game",
50064
+ sourceFile: "components/game/molecules/DrawSpriteLayer.tsx",
49862
50065
  tier: "molecules",
49863
50066
  family: "game",
49864
50067
  description: "DrawSpriteLayer component",
@@ -50001,7 +50204,10 @@ var patterns_registry_default = {
50001
50204
  "1:1",
50002
50205
  "16:9",
50003
50206
  "5:7",
50004
- "8:1"
50207
+ "8:1",
50208
+ "4:1",
50209
+ "5:3",
50210
+ "1:2"
50005
50211
  ]
50006
50212
  },
50007
50213
  atlas: {
@@ -50307,6 +50513,7 @@ var patterns_registry_default = {
50307
50513
  canvas: {
50308
50514
  type: "canvas",
50309
50515
  category: "game",
50516
+ sourceFile: "components/game/molecules/Canvas.tsx",
50310
50517
  tier: "molecules",
50311
50518
  family: "game",
50312
50519
  description: "Canvas component",
@@ -50546,7 +50753,10 @@ var patterns_registry_default = {
50546
50753
  "1:1",
50547
50754
  "16:9",
50548
50755
  "5:7",
50549
- "8:1"
50756
+ "8:1",
50757
+ "4:1",
50758
+ "5:3",
50759
+ "1:2"
50550
50760
  ]
50551
50761
  },
50552
50762
  atlas: {
@@ -52979,6 +53189,7 @@ var patterns_registry_default = {
52979
53189
  "draw-fx-layer": {
52980
53190
  type: "draw-fx-layer",
52981
53191
  category: "game",
53192
+ sourceFile: "components/game/molecules/DrawFxLayer.tsx",
52982
53193
  tier: "molecules",
52983
53194
  family: "game",
52984
53195
  description: "DrawFxLayer component",
@@ -53354,7 +53565,10 @@ var patterns_registry_default = {
53354
53565
  "1:1",
53355
53566
  "16:9",
53356
53567
  "5:7",
53357
- "8:1"
53568
+ "8:1",
53569
+ "4:1",
53570
+ "5:3",
53571
+ "1:2"
53358
53572
  ]
53359
53573
  },
53360
53574
  atlas: {
@@ -54645,6 +54859,399 @@ var patterns_registry_default = {
54645
54859
  default: "replace"
54646
54860
  }
54647
54861
  }
54862
+ },
54863
+ "draw-skinned-mesh": {
54864
+ type: "draw-skinned-mesh",
54865
+ category: "game",
54866
+ sourceFile: "components/game/atoms/DrawSkinnedMesh.tsx",
54867
+ tier: "atoms",
54868
+ family: "game",
54869
+ description: "DrawSkinnedMesh component",
54870
+ suggestedFor: [
54871
+ "draw",
54872
+ "skinned",
54873
+ "mesh",
54874
+ "draw skinned mesh"
54875
+ ],
54876
+ typicalSize: "small",
54877
+ propsSchema: {
54878
+ id: {
54879
+ types: [
54880
+ "string"
54881
+ ],
54882
+ description: "Optional source-tagged hit-test handle \u2014 the host indexes the drawable's ScenePos\u2192id so a pointer/raycast at that cell resolves to this id (unit/entity click). No id \u2192 the host emits only the coordinate (tile click)."
54883
+ },
54884
+ type: {
54885
+ types: [
54886
+ "string"
54887
+ ],
54888
+ description: "type prop",
54889
+ required: true,
54890
+ enumValues: [
54891
+ "draw-skinned-mesh"
54892
+ ]
54893
+ },
54894
+ position: {
54895
+ types: [
54896
+ "object"
54897
+ ],
54898
+ description: "Logical scene position; mesh local coords are world units relative to its projected top-left.",
54899
+ required: true,
54900
+ properties: {
54901
+ x: {
54902
+ types: [
54903
+ "number"
54904
+ ]
54905
+ },
54906
+ y: {
54907
+ types: [
54908
+ "number"
54909
+ ]
54910
+ },
54911
+ z: {
54912
+ types: [
54913
+ "number"
54914
+ ]
54915
+ }
54916
+ },
54917
+ propertyRequired: [
54918
+ "x",
54919
+ "y"
54920
+ ],
54921
+ scenePos: true
54922
+ },
54923
+ asset: {
54924
+ types: [
54925
+ "object"
54926
+ ],
54927
+ description: "The texture the mesh UVs cut into.",
54928
+ required: true,
54929
+ properties: {
54930
+ url: {
54931
+ types: [
54932
+ "asset"
54933
+ ]
54934
+ },
54935
+ role: {
54936
+ types: [
54937
+ "string"
54938
+ ]
54939
+ },
54940
+ category: {
54941
+ types: [
54942
+ "string"
54943
+ ]
54944
+ },
54945
+ animations: {
54946
+ types: [
54947
+ "array"
54948
+ ],
54949
+ items: {
54950
+ types: [
54951
+ "string"
54952
+ ]
54953
+ }
54954
+ },
54955
+ style: {
54956
+ types: [
54957
+ "string"
54958
+ ],
54959
+ enumValues: [
54960
+ "pixel",
54961
+ "vector",
54962
+ "hd",
54963
+ "1-bit",
54964
+ "isometric"
54965
+ ]
54966
+ },
54967
+ variant: {
54968
+ types: [
54969
+ "string"
54970
+ ]
54971
+ },
54972
+ dimension: {
54973
+ types: [
54974
+ "string"
54975
+ ],
54976
+ enumValues: [
54977
+ "2d",
54978
+ "3d"
54979
+ ]
54980
+ },
54981
+ aspect: {
54982
+ types: [
54983
+ "string"
54984
+ ],
54985
+ enumValues: [
54986
+ "1:1",
54987
+ "16:9",
54988
+ "5:7",
54989
+ "8:1",
54990
+ "4:1",
54991
+ "5:3",
54992
+ "1:2"
54993
+ ]
54994
+ },
54995
+ atlas: {
54996
+ types: [
54997
+ "asset"
54998
+ ]
54999
+ },
55000
+ sprite: {
55001
+ types: [
55002
+ "string"
55003
+ ]
55004
+ },
55005
+ name: {
55006
+ types: [
55007
+ "string"
55008
+ ]
55009
+ },
55010
+ thumbnailUrl: {
55011
+ types: [
55012
+ "string"
55013
+ ]
55014
+ }
55015
+ },
55016
+ propertyRequired: [
55017
+ "url",
55018
+ "role",
55019
+ "category"
55020
+ ]
55021
+ },
55022
+ mesh: {
55023
+ types: [
55024
+ "object"
55025
+ ],
55026
+ description: "Inline bind mesh; wins over `meshUrl`.",
55027
+ properties: {
55028
+ vertices: {
55029
+ types: [
55030
+ "array"
55031
+ ],
55032
+ items: {
55033
+ types: [
55034
+ "object"
55035
+ ],
55036
+ properties: {
55037
+ x: {
55038
+ types: [
55039
+ "number"
55040
+ ]
55041
+ },
55042
+ y: {
55043
+ types: [
55044
+ "number"
55045
+ ]
55046
+ },
55047
+ u: {
55048
+ types: [
55049
+ "number"
55050
+ ]
55051
+ },
55052
+ v: {
55053
+ types: [
55054
+ "number"
55055
+ ]
55056
+ },
55057
+ weights: {
55058
+ types: [
55059
+ "array"
55060
+ ],
55061
+ items: {
55062
+ types: [
55063
+ "object"
55064
+ ],
55065
+ properties: {
55066
+ bone: {
55067
+ types: [
55068
+ "number"
55069
+ ]
55070
+ },
55071
+ w: {
55072
+ types: [
55073
+ "number"
55074
+ ]
55075
+ }
55076
+ },
55077
+ required: [
55078
+ "bone",
55079
+ "w"
55080
+ ]
55081
+ }
55082
+ }
55083
+ },
55084
+ required: [
55085
+ "x",
55086
+ "y",
55087
+ "u",
55088
+ "v",
55089
+ "weights"
55090
+ ]
55091
+ }
55092
+ },
55093
+ triangles: {
55094
+ types: [
55095
+ "array"
55096
+ ],
55097
+ items: {
55098
+ types: [
55099
+ "array"
55100
+ ],
55101
+ items: {
55102
+ types: [
55103
+ "number"
55104
+ ]
55105
+ }
55106
+ }
55107
+ }
55108
+ },
55109
+ propertyRequired: [
55110
+ "vertices",
55111
+ "triangles"
55112
+ ]
55113
+ },
55114
+ meshUrl: {
55115
+ types: [
55116
+ "string"
55117
+ ],
55118
+ description: "URL of a JSON `SkinMesh` (fetched + cached); used when `mesh` is absent."
55119
+ },
55120
+ bones: {
55121
+ types: [
55122
+ "array"
55123
+ ],
55124
+ description: "The skeleton (bind pose; FK chain via `parent` names). Falls back to the rigbundle's `bones` when empty.",
55125
+ required: true,
55126
+ items: {
55127
+ types: [
55128
+ "object"
55129
+ ],
55130
+ properties: {
55131
+ name: {
55132
+ types: [
55133
+ "string"
55134
+ ]
55135
+ },
55136
+ parent: {
55137
+ types: [
55138
+ "string"
55139
+ ]
55140
+ },
55141
+ pivot: {
55142
+ types: [
55143
+ "array"
55144
+ ],
55145
+ items: {
55146
+ types: [
55147
+ "number"
55148
+ ]
55149
+ }
55150
+ },
55151
+ tip: {
55152
+ types: [
55153
+ "array"
55154
+ ],
55155
+ items: {
55156
+ types: [
55157
+ "number"
55158
+ ]
55159
+ }
55160
+ }
55161
+ },
55162
+ required: [
55163
+ "name",
55164
+ "parent",
55165
+ "pivot",
55166
+ "tip"
55167
+ ]
55168
+ }
55169
+ },
55170
+ pose: {
55171
+ types: [
55172
+ "object"
55173
+ ],
55174
+ description: "Static pose (bone name \u2192 degrees relative to bind). Overridden by `clip` + `frame`.",
55175
+ mapValue: {
55176
+ types: [
55177
+ "number"
55178
+ ]
55179
+ }
55180
+ },
55181
+ clip: {
55182
+ types: [
55183
+ "object"
55184
+ ],
55185
+ description: "Pose animation clip; with `frame`, pose = `frames[frame % frames.length]`.",
55186
+ properties: {
55187
+ frames: {
55188
+ types: [
55189
+ "array"
55190
+ ],
55191
+ items: {
55192
+ types: [
55193
+ "object"
55194
+ ],
55195
+ mapValue: {
55196
+ types: [
55197
+ "number"
55198
+ ]
55199
+ }
55200
+ }
55201
+ }
55202
+ },
55203
+ propertyRequired: [
55204
+ "frames"
55205
+ ]
55206
+ },
55207
+ clipName: {
55208
+ types: [
55209
+ "string"
55210
+ ],
55211
+ description: "Named clip inside the rigbundle at `meshUrl` (`clips[clipName].frames`); used when `clip` is absent. Empty/unknown = no clip."
55212
+ },
55213
+ frame: {
55214
+ types: [
55215
+ "number"
55216
+ ],
55217
+ description: "Clip frame counter (host-driven paint clock frame)."
55218
+ },
55219
+ opacity: {
55220
+ types: [
55221
+ "number"
55222
+ ],
55223
+ description: "0..1 opacity."
55224
+ },
55225
+ weightsOverlay: {
55226
+ types: [
55227
+ "boolean"
55228
+ ],
55229
+ description: "Paint per-triangle dominant-bone colors instead of the texture (rig inspection)."
55230
+ },
55231
+ ghost: {
55232
+ types: [
55233
+ "object"
55234
+ ],
55235
+ description: "Onion skin: render the mesh at this clip frame underneath, at this opacity.",
55236
+ properties: {
55237
+ frame: {
55238
+ types: [
55239
+ "number"
55240
+ ]
55241
+ },
55242
+ opacity: {
55243
+ types: [
55244
+ "number"
55245
+ ]
55246
+ }
55247
+ },
55248
+ propertyRequired: [
55249
+ "frame",
55250
+ "opacity"
55251
+ ]
55252
+ }
55253
+ },
55254
+ drawable: true
54648
55255
  }
54649
55256
  }};
54650
55257
  var JsonValueSchema = z.lazy(
@@ -54807,7 +55414,8 @@ var EntityFieldSchema = z.lazy(() => {
54807
55414
  properties: z.record(EntityFieldSchema).optional(),
54808
55415
  intrinsic: z.boolean().optional(),
54809
55416
  description: z.string().optional(),
54810
- synonyms: z.string().optional()
55417
+ synonyms: z.string().optional(),
55418
+ mergedFrom: z.string().optional()
54811
55419
  };
54812
55420
  function scalarVariant(t) {
54813
55421
  return z.object({
@@ -54904,7 +55512,7 @@ var VISUAL_STYLES = ["pixel", "vector", "hd", "1-bit", "isometric"];
54904
55512
  var VisualStyleSchema = z.enum(VISUAL_STYLES);
54905
55513
  var ASSET_DIMENSIONS = ["2d", "3d"];
54906
55514
  var AssetDimensionSchema = z.enum(ASSET_DIMENSIONS);
54907
- var ASSET_ASPECTS = ["1:1", "16:9", "5:7", "8:1"];
55515
+ var ASSET_ASPECTS = ["1:1", "16:9", "5:7", "8:1", "4:1", "5:3", "1:2"];
54908
55516
  var AssetAspectSchema = z.enum(ASSET_ASPECTS);
54909
55517
  var ANIMATION_NAMES = ["idle", "walk", "skate", "jump", "fall", "attack", "hit", "death"];
54910
55518
  z.enum(ANIMATION_NAMES);
@@ -54974,7 +55582,9 @@ SemanticAssetRefSchema.extend({
54974
55582
  atlas: z.string().optional(),
54975
55583
  sprite: z.string().optional(),
54976
55584
  name: z.string().optional(),
54977
- thumbnailUrl: z.string().optional()
55585
+ thumbnailUrl: z.string().optional(),
55586
+ prompt: z.string().optional(),
55587
+ choreography: z.record(z.string(), z.array(z.string())).optional()
54978
55588
  });
54979
55589
  var AssetCatalogEntrySchema = z.object({
54980
55590
  url: z.string(),
@@ -55107,6 +55717,9 @@ z.object({
55107
55717
  function persistenceModeAllowsOverrides(persistence) {
55108
55718
  return persistence === "persistent" || persistence === void 0;
55109
55719
  }
55720
+ var FieldValueSchema = z.lazy(
55721
+ () => z.union([z.string(), z.number(), z.boolean(), z.date(), z.null(), z.array(FieldValueSchema), z.record(FieldValueSchema.optional())])
55722
+ );
55110
55723
  var UI_SLOTS = [
55111
55724
  // App slots
55112
55725
  "main",