@almadar/std 16.235.0 → 16.237.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 (283) hide show
  1. package/behaviors/behaviors-registry.json +5621 -1993
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +32 -41
  3. package/behaviors/lolo/infra/atoms/std-audit-capture.lolo +0 -5
  4. package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +0 -24
  5. package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +1 -17
  6. package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +17 -24
  7. package/behaviors/lolo/infra/atoms/std-data-import.lolo +8 -11
  8. package/behaviors/lolo/infra/atoms/std-game-clock.lolo +2 -0
  9. package/behaviors/lolo/infra/atoms/std-knowledge-loop.lolo +0 -5
  10. package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +3 -1
  11. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  12. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
  13. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +25 -11
  14. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
  15. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +28 -11
  16. package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
  17. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
  18. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
  19. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
  20. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
  21. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
  22. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
  23. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
  24. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
  25. package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
  26. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +76 -33
  27. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
  28. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
  29. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
  30. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +32 -5
  31. package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
  32. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +15 -4
  33. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
  34. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
  35. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
  36. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
  37. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  38. package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
  39. package/behaviors/lolo/ui/core/atoms/std-list.lolo +53 -32
  40. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
  41. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
  42. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
  43. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +29 -13
  44. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +14 -1
  45. package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
  46. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +84 -16
  47. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +22 -10
  48. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
  49. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
  50. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
  51. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +27 -12
  52. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
  53. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
  54. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
  55. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +36 -0
  56. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
  57. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
  58. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +1 -1
  59. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
  60. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
  61. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
  62. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +11 -6
  63. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
  64. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
  65. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +60 -5
  66. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +47 -3
  67. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
  68. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +31 -9
  69. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
  70. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
  72. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
  73. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +1 -1
  74. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
  75. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
  76. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
  77. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +9 -1
  78. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
  79. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -2
  80. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +1 -1
  81. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +7 -1
  82. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
  83. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  84. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
  85. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
  86. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
  87. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +57 -5
  88. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
  89. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +87 -16
  90. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +37 -10
  91. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +46 -8
  92. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -10
  93. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +57 -10
  94. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +57 -10
  95. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +22 -3
  96. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
  97. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
  98. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +38 -5
  99. package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
  100. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +3 -45
  101. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +7 -2
  102. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
  103. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  104. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
  105. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +2 -2
  106. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +9 -3
  107. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
  108. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
  109. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
  110. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
  111. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
  112. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
  113. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
  114. package/behaviors/lolo-behavior-contracts.json +1 -1
  115. package/behaviors/registry/factory-signatures.json +1 -1
  116. package/behaviors/registry/infra/atoms/std-approval-gate.orb +194 -67
  117. package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
  118. package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
  119. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
  120. package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
  121. package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
  122. package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
  123. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
  124. package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
  125. package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
  126. package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
  127. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +135 -12
  128. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
  129. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +137 -12
  130. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
  131. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
  132. package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
  133. package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
  134. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
  135. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
  136. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
  137. package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
  138. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
  139. package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
  140. package/behaviors/registry/ui/core/atoms/std-browse.orb +499 -49
  141. package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
  142. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
  143. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
  144. package/behaviors/registry/ui/core/atoms/std-event-log.orb +42 -6
  145. package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
  146. package/behaviors/registry/ui/core/atoms/std-file-store.orb +121 -3
  147. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
  148. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
  149. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
  150. package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
  151. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -0
  152. package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
  153. package/behaviors/registry/ui/core/atoms/std-list.orb +237 -34
  154. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
  155. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
  156. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
  157. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +275 -14
  158. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +93 -4
  159. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
  160. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +473 -19
  161. package/behaviors/registry/ui/core/atoms/std-selection.orb +179 -10
  162. package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
  163. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
  164. package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
  165. package/behaviors/registry/ui/core/atoms/std-version-history.orb +138 -14
  166. package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
  167. package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
  168. package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
  169. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +132 -0
  170. package/behaviors/registry/ui/core/atoms/ui-typography.orb +7 -0
  171. package/behaviors/registry/ui/core/molecules/ui-alert.orb +7 -0
  172. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
  173. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
  174. package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
  175. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
  176. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +89 -6
  177. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
  178. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
  179. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +297 -5
  180. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +261 -3
  181. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
  182. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +93 -24
  183. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
  184. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
  185. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
  186. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +0 -1
  187. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +0 -1
  188. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
  189. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
  190. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
  191. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +28 -1
  192. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
  193. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +9 -2
  194. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
  195. package/behaviors/registry/ui/core/molecules/ui-menu.orb +74 -1
  196. package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
  197. package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
  198. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
  199. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  200. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
  201. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +337 -5
  202. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
  203. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +415 -33
  204. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +340 -29
  205. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +296 -20
  206. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +489 -9
  207. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +132 -13
  208. package/behaviors/registry/ui/core/organisms/ui-form.orb +132 -13
  209. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +141 -3
  210. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
  211. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
  212. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +159 -8
  213. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
  214. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -173
  215. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -2
  216. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
  217. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
  218. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -2
  219. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +100 -3
  220. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
  221. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
  222. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
  223. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
  224. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
  225. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
  226. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
  227. package/canonical-operators.json +18 -1
  228. package/dist/behaviors/exports-reader.js +8942 -3946
  229. package/dist/behaviors/functions/index.d.ts +419 -132
  230. package/dist/behaviors/functions/index.js +8931 -3946
  231. package/dist/behaviors/index.d.ts +1 -1
  232. package/dist/behaviors/index.js +8943 -3947
  233. package/dist/behaviors/query.js +8942 -3946
  234. package/dist/behaviors-embeddings.hash.json +3 -3
  235. package/dist/behaviors-embeddings.json +49 -41
  236. package/dist/behaviors-registry.json +5621 -1993
  237. package/dist/index.d.ts +3 -3
  238. package/dist/index.js +8960 -3947
  239. package/dist/knob-embeddings.hash.json +3 -3
  240. package/dist/knob-embeddings.json +774 -374
  241. package/dist/modules/anim.d.ts +1 -1
  242. package/dist/modules/array.d.ts +1 -1
  243. package/dist/modules/array.js +15 -0
  244. package/dist/modules/async.d.ts +1 -1
  245. package/dist/modules/behavior.d.ts +1 -1
  246. package/dist/modules/browser.d.ts +1 -1
  247. package/dist/modules/composition.d.ts +1 -1
  248. package/dist/modules/contract.d.ts +1 -1
  249. package/dist/modules/core.d.ts +1 -1
  250. package/dist/modules/core.js +2 -0
  251. package/dist/modules/data.d.ts +1 -1
  252. package/dist/modules/ease.d.ts +1 -1
  253. package/dist/modules/format.d.ts +1 -1
  254. package/dist/modules/geo.d.ts +1 -1
  255. package/dist/modules/graph.d.ts +1 -1
  256. package/dist/modules/grid.d.ts +1 -1
  257. package/dist/modules/index.d.ts +1 -1
  258. package/dist/modules/index.js +17 -0
  259. package/dist/modules/integration.d.ts +1 -1
  260. package/dist/modules/json.d.ts +1 -1
  261. package/dist/modules/llm.d.ts +1 -1
  262. package/dist/modules/math.d.ts +1 -1
  263. package/dist/modules/memory.d.ts +1 -1
  264. package/dist/modules/nn.d.ts +1 -1
  265. package/dist/modules/noise.d.ts +1 -1
  266. package/dist/modules/object.d.ts +1 -1
  267. package/dist/modules/os.d.ts +1 -1
  268. package/dist/modules/path.d.ts +1 -1
  269. package/dist/modules/prob.d.ts +1 -1
  270. package/dist/modules/session.d.ts +1 -1
  271. package/dist/modules/str.d.ts +1 -1
  272. package/dist/modules/tensor.d.ts +1 -1
  273. package/dist/modules/time.d.ts +1 -1
  274. package/dist/modules/trace.d.ts +1 -1
  275. package/dist/modules/train.d.ts +1 -1
  276. package/dist/modules/validate.d.ts +1 -1
  277. package/dist/modules/vector.d.ts +1 -1
  278. package/dist/modules/workspace.d.ts +1 -1
  279. package/dist/registry/factory-signatures.json +1 -1
  280. package/dist/registry.d.ts +2 -2
  281. package/dist/registry.js +17 -0
  282. package/dist/{types-Ggla7OK7.d.ts → types-DLx38UFZ.d.ts} +23 -3
  283. package/package.json +3 -3
