@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
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "std-board — generic N-column board primitive. `config.columns` is an array of column definitions ({ key, label, icon, variant }); the trait `array/map`s them on `BoardItemsLoaded` into `@entity.boards` where each board carries its filtered items + a count. The render is a `data-grid` over `@entity.boards` (one card per column) whose `renderItem` lambda nests a `data-list` over `@col.items` (the cards in that stage). N is config-driven — pass any number of columns; the outer `data-grid`'s `cols` is bound to `@config.gridCols` so the grid wraps if you exceed it. Topology = loading / viewing_board / viewing_card / adding / error — distinct from the cookie-cutter `loading/browsing/viewing_single/error` CRUD shape. App-level atoms (e.g. std-pipeline) compose std-board via `uses` and add a sibling persistor + extended source entity. `config.boardLook` switches the board body between the default N-column grid ('columns') and a Trello-style wide-column kanban ('kanban-classic').",
2
+ "description": "std-board — generic N-column board primitive. `config.columns` is an array of column definitions ({ key, label, icon, variant }); the trait `array/map`s them on `BoardItemsLoaded` into `@entity.boards` where each board carries its filtered items + a count. The render is a `data-grid` over `@entity.boards` (one card per column) whose `renderItem` lambda nests a `data-list` over `@col.items` (the cards in that stage). N is config-driven — pass any number of columns; the outer `data-grid`'s `cols` is bound to `@config.gridCols` so the grid wraps if you exceed it. Topology = loading / viewing_board / viewing_card / adding / error — distinct from the cookie-cutter `loading/browsing/viewing_single/error` CRUD shape. App-level atoms (e.g. std-pipeline) compose std-board via `uses` and add a sibling persistor + extended source entity. `config.boardLook` switches the board body between the default N-column grid ('columns') and a Trello-style wide-column kanban ('kanban-classic'). `viewing_board` listens for REFETCH_QUERY/REFETCH_FILTER/REFETCH_PAGE (the std-search/std-filter/std-pagination wiring targets, no render on refetch — @entity.boards is bound reactively) and can optionally render its own search box (config.bodySearch, default false) and filter bar (config.filters, default []); no pagination control is rendered — a board's columns are not a paged list.",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01KXG04FS5X9SNR0KMFTC8N2T1": {
@@ -145,6 +145,33 @@
145
145
  "parent": "trt_01KXG04FS55WPDV86JDDX2KA6Z",
146
146
  "renames": []
147
147
  },
