@almadar/std 16.234.0 → 16.236.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 (245) hide show
  1. package/behaviors/behaviors-registry.json +4402 -1898
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +25 -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-mod-queue.lolo +40 -18
  12. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +20 -11
  13. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
  14. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +23 -11
  15. package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
  16. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
  17. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
  18. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
  19. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
  20. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
  21. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
  22. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
  23. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
  24. package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
  25. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +44 -28
  26. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
  27. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
  28. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
  29. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +0 -5
  30. package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
  31. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +7 -3
  32. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
  33. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
  34. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
  35. package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
  36. package/behaviors/lolo/ui/core/atoms/std-list.lolo +46 -32
  37. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
  38. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
  39. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +16 -12
  40. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +10 -1
  41. package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
  42. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +78 -16
  43. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +15 -10
  44. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
  45. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
  46. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
  47. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +20 -11
  48. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
  49. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
  50. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
  51. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
  52. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
  53. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
  54. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +7 -2
  55. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
  56. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
  57. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +41 -3
  58. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +41 -3
  59. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +30 -9
  60. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
  61. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
  62. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
  63. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
  64. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
  65. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
  66. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
  67. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +6 -1
  68. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
  69. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  70. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
  72. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
  73. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +41 -3
  74. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
  75. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +66 -12
  76. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +9 -3
  77. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +9 -3
  78. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +18 -9
  79. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +55 -10
  80. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +55 -10
  81. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +8 -3
  82. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
  83. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +8 -3
  84. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +2 -44
  85. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +6 -1
  86. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
  87. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +8 -2
  88. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
  89. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
  90. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
  91. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
  92. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
  93. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
  94. package/behaviors/lolo-behavior-contracts.json +1 -1
  95. package/behaviors/registry/factory-signatures.json +1 -1
  96. package/behaviors/registry/infra/atoms/std-approval-gate.orb +124 -67
  97. package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
  98. package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
  99. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
  100. package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
  101. package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
  102. package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
  103. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
  104. package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
  105. package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
  106. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +126 -12
  107. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
  108. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +128 -12
  109. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
  110. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
  111. package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
  112. package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
  113. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
  114. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
  115. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
  116. package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
  117. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
  118. package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
  119. package/behaviors/registry/ui/core/atoms/std-browse.orb +295 -41
  120. package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
  121. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
  122. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
  123. package/behaviors/registry/ui/core/atoms/std-event-log.orb +0 -8
  124. package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
  125. package/behaviors/registry/ui/core/atoms/std-file-store.orb +109 -2
  126. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
  127. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
  128. package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
  129. package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
  130. package/behaviors/registry/ui/core/atoms/std-list.orb +226 -34
  131. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
  132. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
  133. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +204 -11
  134. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +89 -4
  135. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
  136. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +419 -19
  137. package/behaviors/registry/ui/core/atoms/std-selection.orb +140 -10
  138. package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
  139. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
  140. package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
  141. package/behaviors/registry/ui/core/atoms/std-version-history.orb +127 -13
  142. package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
  143. package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
  144. package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
  145. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
  146. package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
  147. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
  148. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +87 -2
  149. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
  150. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
  151. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +189 -3
  152. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +189 -3
  153. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +81 -24
  154. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
  155. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
  156. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
  157. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
  158. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
  159. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
  160. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
  161. package/behaviors/registry/ui/core/molecules/ui-menu.orb +57 -1
  162. package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
  163. package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
  164. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
  165. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  166. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
  167. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +189 -3
  168. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
  169. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +282 -20
  170. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +130 -3
  171. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +130 -3
  172. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +367 -9
  173. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +104 -13
  174. package/behaviors/registry/ui/core/organisms/ui-form.orb +104 -13
  175. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +121 -3
  176. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
  177. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +121 -3
  178. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -172
  179. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -1
  180. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
  181. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +99 -2
  182. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
  183. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
  184. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
  185. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
  186. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
  187. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
  188. package/canonical-operators.json +18 -1
  189. package/dist/behaviors/exports-reader.js +7662 -3762
  190. package/dist/behaviors/functions/index.d.ts +309 -104
  191. package/dist/behaviors/functions/index.js +7651 -3762
  192. package/dist/behaviors/index.d.ts +1 -1
  193. package/dist/behaviors/index.js +7663 -3763
  194. package/dist/behaviors/query.js +7662 -3762
  195. package/dist/behaviors-embeddings.hash.json +3 -3
  196. package/dist/behaviors-embeddings.json +35 -27
  197. package/dist/behaviors-registry.json +4402 -1898
  198. package/dist/index.d.ts +3 -3
  199. package/dist/index.js +7697 -3763
  200. package/dist/knob-embeddings.hash.json +3 -3
  201. package/dist/knob-embeddings.json +612 -352
  202. package/dist/modules/anim.d.ts +1 -1
  203. package/dist/modules/array.d.ts +1 -1
  204. package/dist/modules/array.js +15 -0
  205. package/dist/modules/async.d.ts +1 -1
  206. package/dist/modules/async.js +9 -0
  207. package/dist/modules/behavior.d.ts +1 -1
  208. package/dist/modules/browser.d.ts +1 -1
  209. package/dist/modules/composition.d.ts +1 -1
  210. package/dist/modules/contract.d.ts +1 -1
  211. package/dist/modules/core.d.ts +1 -1
  212. package/dist/modules/core.js +10 -0
  213. package/dist/modules/data.d.ts +1 -1
  214. package/dist/modules/ease.d.ts +1 -1
  215. package/dist/modules/format.d.ts +1 -1
  216. package/dist/modules/geo.d.ts +1 -1
  217. package/dist/modules/graph.d.ts +1 -1
  218. package/dist/modules/grid.d.ts +1 -1
  219. package/dist/modules/index.d.ts +1 -1
  220. package/dist/modules/index.js +34 -0
  221. package/dist/modules/integration.d.ts +1 -1
  222. package/dist/modules/json.d.ts +1 -1
  223. package/dist/modules/llm.d.ts +1 -1
  224. package/dist/modules/math.d.ts +1 -1
  225. package/dist/modules/memory.d.ts +1 -1
  226. package/dist/modules/nn.d.ts +1 -1
  227. package/dist/modules/noise.d.ts +1 -1
  228. package/dist/modules/object.d.ts +1 -1
  229. package/dist/modules/os.d.ts +1 -1
  230. package/dist/modules/path.d.ts +1 -1
  231. package/dist/modules/prob.d.ts +1 -1
  232. package/dist/modules/session.d.ts +1 -1
  233. package/dist/modules/str.d.ts +1 -1
  234. package/dist/modules/tensor.d.ts +1 -1
  235. package/dist/modules/time.d.ts +1 -1
  236. package/dist/modules/trace.d.ts +1 -1
  237. package/dist/modules/train.d.ts +1 -1
  238. package/dist/modules/validate.d.ts +1 -1
  239. package/dist/modules/vector.d.ts +1 -1
  240. package/dist/modules/workspace.d.ts +1 -1
  241. package/dist/registry/factory-signatures.json +1 -1
  242. package/dist/registry.d.ts +5 -2
  243. package/dist/registry.js +55 -1
  244. package/dist/{types-DwAW4Nni.d.ts → types-DLx38UFZ.d.ts} +31 -4
  245. package/package.json +2 -2