@@ -439,6 +439,70 @@
439
439
  "tier": "policy",
440
440
  "type": "boolean"
441
441
  },
442
+ "itemActions": {
443
+ "default": [
444
+ {
445
+ "event": "APPROVE",
446
+ "icon": "check",
447
+ "label": "Approve",
448
+ "variant": "primary"
449
+ },
450
+ {
451
+ "event": "REJECT",
452
+ "icon": "x",
453
+ "label": "Reject",
454
+ "variant": "danger"
455
+ },
456
+ {
457
+ "event": "ESCALATE",
458
+ "icon": "alert-triangle",
459
+ "label": "Escalate",
460
+ "variant": "secondary"
461
+ }
462
+ ],
463
+ "description": "Actions offered on each row; give an item `roles` to show it only to those viewer roles.",
464
+ "items": {
465
+ "properties": {
466
+ "event": {
467
+ "name": "event",
468
+ "required": false,
469
+ "type": "event"
470
+ },
471
+ "icon": {
472
+ "name": "icon",
473
+ "required": false,
474
+ "type": "string"
475
+ },
476
+ "label": {
477
+ "name": "label",
478
+ "required": true,
479
+ "type": "string"
480
+ },
481
+ "roles": {
482
+ "items": {
483
+ "type": "string"
484
+ },
485
+ "name": "roles",
486
+ "required": false,
487
+ "type": "array"
488
+ },
489
+ "variant": {
490
+ "name": "variant",
491
+ "required": false,
492
+ "type": "string"
493
+ },
494
+ "when": {
495
+ "name": "when",
496
+ "required": false,
497
+ "type": "object"
498
+ }
499
+ },
500
+ "type": "object"
501
+ },
502
+ "label": "Row actions",
503
+ "tier": "presentation",
504
+ "type": "[ItemAction]"
505
+ },
442
506
  "reviewSlot": {
443
507
  "default": "modal",
444
508
  "description": "UI slot the moderation queue renders into. Defaults to the modal overlay so it never seizes the host's main content; summoned via OPEN, cleared via CLOSE.",
@@ -466,6 +530,13 @@
466
530
  "label": "Section title",
467
531
  "tier": "presentation",
468
532
  "type": "string"
533
+ },
534
+ "viewerRole": {
535
+ "default": "",
536
+ "description": "The signed-in viewer's role that each action's `roles` is checked against. Bind it explicitly at the call site (e.g. `viewerRole: @user.role`) in an app whose identity carries a role; left empty, only actions with no `roles` show.",
537
+ "label": "Viewer's role",
538
+ "tier": "policy",
539
+ "type": "string"
469
540
  }
