@almadar/std 16.187.0 → 16.188.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 (81) hide show
  1. package/behaviors/lolo/ui/core/.hand-authored.json +4 -0
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +138 -4
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +148 -8
  4. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +141 -3
  5. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +255 -2
  6. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +148 -1
  7. package/behaviors/lolo/ui/core/atoms/std-list.lolo +193 -1
  8. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +329 -0
  9. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +182 -1
  10. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +113 -3
  11. package/behaviors/lolo/ui/game/atoms/std-area-fill.lolo +93 -0
  12. package/behaviors/lolo/ui/game/atoms/std-loop-lock.lolo +79 -0
  13. package/behaviors/lolo/ui/game/atoms/std-pad-lock.lolo +93 -0
  14. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +14 -7
  15. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +21 -4
  16. package/behaviors/lolo/ui/game/atoms/std-velocity-gate.lolo +101 -0
  17. package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
  18. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  19. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  20. package/behaviors/registry/infra/atoms/std-data-erasure.orb +16 -8
  21. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  22. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  23. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +2 -1
  24. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +10 -5
  25. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +4 -2
  26. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  27. package/behaviors/registry/ui/core/atoms/std-board.orb +355 -2
  28. package/behaviors/registry/ui/core/atoms/std-browse.orb +304 -31
  29. package/behaviors/registry/ui/core/atoms/std-calendar.orb +344 -0
  30. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  31. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  32. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  33. package/behaviors/registry/ui/core/atoms/std-event-log.orb +773 -0
  34. package/behaviors/registry/ui/core/atoms/std-export.orb +4 -2
  35. package/behaviors/registry/ui/core/atoms/std-gallery.orb +390 -0
  36. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  37. package/behaviors/registry/ui/core/atoms/std-list.orb +451 -0
  38. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1141 -0
  39. package/behaviors/registry/ui/core/atoms/std-selection.orb +436 -0
  40. package/behaviors/registry/ui/core/atoms/std-tree.orb +292 -1
  41. package/behaviors/registry/ui/game/atoms/std-area-fill.orb +955 -0
  42. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
  43. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
  44. package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
  45. package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +785 -0
  46. package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +903 -0
  47. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +190 -44
  48. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +868 -637
  49. package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1040 -0
  50. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +8 -4
  51. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +6 -3
  52. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +10 -5
  53. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +8 -4
  54. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +8 -4
  55. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +7 -4
  56. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +8 -4
  57. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -6
  58. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +8 -4
  59. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +6 -3
  60. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
  61. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +2 -1
  62. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +2 -1
  63. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +2 -1
  64. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +2 -1
  65. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +2 -1
  66. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +2 -1
  67. package/dist/behaviors/exports-reader.js +7541 -3153
  68. package/dist/behaviors/functions/index.d.ts +598 -18
  69. package/dist/behaviors/functions/index.js +7524 -3154
  70. package/dist/behaviors/index.d.ts +1 -1
  71. package/dist/behaviors/index.js +7542 -3154
  72. package/dist/behaviors/query.js +7541 -3153
  73. package/dist/behaviors-embeddings.hash.json +3 -3
  74. package/dist/behaviors-embeddings.json +485 -461
  75. package/dist/behaviors-registry.json +2612 -934
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.js +7542 -3154
  78. package/dist/knob-embeddings.hash.json +3 -3
  79. package/dist/knob-embeddings.json +1 -1
  80. package/dist/registry/factory-signatures.json +1 -1
  81. package/package.json +1 -1