@@ -770,7 +770,7 @@
770
770
  "name": "Initialize"
771
771
  },
772
772
  {
773
- "description": "One physical keydown, delivered by the host's keyboard router. The host decides preventDefault from config.keymap; this trait only reads key + editorId.",
773
+ "description": "One physical keydown, delivered by the host's keyboard router. The host decides preventDefault from config.keymap; the command line accepts only keys config.keymap captures in COMMAND.",
774
774
  "id": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
775
775
  "key": "KEY",
776
776
  "name": "Key",
@@ -3095,6 +3095,15 @@
3095
3095
  "from": "COMMAND",
3096
3096
  "guard": [
3097
3097
  "and",
3098
+ [
3099
+ "array/includes",
3100
+ [
3101
+ "object/get",
3102
+ "@config.keymap",
3103
+ "COMMAND"
3104
+ ],
3105
+ "@payload.key"
3106
+ ],
3098
3107
  [
3099
3108
  "!=",
3100
3109
  "@payload.key",
@@ -1766,6 +1766,7 @@
1766
1766
  },
1767
1767
  {
1768
1768
  "cancelEvent": "CANCEL_REVIEW",
1769
+ "cancelLabel": "@config.cancelLabel",
1769
1770
  "entity": "@entity",
1770
1771
  "fields": "@config.reviewFields",
1771
1772
  "mode": "edit",
@@ -3035,6 +3036,7 @@
3035
3036
  },
3036
3037
  {
3037
3038
  "cancelEvent": "CANCEL_REVIEW",
3039
+ "cancelLabel": "@config.cancelLabel",
3038
3040
  "entity": "@entity",
3039
3041
  "fields": "@config.reviewFields",
3040
3042
  "mode": "edit",
@@ -3266,13 +3268,6 @@
3266
3268
  "tier": "presentation",
3267
3269
  "type": "boolean"
3268
3270
  },
3269
- "allowPhotos": {
3270
- "default": false,
3271
- "description": "Let the user attach photos to the review",
3272
- "label": "Allow photos",
3273
- "tier": "presentation",
3274
- "type": "boolean"
3275
- },
3276
3271
  "cancelLabel": {
3277
3272
  "default": "Cancel",
3278
3273
  "description": "Label on the cancel button",
@@ -3303,13 +3298,6 @@
3303
3298
  "tier": "domain",
3304
3299
  "type": "number"
3305
3300
  },
3306
- "submitEvent": {
3307
- "default": "SUBMIT_REVIEW",
3308
- "description": "Event emitted when the user submits the form",
3309
- "label": "Submit event",
3310
- "tier": "internal",
3311
- "type": "string"
3312
- },
3313
3301
  "submitLabel": {
3314
3302
  "default": "Submit review",
3315
3303
  "description": "Label on the primary submit button",
@@ -3784,9 +3772,15 @@
3784
3772
  },
3785
3773
  {
3786
3774
  "cancelEvent": "CANCEL_REVIEW",
3775
+ "cancelLabel": "@config.cancelLabel",
3787
3776
  "entity": "@entity",
3788
3777
  "fields": [
3789
- "draftComment"
3778
+ "if",
3779
+ "@config.allowComment",
3780
+ [
3781
+ "draftComment"
3782
+ ],
3783
+ []
3790
3784
  ],
3791
3785
  "mode": "edit",
3792
3786
  "submitEvent": "SUBMIT_REVIEW",
@@ -3836,9 +3830,15 @@
3836
3830
  },
3837
3831
  {
3838
3832
  "cancelEvent": "CANCEL_REVIEW",
3833
+ "cancelLabel": "@config.cancelLabel",
3839
3834
  "entity": "@entity",
3840
3835
  "fields": [
3841
- "draftComment"
3836
+ "if",
3837
+ "@config.allowComment",
3838
+ [
3839
+ "draftComment"
3840
+ ],
3841
+ []
3842
3842
  ],
3843
3843
  "mode": "edit",
3844
3844
  "submitEvent": "SUBMIT_REVIEW",
@@ -3938,9 +3938,15 @@
3938
3938
  },
3939
3939
  {
3940
3940
  "cancelEvent": "CANCEL_REVIEW",
3941
+ "cancelLabel": "@config.cancelLabel",
3941
3942
  "entity": "@entity",
3942
3943
  "fields": [
3943
- "draftComment"
3944
+ "if",
3945
+ "@config.allowComment",
3946
+ [
3947
+ "draftComment"
3948
+ ],
3949
+ []
3944
3950
  ],
3945
3951
  "mode": "edit",
3946
3952
  "submitEvent": "SUBMIT_REVIEW",
@@ -4054,9 +4060,15 @@
4054
4060
  },
4055
4061
  {
4056
4062
  "cancelEvent": "CANCEL_REVIEW",
4063
+ "cancelLabel": "@config.cancelLabel",
4057
4064
  "entity": "@entity",
4058
4065
  "fields": [
4059
- "draftComment"
4066
+ "if",
4067
+ "@config.allowComment",
4068
+ [
4069
+ "draftComment"
4070
+ ],
4071
+ []
4060
4072
  ],
4061
4073
  "mode": "edit",
4062
4074
  "submitEvent": "SUBMIT_REVIEW",
@@ -4101,9 +4113,15 @@
4101
4113
  },
4102
4114
  {
4103
4115
  "cancelEvent": "CANCEL_REVIEW",
4116
+ "cancelLabel": "@config.cancelLabel",
4104
4117
  "entity": "@entity",
4105
4118
  "fields": [
4106
- "draftComment"
4119
+ "if",
4120
+ "@config.allowComment",
4121
+ [
4122
+ "draftComment"
4123
+ ],
4124
+ []
4107
4125
  ],
4108
4126
  "mode": "edit",
4109
4127
  "submitEvent": "SUBMIT_REVIEW",
@@ -387,6 +387,14 @@
387
387
  "required": true,
388
388
  "type": "string"
389
389
  },
390
+ "roles": {
391
+ "items": {
392
+ "type": "string"
393
+ },
394
+ "name": "roles",
395
+ "required": false,
396
+ "type": "array"
397
+ },
390
398
  "variant": {
391
399
  "name": "variant",
392
400
  "required": false,
@@ -397,6 +405,11 @@
397
405
  "ghost",
398
406
  "danger"
399
407
  ]
408
+ },
409
+ "when": {
410
+ "name": "when",
411
+ "required": false,
412
+ "type": "object"
400
413
  }
401
414
  },