470
541
  },
471
542
  "effectRow": [
@@ -485,6 +556,10 @@
485
556
  {
486
557
  "kind": "render-ui",
487
558
  "resource": "toast"
559
+ },
560
+ {
561
+ "kind": "set",
562
+ "resource": "@entity.id"
488
563
  }
489
564
  ],
490
565
  "emits": [
@@ -841,19 +916,6 @@
841
916
  "id": "trt_01KXG04FDN5KK86TRNWDH400C7",
842
917
  "linkedEntity": "ModQueueItem",
843
918
  "linkedEntityId": "ent_01KXG04FDN3D78Z39RX2F9T16W",
844
- "listens": [
845
- {
846
- "event": "CLOSE",
847
- "eventId": "evt_01KXG04FDRRPKTR9Q0BG0KGCYA",
848
- "source": {
849
- "kind": "trait",
850
- "trait": "CloseButton",
851
- "traitId": "trt_01KY21K6XKRBR3VETM6W0DHEGE"
852
- },
853
- "triggers": "CLOSE",
854
- "triggersId": "evt_01KXG04FDRRPKTR9Q0BG0KGCYA"
855
- }
856
- ],
857
919
  "name": "ModQueueItemReview",
858
920
  "scope": "collection",
859
921
  "stateMachine": {
@@ -949,6 +1011,78 @@
949
1011
  "synonyms": "open, show, review, view queue, moderation queue",
950
1012
  "tier": "domain"
951
1013
  },
1014
+ {
1015
+ "description": "Signals a moderation queue item has been reviewed and a verdict recorded.",
1016
+ "id": "evt_01KXG04FDRK0BYNNF0VGSXN4PD",
1017
+ "key": "ModQueueItemReviewed",
1018
+ "name": "ModQueueItem reviewed",
1019
+ "payloadEntity": "ModQueueItem",
1020
+ "payloadSchema": [
1021
+ {
1022
+ "name": "id",
1023
+ "required": true,
1024
+ "type": "string"
1025
+ },
1026
+ {
1027
+ "name": "targetId",
1028
+ "required": true,
1029
+ "type": "string"
1030
+ },
1031
+ {
1032
+ "name": "targetType",
1033
+ "required": true,
1034
+ "type": "string"
1035
+ },
1036
+ {
1037
+ "name": "reason",
1038
+ "type": "string"
1039
+ },
1040
+ {
1041
+ "name": "flagCount",
1042
+ "type": "number"
1043
+ },
1044
+ {
1045
+ "name": "status",
1046
+ "type": "string"
1047
+ },
1048
+ {
1049
+ "name": "reviewedBy",
1050
+ "type": "string"
1051
+ },
1052
+ {
1053
+ "name": "reviewedAt",
1054
+ "type": "datetime"
1055
+ },
1056
+ {
1057
+ "name": "notes",
1058
+ "type": "string"
1059
+ },
1060
+ {
1061
+ "name": "seedRow",
1062
+ "type": "Map<string,scalar>"
1063
+ }
1064
+ ],
1065
+ "synonyms": "reviewed, processed, judged, completed",
1066
+ "tier": "domain"
1067
+ },
1068
+ {
1069
+ "description": "Indicates a failure to load or process a moderation queue item.",
1070
+ "id": "evt_01KXG04FDRWRQTRN1DZEAFNWKJ",
1071
+ "key": "ModQueueItemReviewFailed",
1072
+ "name": "ModQueueItem review failed",
1073
+ "payloadSchema": [
1074
+ {
1075
+ "name": "error",
1076
+ "type": "string"
1077
+ },
1078
+ {
1079
+ "name": "code",
1080
+ "type": "string"
1081
+ }
1082
+ ],
1083
+ "synonyms": "error, failure, problem, issue",
1084
+ "tier": "internal"
1085
+ },
952
1086
  {
953
1087
  "description": "Dismisses the moderation queue overlay.",
954
1088
  "id": "evt_01KXG04FDRRPKTR9Q0BG0KGCYA",
@@ -1151,78 +1285,6 @@
1151
1285
  ],
1152
1286
  "synonyms": "flag, defer, elevate",
1153
1287
  "tier": "presentation"
1154
- },
1155
- {
1156
- "description": "Signals a moderation queue item has been reviewed and a verdict recorded.",
1157
- "id": "evt_01KXG04FDRK0BYNNF0VGSXN4PD",
1158
- "key": "ModQueueItemReviewed",
1159
- "name": "ModQueueItem reviewed",
1160
- "payloadEntity": "ModQueueItem",
1161
- "payloadSchema": [
1162
- {
1163
- "name": "id",
1164
- "required": true,
1165
- "type": "string"
1166
- },
1167
- {
1168
- "name": "targetId",
1169
- "required": true,
1170
- "type": "string"
1171
- },
1172
- {
1173
- "name": "targetType",
1174
- "required": true,
1175
- "type": "string"
1176
- },
1177
- {
1178
- "name": "reason",
1179
- "type": "string"
1180
- },
1181
- {
1182
- "name": "flagCount",
1183
- "type": "number"
1184
- },
1185
- {
1186
- "name": "status",
1187
- "type": "string"
1188
- },
1189
- {
1190
- "name": "reviewedBy",
1191
- "type": "string"
1192
- },
1193
- {
1194
- "name": "reviewedAt",
1195
- "type": "datetime"
1196
- },
1197
- {
1198
- "name": "notes",
1199
- "type": "string"
1200
- },
1201
- {
1202
- "name": "seedRow",
1203
- "type": "Map<string,scalar>"
1204
- }
1205
- ],
1206
- "synonyms": "reviewed, processed, judged, completed",
1207
- "tier": "domain"
1208
- },
1209
- {
1210
- "description": "Indicates a failure to load or process a moderation queue item.",
1211
- "id": "evt_01KXG04FDRWRQTRN1DZEAFNWKJ",
1212
- "key": "ModQueueItemReviewFailed",
1213
- "name": "ModQueueItem review failed",
1214
- "payloadSchema": [
1215
- {
1216
- "name": "error",
1217
- "type": "string"
1218
- },
1219
- {
1220
- "name": "code",
1221
- "type": "string"
1222
- }
1223
- ],
1224
- "synonyms": "error, failure, problem, issue",
1225
- "tier": "internal"
1226
1288
  }
