@almadar/std 16.235.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 (244) 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 +7680 -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/behavior.d.ts +1 -1
  207. package/dist/modules/browser.d.ts +1 -1
  208. package/dist/modules/composition.d.ts +1 -1
  209. package/dist/modules/contract.d.ts +1 -1
  210. package/dist/modules/core.d.ts +1 -1
  211. package/dist/modules/core.js +2 -0
  212. package/dist/modules/data.d.ts +1 -1
  213. package/dist/modules/ease.d.ts +1 -1
  214. package/dist/modules/format.d.ts +1 -1
  215. package/dist/modules/geo.d.ts +1 -1
  216. package/dist/modules/graph.d.ts +1 -1
  217. package/dist/modules/grid.d.ts +1 -1
  218. package/dist/modules/index.d.ts +1 -1
  219. package/dist/modules/index.js +17 -0
  220. package/dist/modules/integration.d.ts +1 -1
  221. package/dist/modules/json.d.ts +1 -1
  222. package/dist/modules/llm.d.ts +1 -1
  223. package/dist/modules/math.d.ts +1 -1
  224. package/dist/modules/memory.d.ts +1 -1
  225. package/dist/modules/nn.d.ts +1 -1
  226. package/dist/modules/noise.d.ts +1 -1
  227. package/dist/modules/object.d.ts +1 -1
  228. package/dist/modules/os.d.ts +1 -1
  229. package/dist/modules/path.d.ts +1 -1
  230. package/dist/modules/prob.d.ts +1 -1
  231. package/dist/modules/session.d.ts +1 -1
  232. package/dist/modules/str.d.ts +1 -1
  233. package/dist/modules/tensor.d.ts +1 -1
  234. package/dist/modules/time.d.ts +1 -1
  235. package/dist/modules/trace.d.ts +1 -1
  236. package/dist/modules/train.d.ts +1 -1
  237. package/dist/modules/validate.d.ts +1 -1
  238. package/dist/modules/vector.d.ts +1 -1
  239. package/dist/modules/workspace.d.ts +1 -1
  240. package/dist/registry/factory-signatures.json +1 -1
  241. package/dist/registry.d.ts +2 -2
  242. package/dist/registry.js +17 -0
  243. package/dist/{types-Ggla7OK7.d.ts → types-DLx38UFZ.d.ts} +23 -3
  244. package/package.json +2 -2
@@ -219,6 +219,42 @@
219
219
  "tier": "presentation",
220
220
  "type": "string"
221
221
  },
222
+ "emptyAction": {
223
+ "description": "Create-the-first-item action.",
224
+ "label": "Empty Action",
225
+ "properties": {
226
+ "event": {
227
+ "name": "event",
228
+ "required": false,
229
+ "type": "event"
230
+ },
231
+ "label": {
232
+ "name": "label",
233
+ "required": true,
234
+ "type": "string"
235
+ }
236
+ },
237
+ "tier": "presentation",
238
+ "type": "DataGridEmptyAction"
239
+ },
240
+ "emptyDescription": {
241
+ "description": "What will appear here once rows exist.",
242
+ "label": "Empty Description",
243
+ "tier": "presentation",
244
+ "type": "string"
245
+ },
246
+ "emptyIcon": {
247
+ "description": "Domain icon for the empty state.",
248
+ "label": "Empty Icon",
249
+ "tier": "presentation",
250
+ "type": "icon"
251
+ },
252
+ "emptyTitle": {
253
+ "description": "Specific title ('No orders yet').",
254
+ "label": "Empty Title",
255
+ "tier": "presentation",
256
+ "type": "string"
257
+ },
222
258
  "error": {
223
259
  "description": "Error state",
224
260
  "label": "Error",
@@ -372,6 +408,14 @@
372
408
  "required": false,
373
409
  "type": "string"
374
410
  },
411
+ "roles": {
412
+ "items": {
413
+ "type": "string"
414
+ },
415
+ "name": "roles",
416
+ "required": false,
417
+ "type": "array"
418
+ },
375
419
  "variant": {
376
420
  "name": "variant",
377
421
  "required": false,
@@ -382,6 +426,11 @@
382
426
  "ghost",
383
427
  "danger"
384
428
  ]