148
+ "evt_01M11GWEYN05GBC18G46QHHM5H": {
149
+ "bakedName": "REFETCH_PAGE",
150
+ "curName": "REFETCH_PAGE",
151
+ "id": "evt_01M11GWEYN05GBC18G46QHHM5H",
152
+ "kind": "event",
153
+ "owner": "workspace",
154
+ "parent": "trt_01KXG04FS55WPDV86JDDX2KA6Z",
155
+ "renames": []
156
+ },
157
+ "evt_01M11GWEYN8DSD96P58M250C86": {
158
+ "bakedName": "REFETCH_QUERY",
159
+ "curName": "REFETCH_QUERY",
160
+ "id": "evt_01M11GWEYN8DSD96P58M250C86",
161
+ "kind": "event",
162
+ "owner": "workspace",
163
+ "parent": "trt_01KXG04FS55WPDV86JDDX2KA6Z",
164
+ "renames": []
165
+ },
166
+ "evt_01M11GWEYNB7RS39PXXRJSXAGW": {
167
+ "bakedName": "REFETCH_FILTER",
168
+ "curName": "REFETCH_FILTER",
169
+ "id": "evt_01M11GWEYNB7RS39PXXRJSXAGW",
170
+ "kind": "event",
171
+ "owner": "workspace",
172
+ "parent": "trt_01KXG04FS55WPDV86JDDX2KA6Z",
173
+ "renames": []
174
+ },
148
175
  "orb_01KXG04FS58SZN66P0EVZEDT70": {
149
176
  "bakedName": "BoardOrbital",
150
177
  "curName": "BoardOrbital",
@@ -407,6 +434,59 @@
407
434
  {
408
435
  "type": "divider"
409
436
  },
437
+ [
438
+ "if",
439
+ "@config.bodySearch",
440
+ {
441
+ "children": [
442
+ {
443
+ "className": "w-full max-w-md",
444
+ "clearable": true,
445
+ "event": "REFETCH_QUERY",
446
+ "placeholder": "@config.searchPlaceholder",
447
+ "type": "search-input"
448
+ }
449
+ ],
450
+ "direction": "horizontal",
451
+ "gap": "sm",
452
+ "type": "stack"
453
+ },
454
+ {
455
+ "children": [],
456
+ "gap": "none",
457
+ "type": "stack"
458
+ }
459
+ ],
460
+ [
461
+ "if",
462
+ [
463
+ ">",
464
+ [
465
+ "array/len",
466
+ "@config.filters"
467
+ ],
468
+ 0.0
469
+ ],
470
+ {
471
+ "children": [
472
+ {
473
+ "entity": "BoardView",
474
+ "event": "REFETCH_FILTER",
475
+ "filters": "@config.filters",
476
+ "look": "@config.filterBarLook",
477
+ "type": "filter-group"
478
+ }
479
+ ],
480
+ "direction": "horizontal",
481
+ "gap": "sm",
482
+ "type": "stack"
483
+ },
484
+ {
485
+ "children": [],
486
+ "gap": "none",
487
+ "type": "stack"
488
+ }
489
+ ],
410
490
  {
411
491
  "cols": "@config.gridCols",
412
492
  "dndRoot": true,
@@ -533,6 +613,14 @@
533
613
  "tier": "internal",
534
614
  "type": "render-ui"
535
615
  },
616
+ "bodySearch": {
617
+ "default": false,
618
+ "description": "Renders an inline search box above the columns. Defaults false: unlike std-browse, std-board has never had a search box, so defaulting this true would silently add one to every existing consumer. The wired path — composing std-search beside the board and routing its FILTER/SEARCH event to REFETCH_QUERY — works regardless of this knob; set true only for a standalone board with no page-level search affordance.",
619
+ "label": "Show the board's own search box?",
620
+ "synonyms": "inline search, board search, built-in search, show search, duplicate search",
621
+ "tier": "presentation",
622
+ "type": "boolean"
623
+ },
536
624
  "cardActionsContent": {
537
625
  "default": {
538
626
  "align": "center",
@@ -652,6 +740,52 @@
652
740
  "tier": "domain",
653
741
  "type": "[ColumnSpec]"
654
742
  },
743
+ "filterBarLook": {
744
+ "default": "toolbar",
745
+ "description": "Visual treatment for the embedded filter bar, mirroring std-filter's own enum. Only applies when `filters` is non-empty.",
746
+ "label": "Filter bar look",
747
+ "synonyms": "filter bar style, facet style, chips, pills",
748
+ "tier": "presentation",
749
+ "type": "string",
750
+ "values": [
751
+ "toolbar",
752
+ "chips",
753
+ "pills",
754
+ "popover-trigger",
755
+ "inline-column-header"
756
+ ]
757
+ },
758
+ "filters": {
759
+ "default": [],
760
+ "description": "Dropdown filter facets by field, rendered as an embedded filter bar above the columns; 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 board and routes its FILTER event to REFETCH_FILTER — that is the wired owner and remains the primary path. Use this knob only for a standalone board with no page-level filter affordance.",
761
+ "items": {
762
+ "properties": {
763
+ "field": {
764
+ "name": "field",
765
+ "required": true,
766
+ "type": "string"
767
+ },
768
+ "label": {
769
+ "name": "label",
770
+ "required": false,
771
+ "type": "string"
772
+ },
773
+ "options": {
774
+ "items": {
775
+ "type": "string"
776
+ },
777
+ "name": "options",
778
+ "required": false,
779
+ "type": "array"
780
+ }
781
+ },
782
+ "type": "object"
783
+ },
784
+ "label": "Which filters should appear above the board?",
785
+ "synonyms": "filter bar, faceted filters, field filters, column filters, dropdowns",
786
+ "tier": "presentation",
787
+ "type": "[FilterSpec]"
788
+ },
655
789
  "formFields": {
656
790
  "default": [
657
791
  "title",
@@ -705,6 +839,61 @@
705
839
  {
706
840
  "type": "divider"
707
841
  },
842
+ [
843
+ "if",
844
+ "@config.bodySearch",
845
+ {
846
+ "children": [
847
+ {
848
+ "className": "w-full max-w-md",
849
+ "clearable": true,
850
+ "event": "REFETCH_QUERY",
851
+ "placeholder": "@config.searchPlaceholder",
852
+ "type": "search-input"
853
+ }
854
+ ],
855
+ "className": "px-card-md",
856
+ "direction": "horizontal",
857
+ "gap": "sm",
858
+ "type": "stack"
859
+ },
860
+ {
861
+ "children": [],
862
+ "gap": "none",
863
+ "type": "stack"
864
+ }
865
+ ],
866
+ [
867
+ "if",
868
+ [
869
+ ">",
870
+ [
871
+ "array/len",
872
+ "@config.filters"
873
+ ],
874
+ 0.0
875
+ ],
876
+ {
877
+ "children": [
878
+ {
879
+ "entity": "BoardView",
880
+ "event": "REFETCH_FILTER",
881
+ "filters": "@config.filters",
882
+ "look": "@config.filterBarLook",
883
+ "type": "filter-group"
884
+ }
885
+ ],
886
+ "className": "px-card-md",
887
+ "direction": "horizontal",
888
+ "gap": "sm",
889
+ "type": "stack"
890
+ },
891
+ {
892
+ "children": [],
893
+ "gap": "none",
894
+ "type": "stack"
895
+ }
896
+ ],
708
897
  {
709
898
  "className": "w-full pb-2",
710
899
  "dndRoot": true,
@@ -853,6 +1042,22 @@
853
1042
  "tier": "internal",
854
1043
  "type": "render-ui"
855
1044
  },
1045
+ "pageSize": {
1046
+ "default": 10.0,
1047
+ "description": "Records fetched per REFETCH_PAGE request. std-board renders no pagination control itself — this only feeds the fetch limit/offset when a consumer wires a composed std-pagination to REFETCH_PAGE.",
1048
+ "label": "Fetch page size",
1049
+ "synonyms": "fetch limit, records per page, batch size, page limit",
1050
+ "tier": "presentation",
1051
+ "type": "number"
1052
+ },
1053
+ "searchPlaceholder": {
1054
+ "default": "Search…",
1055
+ "description": "Hint text inside the board's embedded search box (e.g. 'Search cards…'). Only shown when bodySearch is true.",
1056
+ "label": "Search box placeholder text",
1057
+ "synonyms": "search hint, placeholder, search box text, search label",
1058
+ "tier": "presentation",
1059
+ "type": "string"
1060
+ },
856
1061
  "title": {
857
1062
  "default": "Board",
858
1063
  "description": "Heading shown above the column board",
@@ -1277,6 +1482,56 @@
1277
1482
  "synonyms": "sort, rearrange, reposition",
1278
1483
  "tier": "presentation"
1279
1484
  },
1485
+ {
1486
+ "description": "Triggers a board refresh based on the current search query.",
1487
+ "id": "evt_01M11GWEYN8DSD96P58M250C86",
1488
+ "key": "REFETCH_QUERY",
1489
+ "name": "Refetch Query",
1490
+ "payloadSchema": [
1491
+ {
1492
+ "name": "searchTerm",
1493
+ "required": true,
1494
+ "type": "string"
1495
+ }
1496
+ ],
1497
+ "synonyms": "refresh, reload, update, re-query",
1498
+ "tier": "domain"
1499
+ },
1500
+ {
1501
+ "description": "Triggers a board refresh based on current filter criteria.",
1502
+ "id": "evt_01M11GWEYNB7RS39PXXRJSXAGW",
1503
+ "key": "REFETCH_FILTER",
1504
+ "name": "Refetch Filter",
1505
+ "payloadSchema": [
1506
+ {
1507
+ "name": "field",
1508
+ "required": true,
1509
+ "type": "string"
1510
+ },
1511
+ {
1512
+ "name": "value",
1513
+ "required": true,
1514
+ "type": "string"
1515
+ }
1516
+ ],
1517
+ "synonyms": "refresh, filter, update, reload",
1518
+ "tier": "domain"
1519
+ },
1520
+ {
1521
+ "description": "Triggers a board refresh for a given page. std-board itself renders no pagination control; this exists so a composed std-pagination can drive one.",
1522
+ "id": "evt_01M11GWEYN05GBC18G46QHHM5H",
1523
+ "key": "REFETCH_PAGE",
1524
+ "name": "Refetch Page",
1525
+ "payloadSchema": [
1526
+ {
1527
+ "name": "page",
1528
+ "required": true,
1529
+ "type": "number"
1530
+ }
1531
+ ],
1532
+ "synonyms": "reload, refresh, update, paginate",
1533
+ "tier": "domain"
1534
+ },
1280
1535
  {
1281
1536
  "description": "Signals a card is being dismissed or closed.",
1282
1537
  "id": "evt_01KXG04FS8AGZF3B6M6HC43NFJ",
@@ -1895,6 +2150,104 @@
1895
2150
  "from": "viewing_board",
1896
2151
  "to": "viewing_board"
1897
2152
  },
2153
+ {
2154
+ "effects": [
2155
+ [
2156
+ "fetch",
2157
+ "BoardView",
2158
+ {
2159
+ "emit": {
2160
+ "failure": "BoardItemsLoadFailed",
2161
+ "success": "BoardItemsLoaded"
2162
+ },
2163
+ "filter": [
2164
+ "or",
2165
+ [
2166
+ "=",
2167
+ "@payload.searchTerm",
2168
+ ""
2169
+ ],
2170
+ [
2171
+ "str/includes",
2172
+ [
2173
+ "object/get",
2174
+ "@entity",
2175
+ "title"
2176
+ ],
2177
+ "@payload.searchTerm"
2178
+ ]
2179
+ ]
2180
+ }
2181
+ ]
2182
+ ],
2183
+ "event": "REFETCH_QUERY",
2184
+ "eventId": "evt_01M11GWEYN8DSD96P58M250C86",
2185
+ "from": "viewing_board",
2186
+ "to": "viewing_board"
2187
+ },
2188
+ {
2189
+ "effects": [
2190
+ [
2191
+ "fetch",
2192
+ "BoardView",
2193
+ {
2194
+ "emit": {
2195
+ "failure": "BoardItemsLoadFailed",
2196
+ "success": "BoardItemsLoaded"
2197
+ },
2198
+ "filter": [
2199
+ "or",
2200
+ [
2201
+ "=",
2202
+ "@payload.value",
2203
+ ""
2204
+ ],
2205
+ [
2206
+ "=",
2207
+ [
2208
+ "object/get",
2209
+ "@entity",
2210
+ "@payload.field"
2211
+ ],
2212
+ "@payload.value"
2213
+ ]
2214
+ ]
2215
+ }
2216
+ ]
2217
+ ],
2218
+ "event": "REFETCH_FILTER",
2219
+ "eventId": "evt_01M11GWEYNB7RS39PXXRJSXAGW",
2220
+ "from": "viewing_board",
2221
+ "to": "viewing_board"
2222
+ },
2223
+ {
2224
+ "effects": [
2225
+ [
2226
+ "fetch",
2227
+ "BoardView",
2228
+ {
2229
+ "emit": {
2230
+ "failure": "BoardItemsLoadFailed",
2231
+ "success": "BoardItemsLoaded"
2232
+ },
2233
+ "limit": "@config.pageSize",
2234
+ "offset": [
2235
+ "*",
2236
+ [
2237
+ "-",
2238
+ "@payload.page",
2239
+ 1.0
2240
+ ],
2241
+ "@config.pageSize"
2242
+ ]
2243
+ }
2244
+ ]
2245
+ ],
2246
+ "event": "REFETCH_PAGE",
2247
+ "eventId": "evt_01M11GWEYN05GBC18G46QHHM5H",
2248
+ "from": "viewing_board",
2249
+ "to": "viewing_board"
2250
+ },
1898
2251
  {
1899
2252
  "effects": [
1900
2253
  [
@@ -2140,5 +2493,5 @@
2140
2493
  }
2141
2494
  ],
2142
2495
  "schemaVersion": 1,
2143
- "version": "1.2.0"
2496
+ "version": "1.3.0"
2144
2497
  }