1227
1289
  ],
1228
1290
  "states": [
@@ -1321,6 +1383,141 @@
1321
1383
  "guard": "@config.enabled",
1322
1384
  "to": "loading"
1323
1385
  },
1386
+ {
1387
+ "effects": [
1388
+ [
1389
+ "set",
1390
+ "@entity.id",
1391
+ [
1392
+ "object/get",
1393
+ [
1394
+ "array/first",
1395
+ [
1396
+ "array/filter",
1397
+ "@payload.data",
1398
+ [
1399
+ "fn",
1400
+ "row",
1401
+ [
1402
+ "and",
1403
+ [
1404
+ "=",
1405
+ [
1406
+ "object/get",
1407
+ "@row",
1408
+ "status"
1409
+ ],
1410
+ "pending"
1411
+ ],
1412
+ [
1413
+ ">=",
1414
+ [
1415
+ "object/get",
1416
+ "@row",
1417
+ "flagCount"
1418
+ ],
1419
+ "@config.autoEscalateThreshold"
1420
+ ]
1421
+ ]
1422
+ ]
1423
+ ]
1424
+ ],
1425
+ "id"
1426
+ ]
1427
+ ],
1428
+ [
1429
+ "persist",
1430
+ "update",
1431
+ "ModQueueItem",
1432
+ {
1433
+ "id": "@entity.id",
1434
+ "status": "escalated"
1435
+ },
1436
+ {
1437
+ "emit": {
1438
+ "failure": "ModQueueItemReviewFailed",
1439
+ "success": "ModQueueItemReviewed"
1440
+ }
1441
+ }
1442
+ ]
1443
+ ],
1444
+ "event": "ModQueueItemLoaded",
1445
+ "eventId": "evt_01KXG04FDRNRES60JDBSQ392V4",
1446
+ "from": "loading",
1447
+ "guard": [
1448
+ ">",
1449
+ [
1450
+ "array/len",
1451
+ [
1452
+ "array/filter",
1453
+ "@payload.data",
1454
+ [
1455
+ "fn",
1456
+ "row",
1457
+ [
1458
+ "and",
1459
+ [
1460
+ "=",
1461
+ [
1462
+ "object/get",
1463
+ "@row",
1464
+ "status"
1465
+ ],
1466
+ "pending"
1467
+ ],
1468
+ [
1469
+ ">=",
1470
+ [
1471
+ "object/get",
1472
+ "@row",
1473
+ "flagCount"
1474
+ ],
1475
+ "@config.autoEscalateThreshold"
1476
+ ]
1477
+ ]
1478
+ ]
1479
+ ]
1480
+ ],
1481
+ 0.0
1482
+ ],
1483
+ "to": "loading"
1484
+ },
1485
+ {
1486
+ "effects": [
1487
+ [
1488
+ "fetch",
1489
+ "ModQueueItem",
1490
+ {
1491
+ "emit": {
1492
+ "failure": "ModQueueItemLoadFailed",
1493
+ "success": "ModQueueItemLoaded"
1494
+ }
1495
+ }
1496
+ ]
1497
+ ],
1498
+ "event": "ModQueueItemReviewed",
1499
+ "eventId": "evt_01KXG04FDRK0BYNNF0VGSXN4PD",
1500
+ "from": "loading",
1501
+ "to": "loading"
1502
+ },
1503
+ {
1504
+ "effects": [
1505
+ [
1506
+ "render-ui",
1507
+ "@config.reviewSlot",
1508
+ {
1509
+ "children": [
1510
+ "@trait.ErrorAlert"
1511
+ ],
1512
+ "type": "stack"
1513
+ }
1514
+ ]
1515
+ ],
1516
+ "event": "ModQueueItemReviewFailed",
1517
+ "eventId": "evt_01KXG04FDRWRQTRN1DZEAFNWKJ",
1518
+ "from": "loading",
1519
+ "to": "error"
1520
+ },
1324
1521
  {
1325
1522
  "effects": [
1326
1523
  [
@@ -1376,24 +1573,38 @@
1376
1573
  ],
1377
1574
  "gap": "sm",
1378
1575
  "itemActions": [
1379
- {
1380
- "event": "APPROVE",
1381
- "icon": "check",
1382
- "label": "Approve",
1383
- "variant": "primary"
1384
- },
1385
- {
1386
- "event": "REJECT",
1387
- "icon": "x",
1388
- "label": "Reject",
1389
- "variant": "danger"
1390
- },
1391
- {
1392
- "event": "ESCALATE",
1393
- "icon": "alert-triangle",
1394
- "label": "Escalate",
1395
- "variant": "secondary"
1396
- }
1576
+ "array/filter",
1577
+ "@config.itemActions",
1578
+ [
1579
+ "fn",
1580
+ "action",
1581
+ [
1582
+ "or",
1583
+ [
1584
+ "=",
1585
+ [
1586
+ "array/len",
1587
+ [
1588
+ "object/get",
1589
+ "@action",
1590
+ "roles",
1591
+ []
1592
+ ]
1593
+ ],
1594
+ 0.0
1595
+ ],
1596
+ [
1597
+ "array/includes",
1598
+ [
1599
+ "object/get",
1600
+ "@action",
1601
+ "roles",
1602
+ []
1603
+ ],
1604
+ "@config.viewerRole"
1605
+ ]
1606
+ ]
1607
+ ]
1397
1608
  ],
1398
1609
  "look": "@config.tableLook",
1399
1610
  "type": "data-grid"
@@ -1408,6 +1619,42 @@
1408
1619
  "event": "ModQueueItemLoaded",
1409
1620
  "eventId": "evt_01KXG04FDRNRES60JDBSQ392V4",
1410
1621
  "from": "loading",
1622
+ "guard": [
1623
+ "=",
1624
+ [
1625
+ "array/len",
1626
+ [
1627
+ "array/filter",
1628
+ "@payload.data",
1629
+ [
1630
+ "fn",
1631
+ "row",
1632
+ [
1633
+ "and",
1634
+ [
1635
+ "=",
1636
+ [
1637
+ "object/get",
1638
+ "@row",
1639
+ "status"
1640
+ ],
1641
+ "pending"
1642
+ ],
1643
+ [
1644
+ ">=",
1645
+ [
1646
+ "object/get",
1647
+ "@row",
1648
+ "flagCount"
1649
+ ],
1650
+ "@config.autoEscalateThreshold"
1651
+ ]
1652
+ ]
1653
+ ]
1654
+ ]
1655
+ ],
1656
+ 0.0
1657
+ ],
1411
1658
  "to": "reviewing"
1412
1659
  },
1413
1660
  {
@@ -1644,6 +1891,35 @@
1644
1891
  }
1645
1892
  }
1646
1893
  ],
1894
+ "types": {
1895
+ "ItemAction": [
1896
+ {
1897
+ "name": "label",
1898
+ "required": true,
1899
+ "type": "string"
1900
+ },
1901
+ {
1902
+ "name": "event",
1903
+ "type": "event"
1904
+ },
1905
+ {
1906
+ "name": "variant",
1907
+ "type": "string"
1908
+ },
1909
+ {
1910
+ "name": "icon",
1911
+ "type": "string"
1912
+ },
1913
+ {
1914
+ "name": "roles",
1915
+ "type": "[string]"
1916
+ },
1917
+ {
1918
+ "name": "when",
1919
+ "type": "SExpr"
1920
+ }
1921
+ ]
1922
+ },
1647
1923
  "uses": [
1648
1924
  {
1649
1925
  "as": "Spinner",