429
+ },
430
+ "when": {
431
+ "name": "when",
432
+ "required": false,
433
+ "type": "object"
385
434
  }
386
435
  },
387
436
  "type": "object"
@@ -511,6 +560,13 @@
511
560
  "label": "Sortable",
512
561
  "tier": "presentation",
513
562
  "type": "boolean"
563
+ },
564
+ "viewerRole": {
565
+ "default": "",
566
+ "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.",
567
+ "label": "Viewer's role",
568
+ "tier": "policy",
569
+ "type": "string"
514
570
  }
515
571
  },
516
572
  "effectRow": [
@@ -702,6 +758,10 @@
702
758
  "dndRoot": "@config.dndRoot",
703
759
  "dragGroup": "@config.dragGroup",
704
760
  "dropEvent": "@config.dropEvent",
761
+ "emptyAction": "@config.emptyAction",
762
+ "emptyDescription": "@config.emptyDescription",
763
+ "emptyIcon": "@config.emptyIcon",
764
+ "emptyTitle": "@config.emptyTitle",
705
765
  "entity": "@entity",
706
766
  "error": "@config.error",
707
767
  "fields": "@config.fields",
@@ -710,7 +770,40 @@
710
770
  "imageField": "@config.imageField",
711
771
  "infiniteScroll": "@config.infiniteScroll",
712
772
  "isLoading": "@config.isLoading",
713
- "itemActions": "@config.itemActions",
773
+ "itemActions": [
774
+ "array/filter",
775
+ "@config.itemActions",
776
+ [
777
+ "fn",
778
+ "action",
779
+ [
780
+ "or",
781
+ [
782
+ "=",
783
+ [
784
+ "array/len",
785
+ [
786
+ "object/get",
787
+ "@action",
788
+ "roles",
789
+ []
790
+ ]
791
+ ],
792
+ 0.0
793
+ ],
794
+ [
795
+ "array/includes",
796
+ [
797
+ "object/get",
798
+ "@action",
799
+ "roles",
800
+ []
801
+ ],
802
+ "@config.viewerRole"
803
+ ]
804
+ ]
805
+ ]
806
+ ],
714
807
  "loadMoreEvent": "@config.loadMoreEvent",
715
808
  "look": "@config.look",
716
809
  "maxInlineActions": "@config.maxInlineActions",
@@ -747,6 +840,10 @@
747
840
  "dndRoot": "@config.dndRoot",
748
841
  "dragGroup": "@config.dragGroup",
749
842
  "dropEvent": "@config.dropEvent",
843
+ "emptyAction": "@config.emptyAction",
844
+ "emptyDescription": "@config.emptyDescription",
845
+ "emptyIcon": "@config.emptyIcon",
846
+ "emptyTitle": "@config.emptyTitle",
750
847
  "entity": "@entity",
751
848
  "error": "@config.error",
752
849
  "fields": "@config.fields",
@@ -755,7 +852,40 @@
755
852
  "imageField": "@config.imageField",
756
853
  "infiniteScroll": "@config.infiniteScroll",
757
854
  "isLoading": "@config.isLoading",
758
- "itemActions": "@config.itemActions",
855
+ "itemActions": [
856
+ "array/filter",
857
+ "@config.itemActions",
858
+ [
859
+ "fn",
860
+ "action",
861
+ [
862
+ "or",
863
+ [
864
+ "=",
865
+ [
866
+ "array/len",
867
+ [
868
+ "object/get",
869
+ "@action",
870
+ "roles",
871
+ []
872
+ ]
873
+ ],
874
+ 0.0
875
+ ],
876
+ [
877
+ "array/includes",
878
+ [
879
+ "object/get",
880
+ "@action",
881
+ "roles",
882
+ []
883
+ ],
884
+ "@config.viewerRole"
885
+ ]
886
+ ]
887
+ ]
888
+ ],
759
889
  "loadMoreEvent": "@config.loadMoreEvent",
760
890
  "look": "@config.look",
761
891
  "maxInlineActions": "@config.maxInlineActions",
@@ -795,6 +925,10 @@
795
925
  "dndRoot": "@config.dndRoot",
796
926
  "dragGroup": "@config.dragGroup",
797
927
  "dropEvent": "@config.dropEvent",
928
+ "emptyAction": "@config.emptyAction",
929
+ "emptyDescription": "@config.emptyDescription",
930
+ "emptyIcon": "@config.emptyIcon",
931
+ "emptyTitle": "@config.emptyTitle",
798
932
  "entity": "@payload.data",
799
933
  "error": "@config.error",
800
934
  "fields": "@config.fields",
@@ -803,7 +937,40 @@
803
937
  "imageField": "@config.imageField",
804
938
  "infiniteScroll": "@config.infiniteScroll",
805
939
  "isLoading": "@config.isLoading",
806
- "itemActions": "@config.itemActions",
940
+ "itemActions": [
941
+ "array/filter",
942
+ "@config.itemActions",
943
+ [
944
+ "fn",
945
+ "action",
946
+ [
947
+ "or",
948
+ [
949
+ "=",
950
+ [
951
+ "array/len",
952
+ [
953
+ "object/get",
954
+ "@action",
955
+ "roles",
956
+ []
957
+ ]
958
+ ],
959
+ 0.0
960
+ ],
961
+ [
962
+ "array/includes",
963
+ [
964
+ "object/get",
965
+ "@action",
966
+ "roles",
967
+ []
968
+ ],
969
+ "@config.viewerRole"
970
+ ]
971
+ ]
972
+ ]
973
+ ],
807
974
  "loadMoreEvent": "@config.loadMoreEvent",
808
975
  "look": "@config.look",
809
976
  "maxInlineActions": "@config.maxInlineActions",
@@ -857,6 +1024,17 @@
857
1024
  "type": "Map<string,string>"
858
1025
  }
