@almadar/core 10.62.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.
@@ -3,7 +3,7 @@ import { z } from 'zod';
3
3
  // src/patterns/patterns-registry.json
4
4
  var patterns_registry_default = {
5
5
  version: "1.0.0",
6
- exportedAt: "2026-08-20T06:39:15.858Z",
6
+ exportedAt: "2026-08-20T23:14:19.545Z",
7
7
  patterns: {
8
8
  "entity-table": {
9
9
  type: "entity-table",
@@ -1803,9 +1803,10 @@ var patterns_registry_default = {
1803
1803
  },
1804
1804
  status: {
1805
1805
  types: [
1806
- "object"
1806
+ "object",
1807
+ "string"
1807
1808
  ],
1808
- description: "Status badge",
1809
+ description: "Status badge \u2014 a bare string (an entity's status field bound directly, e.g. `status: @entity.status`) renders as a default-variant badge",
1809
1810
  properties: {
1810
1811
  label: {
1811
1812
  types: [
@@ -2552,7 +2553,12 @@ var patterns_registry_default = {
2552
2553
  formValues: {
2553
2554
  types: [
2554
2555
  "object"
2555
- ]
2556
+ ],
2557
+ mapValue: {
2558
+ types: [
2559
+ "object"
2560
+ ]
2561
+ }
2556
2562
  },
2557
2563
  globalVariables: {
2558
2564
  types: [
@@ -2579,7 +2585,12 @@ var patterns_registry_default = {
2579
2585
  entity: {
2580
2586
  types: [
2581
2587
  "object"
2582
- ]
2588
+ ],
2589
+ mapValue: {
2590
+ types: [
2591
+ "object"
2592
+ ]
2593
+ }
2583
2594
  }
2584
2595
  },
2585
2596
  propertyRequired: [
@@ -3408,7 +3419,12 @@ var patterns_registry_default = {
3408
3419
  formValues: {
3409
3420
  types: [
3410
3421
  "object"
3411
- ]
3422
+ ],
3423
+ mapValue: {
3424
+ types: [
3425
+ "object"
3426
+ ]
3427
+ }
3412
3428
  },
3413
3429
  globalVariables: {
3414
3430
  types: [
@@ -3435,7 +3451,12 @@ var patterns_registry_default = {
3435
3451
  entity: {
3436
3452
  types: [
3437
3453
  "object"
3438
- ]
3454
+ ],
3455
+ mapValue: {
3456
+ types: [
3457
+ "object"
3458
+ ]
3459
+ }
3439
3460
  }
3440
3461
  },
3441
3462
  propertyRequired: [
@@ -13022,7 +13043,7 @@ var patterns_registry_default = {
13022
13043
  types: [
13023
13044
  "object"
13024
13045
  ],
13025
- description: "Current user info (optional - auto-populated from auth context if not provided)",
13046
+ 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 {\u2026} null)`, and the compiled path passes that `null` through verbatim.",
13026
13047
  properties: {
13027
13048
  name: {
13028
13049
  types: [
@@ -13041,8 +13062,7 @@ var patterns_registry_default = {
13041
13062
  }
13042
13063
  },
13043
13064
  propertyRequired: [
13044
- "name",
13045
- "email"
13065
+ "name"
13046
13066
  ]
13047
13067
  },
13048
13068
  headerActions: {
@@ -46994,6 +47014,566 @@ var patterns_registry_default = {
46994
47014
  ]
46995
47015
  }
46996
47016
  }
47017
+ },
47018
+ "fx-overlay": {
47019
+ type: "fx-overlay",
47020
+ category: "container",
47021
+ tier: "molecules",
47022
+ family: "core",
47023
+ description: "FxOverlay component",
47024
+ suggestedFor: [
47025
+ "overlay",
47026
+ "fx overlay"
47027
+ ],
47028
+ typicalSize: "medium",
47029
+ propsSchema: {
47030
+ items: {
47031
+ types: [
47032
+ "array"
47033
+ ],
47034
+ 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.",
47035
+ required: true,
47036
+ items: {
47037
+ types: [
47038
+ "object"
47039
+ ],
47040
+ properties: {
47041
+ id: {
47042
+ types: [
47043
+ "string"
47044
+ ]
47045
+ },
47046
+ type: {
47047
+ types: [
47048
+ "string"
47049
+ ]
47050
+ },
47051
+ effect: {
47052
+ types: [
47053
+ "string"
47054
+ ],
47055
+ enumValues: [
47056
+ "confetti",
47057
+ "flash",
47058
+ "shake",
47059
+ "sparkle",
47060
+ "float-text",
47061
+ "streak-glow"
47062
+ ]
47063
+ },
47064
+ message: {
47065
+ types: [
47066
+ "string"
47067
+ ]
47068
+ },
47069
+ color: {
47070
+ types: [
47071
+ "string"
47072
+ ]
47073
+ },
47074
+ size: {
47075
+ types: [
47076
+ "number"
47077
+ ]
47078
+ },
47079
+ x: {
47080
+ types: [
47081
+ "number"
47082
+ ]
47083
+ },
47084
+ z: {
47085
+ types: [
47086
+ "number"
47087
+ ]
47088
+ },
47089
+ y: {
47090
+ types: [
47091
+ "number"
47092
+ ]
47093
+ },
47094
+ ttl: {
47095
+ types: [
47096
+ "number"
47097
+ ]
47098
+ },
47099
+ maxTtl: {
47100
+ types: [
47101
+ "number"
47102
+ ]
47103
+ },
47104
+ bornAt: {
47105
+ types: [
47106
+ "number"
47107
+ ]
47108
+ },
47109
+ space: {
47110
+ types: [
47111
+ "string"
47112
+ ],
47113
+ enumValues: [
47114
+ "world",
47115
+ "screen"
47116
+ ]
47117
+ },
47118
+ particleCount: {
47119
+ types: [
47120
+ "number"
47121
+ ]
47122
+ },
47123
+ vx: {
47124
+ types: [
47125
+ "number"
47126
+ ]
47127
+ },
47128
+ vy: {
47129
+ types: [
47130
+ "number"
47131
+ ]
47132
+ },
47133
+ vz: {
47134
+ types: [
47135
+ "number"
47136
+ ]
47137
+ }
47138
+ },
47139
+ required: [
47140
+ "id",
47141
+ "type",
47142
+ "ttl"
47143
+ ]
47144
+ }
47145
+ },
47146
+ tickMs: {
47147
+ types: [
47148
+ "number"
47149
+ ],
47150
+ description: "The fx mechanic's decay tick period in ms; per-item animation duration = maxTtl \xD7 tickMs. Default 500."
47151
+ },
47152
+ children: {
47153
+ types: [
47154
+ "node"
47155
+ ],
47156
+ description: "Wrapped content \u2014 the `shake` target and the overlay's bounds."
47157
+ },
47158
+ className: {
47159
+ types: [
47160
+ "string"
47161
+ ],
47162
+ description: "Additional class names on the outermost element."
47163
+ }
47164
+ }
47165
+ },
47166
+ "draw-fx-layer": {
47167
+ type: "draw-fx-layer",
47168
+ category: "game",
47169
+ tier: "molecules",
47170
+ family: "game",
47171
+ description: "DrawFxLayer component",
47172
+ suggestedFor: [
47173
+ "draw",
47174
+ "layer",
47175
+ "draw fx layer"
47176
+ ],
47177
+ typicalSize: "medium",
47178
+ propsSchema: {
47179
+ id: {
47180
+ types: [
47181
+ "string"
47182
+ ],
47183
+ 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)."
47184
+ },
47185
+ type: {
47186
+ types: [
47187
+ "unknown"
47188
+ ],
47189
+ description: "type prop",
47190
+ required: true
47191
+ },
47192
+ items: {
47193
+ types: [
47194
+ "array"
47195
+ ],
47196
+ description: 'The live fx entries \u2014 the mechanic\'s `@entity.fx` list passed whole; `space: "screen"` entries are skipped (the overlay owns those).',
47197
+ required: true,
47198
+ items: {
47199
+ types: [
47200
+ "object"
47201
+ ],
47202
+ properties: {
47203
+ id: {
47204
+ types: [
47205
+ "string"
47206
+ ]
47207
+ },
47208
+ type: {
47209
+ types: [
47210
+ "string"
47211
+ ]
47212
+ },
47213
+ position: {
47214
+ types: [
47215
+ "object"
47216
+ ],
47217
+ scenePos: true,
47218
+ properties: {
47219
+ x: {
47220
+ types: [
47221
+ "number"
47222
+ ]
47223
+ },
47224
+ y: {
47225
+ types: [
47226
+ "number"
47227
+ ]
47228
+ },
47229
+ z: {
47230
+ types: [
47231
+ "number"
47232
+ ]
47233
+ }
47234
+ },
47235
+ required: [
47236
+ "x",
47237
+ "y"
47238
+ ]
47239
+ },
47240
+ x: {
47241
+ types: [
47242
+ "number"
47243
+ ]
47244
+ },
47245
+ z: {
47246
+ types: [
47247
+ "number"
47248
+ ]
47249
+ },
47250
+ y: {
47251
+ types: [
47252
+ "number"
47253
+ ]
47254
+ },
47255
+ message: {
47256
+ types: [
47257
+ "string"
47258
+ ]
47259
+ },
47260
+ ttl: {
47261
+ types: [
47262
+ "number"
47263
+ ]
47264
+ },
47265
+ maxTtl: {
47266
+ types: [
47267
+ "number"
47268
+ ]
47269
+ },
47270
+ bornAt: {
47271
+ types: [
47272
+ "number"
47273
+ ]
47274
+ },
47275
+ space: {
47276
+ types: [
47277
+ "string"
47278
+ ],
47279
+ enumValues: [
47280
+ "world",
47281
+ "screen"
47282
+ ]
47283
+ },
47284
+ effect: {
47285
+ types: [
47286
+ "string"
47287
+ ],
47288
+ enumValues: [
47289
+ "confetti",
47290
+ "flash",
47291
+ "shake",
47292
+ "sparkle",
47293
+ "float-text",
47294
+ "streak-glow"
47295
+ ]
47296
+ },
47297
+ color: {
47298
+ types: [
47299
+ "string"
47300
+ ]
47301
+ },
47302
+ size: {
47303
+ types: [
47304
+ "number"
47305
+ ]
47306
+ },
47307
+ vx: {
47308
+ types: [
47309
+ "number"
47310
+ ]
47311
+ },
47312
+ vy: {
47313
+ types: [
47314
+ "number"
47315
+ ]
47316
+ },
47317
+ vz: {
47318
+ types: [
47319
+ "number"
47320
+ ]
47321
+ },
47322
+ particleCount: {
47323
+ types: [
47324
+ "number"
47325
+ ]
47326
+ }
47327
+ },
47328
+ required: [
47329
+ "id",
47330
+ "type",
47331
+ "x",
47332
+ "ttl"
47333
+ ]
47334
+ }
47335
+ },
47336
+ presets: {
47337
+ types: [
47338
+ "array"
47339
+ ],
47340
+ description: "Consumer-declared effect vocabulary \u2014 one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst.",
47341
+ items: {
47342
+ types: [
47343
+ "object"
47344
+ ],
47345
+ properties: {
47346
+ type: {
47347
+ types: [
47348
+ "string"
47349
+ ]
47350
+ },
47351
+ color: {
47352
+ types: [
47353
+ "string"
47354
+ ]
47355
+ },
47356
+ color2: {
47357
+ types: [
47358
+ "string"
47359
+ ]
47360
+ },
47361
+ size: {
47362
+ types: [
47363
+ "number"
47364
+ ]
47365
+ },
47366
+ shape: {
47367
+ types: [
47368
+ "string"
47369
+ ],
47370
+ enumValues: [
47371
+ "spark",
47372
+ "ring",
47373
+ "puff",
47374
+ "streak"
47375
+ ]
47376
+ },
47377
+ count: {
47378
+ types: [
47379
+ "number"
47380
+ ]
47381
+ },
47382
+ glow: {
47383
+ types: [
47384
+ "number"
47385
+ ]
47386
+ },
47387
+ gravity: {
47388
+ types: [
47389
+ "number"
47390
+ ]
47391
+ },
47392
+ vx: {
47393
+ types: [
47394
+ "number"
47395
+ ]
47396
+ },
47397
+ vy: {
47398
+ types: [
47399
+ "number"
47400
+ ]
47401
+ },
47402
+ vz: {
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
+ particleCount: {
47430
+ types: [
47431
+ "number"
47432
+ ]
47433
+ }
47434
+ },
47435
+ required: [
47436
+ "type"
47437
+ ]
47438
+ }
47439
+ },
47440
+ art: {
47441
+ types: [
47442
+ "object"
47443
+ ],
47444
+ description: "Vector art per fx type (an asset-art map: type \u2192 anim-state \u2192 drawables); a type's `idle` state wins over sprites/procedural.",
47445
+ mapValue: {
47446
+ types: [
47447
+ "object"
47448
+ ],
47449
+ mapValue: {
47450
+ types: [
47451
+ "array"
47452
+ ],
47453
+ items: {
47454
+ types: [
47455
+ "object"
47456
+ ],
47457
+ drawableSlot: true
47458
+ }
47459
+ }
47460
+ }
47461
+ },
47462
+ sprites: {
47463
+ types: [
47464
+ "object"
47465
+ ],
47466
+ description: "Sprite asset per fx type (an asset-manifest effects map) \u2014 used when no vector art matches.",
47467
+ mapValue: {
47468
+ types: [
47469
+ "object"
47470
+ ],
47471
+ properties: {
47472
+ url: {
47473
+ types: [
47474
+ "asset"
47475
+ ]
47476
+ },
47477
+ role: {
47478
+ types: [
47479
+ "string"
47480
+ ]
47481
+ },
47482
+ category: {
47483
+ types: [
47484
+ "string"
47485
+ ]
47486
+ },
47487
+ animations: {
47488
+ types: [
47489
+ "array"
47490
+ ],
47491
+ items: {
47492
+ types: [
47493
+ "string"
47494
+ ]
47495
+ }
47496
+ },
47497
+ style: {
47498
+ types: [
47499
+ "string"
47500
+ ],
47501
+ enumValues: [
47502
+ "pixel",
47503
+ "vector",
47504
+ "hd",
47505
+ "1-bit",
47506
+ "isometric"
47507
+ ]
47508
+ },
47509
+ variant: {
47510
+ types: [
47511
+ "string"
47512
+ ]
47513
+ },
47514
+ dimension: {
47515
+ types: [
47516
+ "string"
47517
+ ],
47518
+ enumValues: [
47519
+ "2d",
47520
+ "3d"
47521
+ ]
47522
+ },
47523
+ aspect: {
47524
+ types: [
47525
+ "string"
47526
+ ],
47527
+ enumValues: [
47528
+ "1:1",
47529
+ "16:9",
47530
+ "5:7",
47531
+ "8:1"
47532
+ ]
47533
+ },
47534
+ atlas: {
47535
+ types: [
47536
+ "asset"
47537
+ ]
47538
+ },
47539
+ sprite: {
47540
+ types: [
47541
+ "string"
47542
+ ]
47543
+ },
47544
+ name: {
47545
+ types: [
47546
+ "string"
47547
+ ]
47548
+ },
47549
+ thumbnailUrl: {
47550
+ types: [
47551
+ "string"
47552
+ ]
47553
+ }
47554
+ },
47555
+ required: [
47556
+ "url",
47557
+ "role",
47558
+ "category"
47559
+ ]
47560
+ }
47561
+ },
47562
+ tickMs: {
47563
+ types: [
47564
+ "number"
47565
+ ],
47566
+ description: "The fx mechanic's decay tick period in ms; lifetime = maxTtl \xD7 tickMs. Default 500."
47567
+ },
47568
+ textColor: {
47569
+ types: [
47570
+ "string"
47571
+ ],
47572
+ description: "Floating-message text color when an item declares none. Default `#ffe066`."
47573
+ }
47574
+ },
47575
+ drawable: true,
47576
+ drawHost: true
46997
47577
  }
46998
47578
  },
46999
47579
  categories: [
@@ -47978,7 +48558,7 @@ var integrators_registry_default = {
47978
48558
  // src/patterns/component-mapping.json
47979
48559
  var component_mapping_default = {
47980
48560
  version: "1.0.0",
47981
- exportedAt: "2026-08-20T06:39:15.858Z",
48561
+ exportedAt: "2026-08-20T23:14:19.545Z",
47982
48562
  mappings: {
47983
48563
  "page-header": {
47984
48564
  component: "PageHeader",
@@ -49371,6 +49951,16 @@ var component_mapping_default = {
49371
49951
  component: "AlgoGraphCanvas",
49372
49952
  importPath: "@/components/learning/molecules/AlgoGraphCanvas",
49373
49953
  category: "learning"
49954
+ },
49955
+ "fx-overlay": {
49956
+ component: "FxOverlay",
49957
+ importPath: "@/components/core/molecules/FxOverlay",
49958
+ category: "container"
49959
+ },
49960
+ "draw-fx-layer": {
49961
+ component: "DrawFxLayer",
49962
+ importPath: "@/components/game/molecules/DrawFxLayer",
49963
+ category: "game"
49374
49964
  }
49375
49965
  }
49376
49966
  };
@@ -49378,7 +49968,7 @@ var component_mapping_default = {
49378
49968
  // src/patterns/event-contracts.json
49379
49969
  var event_contracts_default = {
49380
49970
  version: "1.0.0",
49381
- exportedAt: "2026-08-20T06:39:15.858Z",
49971
+ exportedAt: "2026-08-20T23:14:19.545Z",
49382
49972
  contracts: {
49383
49973
  form: {
49384
49974
  emits: [
@@ -50616,6 +51206,7 @@ var PATTERN_TYPES = [
50616
51206
  "doc-sidebar",
50617
51207
  "doc-toc",
50618
51208
  "document-viewer",
51209
+ "draw-fx-layer",
50619
51210
  "draw-group",
50620
51211
  "draw-mesh",
50621
51212
  "draw-shape",
@@ -50651,6 +51242,7 @@ var PATTERN_TYPES = [
50651
51242
  "form-layout",
50652
51243
  "form-section",
50653
51244
  "form-section-header",
51245
+ "fx-overlay",
50654
51246
  "game-audio-toggle",
50655
51247
  "game-hud",
50656
51248
  "game-icon",