@@ -368,12 +368,66 @@
368
368
  "bodyContent": {
369
369
  "default": {
370
370
  "children": [
371
+ [
372
+ "if",
373
+ "@config.bodySearch",
374
+ {
375
+ "children": [
376
+ {
377
+ "className": "w-full max-w-md",
378
+ "clearable": true,
379
+ "event": "REFETCH_QUERY",
380
+ "placeholder": "@config.searchPlaceholder",
381
+ "type": "search-input"
382
+ }
383
+ ],
384
+ "direction": "horizontal",
385
+ "gap": "sm",
386
+ "type": "stack"
387
+ },
388
+ {
389
+ "children": [],
390
+ "gap": "none",
391
+ "type": "stack"
392
+ }
393
+ ],
394
+ [
395
+ "if",
396
+ [
397
+ ">",
398
+ [
399
+ "array/len",
400
+ "@config.filters"
401
+ ],
402
+ 0.0
403
+ ],
404
+ {
405
+ "children": [
406
+ {
407
+ "entity": "BrowseItem",
408
+ "event": "REFETCH_FILTER",
409
+ "filters": "@config.filters",
410
+ "look": "@config.filterBarLook",
411
+ "type": "filter-group"
412
+ }
413
+ ],
414
+ "direction": "horizontal",
415
+ "gap": "sm",
416
+ "type": "stack"
417
+ },
418
+ {
419
+ "children": [],
420
+ "gap": "none",
421
+ "type": "stack"
422
+ }
423
+ ],
371
424
  "@trait.DataGrid1"
372
425
  ],
373
426
  "direction": "vertical",
427
+ "gap": "md",
374
428
  "type": "stack"
375
429
  },
376
- "description": "Render-ui SExpr rendered after rows load when browseLook = table (the default). Composes the canonical data-grid call wrapped in a stack. See denseBodyContent/feedBodyContent/galleryBodyContent for the other browseLook bodies; any may be overridden directly while inheriting the same trait, state machine, emits, and listens.",
430
+ "description": "Render-ui SExpr rendered after rows load when browseLook = table (the default). Toolbar (search when bodySearch, filter bar when filters is non-empty) above the canonical data-grid call. Until 2026-08-27 this was the only one of the six looks with no search affordance at all. See denseBodyContent/feedBodyContent/galleryBodyContent for the other browseLook bodies; any may be overridden directly while inheriting the same trait, state machine, emits, and listens.",
377
431
  "label": "Body content tree",
378
432
  "tier": "internal",
379
433
  "type": "render-ui"
@@ -539,6 +593,37 @@
539
593
  "type": "stack"
540
594
  }
541
595
  ],
596
+ [
597
+ "if",
598
+ [
599
+ ">",
600
+ [
601
+ "array/len",
602
+ "@config.filters"
603
+ ],
604
+ 0.0
605
+ ],
606
+ {
607
+ "children": [
608
+ {
609
+ "entity": "BrowseItem",
610
+ "event": "REFETCH_FILTER",
611
+ "filters": "@config.filters",
612
+ "look": "@config.filterBarLook",
613
+ "type": "filter-group"
614
+ }
615
+ ],
616
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
617
+ "direction": "horizontal",
618
+ "gap": "sm",
619
+ "type": "stack"
620
+ },
621
+ {
622
+ "children": [],
623
+ "gap": "none",
624
+ "type": "stack"
625
+ }
626
+ ],
542
627
  {
543
628
  "children": [
544
629
  "@trait.DenseTableView"
@@ -656,6 +741,37 @@
656
741
  "type": "stack"
657
742
  }
658
743
  ],
744
+ [
745
+ "if",
746
+ [
747
+ ">",
748
+ [
749
+ "array/len",
750
+ "@config.filters"
751
+ ],
752
+ 0.0
753
+ ],
754
+ {
755
+ "children": [
756
+ {
757
+ "entity": "BrowseItem",
758
+ "event": "REFETCH_FILTER",
759
+ "filters": "@config.filters",
760
+ "look": "@config.filterBarLook",
761
+ "type": "filter-group"
762
+ }
763
+ ],
764
+ "className": "w-full",
765
+ "direction": "horizontal",
766
+ "gap": "sm",
767
+ "type": "stack"
768
+ },
769
+ {
770
+ "children": [],
771
+ "gap": "none",
772
+ "type": "stack"
773
+ }
774
+ ],
659
775
  {
660
776
  "entity": "@payload.data",
661
777
  "fields": [],
@@ -841,9 +957,24 @@
841
957
  "tier": "presentation",
842
958
  "type": "[FieldSpec]"
843
959
  },
