@almadar/std 16.235.0 → 16.237.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/behaviors-registry.json +5621 -1993
- package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +32 -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-migration-job.lolo +2 -2
- package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
- package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +25 -11
- package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
- package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +28 -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 +76 -33
- 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 +32 -5
- package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
- package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +15 -4
- package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
- package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
- 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-image-upload-multi.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
- package/behaviors/lolo/ui/core/atoms/std-list.lolo +53 -32
- package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
- package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
- package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +29 -13
- package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +14 -1
- package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
- package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +84 -16
- package/behaviors/lolo/ui/core/atoms/std-selection.lolo +22 -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 +27 -12
- 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/atoms/ui-time-slot-cell.lolo +36 -0
- package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
- package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +1 -1
- 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 +11 -6
- 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 +60 -5
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +47 -3
- package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +31 -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-emoji-picker.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +1 -1
- 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-gantt.lolo +9 -1
- package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
- package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -2
- package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +7 -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 +57 -5
- package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +87 -16
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +37 -10
- package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +46 -8
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -10
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +57 -10
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +57 -10
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +22 -3
- package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
- package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +38 -5
- package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +3 -45
- package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +7 -2
- package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
- package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
- package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
- package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +2 -2
- package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +9 -3
- package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
- 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 +194 -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-migration-job.orb +26 -1
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +135 -12
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +137 -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 +499 -49
- 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 +42 -6
- package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +121 -3
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
- package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
- 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-image-upload-multi.orb +4 -0
- package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
- package/behaviors/registry/ui/core/atoms/std-list.orb +237 -34
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +275 -14
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +93 -4
- package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +473 -19
- package/behaviors/registry/ui/core/atoms/std-selection.orb +179 -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 +138 -14
- 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/atoms/ui-time-slot-cell.orb +132 -0
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +7 -0
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +7 -0
- package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
- 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 +89 -6
- 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 +297 -5
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +261 -3
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +93 -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-emoji-picker.orb +0 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +0 -1
- 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-gantt.orb +28 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +9 -2
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +74 -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 +337 -5
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +415 -33
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +340 -29
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +296 -20
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +489 -9
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +132 -13
- package/behaviors/registry/ui/core/organisms/ui-form.orb +132 -13
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +141 -3
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +159 -8
- package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -173
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -2
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -2
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +100 -3
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
- 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 +8942 -3946
- package/dist/behaviors/functions/index.d.ts +419 -132
- package/dist/behaviors/functions/index.js +8931 -3946
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +8943 -3947
- package/dist/behaviors/query.js +8942 -3946
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +49 -41
- package/dist/behaviors-registry.json +5621 -1993
- package/dist/index.d.ts +3 -3
- package/dist/index.js +8960 -3947
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +774 -374
- 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 +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
app std-version-history "1.0.0"
|
|
2
2
|
"std-version-history — wiki/CMS revision history with diff + rollback. Browses revisions; opens detail in `viewing_single`; compares the opened revision with the newest in `comparing`; Rollback emits RevisionRolledBack { row } for the consumer to restore onto its source document. `RevisionManage` is a rebindable single-entity trait: a consumer rebinds it to its own entity via `linkedEntity`. `config.scopeField` names the Revision field holding the parent document id; a page-mounted `{id}` route param scopes INIT's own fetch, and a consumer forwards SHOW_HISTORY { key } (via a `listens` override) to rescope the feed to one document — empty scopeField (default) or no id keeps today's unfiltered global feed. Rollback and retry refetches stay scoped."
|
|
3
|
+
type ItemAction = { label : string!, event : event, variant : string, icon : string, roles : [string], when : SExpr }
|
|
3
4
|
orbital RevisionOrbital {
|
|
4
5
|
type RevisionLoaded = Event { data : [Revision] } "Fired when the revision collection finishes loading"
|
|
5
6
|
|
|
@@ -72,24 +73,16 @@ orbital RevisionOrbital {
|
|
|
72
73
|
}, {
|
|
73
74
|
label: Summary
|
|
74
75
|
name: summary
|
|
75
|
-
variant:
|
|
76
|
+
variant: h4
|
|
76
77
|
}, {
|
|
77
78
|
label: Saved
|
|
79
|
+
format: date
|
|
78
80
|
name: createdAt
|
|
79
81
|
variant: caption
|
|
80
82
|
}]
|
|
81
83
|
gap: sm
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
icon: arrow-right
|
|
85
|
-
label: Open
|
|
86
|
-
variant: ghost
|
|
87
|
-
}, {
|
|
88
|
-
event: ROLLBACK
|
|
89
|
-
icon: rotate-ccw
|
|
90
|
-
label: Rollback
|
|
91
|
-
variant: danger
|
|
92
|
-
}]
|
|
84
|
+
itemClickEvent: @config.itemClickEvent
|
|
85
|
+
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
93
86
|
look: @config.tableLook
|
|
94
87
|
type: data-grid
|
|
95
88
|
}]
|
|
@@ -600,6 +593,28 @@ orbital RevisionOrbital {
|
|
|
600
593
|
@label "Scope field"
|
|
601
594
|
@description "Revision entity field holding the parent document's id. When set, a page-mounted {id} route param scopes INIT's fetch, and a SHOW_HISTORY { key } event rescopes the feed, to rows whose scopeField equals the id/key; rollback and retry refetches stay scoped too. Empty (default) or no id = unfiltered global feed, unchanged from prior behavior."
|
|
602
595
|
@tier "domain"
|
|
596
|
+
itemClickEvent : event = OPEN_REVISION
|
|
597
|
+
@label "Row click"
|
|
598
|
+
@description "Event emitted when a row is clicked; opens the revision. Empty disables the row click."
|
|
599
|
+
@tier "presentation"
|
|
600
|
+
itemActions : [ItemAction] = [{
|
|
601
|
+
event: OPEN_REVISION
|
|
602
|
+
icon: arrow-right
|
|
603
|
+
label: Open
|
|
604
|
+
variant: ghost
|
|
605
|
+
}, {
|
|
606
|
+
event: ROLLBACK
|
|
607
|
+
icon: rotate-ccw
|
|
608
|
+
label: Rollback
|
|
609
|
+
variant: danger
|
|
610
|
+
}]
|
|
611
|
+
@label "Row actions"
|
|
612
|
+
@description "Actions offered on each row; give an item `roles` to show it only to those viewer roles."
|
|
613
|
+
@tier "presentation"
|
|
614
|
+
viewerRole : string = ""
|
|
615
|
+
@label "Viewer's role"
|
|
616
|
+
@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."
|
|
617
|
+
@tier "policy"
|
|
603
618
|
}
|
|
604
619
|
}
|
|
605
620
|
|
|
@@ -109,7 +109,7 @@ orbital WizardOrbital {
|
|
|
109
109
|
}, { type: divider }, {
|
|
110
110
|
cancelEvent: CANCEL
|
|
111
111
|
entity: @entity
|
|
112
|
-
fields: @entity.currentFields
|
|
112
|
+
fields: (array/map @entity.currentFields (fn f { name: @f }))
|
|
113
113
|
mode: edit
|
|
114
114
|
showCancel: false
|
|
115
115
|
showSubmit: false
|
|
@@ -232,7 +232,7 @@ orbital WizardOrbital {
|
|
|
232
232
|
}, { type: divider }, {
|
|
233
233
|
cancelEvent: CANCEL
|
|
234
234
|
entity: @entity
|
|
235
|
-
fields: @entity.currentFields
|
|
235
|
+
fields: (array/map @entity.currentFields (fn f { name: @f }))
|
|
236
236
|
mode: edit
|
|
237
237
|
showCancel: false
|
|
238
238
|
showSubmit: false
|
|
@@ -368,7 +368,7 @@ orbital WizardOrbital {
|
|
|
368
368
|
}, { type: divider }, {
|
|
369
369
|
cancelEvent: CANCEL
|
|
370
370
|
entity: @entity
|
|
371
|
-
fields: @entity.currentFields
|
|
371
|
+
fields: (array/map @entity.currentFields (fn f { name: @f }))
|
|
372
372
|
mode: edit
|
|
373
373
|
showCancel: false
|
|
374
374
|
showSubmit: false
|
|
@@ -12,6 +12,9 @@ orbital PresenceOrbital {
|
|
|
12
12
|
state idle {
|
|
13
13
|
INIT -> idle
|
|
14
14
|
(render-ui main {
|
|
15
|
+
animation: @config.animation
|
|
16
|
+
animate: @config.animate
|
|
17
|
+
onExited: @config.onExited
|
|
15
18
|
show: @config.show
|
|
16
19
|
className: @config.className
|
|
17
20
|
children: @config.children
|
|
@@ -19,7 +22,25 @@ orbital PresenceOrbital {
|
|
|
19
22
|
})
|
|
20
23
|
}
|
|
21
24
|
|
|
25
|
+
emits {
|
|
26
|
+
@config.onExited -> external { }
|
|
27
|
+
@description "Fired after the exit animation completes (before unmount)."
|
|
28
|
+
@tier "essential"
|
|
29
|
+
}
|
|
30
|
+
|
|
22
31
|
config {
|
|
32
|
+
animation : "modal" | "overlay" | "slide-up" | "drawer" | "popover" | "toast" | "fade" | "page" = modal
|
|
33
|
+
@label "Animation"
|
|
34
|
+
@description "Which motion preset to use (maps to `animate-<name>-in/out`)."
|
|
35
|
+
@tier "presentation"
|
|
36
|
+
animate : boolean
|
|
37
|
+
@label "Animate"
|
|
38
|
+
@description "Per-instance opt-out. Global opt-out is `--motion-enable` / reduced-motion. @default true"
|
|
39
|
+
@tier "presentation"
|
|
40
|
+
onExited : event = "EXITED"
|
|
41
|
+
@label "On Exited"
|
|
42
|
+
@description "Fired after the exit animation completes (before unmount)."
|
|
43
|
+
@tier "presentation"
|
|
23
44
|
show : boolean = false
|
|
24
45
|
@label "Show"
|
|
25
46
|
@description "When false, the exit animation runs, then children unmount."
|
|
@@ -19,6 +19,10 @@ orbital TimeSlotCellOrbital {
|
|
|
19
19
|
className: @config.className
|
|
20
20
|
children: @config.children
|
|
21
21
|
isOccupied: @config.isOccupied
|
|
22
|
+
onPointerDown: @config.onPointerDown
|
|
23
|
+
onPointerUp: @config.onPointerUp
|
|
24
|
+
onPointerCancel: @config.onPointerCancel
|
|
25
|
+
onPointerLeave: @config.onPointerLeave
|
|
22
26
|
type: time-slot-cell
|
|
23
27
|
})
|
|
24
28
|
CLICK -> idle
|
|
@@ -29,6 +33,10 @@ orbital TimeSlotCellOrbital {
|
|
|
29
33
|
className: @config.className
|
|
30
34
|
children: @config.children
|
|
31
35
|
isOccupied: @config.isOccupied
|
|
36
|
+
onPointerDown: @config.onPointerDown
|
|
37
|
+
onPointerUp: @config.onPointerUp
|
|
38
|
+
onPointerCancel: @config.onPointerCancel
|
|
39
|
+
onPointerLeave: @config.onPointerLeave
|
|
32
40
|
type: time-slot-cell
|
|
33
41
|
})
|
|
34
42
|
}
|
|
@@ -39,6 +47,18 @@ orbital TimeSlotCellOrbital {
|
|
|
39
47
|
}
|
|
40
48
|
@description "Called when the slot is clicked"
|
|
41
49
|
@tier "essential"
|
|
50
|
+
@config.onPointerDown -> external { }
|
|
51
|
+
@description "onPointerDown prop"
|
|
52
|
+
@tier "essential"
|
|
53
|
+
@config.onPointerUp -> external { }
|
|
54
|
+
@description "onPointerUp prop"
|
|
55
|
+
@tier "essential"
|
|
56
|
+
@config.onPointerCancel -> external { }
|
|
57
|
+
@description "onPointerCancel prop"
|
|
58
|
+
@tier "essential"
|
|
59
|
+
@config.onPointerLeave -> external { }
|
|
60
|
+
@description "onPointerLeave prop"
|
|
61
|
+
@tier "essential"
|
|
42
62
|
}
|
|
43
63
|
|
|
44
64
|
listens {
|
|
@@ -68,6 +88,22 @@ orbital TimeSlotCellOrbital {
|
|
|
68
88
|
@label "Is Occupied"
|
|
69
89
|
@description "Whether this slot contains an event"
|
|
70
90
|
@tier "presentation"
|
|
91
|
+
onPointerDown : event = "POINTER_DOWN"
|
|
92
|
+
@label "On Pointer Down"
|
|
93
|
+
@description "onPointerDown prop"
|
|
94
|
+
@tier "presentation"
|
|
95
|
+
onPointerUp : event = "POINTER_UP"
|
|
96
|
+
@label "On Pointer Up"
|
|
97
|
+
@description "onPointerUp prop"
|
|
98
|
+
@tier "presentation"
|
|
99
|
+
onPointerCancel : event = "POINTER_CANCEL"
|
|
100
|
+
@label "On Pointer Cancel"
|
|
101
|
+
@description "onPointerCancel prop"
|
|
102
|
+
@tier "presentation"
|
|
103
|
+
onPointerLeave : event = "POINTER_LEAVE"
|
|
104
|
+
@label "On Pointer Leave"
|
|
105
|
+
@description "onPointerLeave prop"
|
|
106
|
+
@tier "presentation"
|
|
71
107
|
}
|
|
72
108
|
}
|
|
73
109
|
|
|
@@ -22,6 +22,7 @@ orbital TypographyOrbital {
|
|
|
22
22
|
overflow: @config.overflow
|
|
23
23
|
className: @config.className
|
|
24
24
|
style: @config.style
|
|
25
|
+
role: @config.role
|
|
25
26
|
format: @config.format
|
|
26
27
|
content: @config.content
|
|
27
28
|
children: @config.children
|
|
@@ -70,6 +71,10 @@ orbital TypographyOrbital {
|
|
|
70
71
|
@label "Style"
|
|
71
72
|
@description "Inline style"
|
|
72
73
|
@tier "presentation"
|
|
74
|
+
role : string
|
|
75
|
+
@label "Role"
|
|
76
|
+
@description "Accessibility role"
|
|
77
|
+
@tier "presentation"
|
|
73
78
|
format : "none" | "date" | "time" | "datetime" | "number" | "currency" | "percent" = none
|
|
74
79
|
@label "Format"
|
|
75
80
|
@description "Value formatting applied to string/number/Date content — `none` (the default) renders content as-is. Covers the raw-ISO-date class: a bound datetime renders human-readable via `format='date'|'time'|'datetime'`."
|
|
@@ -20,6 +20,7 @@ orbital AlertOrbital {
|
|
|
20
20
|
onDismiss: @config.onDismiss
|
|
21
21
|
onClose: @config.onClose
|
|
22
22
|
actions: @config.actions
|
|
23
|
+
icon: @config.icon
|
|
23
24
|
className: @config.className
|
|
24
25
|
dismissEvent: @config.dismissEvent
|
|
25
26
|
type: alert
|
|
@@ -68,6 +69,10 @@ orbital AlertOrbital {
|
|
|
68
69
|
@label "Actions"
|
|
69
70
|
@description "actions prop"
|
|
70
71
|
@tier "presentation"
|
|
72
|
+
icon : icon
|
|
73
|
+
@label "Icon"
|
|
74
|
+
@description "Icon shown instead of the variant's default (Lucide name or component)"
|
|
75
|
+
@tier "presentation"
|
|
71
76
|
className : string
|
|
72
77
|
@label "Class Name"
|
|
73
78
|
@description "className prop"
|
|
@@ -46,7 +46,7 @@ orbital AnimatedCounterOrbital {
|
|
|
46
46
|
@tier "presentation"
|
|
47
47
|
format : string
|
|
48
48
|
@label "Format"
|
|
49
|
-
@description "'number' (locale grouping), 'currency' (
|
|
49
|
+
@description "'number' (locale grouping), 'currency' (locale currency), 'percent' (rounded %). Unset keeps the value's own decimals."
|
|
50
50
|
@tier "presentation"
|
|
51
51
|
className : string
|
|
52
52
|
@label "Class Name"
|
|
@@ -9,6 +9,7 @@ orbital BreadcrumbOrbital {
|
|
|
9
9
|
icon : icon
|
|
10
10
|
isCurrent : boolean
|
|
11
11
|
event : event
|
|
12
|
+
roles : [string]
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
entity BreadcrumbItem [runtime] {
|
|
@@ -21,7 +22,7 @@ orbital BreadcrumbOrbital {
|
|
|
21
22
|
state idle {
|
|
22
23
|
INIT -> idle
|
|
23
24
|
(render-ui main {
|
|
24
|
-
items: @config.items
|
|
25
|
+
items: (array/filter @config.items (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
25
26
|
fromNavStack: @config.fromNavStack
|
|
26
27
|
itemEvent: @config.itemEvent
|
|
27
28
|
separator: @config.separator
|
|
@@ -66,6 +67,10 @@ orbital BreadcrumbOrbital {
|
|
|
66
67
|
@label "Class Name"
|
|
67
68
|
@description "Additional CSS classes"
|
|
68
69
|
@tier "presentation"
|
|
70
|
+
viewerRole : string = ""
|
|
71
|
+
@label "Viewer's role"
|
|
72
|
+
@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."
|
|
73
|
+
@tier "policy"
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
|
|
@@ -30,6 +30,7 @@ orbital ChartOrbital {
|
|
|
30
30
|
event : event
|
|
31
31
|
navigatesTo : string
|
|
32
32
|
variant : "primary" | "secondary" | "ghost"
|
|
33
|
+
roles : [string]
|
|
33
34
|
}
|
|
34
35
|
type ChartError = {
|
|
35
36
|
message : string!
|
|
@@ -60,8 +61,9 @@ orbital ChartOrbital {
|
|
|
60
61
|
showValues: @config.showValues
|
|
61
62
|
stack: @config.stack
|
|
62
63
|
timeAxis: @config.timeAxis
|
|
64
|
+
period: @config.period
|
|
63
65
|
drillEvent: @config.drillEvent
|
|
64
|
-
actions: @config.actions
|
|
66
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
65
67
|
isLoading: @config.isLoading
|
|
66
68
|
error: @config.error
|
|
67
69
|
className: @config.className
|
|
@@ -120,6 +122,10 @@ orbital ChartOrbital {
|
|
|
120
122
|
@label "Time Axis"
|
|
121
123
|
@description "Format X-axis labels as time (ISO date in → 'Mar 2026'-style label out)"
|
|
122
124
|
@tier "presentation"
|
|
125
|
+
period : "day" | "week" | "month" | "quarter" | "year" = day
|
|
126
|
+
@label "Period"
|
|
127
|
+
@description "Bucket granularity of a time axis — labels read 'Oct 2', 'Week of Sep 28', 'Oct 2026', 'Q4 2026' or '2026'"
|
|
128
|
+
@tier "presentation"
|
|
123
129
|
drillEvent : string
|
|
124
130
|
@label "Drill Event"
|
|
125
131
|
@description "Event name emitted as `UI:{drillEvent}` with `{ label, value, seriesLabel? }` on data-point click"
|
|
@@ -140,6 +146,10 @@ orbital ChartOrbital {
|
|
|
140
146
|
@label "Class Name"
|
|
141
147
|
@description "Additional CSS classes"
|
|
142
148
|
@tier "presentation"
|
|
149
|
+
viewerRole : string = ""
|
|
150
|
+
@label "Viewer's role"
|
|
151
|
+
@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."
|
|
152
|
+
@tier "policy"
|
|
143
153
|
}
|
|
144
154
|
}
|
|
145
155
|
|
|
@@ -18,6 +18,7 @@ orbital CodeBlockOrbital {
|
|
|
18
18
|
event : event
|
|
19
19
|
navigatesTo : string
|
|
20
20
|
variant : "primary" | "secondary" | "ghost"
|
|
21
|
+
roles : [string]
|
|
21
22
|
}
|
|
22
23
|
type CodeBlockError = {
|
|
23
24
|
message : string!
|
|
@@ -66,7 +67,7 @@ orbital CodeBlockOrbital {
|
|
|
66
67
|
showLineNumbers: @config.showLineNumbers
|
|
67
68
|
wordWrap: @config.wordWrap
|
|
68
69
|
files: @config.files
|
|
69
|
-
actions: @config.actions
|
|
70
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
70
71
|
isLoading: @config.isLoading
|
|
71
72
|
error: @config.error
|
|
72
73
|
showCopy: @config.showCopy
|
|
@@ -106,7 +107,7 @@ orbital CodeBlockOrbital {
|
|
|
106
107
|
showLineNumbers: @config.showLineNumbers
|
|
107
108
|
wordWrap: @config.wordWrap
|
|
108
109
|
files: @config.files
|
|
109
|
-
actions: @config.actions
|
|
110
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
110
111
|
isLoading: @config.isLoading
|
|
111
112
|
error: @config.error
|
|
112
113
|
showCopy: @config.showCopy
|
|
@@ -146,7 +147,7 @@ orbital CodeBlockOrbital {
|
|
|
146
147
|
showLineNumbers: @config.showLineNumbers
|
|
147
148
|
wordWrap: @config.wordWrap
|
|
148
149
|
files: @config.files
|
|
149
|
-
actions: @config.actions
|
|
150
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
150
151
|
isLoading: @config.isLoading
|
|
151
152
|
error: @config.error
|
|
152
153
|
showCopy: @config.showCopy
|
|
@@ -186,7 +187,7 @@ orbital CodeBlockOrbital {
|
|
|
186
187
|
showLineNumbers: @config.showLineNumbers
|
|
187
188
|
wordWrap: @config.wordWrap
|
|
188
189
|
files: @config.files
|
|
189
|
-
actions: @config.actions
|
|
190
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
190
191
|
isLoading: @config.isLoading
|
|
191
192
|
error: @config.error
|
|
192
193
|
showCopy: @config.showCopy
|
|
@@ -226,7 +227,7 @@ orbital CodeBlockOrbital {
|
|
|
226
227
|
showLineNumbers: @config.showLineNumbers
|
|
227
228
|
wordWrap: @config.wordWrap
|
|
228
229
|
files: @config.files
|
|
229
|
-
actions: @config.actions
|
|
230
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
230
231
|
isLoading: @config.isLoading
|
|
231
232
|
error: @config.error
|
|
232
233
|
showCopy: @config.showCopy
|
|
@@ -266,7 +267,7 @@ orbital CodeBlockOrbital {
|
|
|
266
267
|
showLineNumbers: @config.showLineNumbers
|
|
267
268
|
wordWrap: @config.wordWrap
|
|
268
269
|
files: @config.files
|
|
269
|
-
actions: @config.actions
|
|
270
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
270
271
|
isLoading: @config.isLoading
|
|
271
272
|
error: @config.error
|
|
272
273
|
showCopy: @config.showCopy
|
|
@@ -306,7 +307,7 @@ orbital CodeBlockOrbital {
|
|
|
306
307
|
showLineNumbers: @config.showLineNumbers
|
|
307
308
|
wordWrap: @config.wordWrap
|
|
308
309
|
files: @config.files
|
|
309
|
-
actions: @config.actions
|
|
310
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
310
311
|
isLoading: @config.isLoading
|
|
311
312
|
error: @config.error
|
|
312
313
|
showCopy: @config.showCopy
|
|
@@ -346,7 +347,7 @@ orbital CodeBlockOrbital {
|
|
|
346
347
|
showLineNumbers: @config.showLineNumbers
|
|
347
348
|
wordWrap: @config.wordWrap
|
|
348
349
|
files: @config.files
|
|
349
|
-
actions: @config.actions
|
|
350
|
+
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
350
351
|
isLoading: @config.isLoading
|
|
351
352
|
error: @config.error
|
|
352
353
|
showCopy: @config.showCopy
|
|
@@ -564,6 +565,10 @@ orbital CodeBlockOrbital {
|
|
|
564
565
|
@label "Line Numbers"
|
|
565
566
|
@description "Editable only: number the lines in a gutter (lines with errors in red). Default on."
|
|
566
567
|
@tier "presentation"
|
|
568
|
+
viewerRole : string = ""
|
|
569
|
+
@label "Viewer's role"
|
|
570
|
+
@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."
|
|
571
|
+
@tier "policy"
|
|
567
572
|
}
|
|
568
573
|
}
|
|
569
574
|
|
|
@@ -13,6 +13,7 @@ orbital CommandPaletteOrbital {
|
|
|
13
13
|
event : event
|
|
14
14
|
action : event
|
|
15
15
|
actionPayload : @payload action
|
|
16
|
+
roles : [string]
|
|
16
17
|
}
|
|
17
18
|
type CommandPaletteSELECTCommand = {
|
|
18
19
|
id : string!
|
|
@@ -41,7 +42,7 @@ orbital CommandPaletteOrbital {
|
|
|
41
42
|
(render-ui main {
|
|
42
43
|
open: @entity.open
|
|
43
44
|
onOpenChange: @config.onOpenChange
|
|
44
|
-
commands: @config.commands
|
|
45
|
+
commands: (array/filter @config.commands (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
45
46
|
onSelect: @config.onSelect
|
|
46
47
|
placeholder: @config.placeholder
|
|
47
48
|
emptyLabel: @config.emptyLabel
|
|
@@ -53,7 +54,7 @@ orbital CommandPaletteOrbital {
|
|
|
53
54
|
(render-ui main {
|
|
54
55
|
open: @entity.open
|
|
55
56
|
onOpenChange: @config.onOpenChange
|
|
56
|
-
commands: @config.commands
|
|
57
|
+
commands: (array/filter @config.commands (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
57
58
|
onSelect: @config.onSelect
|
|
58
59
|
placeholder: @config.placeholder
|
|
59
60
|
emptyLabel: @config.emptyLabel
|
|
@@ -98,18 +99,22 @@ orbital CommandPaletteOrbital {
|
|
|
98
99
|
@label "On Select"
|
|
99
100
|
@description "Called with the selected command (click, or Enter on the highlighted row)"
|
|
100
101
|
@tier "presentation"
|
|
101
|
-
placeholder : string
|
|
102
|
+
placeholder : string
|
|
102
103
|
@label "Placeholder"
|
|
103
|
-
@description "Search field placeholder.
|
|
104
|
+
@description "Search field placeholder. Defaults to the translated 'Type a command...'."
|
|
104
105
|
@tier "presentation"
|
|
105
|
-
emptyLabel : string
|
|
106
|
+
emptyLabel : string
|
|
106
107
|
@label "Empty Label"
|
|
107
|
-
@description "Label shown when no command matches the query"
|
|
108
|
+
@description "Label shown when no command matches the query. Defaults to the translated message."
|
|
108
109
|
@tier "presentation"
|
|
109
110
|
className : string
|
|
110
111
|
@label "Class Name"
|
|
111
112
|
@description "Additional CSS classes on the overlay's dialog"
|
|
112
113
|
@tier "presentation"
|
|
114
|
+
viewerRole : string = ""
|
|
115
|
+
@label "Viewer's role"
|
|
116
|
+
@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."
|
|
117
|
+
@tier "policy"
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
120
|
|
|
@@ -104,9 +104,9 @@ orbital CommitRowOrbital {
|
|
|
104
104
|
@label "Timestamp"
|
|
105
105
|
@description "Display time (already formatted, e.g. '2 min ago')."
|
|
106
106
|
@tier "presentation"
|
|
107
|
-
kind : "user" | "agent" | "restore" | "undo" | "redo" | "snapshot" = user
|
|
107
|
+
kind : "user" | "agent" | "restore" | "undo" | "redo" | "snapshot" | "merge" = user
|
|
108
108
|
@label "Kind"
|
|
109
|
-
@description "What made this version (a user save, an agent turn, a restore, an undo/redo, a snapshot)."
|
|
109
|
+
@description "What made this version (a user save, an agent turn, a restore, an undo/redo, a snapshot, a merge of a teammate's work)."
|
|
110
110
|
@tier "presentation"
|
|
111
111
|
additions : number
|
|
112
112
|
@label "Additions"
|
|
@@ -27,6 +27,7 @@ orbital ConfirmDialogOrbital {
|
|
|
27
27
|
(render-ui modal {
|
|
28
28
|
isOpen: @config.isOpen
|
|
29
29
|
onClose: @config.onClose
|
|
30
|
+
onExited: @config.onExited
|
|
30
31
|
onConfirm: @config.onConfirm
|
|
31
32
|
title: @config.title
|
|
32
33
|
message: @config.message
|
|
@@ -58,6 +59,9 @@ orbital ConfirmDialogOrbital {
|
|
|
58
59
|
@config.onClose -> external { }
|
|
59
60
|
@description "Callback when dialog is closed (injected by slot wrapper)"
|
|
60
61
|
@tier "essential"
|
|
62
|
+
@config.onExited -> external { }
|
|
63
|
+
@description "Fires after the exit animation completes (the dialog is about to unmount)."
|
|
64
|
+
@tier "essential"
|
|
61
65
|
@config.onConfirm -> external { }
|
|
62
66
|
@description "Callback when action is confirmed (injected by slot wrapper)"
|
|
63
67
|
@tier "essential"
|
|
@@ -77,6 +81,10 @@ orbital ConfirmDialogOrbital {
|
|
|
77
81
|
@label "On Close"
|
|
78
82
|
@description "Callback when dialog is closed (injected by slot wrapper)"
|
|
79
83
|
@tier "presentation"
|
|
84
|
+
onExited : event = "EXITED"
|
|
85
|
+
@label "On Exited"
|
|
86
|
+
@description "Fires after the exit animation completes (the dialog is about to unmount)."
|
|
87
|
+
@tier "presentation"
|
|
80
88
|
onConfirm : event = "CONFIRM"
|
|
81
89
|
@label "On Confirm"
|
|
82
90
|
@description "Callback when action is confirmed (injected by slot wrapper)"
|
|
@@ -4,28 +4,38 @@ app ui-data-grid "1.0.0"
|
|
|
4
4
|
;; @pattern "data-grid"
|
|
5
5
|
orbital DataGridOrbital {
|
|
6
6
|
type DataGridLoaded = Event { data : [DataGridItem] } "DataGrid rows finished loading; payload.data holds the collection"
|
|
7
|
+
type DataGridEmptyAction = {
|
|
8
|
+
label : string!
|
|
9
|
+
event : event
|
|
10
|
+
}
|
|
7
11
|
type DataGridFieldsItem = {
|
|
8
12
|
name : string!
|
|
9
13
|
label : string
|
|
10
14
|
icon : icon
|
|
11
15
|
variant : "h3" | "h4" | "body" | "caption" | "badge" | "small" | "progress"
|
|
12
16
|
format : "date" | "currency" | "number" | "boolean" | "percent"
|
|
13
|
-
colorMap : Map string
|
|
17
|
+
colorMap : Map string DataGridFieldsItemColorMapValue
|
|
18
|
+
labels : Map string string
|
|
14
19
|
}
|
|
20
|
+
type DataGridFieldsItemColorMapValue = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral" | "destructive"
|
|
15
21
|
type DataGridColumnsItem = {
|
|
16
22
|
name : string!
|
|
17
23
|
label : string
|
|
18
24
|
icon : icon
|
|
19
25
|
variant : "h3" | "h4" | "body" | "caption" | "badge" | "small" | "progress"
|
|
20
26
|
format : "date" | "currency" | "number" | "boolean" | "percent"
|
|
21
|
-
colorMap : Map string
|
|
27
|
+
colorMap : Map string DataGridColumnsItemColorMapValue
|
|
28
|
+
labels : Map string string
|
|
22
29
|
}
|
|
30
|
+
type DataGridColumnsItemColorMapValue = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral" | "destructive"
|
|
23
31
|
type DataGridItemActionsItem = {
|
|
24
32
|
label : string!
|
|
25
33
|
event : event
|
|
26
34
|
navigatesTo : string
|
|
27
35
|
icon : icon
|
|
28
36
|
variant : "primary" | "secondary" | "ghost" | "danger"
|
|
37
|
+
when : SExpr
|
|
38
|
+
roles : [string]
|
|
29
39
|
}
|
|
30
40
|
type DataGridError = {
|
|
31
41
|
message : string!
|
|
@@ -59,10 +69,15 @@ orbital DataGridOrbital {
|
|
|
59
69
|
positionEvent: @config.positionEvent
|
|
60
70
|
dndItemIdField: @config.dndItemIdField
|
|
61
71
|
dndRoot: @config.dndRoot
|
|
72
|
+
emptyIcon: @config.emptyIcon
|
|
73
|
+
emptyTitle: @config.emptyTitle
|
|
74
|
+
emptyDescription: @config.emptyDescription
|
|
75
|
+
emptyAction: @config.emptyAction
|
|
62
76
|
entity: @entity
|
|
63
77
|
fields: @config.fields
|
|
64
78
|
columns: @config.columns
|
|
65
|
-
itemActions: @config.itemActions
|
|
79
|
+
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
80
|
+
itemClickEvent: @config.itemClickEvent
|
|
66
81
|
maxInlineActions: @config.maxInlineActions
|
|
67
82
|
scrollX: @config.scrollX
|
|
68
83
|
cols: @config.cols
|
|
@@ -92,10 +107,15 @@ orbital DataGridOrbital {
|
|
|
92
107
|
positionEvent: @config.positionEvent
|
|
93
108
|
dndItemIdField: @config.dndItemIdField
|
|
94
109
|
dndRoot: @config.dndRoot
|
|
110
|
+
emptyIcon: @config.emptyIcon
|
|
111
|
+
emptyTitle: @config.emptyTitle
|
|
112
|
+
emptyDescription: @config.emptyDescription
|
|
113
|
+
emptyAction: @config.emptyAction
|
|
95
114
|
entity: @entity
|
|
96
115
|
fields: @config.fields
|
|
97
116
|
columns: @config.columns
|
|
98
|
-
itemActions: @config.itemActions
|
|
117
|
+
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
118
|
+
itemClickEvent: @config.itemClickEvent
|
|
99
119
|
maxInlineActions: @config.maxInlineActions
|
|
100
120
|
scrollX: @config.scrollX
|
|
101
121
|
cols: @config.cols
|
|
@@ -125,10 +145,15 @@ orbital DataGridOrbital {
|
|
|
125
145
|
positionEvent: @config.positionEvent
|
|
126
146
|
dndItemIdField: @config.dndItemIdField
|
|
127
147
|
dndRoot: @config.dndRoot
|
|
148
|
+
emptyIcon: @config.emptyIcon
|
|
149
|
+
emptyTitle: @config.emptyTitle
|
|
150
|
+
emptyDescription: @config.emptyDescription
|
|
151
|
+
emptyAction: @config.emptyAction
|
|
128
152
|
entity: @payload.data
|
|
129
153
|
fields: @config.fields
|
|
130
154
|
columns: @config.columns
|
|
131
|
-
itemActions: @config.itemActions
|
|
155
|
+
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
156
|
+
itemClickEvent: @config.itemClickEvent
|
|
132
157
|
maxInlineActions: @config.maxInlineActions
|
|
133
158
|
scrollX: @config.scrollX
|
|
134
159
|
cols: @config.cols
|
|
@@ -151,6 +176,12 @@ orbital DataGridOrbital {
|
|
|
151
176
|
}
|
|
152
177
|
|
|
153
178
|
emits {
|
|
179
|
+
@config.itemClickEvent -> external {
|
|
180
|
+
id : string!
|
|
181
|
+
row : @entity!
|
|
182
|
+
}
|
|
183
|
+
@description "When set, clicking a card emits UI:{itemClickEvent} with { id, row }. Omit = cards are not clickable."
|
|
184
|
+
@tier "essential"
|
|
154
185
|
@config.selectionEvent -> external {
|
|
155
186
|
selectedIds : [string]!
|
|
156
187
|
}
|
|
@@ -204,6 +235,22 @@ orbital DataGridOrbital {
|
|
|
204
235
|
@label "Dnd Root"
|
|
205
236
|
@description "Mark this container as the DnD root for its subtree — descendant zones share one DndContext (cross-container drag). Use on an outer container whose own items are not draggable."
|
|
206
237
|
@tier "presentation"
|
|
238
|
+
emptyIcon : icon
|
|
239
|
+
@label "Empty Icon"
|
|
240
|
+
@description "Domain icon for the empty state."
|
|
241
|
+
@tier "presentation"
|
|
242
|
+
emptyTitle : string
|
|
243
|
+
@label "Empty Title"
|
|
244
|
+
@description "Specific title ('No orders yet')."
|
|
245
|
+
@tier "presentation"
|
|
246
|
+
emptyDescription : string
|
|
247
|
+
@label "Empty Description"
|
|
248
|
+
@description "What will appear here once rows exist."
|
|
249
|
+
@tier "presentation"
|
|
250
|
+
emptyAction : DataGridEmptyAction
|
|
251
|
+
@label "Empty Action"
|
|
252
|
+
@description "Create-the-first-item action."
|
|
253
|
+
@tier "presentation"
|
|
207
254
|
fields : [DataGridFieldsItem] = []
|
|
208
255
|
@label "Fields"
|
|
209
256
|
@description "Field definitions for rendering each card. The pattern contract in `@almadar/core/patterns` documents `columns` as the wire-format alias the compiler emits — both names resolve to the same shape here. Pass either."
|
|
@@ -216,6 +263,10 @@ orbital DataGridOrbital {
|
|
|
216
263
|
@label "Item Actions"
|
|
217
264
|
@description "Per-item action buttons"
|
|
218
265
|
@tier "presentation"
|
|
266
|
+
itemClickEvent : event = "ITEM_CLICK"
|
|
267
|
+
@label "Item Click Event"
|
|
268
|
+
@description "When set, clicking a card emits UI:{itemClickEvent} with { id, row }. Omit = cards are not clickable."
|
|
269
|
+
@tier "presentation"
|
|
219
270
|
maxInlineActions : number
|
|
220
271
|
@label "Max Inline Actions"
|
|
221
272
|
@description "Max inline primary action buttons before the rest collapse into a '⋯' overflow menu. Omit = all inline."
|
|
@@ -284,6 +335,10 @@ orbital DataGridOrbital {
|
|
|
284
335
|
@label "Relations Data"
|
|
285
336
|
@description "Relation display data: { fieldName: [{value, label}] } — injected server-side by the runtime (relation-option injection) or bound by compiled codegen; resolves stored foreign ids to display names for a field whose type is relation. Same contract DetailPanel takes."
|
|
286
337
|
@tier "presentation"
|
|
338
|
+
viewerRole : string = ""
|
|
339
|
+
@label "Viewer's role"
|
|
340
|
+
@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."
|
|
341
|
+
@tier "policy"
|
|
287
342
|
selfFetch : boolean = true
|
|
288
343
|
@label "Fetch its own rows on mount?"
|
|
289
344
|
@description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
|