402
415
  "type": "object"
@@ -425,10 +438,43 @@
425
438
  "default": {
426
439
  "children": [
427
440
  {
428
- "actions": "@config.actions",
429
- "entity": "@payload.data",
441
+ "actions": [
442
+ "array/filter",
443
+ "@config.actions",
444
+ [
445
+ "fn",
446
+ "action",
447
+ [
448
+ "or",
449
+ [
450
+ "=",
451
+ [
452
+ "array/len",
453
+ [
454
+ "object/get",
455
+ "@action",
456
+ "roles",
457
+ []
458
+ ]
459
+ ],
460
+ 0.0
461
+ ],
462
+ [
463
+ "array/includes",
464
+ [
465
+ "object/get",
466
+ "@action",
467
+ "roles",
468
+ []
469
+ ],
470
+ "@config.viewerRole"
471
+ ]
472
+ ]
473
+ ]
474
+ ],
475
+ "entity": "@entity.loadedRow",
430
476
  "fields": "@config.fields",
431
- "initialData": "@payload.data",
477
+ "initialData": "@entity.loadedRow",
432
478
  "maxInlineActions": "@config.maxInlineActions",
433
479
  "sections": "@config.sections",
434
480
  "showActions": "@config.showActions",
@@ -478,7 +524,40 @@
478
524
  },
479
525
  "documentBodyContent": {
480
526
  "default": {
481
- "actions": "@config.actions",
527
+ "actions": [
528
+ "array/filter",
529
+ "@config.actions",
530
+ [
531
+ "fn",
532
+ "action",
533
+ [
534
+ "or",
535
+ [
536
+ "=",
537
+ [
538
+ "array/len",
539
+ [
540
+ "object/get",
541
+ "@action",
542
+ "roles",
543
+ []
544
+ ]
545
+ ],
546
+ 0.0
547
+ ],
548
+ [
549
+ "array/includes",
550
+ [
551
+ "object/get",
552
+ "@action",
553
+ "roles",
554
+ []
555
+ ],
556
+ "@config.viewerRole"
557
+ ]
558
+ ]
559
+ ]
560
+ ],
482
561
  "className": "w-full",
483
562
  "coverImage": "@entity.coverUrl",
484
563
  "editEvent": [
@@ -510,7 +589,40 @@
510
589
  },
511
590
  "documentEditingContent": {
512
591
  "default": {
513
- "actions": "@config.actions",
592
+ "actions": [
593
+ "array/filter",
594
+ "@config.actions",
595
+ [
596
+ "fn",
597
+ "action",
598
+ [
599
+ "or",
600
+ [
601
+ "=",
602
+ [
603
+ "array/len",
604
+ [
605
+ "object/get",
606
+ "@action",
607
+ "roles",
608
+ []
609
+ ]
610
+ ],
611
+ 0.0
612
+ ],
613
+ [
614
+ "array/includes",
615
+ [
616
+ "object/get",
617
+ "@action",
618
+ "roles",
619
+ []
620
+ ],
621
+ "@config.viewerRole"
622
+ ]
623
+ ]
624
+ ]
625
+ ],
514
626
  "autosaveHint": "@config.autosaveHint",
515
627
  "className": "w-full",
516
628
  "contentChangeEvent": "CONTENT_CHANGE",
@@ -643,10 +755,43 @@
643
755
  "default": {
644
756
  "children": [
645
757
  {
646
- "actions": "@config.actions",
647
- "entity": "@payload.data",
758
+ "actions": [
759
+ "array/filter",
760
+ "@config.actions",
761
+ [
762
+ "fn",
763
+ "action",
764
+ [
765
+ "or",
766
+ [
767
+ "=",
768
+ [
769
+ "array/len",
770
+ [
771
+ "object/get",
772
+ "@action",
773
+ "roles",
774
+ []
775
+ ]
776
+ ],
777
+ 0.0
778
+ ],
779
+ [
780
+ "array/includes",
781
+ [
782
+ "object/get",
783
+ "@action",
784
+ "roles",
785
+ []
786
+ ],
787
+ "@config.viewerRole"
788
+ ]
789
+ ]
790
+ ]
791
+ ],
792
+ "entity": "@entity.loadedRow",
648
793
  "fields": "@config.fields",
649
- "initialData": "@payload.data",
794
+ "initialData": "@entity.loadedRow",
650
795
  "maxInlineActions": "@config.maxInlineActions",
651
796
  "sections": "@config.sections",
652
797
  "showActions": "@config.showActions",
@@ -710,10 +855,43 @@
710
855
  "default": {
711
856
  "children": [
712
857
  {
713
- "actions": "@config.actions",
714
- "entity": "@payload.data",
858
+ "actions": [
859
+ "array/filter",
860
+ "@config.actions",
861
+ [
862
+ "fn",
863
+ "action",
864
+ [
865
+ "or",
866
+ [
867
+ "=",
868
+ [
869
+ "array/len",
870
+ [
871
+ "object/get",
872
+ "@action",
873
+ "roles",
874
+ []
875
+ ]
876
+ ],
877
+ 0.0
878
+ ],
879
+ [
880
+ "array/includes",
881
+ [
882
+ "object/get",
883
+ "@action",
884
+ "roles",
885
+ []
886
+ ],
887
+ "@config.viewerRole"
888
+ ]
889
+ ]
890
+ ]
891
+ ],
892
+ "entity": "@entity.loadedRow",
715
893
  "fields": "@config.fields",
716
- "initialData": "@payload.data",
894
+ "initialData": "@entity.loadedRow",
717
895
  "maxInlineActions": "@config.maxInlineActions",
718
896
  "sections": "@config.sections",
719
897
  "showActions": "@config.showActions",
@@ -747,6 +925,13 @@
747
925
  "synonyms": "title field, heading field, name field, label field",
748
926
  "tier": "presentation",
749
927
  "type": "string"
928
+ },
929
+ "viewerRole": {
930
+ "default": "",
931
+ "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.",
932
+ "label": "Viewer's role",
933
+ "tier": "policy",
934
+ "type": "string"
750
935
  }
751
936
  },
752
937
  "effectRow": [
@@ -4176,6 +4361,14 @@
4176
4361
  {
4177
4362
  "name": "variant",
4178
4363
  "type": "string"
4364
+ },
4365
+ {
4366
+ "name": "roles",
4367
+ "type": "[string]"
4368
+ },
4369
+ {
4370
+ "name": "when",
4371
+ "type": "SExpr"
4179
4372
  }
4180
4373
  ],
4181
4374
  "RecordFieldSpec": [
@@ -389,6 +389,41 @@
389
389
  "tier": "presentation",
390
390
  "type": "[string]"
391
391
  },
392
+ "itemActions": {
393
+ "default": [
394
+ {
395
+ "event": "OPEN_EXCEPTION",
396
+ "label": "Manage"
397
+ }
398
+ ],
399
+ "description": "Actions offered on each row; give an item `roles` to show it only to those viewer roles.",
400
+ "items": {
401
+ "properties": {
402
+ "event": {
403
+ "name": "event",
404
+ "required": false,
405
+ "type": "event"
406
+ },
407
+ "label": {
408
+ "name": "label",
409
+ "required": true,
410
+ "type": "string"
411
+ },
412
+ "roles": {
413
+ "items": {
414
+ "type": "string"
415
+ },
416
+ "name": "roles",
417
+ "required": false,
418
+ "type": "array"
419
+ }
420
+ },
421
+ "type": "object"
422
+ },
423
+ "label": "Row actions",
424
+ "tier": "presentation",
425
+ "type": "[ItemAction]"
426
+ },
392
427
  "timelineLook": {
393
428
  "default": "vertical-spacious",
394
429
  "description": "Layer 2 visual treatment for the timeline.",
@@ -408,6 +443,13 @@
408
443
  "label": "Section title",
409
444
  "tier": "presentation",
410
445
  "type": "string"
446
+ },
447
+ "viewerRole": {
448
+ "default": "",
449
+ "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.",
450
+ "label": "Viewer's role",
451
+ "tier": "policy",
452
+ "type": "string"
411
453
  }
412
454
  },
413
455
  "effectRow": [
@@ -1125,10 +1167,38 @@
1125
1167
  "status"
1126
1168
  ],
1127
1169
  "itemActions": [
1128
- {
1129
- "event": "OPEN_EXCEPTION",
1130
- "label": "Manage"
1131
- }
1170
+ "array/filter",
1171
+ "@config.itemActions",
1172
+ [
1173
+ "fn",
1174
+ "action",
1175
+ [
1176
+ "or",
1177
+ [
1178
+ "=",
1179
+ [
1180
+ "array/len",
1181
+ [
1182
+ "object/get",
1183
+ "@action",
1184
+ "roles",
1185
+ []
1186
+ ]
1187
+ ],
1188
+ 0.0
1189
+ ],
1190
+ [
1191
+ "array/includes",
1192
+ [
1193
+ "object/get",
1194
+ "@action",
1195
+ "roles",
1196
+ []
1197
+ ],
1198
+ "@config.viewerRole"
1199
+ ]
1200
+ ]
1201
+ ]
1132
1202
  ],
1133
1203
  "look": "@config.timelineLook",
1134
1204
  "type": "timeline"
@@ -1638,6 +1708,21 @@
1638
1708
  }
1639
1709
  ],
1640
1710
  "types": {
1711
+ "ItemAction": [
1712
+ {
1713
+ "name": "label",
1714
+ "required": true,
1715
+ "type": "string"
1716
+ },
1717
+ {
1718
+ "name": "event",
1719
+ "type": "event"
1720
+ },
1721
+ {
1722
+ "name": "roles",
1723
+ "type": "[string]"
1724
+ }
1725
+ ],
1641
1726
  "ObjectSpec": [
1642
1727
  {
1643
1728
  "name": "id",