960
+ "filterBarLook": {
961
+ "default": "toolbar",
962
+ "description": "Visual treatment for the embedded filter bar, mirroring std-filter's own enum. Only applies when `filters` is non-empty.",
963
+ "label": "Filter bar look",
964
+ "synonyms": "filter bar style, facet style, chips, pills",
965
+ "tier": "presentation",
966
+ "type": "string",
967
+ "values": [
968
+ "toolbar",
969
+ "chips",
970
+ "pills",
971
+ "popover-trigger",
972
+ "inline-column-header"
973
+ ]
974
+ },
844
975
  "filters": {
845
976
  "default": [],
846
- "description": "Dropdown filter facets by field. Each fires a refetch when the user changes the selection. Empty = no filter bar.",
977
+ "description": "Dropdown filter facets by field, rendered as an embedded filter bar above the rows; each selection fires REFETCH_FILTER on this trait. Empty (the default) = no filter bar, which is the right setting whenever the page already composes std-filter beside this list and routes `XFilter.FILTER -> REFETCH_FILTER` — that is the wired owner and remains the primary path. Use this knob only for a standalone list with no page-level filter affordance, so the surface shows one filter bar instead of two.",
847
978
  "items": {
848
979
  "properties": {
849
980
  "field": {
@@ -900,6 +1031,37 @@
900
1031
  "type": "stack"
901
1032
  }
902
1033
  ],
1034
+ [
1035
+ "if",
1036
+ [
1037
+ ">",
1038
+ [
1039
+ "array/len",
1040
+ "@config.filters"
1041
+ ],
1042
+ 0.0
1043
+ ],
1044
+ {
1045
+ "children": [
1046
+ {
1047
+ "entity": "BrowseItem",
1048
+ "event": "REFETCH_FILTER",
1049
+ "filters": "@config.filters",
1050
+ "look": "@config.filterBarLook",
1051
+ "type": "filter-group"
1052
+ }
1053
+ ],
1054
+ "className": "w-full",
1055
+ "direction": "horizontal",
1056
+ "gap": "sm",
1057
+ "type": "stack"
1058
+ },
1059
+ {
1060
+ "children": [],
1061
+ "gap": "none",
1062
+ "type": "stack"
1063
+ }
1064
+ ],
903
1065
  {
904
1066
  "className": "w-full",
905
1067
  "entity": "@payload.data",
@@ -1027,21 +1189,61 @@
1027
1189
  "masterDetailBodyContent": {
1028
1190
  "default": {
1029
1191
  "children": [
1030
- {
1031
- "children": [
1032
- {
1033
- "className": "w-full max-w-md",
1034
- "clearable": true,
1035
- "event": "REFETCH_QUERY",
1036
- "placeholder": "@config.searchPlaceholder",
1037
- "type": "search-input"
1038
- }
1192
+ [
1193
+ "if",
1194
+ "@config.bodySearch",
1195
+ {
1196
+ "children": [
1197
+ {
1198
+ "className": "w-full max-w-md",
1199
+ "clearable": true,
1200
+ "event": "REFETCH_QUERY",
1201
+ "placeholder": "@config.searchPlaceholder",
1202
+ "type": "search-input"
1203
+ }
1204
+ ],
1205
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1206
+ "direction": "horizontal",
1207
+ "gap": "sm",
1208
+ "type": "stack"
1209
+ },
1210
+ {
1211
+ "children": [],
1212
+ "gap": "none",
1213
+ "type": "stack"
1214
+ }
1215
+ ],
1216
+ [
1217
+ "if",
1218
+ [
1219
+ ">",
1220
+ [
1221
+ "array/len",
1222
+ "@config.filters"
1223
+ ],
1224
+ 0.0
1039
1225
  ],
1040
- "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1041
- "direction": "horizontal",
1042
- "gap": "sm",
1043
- "type": "stack"
1044
- },
1226
+ {
1227
+ "children": [
1228
+ {
1229
+ "entity": "BrowseItem",
1230
+ "event": "REFETCH_FILTER",
1231
+ "filters": "@config.filters",
1232
+ "look": "@config.filterBarLook",
1233
+ "type": "filter-group"
1234
+ }
1235
+ ],
1236
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1237
+ "direction": "horizontal",
1238
+ "gap": "sm",
1239
+ "type": "stack"
1240
+ },
1241
+ {
1242
+ "children": [],
1243
+ "gap": "none",
1244
+ "type": "stack"
1245
+ }
1246
+ ],
1045
1247
  {
1046
1248
  "detail": {
1047
1249
  "children": [],
@@ -1072,7 +1274,7 @@
1072
1274
  "gap": "none",
1073
1275
  "type": "stack"
1074
1276
  },
1075
- "description": "Render-ui SExpr rendered after rows load when browseLook = master-detail: record-work split view — toolbar search, dense list left, empty-state pane right until a row is opened. Opening a row renders masterDetailRecordBodyContent. The toolbar is always present in this look (bodySearch does not apply).",
1277
+ "description": "Render-ui SExpr rendered after rows load when browseLook = master-detail: record-work split view — toolbar, dense list left, empty-state pane right until a row is opened. Opening a row renders masterDetailRecordBodyContent. The toolbar honours bodySearch and filters like every other look; it used to render its search box unconditionally, which put a second search box on any page that already composed std-search (observed in std-crm ContactOrbital).",
1076
1278
  "label": "Master-detail look body (no selection)",
1077
1279
  "tier": "internal",
1078
1280
  "type": "render-ui"
@@ -1080,21 +1282,61 @@
1080
1282
  "masterDetailRecordBodyContent": {
1081
1283
  "default": {
1082
1284
  "children": [
1083
- {
1084
- "children": [
1085
- {
1086
- "className": "w-full max-w-md",
1087
- "clearable": true,
1088
- "event": "REFETCH_QUERY",
1089
- "placeholder": "@config.searchPlaceholder",
1090
- "type": "search-input"
1091
- }
1285
+ [
1286
+ "if",
1287
+ "@config.bodySearch",
1288
+ {
1289
+ "children": [
1290
+ {
1291
+ "className": "w-full max-w-md",
1292
+ "clearable": true,
1293
+ "event": "REFETCH_QUERY",
1294
+ "placeholder": "@config.searchPlaceholder",
1295
+ "type": "search-input"
1296
+ }
1297
+ ],
1298
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1299
+ "direction": "horizontal",
1300
+ "gap": "sm",
1301
+ "type": "stack"
1302
+ },
1303
+ {
1304
+ "children": [],
1305
+ "gap": "none",
1306
+ "type": "stack"
1307
+ }
1308
+ ],
1309
+ [
1310
+ "if",
1311
+ [
1312
+ ">",
1313
+ [
1314
+ "array/len",
1315
+ "@config.filters"
1316
+ ],
1317
+ 0.0
1092
1318
  ],
1093
- "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1094
- "direction": "horizontal",
1095
- "gap": "sm",
1096
- "type": "stack"
1097
- },
1319
+ {
1320
+ "children": [
1321
+ {
1322
+ "entity": "BrowseItem",
1323
+ "event": "REFETCH_FILTER",
1324
+ "filters": "@config.filters",
1325
+ "look": "@config.filterBarLook",
1326
+ "type": "filter-group"
1327
+ }
1328
+ ],
1329
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1330
+ "direction": "horizontal",
1331
+ "gap": "sm",
1332
+ "type": "stack"
1333
+ },
1334
+ {
1335
+ "children": [],
1336
+ "gap": "none",
1337
+ "type": "stack"
1338
+ }
1339
+ ],
1098
1340
  {
1099
1341
  "detail": {
1100
1342
  "actions": "@config.detailActions",
@@ -1235,6 +1477,37 @@
1235
1477
  "type": "stack"
1236
1478
  }
1237
1479
  ],
1480
+ [
1481
+ "if",
1482
+ [
1483
+ ">",
1484
+ [
1485
+ "array/len",
1486
+ "@config.filters"
1487
+ ],
1488
+ 0.0
1489
+ ],
1490
+ {
1491
+ "children": [
1492
+ {
1493
+ "entity": "BrowseItem",
1494
+ "event": "REFETCH_FILTER",
1495
+ "filters": "@config.filters",
1496
+ "look": "@config.filterBarLook",
1497
+ "type": "filter-group"
1498
+ }
1499
+ ],
1500
+ "className": "px-card-md py-card-sm border-b border-[var(--color-border)]",
1501
+ "direction": "horizontal",
1502
+ "gap": "sm",
1503
+ "type": "stack"
1504
+ },
1505
+ {
1506
+ "children": [],
1507
+ "gap": "none",
1508
+ "type": "stack"
1509
+ }
1510
+ ],
1238
1511
  {
1239
1512
  "children": [
1240
1513
  {