@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
@@ -237,12 +237,48 @@
237
237
  "tier": "presentation",
238
238
  "type": "string"
239
239
  },
240
+ "emptyAction": {
241
+ "description": "Create-the-first-item action.",
242
+ "label": "Empty Action",
243
+ "properties": {
244
+ "event": {
245
+ "name": "event",
246
+ "required": false,
247
+ "type": "event"
248
+ },
249
+ "label": {
250
+ "name": "label",
251
+ "required": true,
252
+ "type": "string"
253
+ }
254
+ },
255
+ "tier": "presentation",
256
+ "type": "TableViewEmptyAction"
257
+ },
258
+ "emptyDescription": {
259
+ "description": "What will appear here once rows exist.",
260
+ "label": "Empty Description",
261
+ "tier": "presentation",
262
+ "type": "string"
263
+ },
264
+ "emptyIcon": {
265
+ "description": "Domain icon for the empty state.",
266
+ "label": "Empty Icon",
267
+ "tier": "presentation",
268
+ "type": "icon"
269
+ },
240
270
  "emptyMessage": {
241
271
  "description": "Message shown when there are no rows.",
242
272
  "label": "Empty Message",
243
273
  "tier": "presentation",
244
274
  "type": "string"
245
275
  },
276
+ "emptyTitle": {
277
+ "description": "Specific title ('No orders yet').",
278
+ "label": "Empty Title",
279
+ "tier": "presentation",
280
+ "type": "string"
281
+ },
246
282
  "error": {
247
283
  "description": "Error state.",
248
284
  "label": "Error",
@@ -389,6 +425,14 @@
389
425
  "required": true,
390
426
  "type": "string"
391
427
  },
428
+ "roles": {
429
+ "items": {
430
+ "type": "string"
431
+ },
432
+ "name": "roles",
433
+ "required": false,
434
+ "type": "array"
435
+ },
392
436
  "variant": {
393
437
  "name": "variant",
394
438
  "required": false,
@@ -399,6 +443,11 @@
399
443
  "ghost",
400
444
  "danger"
401
445
  ]
446
+ },
447
+ "when": {
448
+ "name": "when",
449
+ "required": false,
450
+ "type": "object"
402
451
  }
403
452
  },
404
453
  "type": "object"
@@ -548,6 +597,13 @@
548
597
  "label": "Sortable",
549
598
  "tier": "presentation",
550
599
  "type": "boolean"
600
+ },
601
+ "viewerRole": {
602
+ "default": "",
603
+ "description": "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show.",
604
+ "label": "Viewer's role",
605
+ "tier": "policy",
606
+ "type": "string"
551
607
  }
552
608
  },
