@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.
- package/behaviors/behaviors-registry.json +4402 -1898
- package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +25 -41
- package/behaviors/lolo/infra/atoms/std-audit-capture.lolo +0 -5
- package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +0 -24
- package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +1 -17
- package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +17 -24
- package/behaviors/lolo/infra/atoms/std-data-import.lolo +8 -11
- package/behaviors/lolo/infra/atoms/std-game-clock.lolo +2 -0
- package/behaviors/lolo/infra/atoms/std-knowledge-loop.lolo +0 -5
- package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +3 -1
- package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
- package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +20 -11
- package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
- package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +23 -11
- package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
- package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
- package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
- package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
- package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
- package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
- package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
- package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
- package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
- package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +44 -28
- package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
- package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
- package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +0 -5
- package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
- package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +7 -3
- package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
- package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
- package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
- package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
- package/behaviors/lolo/ui/core/atoms/std-list.lolo +46 -32
- package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
- package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +16 -12
- package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +10 -1
- package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
- package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +78 -16
- package/behaviors/lolo/ui/core/atoms/std-selection.lolo +15 -10
- package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
- package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
- package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +20 -11
- package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
- package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
- package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
- package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
- package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +7 -2
- package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
- package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +41 -3
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +41 -3
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +30 -9
- package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
- package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
- package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
- package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +41 -3
- package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +66 -12
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +9 -3
- package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +9 -3
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +18 -9
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +55 -10
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +55 -10
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +8 -3
- package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +8 -3
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +2 -44
- package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +6 -1
- package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
- package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +8 -2
- package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
- package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
- package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
- package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
- package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/factory-signatures.json +1 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +124 -67
- package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
- package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
- package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
- package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
- package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +126 -12
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +128 -12
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
- package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
- package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
- package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
- package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
- package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
- package/behaviors/registry/ui/core/atoms/std-browse.orb +295 -41
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +0 -8
- package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +109 -2
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
- package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
- package/behaviors/registry/ui/core/atoms/std-list.orb +226 -34
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +204 -11
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +89 -4
- package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +419 -19
- package/behaviors/registry/ui/core/atoms/std-selection.orb +140 -10
- package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
- package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +127 -13
- package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +87 -2
- package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +189 -3
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +189 -3
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +81 -24
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +57 -1
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +189 -3
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +282 -20
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +130 -3
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +130 -3
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +367 -9
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +104 -13
- package/behaviors/registry/ui/core/organisms/ui-form.orb +104 -13
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +121 -3
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +121 -3
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -172
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -1
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +99 -2
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
- package/canonical-operators.json +18 -1
- package/dist/behaviors/exports-reader.js +7662 -3762
- package/dist/behaviors/functions/index.d.ts +309 -104
- package/dist/behaviors/functions/index.js +7651 -3762
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +7663 -3763
- package/dist/behaviors/query.js +7662 -3762
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +35 -27
- package/dist/behaviors-registry.json +4402 -1898
- package/dist/index.d.ts +3 -3
- package/dist/index.js +7680 -3763
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +612 -352
- package/dist/modules/anim.d.ts +1 -1
- package/dist/modules/array.d.ts +1 -1
- package/dist/modules/array.js +15 -0
- package/dist/modules/async.d.ts +1 -1
- package/dist/modules/behavior.d.ts +1 -1
- package/dist/modules/browser.d.ts +1 -1
- package/dist/modules/composition.d.ts +1 -1
- package/dist/modules/contract.d.ts +1 -1
- package/dist/modules/core.d.ts +1 -1
- package/dist/modules/core.js +2 -0
- package/dist/modules/data.d.ts +1 -1
- package/dist/modules/ease.d.ts +1 -1
- package/dist/modules/format.d.ts +1 -1
- package/dist/modules/geo.d.ts +1 -1
- package/dist/modules/graph.d.ts +1 -1
- package/dist/modules/grid.d.ts +1 -1
- package/dist/modules/index.d.ts +1 -1
- package/dist/modules/index.js +17 -0
- package/dist/modules/integration.d.ts +1 -1
- package/dist/modules/json.d.ts +1 -1
- package/dist/modules/llm.d.ts +1 -1
- package/dist/modules/math.d.ts +1 -1
- package/dist/modules/memory.d.ts +1 -1
- package/dist/modules/nn.d.ts +1 -1
- package/dist/modules/noise.d.ts +1 -1
- package/dist/modules/object.d.ts +1 -1
- package/dist/modules/os.d.ts +1 -1
- package/dist/modules/path.d.ts +1 -1
- package/dist/modules/prob.d.ts +1 -1
- package/dist/modules/session.d.ts +1 -1
- package/dist/modules/str.d.ts +1 -1
- package/dist/modules/tensor.d.ts +1 -1
- package/dist/modules/time.d.ts +1 -1
- package/dist/modules/trace.d.ts +1 -1
- package/dist/modules/train.d.ts +1 -1
- package/dist/modules/validate.d.ts +1 -1
- package/dist/modules/vector.d.ts +1 -1
- package/dist/modules/workspace.d.ts +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/dist/registry.d.ts +2 -2
- package/dist/registry.js +17 -0
- package/dist/{types-Ggla7OK7.d.ts → types-DLx38UFZ.d.ts} +23 -3
- package/package.json +2 -2
|
@@ -252,6 +252,52 @@
|
|
|
252
252
|
"tier": "presentation",
|
|
253
253
|
"type": "[FilterSpec]"
|
|
254
254
|
},
|
|
255
|
+
"itemActions": {
|
|
256
|
+
"default": [
|
|
257
|
+
{
|
|
258
|
+
"event": "SELECT",
|
|
259
|
+
"icon": "check",
|
|
260
|
+
"label": "Select"
|
|
261
|
+
}
|
|
262
|
+
],
|
|
263
|
+
"description": "Actions offered on each row; give an item `roles` to show it only to those viewer roles.",
|
|
264
|
+
"items": {
|
|
265
|
+
"properties": {
|
|
266
|
+
"event": {
|
|
267
|
+
"name": "event",
|
|
268
|
+
"required": false,
|
|
269
|
+
"type": "event"
|
|
270
|
+
},
|
|
271
|
+
"icon": {
|
|
272
|
+
"name": "icon",
|
|
273
|
+
"required": false,
|
|
274
|
+
"type": "string"
|
|
275
|
+
},
|
|
276
|
+
"label": {
|
|
277
|
+
"name": "label",
|
|
278
|
+
"required": true,
|
|
279
|
+
"type": "string"
|
|
280
|
+
},
|
|
281
|
+
"roles": {
|
|
282
|
+
"items": {
|
|
283
|
+
"type": "string"
|
|
284
|
+
},
|
|
285
|
+
"name": "roles",
|
|
286
|
+
"required": false,
|
|
287
|
+
"type": "array"
|
|
288
|
+
},
|
|
289
|
+
"when": {
|
|
290
|
+
"name": "when",
|
|
291
|
+
"required": false,
|
|
292
|
+
"type": "object"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"type": "object"
|
|
296
|
+
},
|
|
297
|
+
"label": "Row actions",
|
|
298
|
+
"tier": "presentation",
|
|
299
|
+
"type": "[ItemAction]"
|
|
300
|
+
},
|
|
255
301
|
"pageSize": {
|
|
256
302
|
"default": 20.0,
|
|
257
303
|
"description": "Records fetched from the server per REFETCH_PAGE request. The initial load and search/filter refetches remain unpaginated (load every candidate) unless a consumer wires REFETCH_PAGE, so the default pick-list surface is unchanged. Safe to page: this atom's selection is a single transient id (never an accumulated array), so no already-picked item can be stranded on another page.",
|
|
@@ -289,6 +335,13 @@
|
|
|
289
335
|
"borderless",
|
|
290
336
|
"card-rows"
|
|
291
337
|
]
|
|
338
|
+
},
|
|
339
|
+
"viewerRole": {
|
|
340
|
+
"default": "",
|
|
341
|
+
"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.",
|
|
342
|
+
"label": "Viewer's role",
|
|
343
|
+
"tier": "policy",
|
|
344
|
+
"type": "string"
|
|
292
345
|
}
|
|
293
346
|
},
|
|
294
347
|
"effectRow": [
|
|
@@ -692,11 +745,38 @@
|
|
|
692
745
|
"entity": "@payload.data",
|
|
693
746
|
"fields": [],
|
|
694
747
|
"itemActions": [
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
"
|
|
699
|
-
|
|
748
|
+
"array/filter",
|
|
749
|
+
"@config.itemActions",
|
|
750
|
+
[
|
|
751
|
+
"fn",
|
|
752
|
+
"action",
|
|
753
|
+
[
|
|
754
|
+
"or",
|
|
755
|
+
[
|
|
756
|
+
"=",
|
|
757
|
+
[
|
|
758
|
+
"array/len",
|
|
759
|
+
[
|
|
760
|
+
"object/get",
|
|
761
|
+
"@action",
|
|
762
|
+
"roles",
|
|
763
|
+
[]
|
|
764
|
+
]
|
|
765
|
+
],
|
|
766
|
+
0.0
|
|
767
|
+
],
|
|
768
|
+
[
|
|
769
|
+
"array/includes",
|
|
770
|
+
[
|
|
771
|
+
"object/get",
|
|
772
|
+
"@action",
|
|
773
|
+
"roles",
|
|
774
|
+
[]
|
|
775
|
+
],
|
|
776
|
+
"@config.viewerRole"
|
|
777
|
+
]
|
|
778
|
+
]
|
|
779
|
+
]
|
|
700
780
|
],
|
|
701
781
|
"look": "@config.tableLook",
|
|
702
782
|
"pageSize": "@config.displayPageSize",
|
|
@@ -987,11 +1067,38 @@
|
|
|
987
1067
|
"entity": "@payload.data",
|
|
988
1068
|
"fields": [],
|
|
989
1069
|
"itemActions": [
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
"
|
|
994
|
-
|
|
1070
|
+
"array/filter",
|
|
1071
|
+
"@config.itemActions",
|
|
1072
|
+
[
|
|
1073
|
+
"fn",
|
|
1074
|
+
"action",
|
|
1075
|
+
[
|
|
1076
|
+
"or",
|
|
1077
|
+
[
|
|
1078
|
+
"=",
|
|
1079
|
+
[
|
|
1080
|
+
"array/len",
|
|
1081
|
+
[
|
|
1082
|
+
"object/get",
|
|
1083
|
+
"@action",
|
|
1084
|
+
"roles",
|
|
1085
|
+
[]
|
|
1086
|
+
]
|
|
1087
|
+
],
|
|
1088
|
+
0.0
|
|
1089
|
+
],
|
|
1090
|
+
[
|
|
1091
|
+
"array/includes",
|
|
1092
|
+
[
|
|
1093
|
+
"object/get",
|
|
1094
|
+
"@action",
|
|
1095
|
+
"roles",
|
|
1096
|
+
[]
|
|
1097
|
+
],
|
|
1098
|
+
"@config.viewerRole"
|
|
1099
|
+
]
|
|
1100
|
+
]
|
|
1101
|
+
]
|
|
995
1102
|
],
|
|
996
1103
|
"look": "@config.tableLook",
|
|
997
1104
|
"pageSize": "@config.displayPageSize",
|
|
@@ -1317,6 +1424,29 @@
|
|
|
1317
1424
|
"name": "options",
|
|
1318
1425
|
"type": "[string]"
|
|
1319
1426
|
}
|
|
1427
|
+
],
|
|
1428
|
+
"ItemAction": [
|
|
1429
|
+
{
|
|
1430
|
+
"name": "label",
|
|
1431
|
+
"required": true,
|
|
1432
|
+
"type": "string"
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"name": "event",
|
|
1436
|
+
"type": "event"
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
"name": "icon",
|
|
1440
|
+
"type": "string"
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"name": "roles",
|
|
1444
|
+
"type": "[string]"
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"name": "when",
|
|
1448
|
+
"type": "SExpr"
|
|
1449
|
+
}
|
|
1320
1450
|
]
|
|
1321
1451
|
}
|
|
1322
1452
|
}
|
|
@@ -199,6 +199,24 @@
|
|
|
199
199
|
"bodyContent": {
|
|
200
200
|
"default": {
|
|
201
201
|
"children": [
|
|
202
|
+
[
|
|
203
|
+
"if",
|
|
204
|
+
[
|
|
205
|
+
"!=",
|
|
206
|
+
"@config.title",
|
|
207
|
+
""
|
|
208
|
+
],
|
|
209
|
+
{
|
|
210
|
+
"content": "@config.title",
|
|
211
|
+
"type": "typography",
|
|
212
|
+
"variant": "h3"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"children": [],
|
|
216
|
+
"gap": "none",
|
|
217
|
+
"type": "stack"
|
|
218
|
+
}
|
|
219
|
+
],
|
|
202
220
|
{
|
|
203
221
|
"entity": "@entity.cards",
|
|
204
222
|
"fields": [],
|
|
@@ -238,6 +256,24 @@
|
|
|
238
256
|
"heroMetricBodyContent": {
|
|
239
257
|
"default": {
|
|
240
258
|
"children": [
|
|
259
|
+
[
|
|
260
|
+
"if",
|
|
261
|
+
[
|
|
262
|
+
"!=",
|
|
263
|
+
"@config.title",
|
|
264
|
+
""
|
|
265
|
+
],
|
|
266
|
+
{
|
|
267
|
+
"content": "@config.title",
|
|
268
|
+
"type": "typography",
|
|
269
|
+
"variant": "h3"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"children": [],
|
|
273
|
+
"gap": "none",
|
|
274
|
+
"type": "stack"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
241
277
|
{
|
|
242
278
|
"entity": "@entity.cards",
|
|
243
279
|
"fields": [],
|
|
@@ -352,6 +388,24 @@
|
|
|
352
388
|
"kpiTilesBodyContent": {
|
|
353
389
|
"default": {
|
|
354
390
|
"children": [
|
|
391
|
+
[
|
|
392
|
+
"if",
|
|
393
|
+
[
|
|
394
|
+
"!=",
|
|
395
|
+
"@config.title",
|
|
396
|
+
""
|
|
397
|
+
],
|
|
398
|
+
{
|
|
399
|
+
"content": "@config.title",
|
|
400
|
+
"type": "typography",
|
|
401
|
+
"variant": "h3"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"children": [],
|
|
405
|
+
"gap": "none",
|
|
406
|
+
"type": "stack"
|
|
407
|
+
}
|
|
408
|
+
],
|
|
355
409
|
{
|
|
356
410
|
"className": "w-full",
|
|
357
411
|
"entity": "@entity.cards",
|
|
@@ -630,6 +684,24 @@
|
|
|
630
684
|
"sparklineRowBodyContent": {
|
|
631
685
|
"default": {
|
|
632
686
|
"children": [
|
|
687
|
+
[
|
|
688
|
+
"if",
|
|
689
|
+
[
|
|
690
|
+
"!=",
|
|
691
|
+
"@config.title",
|
|
692
|
+
""
|
|
693
|
+
],
|
|
694
|
+
{
|
|
695
|
+
"content": "@config.title",
|
|
696
|
+
"type": "typography",
|
|
697
|
+
"variant": "h3"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"children": [],
|
|
701
|
+
"gap": "none",
|
|
702
|
+
"type": "stack"
|
|
703
|
+
}
|
|
704
|
+
],
|
|
633
705
|
{
|
|
634
706
|
"className": "w-full",
|
|
635
707
|
"entity": "@entity.cards",
|
|
@@ -766,7 +838,7 @@
|
|
|
766
838
|
"type": "string"
|
|
767
839
|
},
|
|
768
840
|
"title": {
|
|
769
|
-
"default": "
|
|
841
|
+
"default": "",
|
|
770
842
|
"description": "Heading shown above the stat-card grid",
|
|
771
843
|
"label": "Section title",
|
|
772
844
|
"synonyms": "the section header text. user phrases: 'rename section to X' / 'title the KPIs X' / 'change section title to X' -> X",
|
|
@@ -895,6 +895,7 @@
|
|
|
895
895
|
"entity": "@payload.data",
|
|
896
896
|
"fields": [],
|
|
897
897
|
"gap": "sm",
|
|
898
|
+
"look": "@config.tableLook",
|
|
898
899
|
"minCardWidth": 180.0,
|
|
899
900
|
"renderItem": [
|
|
900
901
|
"fn",
|
|
@@ -1225,6 +1226,7 @@
|
|
|
1225
1226
|
"entity": "@payload.data",
|
|
1226
1227
|
"fields": [],
|
|
1227
1228
|
"gap": "sm",
|
|
1229
|
+
"look": "@config.tableLook",
|
|
1228
1230
|
"minCardWidth": 180.0,
|
|
1229
1231
|
"renderItem": [
|
|
1230
1232
|
"fn",
|
|
@@ -1722,6 +1724,7 @@
|
|
|
1722
1724
|
"entity": "@payload.data",
|
|
1723
1725
|
"fields": [],
|
|
1724
1726
|
"gap": "sm",
|
|
1727
|
+
"look": "@config.tableLook",
|
|
1725
1728
|
"minCardWidth": 180.0,
|
|
1726
1729
|
"renderItem": [
|
|
1727
1730
|
"fn",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"description": "std-thread — forum-style nested replies with collapse
|
|
2
|
+
"description": "std-thread — forum-style nested replies with collapse. Owns ThreadPost (persistent). INIT fetches, scoped by @config.threadRootId when set (blank = every root, the default). REPLY persists a child post under @payload.parentId, stamped with the real @user identity. A consumer that mounts this as page comments forwards its own document-opened signal to SET_THREAD_ROOT { rootId }, which stamps @entity.replyRootId (scratch — the persisted threadRootId column is written only by the reply persist create) and refetches filtered by the payload; a plain INIT re-entry now also falls back through @entity.replyRootId before @config.threadRootId, so it stays scoped to the last SET_THREAD_ROOT instead of re-widening — only the after-create/after-select refetches still scope directly off their own event payload. Layer 3 variants override `bodyContent` to deliver chat-bubble, email-threaded, or linear-comments UX while inheriting the same trait, state machine, emits, and listens. A non-empty sectionTitle switches the default bodyContent into titled-comments mode: header + post list + a standalone composer button (without it an empty thread has no REPLY emitter at all — the affordance only existed per-row).",
|
|
3
3
|
"ledger": {
|
|
4
4
|
"entries": {
|
|
5
5
|
"ent_01KXG04HSZB16HRNNZWKASR1J1": {
|
|
@@ -132,6 +132,22 @@
|
|
|
132
132
|
"kind": "trait",
|
|
133
133
|
"owner": "workspace",
|
|
134
134
|
"renames": []
|
|
135
|
+
},
|
|
136
|
+
"trt_01M3SFBP3PBCHDCWJGXP1X40MH": {
|
|
137
|
+
"bakedName": "ThreadReplyGate",
|
|
138
|
+
"curName": "ThreadReplyGate",
|
|
139
|
+
"id": "trt_01M3SFBP3PBCHDCWJGXP1X40MH",
|
|
140
|
+
"kind": "trait",
|
|
141
|
+
"owner": "workspace",
|
|
142
|
+
"renames": []
|
|
143
|
+
},
|
|
144
|
+
"trt_01M3SFBP3PXZ9F1MSVF2X0R18C": {
|
|
145
|
+
"bakedName": "ThreadReplyButton",
|
|
146
|
+
"curName": "ThreadReplyButton",
|
|
147
|
+
"id": "trt_01M3SFBP3PXZ9F1MSVF2X0R18C",
|
|
148
|
+
"kind": "trait",
|
|
149
|
+
"owner": "workspace",
|
|
150
|
+
"renames": []
|
|
135
151
|
}
|
|
136
152
|
},
|
|
137
153
|
"schemaVersion": 1
|
|
@@ -308,11 +324,38 @@
|
|
|
308
324
|
],
|
|
309
325
|
"gap": "sm",
|
|
310
326
|
"itemActions": [
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
"
|
|
315
|
-
|
|
327
|
+
"array/filter",
|
|
328
|
+
"@config.itemActions",
|
|
329
|
+
[
|
|
330
|
+
"fn",
|
|
331
|
+
"action",
|
|
332
|
+
[
|
|
333
|
+
"or",
|
|
334
|
+
[
|
|
335
|
+
"=",
|
|
336
|
+
[
|
|
337
|
+
"array/len",
|
|
338
|
+
[
|
|
339
|
+
"object/get",
|
|
340
|
+
"@action",
|
|
341
|
+
"roles",
|
|
342
|
+
[]
|
|
343
|
+
]
|
|
344
|
+
],
|
|
345
|
+
0.0
|
|
346
|
+
],
|
|
347
|
+
[
|
|
348
|
+
"array/includes",
|
|
349
|
+
[
|
|
350
|
+
"object/get",
|
|
351
|
+
"@action",
|
|
352
|
+
"roles",
|
|
353
|
+
[]
|
|
354
|
+
],
|
|
355
|
+
"@config.viewerRole"
|
|
356
|
+
]
|
|
357
|
+
]
|
|
358
|
+
]
|
|
316
359
|
],
|
|
317
360
|
"look": "@config.tableLook",
|
|
318
361
|
"type": "data-list",
|
|
@@ -325,13 +368,7 @@
|
|
|
325
368
|
"@config.sectionTitle",
|
|
326
369
|
""
|
|
327
370
|
],
|
|
328
|
-
|
|
329
|
-
"action": "REPLY",
|
|
330
|
-
"icon": "message-square",
|
|
331
|
-
"label": "@config.composerLabel",
|
|
332
|
-
"type": "button",
|
|
333
|
-
"variant": "secondary"
|
|
334
|
-
},
|
|
371
|
+
"@trait.ThreadReplyGate",
|
|
335
372
|
{
|
|
336
373
|
"children": [],
|
|
337
374
|
"gap": "none",
|
|
@@ -356,110 +393,61 @@
|
|
|
356
393
|
"tier": "presentation",
|
|
357
394
|
"type": "string"
|
|
358
395
|
},
|
|
359
|
-
"
|
|
360
|
-
"default":
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
"
|
|
368
|
-
"
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
"default": "@item.authorName",
|
|
403
|
-
"description": "List-pane binding for the message author.",
|
|
404
|
-
"label": "emailAuthorBinding",
|
|
405
|
-
"tier": "presentation",
|
|
406
|
-
"type": "string"
|
|
407
|
-
},
|
|
408
|
-
"emailPreviewBinding": {
|
|
409
|
-
"default": "@item.preview",
|
|
410
|
-
"description": "List-pane binding for the message preview text.",
|
|
411
|
-
"label": "emailPreviewBinding",
|
|
412
|
-
"tier": "presentation",
|
|
413
|
-
"type": "string"
|
|
414
|
-
},
|
|
415
|
-
"emailSubjectBinding": {
|
|
416
|
-
"default": "@item.subject",
|
|
417
|
-
"description": "List-pane binding for the message subject.",
|
|
418
|
-
"label": "emailSubjectBinding",
|
|
419
|
-
"tier": "presentation",
|
|
420
|
-
"type": "string"
|
|
421
|
-
},
|
|
422
|
-
"flat": {
|
|
423
|
-
"default": false,
|
|
424
|
-
"description": "Render replies as a linear list instead of nested tree",
|
|
425
|
-
"label": "Flat thread",
|
|
426
|
-
"tier": "presentation",
|
|
427
|
-
"type": "boolean"
|
|
428
|
-
},
|
|
429
|
-
"recipientName": {
|
|
430
|
-
"default": "Conversation",
|
|
431
|
-
"description": "Header/recipient label for chat-style threads.",
|
|
432
|
-
"label": "recipientName",
|
|
433
|
-
"tier": "presentation",
|
|
434
|
-
"type": "string"
|
|
435
|
-
},
|
|
436
|
-
"replyAuthorBinding": {
|
|
437
|
-
"default": "@reply.authorName",
|
|
438
|
-
"description": "Reply binding for the reply author.",
|
|
439
|
-
"label": "replyAuthorBinding",
|
|
440
|
-
"tier": "presentation",
|
|
441
|
-
"type": "string"
|
|
442
|
-
},
|
|
443
|
-
"replyContentBinding": {
|
|
444
|
-
"default": "@reply.content",
|
|
445
|
-
"description": "Reply binding for the reply body.",
|
|
446
|
-
"label": "replyContentBinding",
|
|
447
|
-
"tier": "presentation",
|
|
448
|
-
"type": "string"
|
|
449
|
-
},
|
|
450
|
-
"replyDateBinding": {
|
|
451
|
-
"default": "@reply.createdAt",
|
|
452
|
-
"description": "Reply binding for the reply timestamp.",
|
|
453
|
-
"label": "replyDateBinding",
|
|
396
|
+
"itemActions": {
|
|
397
|
+
"default": [
|
|
398
|
+
{
|
|
399
|
+
"event": "REPLY",
|
|
400
|
+
"icon": "message-square",
|
|
401
|
+
"label": "Reply"
|
|
402
|
+
}
|
|
403
|
+
],
|
|
404
|
+
"description": "Actions offered on each row; give an item `roles` to show it only to those viewer roles.",
|
|
405
|
+
"items": {
|
|
406
|
+
"properties": {
|
|
407
|
+
"event": {
|
|
408
|
+
"name": "event",
|
|
409
|
+
"required": false,
|
|
410
|
+
"type": "event"
|
|
411
|
+
},
|
|
412
|
+
"icon": {
|
|
413
|
+
"name": "icon",
|
|
414
|
+
"required": false,
|
|
415
|
+
"type": "string"
|
|
416
|
+
},
|
|
417
|
+
"label": {
|
|
418
|
+
"name": "label",
|
|
419
|
+
"required": true,
|
|
420
|
+
"type": "string"
|
|
421
|
+
},
|
|
422
|
+
"roles": {
|
|
423
|
+
"items": {
|
|
424
|
+
"type": "string"
|
|
425
|
+
},
|
|
426
|
+
"name": "roles",
|
|
427
|
+
"required": false,
|
|
428
|
+
"type": "array"
|
|
429
|
+
},
|
|
430
|
+
"when": {
|
|
431
|
+
"name": "when",
|
|
432
|
+
"required": false,
|
|
433
|
+
"type": "object"
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
"type": "object"
|
|
437
|
+
},
|
|
438
|
+
"label": "Row actions",
|
|
454
439
|
"tier": "presentation",
|
|
455
|
-
"type": "
|
|
440
|
+
"type": "[ItemAction]"
|
|
456
441
|
},
|
|
457
|
-
"
|
|
458
|
-
"default":
|
|
459
|
-
"description": "
|
|
460
|
-
"
|
|
461
|
-
|
|
462
|
-
|
|
442
|
+
"replyRoles": {
|
|
443
|
+
"default": [],
|
|
444
|
+
"description": "Roles (matched against viewerRole) that see the thread's Reply button. Empty = everyone.",
|
|
445
|
+
"items": {
|
|
446
|
+
"type": "string"
|
|
447
|
+
},
|
|
448
|
+
"label": "Roles that can reply",
|
|
449
|
+
"tier": "policy",
|
|
450
|
+
"type": "[string]"
|
|
463
451
|
},
|
|
464
452
|
"sectionTitle": {
|
|
465
453
|
"default": "",
|
|
@@ -490,6 +478,13 @@
|
|
|
490
478
|
"synonyms": "rootId, topLevelId, scope, threadScope",
|
|
491
479
|
"tier": "domain",
|
|
492
480
|
"type": "string"
|
|
481
|
+
},
|
|
482
|
+
"viewerRole": {
|
|
483
|
+
"default": "",
|
|
484
|
+
"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.",
|
|
485
|
+
"label": "Viewer's role",
|
|
486
|
+
"tier": "policy",
|
|
487
|
+
"type": "string"
|
|
493
488
|
}
|
|
494
489
|
},
|
|
495
490
|
"effectRow": [
|
|
@@ -1990,7 +1985,87 @@
|
|
|
1990
1985
|
"to": "loading"
|
|
1991
1986
|
}
|
|
1992
1987
|
]
|
|
1988
|
+
},
|
|
1989
|
+
"traitEmbedIds": {
|
|
1990
|
+
"ThreadReplyGate": "trt_01M3SFBP3PBCHDCWJGXP1X40MH"
|
|
1991
|
+
}
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
"config": {
|
|
1995
|
+
"action": {
|
|
1996
|
+
"default": "REPLY",
|
|
1997
|
+
"type": "unknown"
|
|
1998
|
+
},
|
|
1999
|
+
"icon": {
|
|
2000
|
+
"default": "message-square",
|
|
2001
|
+
"type": "unknown"
|
|
2002
|
+
},
|
|
2003
|
+
"label": {
|
|
2004
|
+
"default": "@config.composerLabel",
|
|
2005
|
+
"type": "unknown"
|
|
2006
|
+
},
|
|
2007
|
+
"variant": {
|
|
2008
|
+
"default": "secondary",
|
|
2009
|
+
"type": "unknown"
|
|
2010
|
+
}
|
|
2011
|
+
},
|
|
2012
|
+
"id": "trt_01M3SFBP3PXZ9F1MSVF2X0R18C",
|
|
2013
|
+
"name": "ThreadReplyButton",
|
|
2014
|
+
"ref": "Button.traits.ButtonRender"
|
|
2015
|
+
},
|
|
2016
|
+
{
|
|
2017
|
+
"config": {
|
|
2018
|
+
"content": {
|
|
2019
|
+
"default": "@trait.ThreadReplyButton",
|
|
2020
|
+
"type": "unknown"
|
|
2021
|
+
},
|
|
2022
|
+
"roles": {
|
|
2023
|
+
"default": "@config.replyRoles",
|
|
2024
|
+
"type": "unknown"
|
|
2025
|
+
},
|
|
2026
|
+
"viewerRole": {
|
|
2027
|
+
"default": "@config.viewerRole",
|
|
2028
|
+
"type": "unknown"
|
|
2029
|
+
}
|
|
2030
|
+
},
|
|
2031
|
+
"id": "trt_01M3SFBP3PBCHDCWJGXP1X40MH",
|
|
2032
|
+
"name": "ThreadReplyGate",
|
|
2033
|
+
"ref": "RoleGate.traits.RoleGate"
|
|
2034
|
+
}
|
|
2035
|
+
],
|
|
2036
|
+
"types": {
|
|
2037
|
+
"ItemAction": [
|
|
2038
|
+
{
|
|
2039
|
+
"name": "label",
|
|
2040
|
+
"required": true,
|
|
2041
|
+
"type": "string"
|
|
2042
|
+
},
|
|
2043
|
+
{
|
|
2044
|
+
"name": "event",
|
|
2045
|
+
"type": "event"
|
|
2046
|
+
},
|
|
2047
|
+
{
|
|
2048
|
+
"name": "icon",
|
|
2049
|
+
"type": "string"
|
|
2050
|
+
},
|
|
2051
|
+
{
|
|
2052
|
+
"name": "roles",
|
|
2053
|
+
"type": "[string]"
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
"name": "when",
|
|
2057
|
+
"type": "SExpr"
|
|
1993
2058
|
}
|
|
2059
|
+
]
|
|
2060
|
+
},
|
|
2061
|
+
"uses": [
|
|
2062
|
+
{
|
|
2063
|
+
"as": "RoleGate",
|
|
2064
|
+
"from": "std/behaviors/std-role-gate"
|
|
2065
|
+
},
|
|
2066
|
+
{
|
|
2067
|
+
"as": "Button",
|
|
2068
|
+
"from": "std/behaviors/ui-button"
|
|
1994
2069
|
}
|
|
1995
2070
|
]
|
|
1996
2071
|
}
|