859
1026
  ],
1027
+ "DataGridEmptyAction": [
1028
+ {
1029
+ "name": "label",
1030
+ "required": true,
1031
+ "type": "string"
1032
+ },
1033
+ {
1034
+ "name": "event",
1035
+ "type": "event"
1036
+ }
1037
+ ],
860
1038
  "DataGridError": [
861
1039
  {
862
1040
  "name": "message",
@@ -924,6 +1102,14 @@
924
1102
  {
925
1103
  "name": "variant",
926
1104
  "type": "string"
1105
+ },
1106
+ {
1107
+ "name": "when",
1108
+ "type": "SExpr"
1109
+ },
1110
+ {
1111
+ "name": "roles",
1112
+ "type": "[string]"
927
1113
  }
928
1114
  ],
929
1115
  "DataGridRelationsDataValueItem": [
@@ -247,12 +247,48 @@
247
247
  "tier": "presentation",
248
248
  "type": "string"
249
249
  },
250
+ "emptyAction": {
251
+ "description": "Create-the-first-item action.",
252
+ "label": "Empty Action",
253
+ "properties": {
254
+ "event": {
255
+ "name": "event",
256
+ "required": false,
257
+ "type": "event"
258
+ },
259
+ "label": {
260
+ "name": "label",
261
+ "required": true,
262
+ "type": "string"
263
+ }
264
+ },
265
+ "tier": "presentation",
266
+ "type": "DataListEmptyAction"
267
+ },
268
+ "emptyDescription": {
269
+ "description": "What will appear here once rows exist.",
270
+ "label": "Empty Description",
271
+ "tier": "presentation",
272
+ "type": "string"
273
+ },
274
+ "emptyIcon": {
275
+ "description": "Domain icon for the empty state.",
276
+ "label": "Empty Icon",
277
+ "tier": "presentation",
278
+ "type": "icon"
279
+ },
250
280
  "emptyMessage": {
251
281
  "description": "Message shown when there are no rows. Falls back to the generic 'no items' translation. `TableView` already exposes this; an agenda or an inbox wants to say what 'empty' means in its own words.",
252
282
  "label": "Empty Message",
253
283
  "tier": "presentation",
254
284
  "type": "string"
255
285
  },
286
+ "emptyTitle": {
287
+ "description": "Specific title ('No orders yet').",
288
+ "label": "Empty Title",
289
+ "tier": "presentation",
290
+ "type": "string"
291
+ },
256
292
  "error": {
257
293
  "description": "Error state",
258
294
  "label": "Error",
@@ -392,6 +428,14 @@
392
428
  "required": true,
393
429
  "type": "string"
394
430
  },
431
+ "roles": {
432
+ "items": {
433
+ "type": "string"
434
+ },
435
+ "name": "roles",
436
+ "required": false,
437
+ "type": "array"
438
+ },
395
439
  "variant": {
396
440
  "name": "variant",
397
441
  "required": false,
@@ -402,6 +446,11 @@
402
446
  "ghost",
403
447
  "danger"
404
448
  ]
449
+ },
450
+ "when": {
451
+ "name": "when",
452
+ "required": false,
453
+ "type": "object"
405
454
  }