553
609
  "effectRow": [
@@ -762,13 +818,50 @@
762
818
  "dndRoot": "@config.dndRoot",
763
819
  "dragGroup": "@config.dragGroup",
764
820
  "dropEvent": "@config.dropEvent",
821
+ "emptyAction": "@config.emptyAction",
822
+ "emptyDescription": "@config.emptyDescription",
823
+ "emptyIcon": "@config.emptyIcon",
765
824
  "emptyMessage": "@config.emptyMessage",
825
+ "emptyTitle": "@config.emptyTitle",
766
826
  "entity": "@entity",
767
827
  "error": "@config.error",
768
828
  "fields": "@config.fields",
769
829
  "groupBy": "@config.groupBy",
770
830
  "isLoading": "@config.isLoading",
771
- "itemActions": "@config.itemActions",
831
+ "itemActions": [
832
+ "array/filter",
833
+ "@config.itemActions",
834
+ [
835
+ "fn",
836
+ "action",
837
+ [
838
+ "or",
839
+ [
840
+ "=",
841
+ [
842
+ "array/len",
843
+ [
844
+ "object/get",
845
+ "@action",
846
+ "roles",
847
+ []
848
+ ]
849
+ ],
850
+ 0.0
851
+ ],
852
+ [
853
+ "array/includes",
854
+ [
855
+ "object/get",
856
+ "@action",
857
+ "roles",
858
+ []
859
+ ],
860
+ "@config.viewerRole"
861
+ ]
862
+ ]
863
+ ]
864
+ ],
772
865
  "itemClickEvent": "@config.itemClickEvent",
773
866
  "look": "@config.look",
774
867
  "maxInlineActions": "@config.maxInlineActions",
@@ -806,13 +899,50 @@
806
899
  "dndRoot": "@config.dndRoot",
807
900
  "dragGroup": "@config.dragGroup",
808
901
  "dropEvent": "@config.dropEvent",
902
+ "emptyAction": "@config.emptyAction",
903
+ "emptyDescription": "@config.emptyDescription",
904
+ "emptyIcon": "@config.emptyIcon",
809
905
  "emptyMessage": "@config.emptyMessage",
906
+ "emptyTitle": "@config.emptyTitle",
810
907
  "entity": "@entity",
811
908
  "error": "@config.error",
812
909
  "fields": "@config.fields",
813
910
  "groupBy": "@config.groupBy",
814
911
  "isLoading": "@config.isLoading",
815
- "itemActions": "@config.itemActions",
912
+ "itemActions": [
913
+ "array/filter",
914
+ "@config.itemActions",
915
+ [
916
+ "fn",
917
+ "action",
918
+ [
919
+ "or",
920
+ [
921
+ "=",
922
+ [
923
+ "array/len",
924
+ [
925
+ "object/get",
926
+ "@action",
927
+ "roles",
928
+ []
929
+ ]
930
+ ],
931
+ 0.0
932
+ ],
933
+ [
934
+ "array/includes",
935
+ [
936
+ "object/get",
937
+ "@action",
938
+ "roles",
939
+ []
940
+ ],
941
+ "@config.viewerRole"
942
+ ]
943
+ ]
944
+ ]
945
+ ],
816
946
  "itemClickEvent": "@config.itemClickEvent",
817
947
  "look": "@config.look",
818
948
  "maxInlineActions": "@config.maxInlineActions",
@@ -853,13 +983,50 @@
853
983
  "dndRoot": "@config.dndRoot",
854
984
  "dragGroup": "@config.dragGroup",
855
985
  "dropEvent": "@config.dropEvent",
986
+ "emptyAction": "@config.emptyAction",
987
+ "emptyDescription": "@config.emptyDescription",
988
+ "emptyIcon": "@config.emptyIcon",
856
989
  "emptyMessage": "@config.emptyMessage",
990
+ "emptyTitle": "@config.emptyTitle",
857
991
  "entity": "@payload.data",
858
992
  "error": "@config.error",
859
993
  "fields": "@config.fields",
860
994
  "groupBy": "@config.groupBy",
861
995
  "isLoading": "@config.isLoading",
862
- "itemActions": "@config.itemActions",
996
+ "itemActions": [
997
+ "array/filter",
998
+ "@config.itemActions",
999
+ [
1000
+ "fn",
1001
+ "action",
1002
+ [
1003
+ "or",
1004
+ [
1005
+ "=",
1006
+ [
1007
+ "array/len",
1008
+ [
1009
+ "object/get",
1010
+ "@action",
1011
+ "roles",
1012
+ []
1013
+ ]
1014
+ ],
1015
+ 0.0
1016
+ ],
1017
+ [
1018
+ "array/includes",
1019
+ [
1020
+ "object/get",
1021
+ "@action",
1022
+ "roles",
1023
+ []
1024
+ ],
1025
+ "@config.viewerRole"
1026
+ ]
1027
+ ]
1028
+ ]
1029
+ ],
863
1030
  "itemClickEvent": "@config.itemClickEvent",
864
1031
  "look": "@config.look",
865
1032
  "maxInlineActions": "@config.maxInlineActions",
@@ -935,6 +1102,17 @@
935
1102
  "type": "boolean"
936
1103
  }
937
1104
  ],
