@almadar/core 10.62.0 → 10.64.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-21T10:52:11.515Z",
7
7
  patterns: {
8
8
  "entity-table": {
9
9
  type: "entity-table",
@@ -1521,6 +1521,12 @@ var patterns_registry_default = {
1521
1521
  ]
1522
1522
  }
1523
1523
  },
1524
+ maxInlineActions: {
1525
+ types: [
1526
+ "number"
1527
+ ],
1528
+ description: `Max inline action buttons before the rest collapse into a "\u22EF" overflow menu (mirrors DataGrid's maxInlineActions). Omit = all inline.`
1529
+ },
1524
1530
  backAction: {
1525
1531
  types: [
1526
1532
  "object"
@@ -1803,9 +1809,10 @@ var patterns_registry_default = {
1803
1809
  },
1804
1810
  status: {
1805
1811
  types: [
1806
- "object"
1812
+ "object",
1813
+ "string"
1807
1814
  ],
1808
- description: "Status badge",
1815
+ 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
1816
  properties: {
1810
1817
  label: {
1811
1818
  types: [
@@ -2552,7 +2559,12 @@ var patterns_registry_default = {
2552
2559
  formValues: {
2553
2560
  types: [
2554
2561
  "object"
2555
- ]
2562
+ ],
2563
+ mapValue: {
2564
+ types: [
2565
+ "object"
2566
+ ]
2567
+ }
2556
2568
  },
2557
2569
  globalVariables: {
2558
2570
  types: [
@@ -2579,7 +2591,12 @@ var patterns_registry_default = {
2579
2591
  entity: {
2580
2592
  types: [
2581
2593
  "object"
2582
- ]
2594
+ ],
2595
+ mapValue: {
2596
+ types: [
2597
+ "object"
2598
+ ]
2599
+ }
2583
2600
  }
2584
2601
  },
2585
2602
  propertyRequired: [
@@ -3408,7 +3425,12 @@ var patterns_registry_default = {
3408
3425
  formValues: {
3409
3426
  types: [
3410
3427
  "object"
3411
- ]
3428
+ ],
3429
+ mapValue: {
3430
+ types: [
3431
+ "object"
3432
+ ]
3433
+ }
3412
3434
  },
3413
3435
  globalVariables: {
3414
3436
  types: [
@@ -3435,7 +3457,12 @@ var patterns_registry_default = {
3435
3457
  entity: {
3436
3458
  types: [
3437
3459
  "object"
3438
- ]
3460
+ ],
3461
+ mapValue: {
3462
+ types: [
3463
+ "object"
3464
+ ]
3465
+ }
3439
3466
  }
3440
3467
  },
3441
3468
  propertyRequired: [
@@ -4400,8 +4427,9 @@ var patterns_registry_default = {
4400
4427
  types: [
4401
4428
  "array"
4402
4429
  ],
4403
- description: "Breadcrumb items",
4404
- required: true,
4430
+ description: "Breadcrumb items. Omit together with `fromNavStack` to render the orbital-scoped navigation stack instead of an authored trail.",
4431
+ kind: "event-list",
4432
+ eventField: "event",
4405
4433
  items: {
4406
4434
  types: [
4407
4435
  "object"
@@ -4449,6 +4477,20 @@ var patterns_registry_default = {
4449
4477
  ]
4450
4478
  }
4451
4479
  },
4480
+ fromNavStack: {
4481
+ types: [
4482
+ "boolean"
4483
+ ],
4484
+ description: "Render the current orbital's navigation stack (NavStackProvider) as the trail: one crumb per visited/declared level, last entry current. The stack is client-session state both execution paths maintain; outside a provider this renders nothing.",
4485
+ default: false
4486
+ },
4487
+ itemEvent: {
4488
+ types: [
4489
+ "string"
4490
+ ],
4491
+ description: "Event emitted when a non-current crumb is clicked, with payload `{ label, href, index }` \u2014 the trait handles it with `(navigate ?href)`. Without it, stack crumbs navigate directly.",
4492
+ kind: "event"
4493
+ },
4452
4494
  separator: {
4453
4495
  types: [
4454
4496
  "icon",
@@ -13022,7 +13064,7 @@ var patterns_registry_default = {
13022
13064
  types: [
13023
13065
  "object"
13024
13066
  ],
13025
- description: "Current user info (optional - auto-populated from auth context if not provided)",
13067
+ 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
13068
  properties: {
13027
13069
  name: {
13028
13070
  types: [
@@ -13041,8 +13083,7 @@ var patterns_registry_default = {
13041
13083
  }
13042
13084
  },
13043
13085
  propertyRequired: [
13044
- "name",
13045
- "email"
13086
+ "name"
13046
13087
  ]
13047
13088
  },
13048
13089
  headerActions: {
@@ -46994,6 +47035,566 @@ var patterns_registry_default = {
46994
47035
  ]
46995
47036
  }
46996
47037
  }
47038
+ },
47039
+ "fx-overlay": {
47040
+ type: "fx-overlay",
47041
+ category: "container",
47042
+ tier: "molecules",
47043
+ family: "core",
47044
+ description: "FxOverlay component",
47045
+ suggestedFor: [
47046
+ "overlay",
47047
+ "fx overlay"
47048
+ ],
47049
+ typicalSize: "medium",
47050
+ propsSchema: {
47051
+ items: {
47052
+ types: [
47053
+ "array"
47054
+ ],
47055
+ 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.",
47056
+ required: true,
47057
+ items: {
47058
+ types: [
47059
+ "object"
47060
+ ],
47061
+ properties: {
47062
+ id: {
47063
+ types: [
47064
+ "string"
47065
+ ]
47066
+ },
47067
+ type: {
47068
+ types: [
47069
+ "string"
47070
+ ]
47071
+ },
47072
+ effect: {
47073
+ types: [
47074
+ "string"
47075
+ ],
47076
+ enumValues: [
47077
+ "confetti",
47078
+ "flash",
47079
+ "shake",
47080
+ "sparkle",
47081
+ "float-text",
47082
+ "streak-glow"
47083
+ ]
47084
+ },
47085
+ message: {
47086
+ types: [
47087
+ "string"
47088
+ ]
47089
+ },
47090
+ color: {
47091
+ types: [
47092
+ "string"
47093
+ ]
47094
+ },
47095
+ size: {
47096
+ types: [
47097
+ "number"
47098
+ ]
47099
+ },
47100
+ x: {
47101
+ types: [
47102
+ "number"
47103
+ ]
47104
+ },
47105
+ z: {
47106
+ types: [
47107
+ "number"
47108
+ ]
47109
+ },
47110
+ y: {
47111
+ types: [
47112
+ "number"
47113
+ ]
47114
+ },
47115
+ ttl: {
47116
+ types: [
47117
+ "number"
47118
+ ]
47119
+ },
47120
+ maxTtl: {
47121
+ types: [
47122
+ "number"
47123
+ ]
47124
+ },
47125
+ bornAt: {
47126
+ types: [
47127
+ "number"
47128
+ ]
47129
+ },
47130
+ space: {
47131
+ types: [
47132
+ "string"
47133
+ ],
47134
+ enumValues: [
47135
+ "world",
47136
+ "screen"
47137
+ ]
47138
+ },
47139
+ particleCount: {
47140
+ types: [
47141
+ "number"
47142
+ ]
47143
+ },
47144
+ vx: {
47145
+ types: [
47146
+ "number"
47147
+ ]
47148
+ },
47149
+ vy: {
47150
+ types: [
47151
+ "number"
47152
+ ]
47153
+ },
47154
+ vz: {
47155
+ types: [
47156
+ "number"
47157
+ ]
47158
+ }
47159
+ },
47160
+ required: [
47161
+ "id",
47162
+ "type",
47163
+ "ttl"
47164
+ ]
47165
+ }
47166
+ },
47167
+ tickMs: {
47168
+ types: [
47169
+ "number"
47170
+ ],
47171
+ description: "The fx mechanic's decay tick period in ms; per-item animation duration = maxTtl \xD7 tickMs. Default 500."
47172
+ },
47173
+ children: {
47174
+ types: [
47175
+ "node"
47176
+ ],
47177
+ description: "Wrapped content \u2014 the `shake` target and the overlay's bounds."
47178
+ },
47179
+ className: {
47180
+ types: [
47181
+ "string"
47182
+ ],
47183
+ description: "Additional class names on the outermost element."
47184
+ }
47185
+ }
47186
+ },
47187
+ "draw-fx-layer": {
47188
+ type: "draw-fx-layer",
47189
+ category: "game",
47190
+ tier: "molecules",
47191
+ family: "game",
47192
+ description: "DrawFxLayer component",
47193
+ suggestedFor: [
47194
+ "draw",
47195
+ "layer",
47196
+ "draw fx layer"
47197
+ ],
47198
+ typicalSize: "medium",
47199
+ propsSchema: {
47200
+ id: {
47201
+ types: [
47202
+ "string"
47203
+ ],
47204
+ 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)."
47205
+ },
47206
+ type: {
47207
+ types: [
47208
+ "unknown"
47209
+ ],
47210
+ description: "type prop",
47211
+ required: true
47212
+ },
47213
+ items: {
47214
+ types: [
47215
+ "array"
47216
+ ],
47217
+ description: 'The live fx entries \u2014 the mechanic\'s `@entity.fx` list passed whole; `space: "screen"` entries are skipped (the overlay owns those).',
47218
+ required: true,
47219
+ items: {
47220
+ types: [
47221
+ "object"
47222
+ ],
47223
+ properties: {
47224
+ id: {
47225
+ types: [
47226
+ "string"
47227
+ ]
47228
+ },
47229
+ type: {
47230
+ types: [
47231
+ "string"
47232
+ ]
47233
+ },
47234
+ position: {
47235
+ types: [
47236
+ "object"
47237
+ ],
47238
+ scenePos: true,
47239
+ properties: {
47240
+ x: {
47241
+ types: [
47242
+ "number"
47243
+ ]
47244
+ },
47245
+ y: {
47246
+ types: [
47247
+ "number"
47248
+ ]
47249
+ },
47250
+ z: {
47251
+ types: [
47252
+ "number"
47253
+ ]
47254
+ }
47255
+ },
47256
+ required: [
47257
+ "x",
47258
+ "y"
47259
+ ]
47260
+ },
47261
+ x: {
47262
+ types: [
47263
+ "number"
47264
+ ]
47265
+ },
47266
+ z: {
47267
+ types: [
47268
+ "number"
47269
+ ]
47270
+ },
47271
+ y: {
47272
+ types: [
47273
+ "number"
47274
+ ]
47275
+ },
47276
+ message: {
47277
+ types: [
47278
+ "string"
47279
+ ]
47280
+ },
47281
+ ttl: {
47282
+ types: [
47283
+ "number"
47284
+ ]
47285
+ },
47286
+ maxTtl: {
47287
+ types: [
47288
+ "number"
47289
+ ]
47290
+ },
47291
+ bornAt: {
47292
+ types: [
47293
+ "number"
47294
+ ]
47295
+ },
47296
+ space: {
47297
+ types: [
47298
+ "string"
47299
+ ],
47300
+ enumValues: [
47301
+ "world",
47302
+ "screen"
47303
+ ]
47304
+ },
47305
+ effect: {
47306
+ types: [
47307
+ "string"
47308
+ ],
47309
+ enumValues: [
47310
+ "confetti",
47311
+ "flash",
47312
+ "shake",
47313
+ "sparkle",
47314
+ "float-text",
47315
+ "streak-glow"
47316
+ ]
47317
+ },
47318
+ color: {
47319
+ types: [
47320
+ "string"
47321
+ ]
47322
+ },
47323
+ size: {
47324
+ types: [
47325
+ "number"
47326
+ ]
47327
+ },
47328
+ vx: {
47329
+ types: [
47330
+ "number"
47331
+ ]
47332
+ },
47333
+ vy: {
47334
+ types: [
47335
+ "number"
47336
+ ]
47337
+ },
47338
+ vz: {
47339
+ types: [
47340
+ "number"
47341
+ ]
47342
+ },
47343
+ particleCount: {
47344
+ types: [
47345
+ "number"
47346
+ ]
47347
+ }
47348
+ },
47349
+ required: [
47350
+ "id",
47351
+ "type",
47352
+ "x",
47353
+ "ttl"
47354
+ ]
47355
+ }
47356
+ },
47357
+ presets: {
47358
+ types: [
47359
+ "array"
47360
+ ],
47361
+ description: "Consumer-declared effect vocabulary \u2014 one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst.",
47362
+ items: {
47363
+ types: [
47364
+ "object"
47365
+ ],
47366
+ properties: {
47367
+ type: {
47368
+ types: [
47369
+ "string"
47370
+ ]
47371
+ },
47372
+ color: {
47373
+ types: [
47374
+ "string"
47375
+ ]
47376
+ },
47377
+ color2: {
47378
+ types: [
47379
+ "string"
47380
+ ]
47381
+ },
47382
+ size: {
47383
+ types: [
47384
+ "number"
47385
+ ]
47386
+ },
47387
+ shape: {
47388
+ types: [
47389
+ "string"
47390
+ ],
47391
+ enumValues: [
47392
+ "spark",
47393
+ "ring",
47394
+ "puff",
47395
+ "streak"
47396
+ ]
47397
+ },
47398
+ count: {
47399
+ types: [
47400
+ "number"
47401
+ ]
47402
+ },
47403
+ glow: {
47404
+ types: [
47405
+ "number"
47406
+ ]
47407
+ },
47408
+ gravity: {
47409
+ types: [
47410
+ "number"
47411
+ ]
47412
+ },
47413
+ vx: {
47414
+ types: [
47415
+ "number"
47416
+ ]
47417
+ },
47418
+ vy: {
47419
+ types: [
47420
+ "number"
47421
+ ]
47422
+ },
47423
+ vz: {
47424
+ types: [
47425
+ "number"
47426
+ ]
47427
+ },
47428
+ space: {
47429
+ types: [
47430
+ "string"
47431
+ ],
47432
+ enumValues: [
47433
+ "world",
47434
+ "screen"
47435
+ ]
47436
+ },
47437
+ effect: {
47438
+ types: [
47439
+ "string"
47440
+ ],
47441
+ enumValues: [
47442
+ "confetti",
47443
+ "flash",
47444
+ "shake",
47445
+ "sparkle",
47446
+ "float-text",
47447
+ "streak-glow"
47448
+ ]
47449
+ },
47450
+ particleCount: {
47451
+ types: [
47452
+ "number"
47453
+ ]
47454
+ }
47455
+ },
47456
+ required: [
47457
+ "type"
47458
+ ]
47459
+ }
47460
+ },
47461
+ art: {
47462
+ types: [
47463
+ "object"
47464
+ ],
47465
+ 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.",
47466
+ mapValue: {
47467
+ types: [
47468
+ "object"
47469
+ ],
47470
+ mapValue: {
47471
+ types: [
47472
+ "array"
47473
+ ],
47474
+ items: {
47475
+ types: [
47476
+ "object"
47477
+ ],
47478
+ drawableSlot: true
47479
+ }
47480
+ }
47481
+ }
47482
+ },
47483
+ sprites: {
47484
+ types: [
47485
+ "object"
47486
+ ],
47487
+ description: "Sprite asset per fx type (an asset-manifest effects map) \u2014 used when no vector art matches.",
47488
+ mapValue: {
47489
+ types: [
47490
+ "object"
47491
+ ],
47492
+ properties: {
47493
+ url: {
47494
+ types: [
47495
+ "asset"
47496
+ ]
47497
+ },
47498
+ role: {
47499
+ types: [
47500
+ "string"
47501
+ ]
47502
+ },
47503
+ category: {
47504
+ types: [
47505
+ "string"
47506
+ ]
47507
+ },
47508
+ animations: {
47509
+ types: [
47510
+ "array"
47511
+ ],
47512
+ items: {
47513
+ types: [
47514
+ "string"
47515
+ ]
47516
+ }
47517
+ },
47518
+ style: {
47519
+ types: [
47520
+ "string"
47521
+ ],
47522
+ enumValues: [
47523
+ "pixel",
47524
+ "vector",
47525
+ "hd",
47526
+ "1-bit",
47527
+ "isometric"
47528
+ ]
47529
+ },
47530
+ variant: {
47531
+ types: [
47532
+ "string"
47533
+ ]
47534
+ },
47535
+ dimension: {
47536
+ types: [
47537
+ "string"
47538
+ ],
47539
+ enumValues: [
47540
+ "2d",
47541
+ "3d"
47542
+ ]
47543
+ },
47544
+ aspect: {
47545
+ types: [
47546
+ "string"
47547
+ ],
47548
+ enumValues: [
47549
+ "1:1",
47550
+ "16:9",
47551
+ "5:7",
47552
+ "8:1"
47553
+ ]
47554
+ },
47555
+ atlas: {
47556
+ types: [
47557
+ "asset"
47558
+ ]
47559
+ },
47560
+ sprite: {
47561
+ types: [
47562
+ "string"
47563
+ ]
47564
+ },
47565
+ name: {
47566
+ types: [
47567
+ "string"
47568
+ ]
47569
+ },
47570
+ thumbnailUrl: {
47571
+ types: [
47572
+ "string"
47573
+ ]
47574
+ }
47575
+ },
47576
+ required: [
47577
+ "url",
47578
+ "role",
47579
+ "category"
47580
+ ]
47581
+ }
47582
+ },
47583
+ tickMs: {
47584
+ types: [
47585
+ "number"
47586
+ ],
47587
+ description: "The fx mechanic's decay tick period in ms; lifetime = maxTtl \xD7 tickMs. Default 500."
47588
+ },
47589
+ textColor: {
47590
+ types: [
47591
+ "string"
47592
+ ],
47593
+ description: "Floating-message text color when an item declares none. Default `#ffe066`."
47594
+ }
47595
+ },
47596
+ drawable: true,
47597
+ drawHost: true
46997
47598
  }
46998
47599
  },
46999
47600
  categories: [
@@ -47978,7 +48579,7 @@ var integrators_registry_default = {
47978
48579
  // src/patterns/component-mapping.json
47979
48580
  var component_mapping_default = {
47980
48581
  version: "1.0.0",
47981
- exportedAt: "2026-08-20T06:39:15.858Z",
48582
+ exportedAt: "2026-08-21T10:52:11.515Z",
47982
48583
  mappings: {
47983
48584
  "page-header": {
47984
48585
  component: "PageHeader",
@@ -49371,6 +49972,16 @@ var component_mapping_default = {
49371
49972
  component: "AlgoGraphCanvas",
49372
49973
  importPath: "@/components/learning/molecules/AlgoGraphCanvas",
49373
49974
  category: "learning"
49975
+ },
49976
+ "fx-overlay": {
49977
+ component: "FxOverlay",
49978
+ importPath: "@/components/core/molecules/FxOverlay",
49979
+ category: "container"
49980
+ },
49981
+ "draw-fx-layer": {
49982
+ component: "DrawFxLayer",
49983
+ importPath: "@/components/game/molecules/DrawFxLayer",
49984
+ category: "game"
49374
49985
  }
49375
49986
  }
49376
49987
  };
@@ -49378,7 +49989,7 @@ var component_mapping_default = {
49378
49989
  // src/patterns/event-contracts.json
49379
49990
  var event_contracts_default = {
49380
49991
  version: "1.0.0",
49381
- exportedAt: "2026-08-20T06:39:15.858Z",
49992
+ exportedAt: "2026-08-21T10:52:11.515Z",
49382
49993
  contracts: {
49383
49994
  form: {
49384
49995
  emits: [
@@ -50616,6 +51227,7 @@ var PATTERN_TYPES = [
50616
51227
  "doc-sidebar",
50617
51228
  "doc-toc",
50618
51229
  "document-viewer",
51230
+ "draw-fx-layer",
50619
51231
  "draw-group",
50620
51232
  "draw-mesh",
50621
51233
  "draw-shape",
@@ -50651,6 +51263,7 @@ var PATTERN_TYPES = [
50651
51263
  "form-layout",
50652
51264
  "form-section",
50653
51265
  "form-section-header",
51266
+ "fx-overlay",
50654
51267
  "game-audio-toggle",
50655
51268
  "game-hud",
50656
51269
  "game-icon",