406
455
  },
407
456
  "type": "object"
@@ -646,6 +695,13 @@
646
695
  "compact",
647
696
  "message"
648
697
  ]
698
+ },
699
+ "viewerRole": {
700
+ "default": "",
701
+ "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.",
702
+ "label": "Viewer's role",
703
+ "tier": "policy",
704
+ "type": "string"
649
705
  }
650
706
  },
651
707
  "effectRow": [
@@ -907,7 +963,11 @@
907
963
  "dndRoot": "@config.dndRoot",
908
964
  "dragGroup": "@config.dragGroup",
909
965
  "dropEvent": "@config.dropEvent",
966
+ "emptyAction": "@config.emptyAction",
967
+ "emptyDescription": "@config.emptyDescription",
968
+ "emptyIcon": "@config.emptyIcon",
910
969
  "emptyMessage": "@config.emptyMessage",
970
+ "emptyTitle": "@config.emptyTitle",
911
971
  "entity": "@entity",
912
972
  "error": "@config.error",
913
973
  "fields": "@config.fields",
@@ -916,7 +976,40 @@
916
976
  "hasMore": "@config.hasMore",
917
977
  "infiniteScroll": "@config.infiniteScroll",
918
978
  "isLoading": "@config.isLoading",
919
- "itemActions": "@config.itemActions",
979
+ "itemActions": [
980
+ "array/filter",
981
+ "@config.itemActions",
982
+ [
983
+ "fn",
984
+ "action",
985
+ [
986
+ "or",
987
+ [
988
+ "=",
989
+ [
990
+ "array/len",
991
+ [
992
+ "object/get",
993
+ "@action",
994
+ "roles",
995
+ []
996
+ ]
997
+ ],
998
+ 0.0
999
+ ],
1000
+ [
1001
+ "array/includes",
1002
+ [
1003
+ "object/get",
1004
+ "@action",
1005
+ "roles",
1006
+ []
1007
+ ],
1008
+ "@config.viewerRole"
1009
+ ]
1010
+ ]
1011
+ ]
1012
+ ],
920
1013
  "itemClickEvent": "@config.itemClickEvent",
921
1014
  "loadMoreEvent": "@config.loadMoreEvent",
922
1015
  "longPressEvent": "@config.longPressEvent",
@@ -961,7 +1054,11 @@
961
1054
  "dndRoot": "@config.dndRoot",
962
1055
  "dragGroup": "@config.dragGroup",
963
1056
  "dropEvent": "@config.dropEvent",
1057
+ "emptyAction": "@config.emptyAction",
1058
+ "emptyDescription": "@config.emptyDescription",
1059
+ "emptyIcon": "@config.emptyIcon",
964
1060
  "emptyMessage": "@config.emptyMessage",
1061
+ "emptyTitle": "@config.emptyTitle",
965
1062
  "entity": "@entity",
966
1063
  "error": "@config.error",
967
1064
  "fields": "@config.fields",
@@ -970,7 +1067,40 @@
970
1067
  "hasMore": "@config.hasMore",
971
1068
  "infiniteScroll": "@config.infiniteScroll",
972
1069
  "isLoading": "@config.isLoading",
973
- "itemActions": "@config.itemActions",
1070
+ "itemActions": [
1071
+ "array/filter",
1072
+ "@config.itemActions",
1073
+ [
1074
+ "fn",
1075
+ "action",
1076
+ [
1077
+ "or",
1078
+ [
1079
+ "=",
1080
+ [
1081
+ "array/len",
1082
+ [
1083
+ "object/get",
1084
+ "@action",
1085
+ "roles",
1086
+ []
1087
+ ]
1088
+ ],
1089
+ 0.0
1090
+ ],
1091
+ [
1092
+ "array/includes",
1093
+ [
1094
+ "object/get",
1095
+ "@action",
1096
+ "roles",
1097
+ []
1098
+ ],
1099
+ "@config.viewerRole"
1100
+ ]
1101
+ ]
1102
+ ]
1103
+ ],
974
1104
  "itemClickEvent": "@config.itemClickEvent",
975
1105
  "loadMoreEvent": "@config.loadMoreEvent",
976
1106
  "longPressEvent": "@config.longPressEvent",
@@ -1018,7 +1148,11 @@
1018
1148
  "dndRoot": "@config.dndRoot",
1019
1149
  "dragGroup": "@config.dragGroup",
1020
1150
  "dropEvent": "@config.dropEvent",
1151
+ "emptyAction": "@config.emptyAction",
1152
+ "emptyDescription": "@config.emptyDescription",
1153
+ "emptyIcon": "@config.emptyIcon",
1021
1154
  "emptyMessage": "@config.emptyMessage",
1155
+ "emptyTitle": "@config.emptyTitle",
1022
1156
  "entity": "@payload.data",
1023
1157
  "error": "@config.error",
1024
1158
  "fields": "@config.fields",
@@ -1027,7 +1161,40 @@
1027
1161
  "hasMore": "@config.hasMore",
1028
1162
  "infiniteScroll": "@config.infiniteScroll",
1029
1163
  "isLoading": "@config.isLoading",
1030
- "itemActions": "@config.itemActions",
1164
+ "itemActions": [
1165
+ "array/filter",
1166
+ "@config.itemActions",
1167
+ [
1168
+ "fn",
1169
+ "action",
1170
+ [
1171
+ "or",
1172
+ [
1173
+ "=",
1174
+ [
1175
+ "array/len",
1176
+ [
1177
+ "object/get",
1178
+ "@action",
1179
+ "roles",
1180
+ []
1181
+ ]
1182
+ ],
1183
+ 0.0
1184
+ ],
1185
+ [
1186
+ "array/includes",
1187
+ [
1188
+ "object/get",
1189
+ "@action",
1190
+ "roles",
1191
+ []
1192
+ ],
1193
+ "@config.viewerRole"
1194
+ ]
1195
+ ]
1196
+ ]
1197
+ ],
1031
1198
  "itemClickEvent": "@config.itemClickEvent",
1032
1199
  "loadMoreEvent": "@config.loadMoreEvent",
1033
1200
  "longPressEvent": "@config.longPressEvent",
@@ -1085,6 +1252,17 @@
1085
1252
  "type": "string"
1086
1253
  }
1087
1254
  ],
1255
+ "DataListEmptyAction": [
1256
+ {
1257
+ "name": "label",
1258
+ "required": true,
1259
+ "type": "string"
1260
+ },
1261
+ {
1262
+ "name": "event",
1263
+ "type": "event"
1264
+ }
1265
+ ],
1088
1266
  "DataListError": [
1089
1267
  {
1090
1268
  "name": "message",
@@ -1145,6 +1323,14 @@
1145
1323
  {
1146
1324
  "name": "variant",
1147
1325
  "type": "string"
1326
+ },
1327
+ {
1328
+ "name": "when",
1329
+ "type": "SExpr"
1330
+ },
1331
+ {
1332
+ "name": "roles",
1333
+ "type": "[string]"
1148
1334
  }
1149
1335
  ],
1150
1336
  "DataListRelationsDataValueItem": [