1105
+ "TableViewEmptyAction": [
1106
+ {
1107
+ "name": "label",
1108
+ "required": true,
1109
+ "type": "string"
1110
+ },
1111
+ {
1112
+ "name": "event",
1113
+ "type": "event"
1114
+ }
1115
+ ],
938
1116
  "TableViewError": [
939
1117
  {
940
1118
  "name": "message",
@@ -1019,6 +1197,14 @@
1019
1197
  {
1020
1198
  "name": "variant",
1021
1199
  "type": "string"
1200
+ },
1201
+ {
1202
+ "name": "when",
1203
+ "type": "SExpr"
1204
+ },
1205
+ {
1206
+ "name": "roles",
1207
+ "type": "[string]"
1022
1208
  }
1023
1209
  ],
1024
1210
  "TableViewRelationsDataValueItem": [
@@ -242,6 +242,14 @@
242
242
  "required": true,
243
243
  "type": "string"
244
244
  },
245
+ "roles": {
246
+ "items": {
247
+ "type": "string"
248
+ },
249
+ "name": "roles",
250
+ "required": false,
251
+ "type": "array"
252
+ },
245
253
  "value": {
246
254
  "name": "value",
247
255
  "required": false,
@@ -414,6 +422,14 @@
414
422
  "required": true,
415
423
  "type": "string"
416
424
  },
425
+ "roles": {
426
+ "items": {
427
+ "type": "string"
428
+ },
429
+ "name": "roles",
430
+ "required": false,
431
+ "type": "array"
432
+ },
417
433
  "value": {
418
434
  "name": "value",
419
435
  "required": false,
@@ -437,6 +453,13 @@
437
453
  "pills",
438
454
  "underline"
439
455
  ]
456
+ },
457
+ "viewerRole": {
458
+ "default": "",
459
+ "description": "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show.",
460
+ "label": "Viewer's role",
461
+ "tier": "policy",
462
+ "type": "string"
440
463
  }
441
464
  },
442
465
  "effectRow": [
@@ -511,11 +534,77 @@
511
534
  "activeTab": "@config.activeTab",
512
535
  "className": "@config.className",
513
536
  "defaultActiveTab": "@config.defaultActiveTab",
514
- "items": "@config.items",
537
+ "items": [
538
+ "array/filter",
539
+ "@config.items",
540
+ [
541
+ "fn",
542
+ "action",
543
+ [
544
+ "or",
545
+ [
546
+ "=",
547
+ [
548
+ "array/len",
549
+ [
550
+ "object/get",
551
+ "@action",
552
+ "roles",
553
+ []
554
+ ]
555
+ ],
556
+ 0.0
557
+ ],
558
+ [
559
+ "array/includes",
560
+ [
561
+ "object/get",
562
+ "@action",
563
+ "roles",
564
+ []
565
+ ],
566
+ "@config.viewerRole"
567
+ ]
568
+ ]
569
+ ]
570
+ ],
515
571
  "onTabChange": "@config.onTabChange",
516
572
  "orientation": "@config.orientation",
517
573
  "tabChangeEvent": "@config.tabChangeEvent",
518
- "tabs": "@config.tabs",
574
+ "tabs": [
575
+ "array/filter",
576
+ "@config.tabs",
577
+ [
578
+ "fn",
579
+ "action",
580
+ [
581
+ "or",
582
+ [
583
+ "=",
584
+ [
585
+ "array/len",
586
+ [
587
+ "object/get",
588
+ "@action",
589
+ "roles",
590
+ []
591
+ ]
592
+ ],
593
+ 0.0
594
+ ],
595
+ [
596
+ "array/includes",
597
+ [
598
+ "object/get",
599
+ "@action",
600
+ "roles",
601
+ []
602
+ ],
603
+ "@config.viewerRole"
604
+ ]
605
+ ]
606
+ ]
607
+ ],
519
608
  "type": "tabs",
520
609
  "variant": "@config.variant"
521
610
  }
@@ -625,6 +714,10 @@
625
714
  {
626
715
  "name": "active",
627
716
  "type": "boolean"
717
+ },
718
+ {
719
+ "name": "roles",
720
+ "type": "[string]"
628
721
  }
629
722
  ],
630
723
  "TabsItemsItemIconAsset": [
@@ -774,6 +867,10 @@
774
867
  {
775
868
  "name": "active",
776
869
  "type": "boolean"
870
+ },
871
+ {
872
+ "name": "roles",
873
+ "type": "[string]"
777
874
  }
778
875
  ],
779
876
  "TabsTabsItemIconAsset": [