@almadar/std 16.236.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 +1389 -265
- package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +7 -0
- package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
- package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +5 -0
- package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +5 -0
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +32 -5
- package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +32 -0
- package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +8 -1
- package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
- package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-list.lolo +7 -0
- package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
- package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +13 -1
- package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +4 -0
- package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +6 -0
- package/behaviors/lolo/ui/core/atoms/std-selection.lolo +7 -0
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +7 -1
- 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-command-palette.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +19 -2
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +6 -0
- package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +1 -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-gantt.lolo +9 -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 +1 -0
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +16 -2
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +21 -4
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +28 -7
- package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +37 -5
- package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +18 -1
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +2 -0
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +2 -0
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +14 -0
- package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +30 -2
- package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +1 -1
- package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +1 -1
- 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 +1 -1
- package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
- 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 +70 -0
- package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +9 -0
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +9 -0
- package/behaviors/registry/ui/core/atoms/std-browse.orb +204 -8
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +44 -0
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +12 -1
- package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -0
- package/behaviors/registry/ui/core/atoms/std-list.orb +11 -0
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +71 -3
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +4 -0
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +54 -0
- package/behaviors/registry/ui/core/atoms/std-selection.orb +39 -0
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +11 -1
- 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-command-palette.orb +2 -4
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +108 -2
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +72 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +12 -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-gantt.orb +28 -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 +17 -0
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +148 -2
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +133 -13
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +210 -26
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +166 -17
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +122 -0
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +28 -0
- package/behaviors/registry/ui/core/organisms/ui-form.orb +28 -0
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +20 -0
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +38 -5
- package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +0 -1
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +0 -1
- 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 +1 -1
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
- package/dist/behaviors/exports-reader.js +1157 -61
- package/dist/behaviors/functions/index.d.ts +114 -32
- package/dist/behaviors/functions/index.js +1157 -61
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +1157 -61
- package/dist/behaviors/query.js +1157 -61
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +15 -15
- package/dist/behaviors-registry.json +1389 -265
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1157 -61
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +165 -25
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +3 -3
|
@@ -10,17 +10,22 @@ orbital EntityListOrbital {
|
|
|
10
10
|
stack : string
|
|
11
11
|
}
|
|
12
12
|
type EntityListFieldsItem = {
|
|
13
|
-
|
|
14
|
-
header : string
|
|
15
|
-
name : string
|
|
13
|
+
name : string!
|
|
16
14
|
label : string
|
|
15
|
+
icon : icon
|
|
16
|
+
variant : "h3" | "h4" | "body" | "caption" | "badge" | "small" | "progress"
|
|
17
|
+
format : "date" | "currency" | "number" | "boolean" | "percent"
|
|
18
|
+
colorMap : Map string EntityListFieldsItemColorMapValue
|
|
19
|
+
labels : Map string string
|
|
17
20
|
}
|
|
21
|
+
type EntityListFieldsItemColorMapValue = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral" | "destructive"
|
|
18
22
|
type EntityListItemActionsItem = {
|
|
19
23
|
label : string!
|
|
20
24
|
event : event
|
|
21
25
|
navigatesTo : string
|
|
22
26
|
placement : string
|
|
23
27
|
variant : "primary" | "secondary" | "ghost" | "danger" | "default"
|
|
28
|
+
icon : icon
|
|
24
29
|
when : SExpr
|
|
25
30
|
roles : [string]
|
|
26
31
|
}
|
|
@@ -57,6 +62,9 @@ orbital EntityListOrbital {
|
|
|
57
62
|
children: @config.children
|
|
58
63
|
fields: @config.fields
|
|
59
64
|
fieldNames: @config.fieldNames
|
|
65
|
+
itemClickEvent: @config.itemClickEvent
|
|
66
|
+
completedField: @config.completedField
|
|
67
|
+
disabledField: @config.disabledField
|
|
60
68
|
type: entity-list
|
|
61
69
|
})
|
|
62
70
|
INIT -> idle when (not @config.selfFetch)
|
|
@@ -82,6 +90,9 @@ orbital EntityListOrbital {
|
|
|
82
90
|
children: @config.children
|
|
83
91
|
fields: @config.fields
|
|
84
92
|
fieldNames: @config.fieldNames
|
|
93
|
+
itemClickEvent: @config.itemClickEvent
|
|
94
|
+
completedField: @config.completedField
|
|
95
|
+
disabledField: @config.disabledField
|
|
85
96
|
type: entity-list
|
|
86
97
|
})
|
|
87
98
|
EntityListLoaded -> idle
|
|
@@ -107,6 +118,9 @@ orbital EntityListOrbital {
|
|
|
107
118
|
children: @config.children
|
|
108
119
|
fields: @config.fields
|
|
109
120
|
fieldNames: @config.fieldNames
|
|
121
|
+
itemClickEvent: @config.itemClickEvent
|
|
122
|
+
completedField: @config.completedField
|
|
123
|
+
disabledField: @config.disabledField
|
|
110
124
|
type: entity-list
|
|
111
125
|
})
|
|
112
126
|
}
|
|
@@ -115,6 +129,12 @@ orbital EntityListOrbital {
|
|
|
115
129
|
ITEM_ACTIONS -> external { }
|
|
116
130
|
@description "Item actions - schema-driven or function-based"
|
|
117
131
|
@tier "essential"
|
|
132
|
+
@config.itemClickEvent -> external {
|
|
133
|
+
id : string!
|
|
134
|
+
row : @entity!
|
|
135
|
+
}
|
|
136
|
+
@description "When set, clicking a row emits UI:{itemClickEvent} with { id, row }. Omit = rows are not clickable."
|
|
137
|
+
@tier "essential"
|
|
118
138
|
VIEW -> external {
|
|
119
139
|
id : string!
|
|
120
140
|
row : @entity!
|
|
@@ -201,14 +221,26 @@ orbital EntityListOrbital {
|
|
|
201
221
|
@label "Children"
|
|
202
222
|
@description "children prop"
|
|
203
223
|
@tier "presentation"
|
|
204
|
-
fields : [EntityListFieldsItem] = [{
|
|
224
|
+
fields : [EntityListFieldsItem] = [{ name: "Name", label: "Label", icon: "circle", variant: h3, format: date }, { name: "Name 2", label: "Label 2", icon: "circle", variant: h4, format: currency }]
|
|
205
225
|
@label "Fields"
|
|
206
|
-
@description "Fields to display
|
|
226
|
+
@description "Fields to display: field names, or declared fields ({ name, label, variant, format, colorMap, labels })"
|
|
207
227
|
@tier "presentation"
|
|
208
228
|
fieldNames : [string] = []
|
|
209
229
|
@label "Field Names"
|
|
210
230
|
@description "Alias for fields - backwards compatibility"
|
|
211
231
|
@tier "presentation"
|
|
232
|
+
itemClickEvent : event = "ITEM_CLICK"
|
|
233
|
+
@label "Item Click Event"
|
|
234
|
+
@description "When set, clicking a row emits UI:{itemClickEvent} with { id, row }. Omit = rows are not clickable."
|
|
235
|
+
@tier "presentation"
|
|
236
|
+
completedField : string
|
|
237
|
+
@label "Completed Field"
|
|
238
|
+
@description "Row field that marks an item completed (`true` strikes its title through)"
|
|
239
|
+
@tier "presentation"
|
|
240
|
+
disabledField : string
|
|
241
|
+
@label "Disabled Field"
|
|
242
|
+
@description "Row field that marks an item disabled (`true` dims the row and disables its click)"
|
|
243
|
+
@tier "presentation"
|
|
212
244
|
viewerRole : string = ""
|
|
213
245
|
@label "Viewer's role"
|
|
214
246
|
@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."
|
|
@@ -16,6 +16,8 @@ orbital EntityTableOrbital {
|
|
|
16
16
|
label : string
|
|
17
17
|
width : string
|
|
18
18
|
sortable : boolean
|
|
19
|
+
align : "left" | "center" | "right"
|
|
20
|
+
format : "date" | "currency" | "number" | "boolean" | "percent"
|
|
19
21
|
}
|
|
20
22
|
type EntityTableColumnsItem = {
|
|
21
23
|
key : string
|
|
@@ -24,6 +26,8 @@ orbital EntityTableOrbital {
|
|
|
24
26
|
label : string
|
|
25
27
|
width : string
|
|
26
28
|
sortable : boolean
|
|
29
|
+
align : "left" | "center" | "right"
|
|
30
|
+
format : "date" | "currency" | "number" | "boolean" | "percent"
|
|
27
31
|
}
|
|
28
32
|
type EntityTableItemActionsItem = {
|
|
29
33
|
label : string!
|
|
@@ -86,6 +90,7 @@ orbital EntityTableOrbital {
|
|
|
86
90
|
entity: @entity
|
|
87
91
|
fields: @config.fields
|
|
88
92
|
columns: @config.columns
|
|
93
|
+
itemClickEvent: @config.itemClickEvent
|
|
89
94
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
90
95
|
emptyIcon: @config.emptyIcon
|
|
91
96
|
emptyTitle: @config.emptyTitle
|
|
@@ -118,6 +123,7 @@ orbital EntityTableOrbital {
|
|
|
118
123
|
entity: @entity
|
|
119
124
|
fields: @config.fields
|
|
120
125
|
columns: @config.columns
|
|
126
|
+
itemClickEvent: @config.itemClickEvent
|
|
121
127
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
122
128
|
emptyIcon: @config.emptyIcon
|
|
123
129
|
emptyTitle: @config.emptyTitle
|
|
@@ -150,6 +156,7 @@ orbital EntityTableOrbital {
|
|
|
150
156
|
entity: @payload.data
|
|
151
157
|
fields: @config.fields
|
|
152
158
|
columns: @config.columns
|
|
159
|
+
itemClickEvent: @config.itemClickEvent
|
|
153
160
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
154
161
|
emptyIcon: @config.emptyIcon
|
|
155
162
|
emptyTitle: @config.emptyTitle
|
|
@@ -169,6 +176,12 @@ orbital EntityTableOrbital {
|
|
|
169
176
|
}
|
|
170
177
|
|
|
171
178
|
emits {
|
|
179
|
+
@config.itemClickEvent -> external {
|
|
180
|
+
id : string!
|
|
181
|
+
row : @entity!
|
|
182
|
+
}
|
|
183
|
+
@description "When set, rows are activatable and emit UI:{itemClickEvent} with { id, row }"
|
|
184
|
+
@tier "essential"
|
|
172
185
|
VIEW -> external {
|
|
173
186
|
id : string!
|
|
174
187
|
row : @entity!
|
|
@@ -227,7 +240,7 @@ orbital EntityTableOrbital {
|
|
|
227
240
|
@label "Selected Ids"
|
|
228
241
|
@description "Currently selected item IDs"
|
|
229
242
|
@tier "presentation"
|
|
230
|
-
fields : [EntityTableFieldsItem] = [{ key: "Key", header: "Header", name: "Name", label: "Label", width: "Width", sortable: false }, { key: "Key 2", header: "Header 2", name: "Name 2", label: "Label 2", width: "Width 2", sortable: true }]
|
|
243
|
+
fields : [EntityTableFieldsItem] = [{ key: "Key", header: "Header", name: "Name", label: "Label", width: "Width", sortable: false, align: left, format: date }, { key: "Key 2", header: "Header 2", name: "Name 2", label: "Label 2", width: "Width 2", sortable: true, align: center, format: currency }]
|
|
231
244
|
@label "Fields"
|
|
232
245
|
@description "Fields to display - accepts string[] or Column[] for unified interface. Alias for columns"
|
|
233
246
|
@tier "presentation"
|
|
@@ -235,6 +248,10 @@ orbital EntityTableOrbital {
|
|
|
235
248
|
@label "Columns"
|
|
236
249
|
@description "Columns can be Column objects or simple string field names"
|
|
237
250
|
@tier "presentation"
|
|
251
|
+
itemClickEvent : event = "ITEM_CLICK"
|
|
252
|
+
@label "Item Click Event"
|
|
253
|
+
@description "When set, rows are activatable and emit UI:{itemClickEvent} with { id, row }"
|
|
254
|
+
@tier "presentation"
|
|
238
255
|
itemActions : [EntityTableItemActionsItem] = [{ event: VIEW, label: View, variant: ghost }]
|
|
239
256
|
@label "Item Actions"
|
|
240
257
|
@description "Item actions from generated code - maps to rowActions"
|
|
@@ -14,6 +14,7 @@ orbital FormSectionOrbital {
|
|
|
14
14
|
defaultValue : ControlValue
|
|
15
15
|
options : [FormSectionFieldsItemOptionsItem]
|
|
16
16
|
values : [string]
|
|
17
|
+
labels : Map string string
|
|
17
18
|
relation : FormSectionFieldsItemRelation
|
|
18
19
|
min : number
|
|
19
20
|
max : number
|
|
@@ -100,6 +101,7 @@ orbital FormSectionOrbital {
|
|
|
100
101
|
defaultValue : ControlValue
|
|
101
102
|
options : [FormSectionSectionsItemFieldsItemOptionsItem]
|
|
102
103
|
values : [string]
|
|
104
|
+
labels : Map string string
|
|
103
105
|
relation : FormSectionSectionsItemFieldsItemRelation
|
|
104
106
|
min : number
|
|
105
107
|
max : number
|
|
@@ -14,6 +14,7 @@ orbital FormOrbital {
|
|
|
14
14
|
defaultValue : ControlValue
|
|
15
15
|
options : [FormFieldsItemOptionsItem]
|
|
16
16
|
values : [string]
|
|
17
|
+
labels : Map string string
|
|
17
18
|
relation : FormFieldsItemRelation
|
|
18
19
|
min : number
|
|
19
20
|
max : number
|
|
@@ -100,6 +101,7 @@ orbital FormOrbital {
|
|
|
100
101
|
defaultValue : ControlValue
|
|
101
102
|
options : [FormSectionsItemFieldsItemOptionsItem]
|
|
102
103
|
values : [string]
|
|
104
|
+
labels : Map string string
|
|
103
105
|
relation : FormSectionsItemFieldsItemRelation
|
|
104
106
|
min : number
|
|
105
107
|
max : number
|
|
@@ -58,6 +58,8 @@ orbital MediaGalleryOrbital {
|
|
|
58
58
|
showUpload: @config.showUpload
|
|
59
59
|
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
60
60
|
aspectRatio: @config.aspectRatio
|
|
61
|
+
srcField: @config.srcField
|
|
62
|
+
captionField: @config.captionField
|
|
61
63
|
type: media-gallery
|
|
62
64
|
})
|
|
63
65
|
INIT -> idle when (not @config.selfFetch)
|
|
@@ -83,6 +85,8 @@ orbital MediaGalleryOrbital {
|
|
|
83
85
|
showUpload: @config.showUpload
|
|
84
86
|
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
85
87
|
aspectRatio: @config.aspectRatio
|
|
88
|
+
srcField: @config.srcField
|
|
89
|
+
captionField: @config.captionField
|
|
86
90
|
type: media-gallery
|
|
87
91
|
})
|
|
88
92
|
MediaGalleryLoaded -> idle
|
|
@@ -108,6 +112,8 @@ orbital MediaGalleryOrbital {
|
|
|
108
112
|
showUpload: @config.showUpload
|
|
109
113
|
actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
110
114
|
aspectRatio: @config.aspectRatio
|
|
115
|
+
srcField: @config.srcField
|
|
116
|
+
captionField: @config.captionField
|
|
111
117
|
type: media-gallery
|
|
112
118
|
})
|
|
113
119
|
}
|
|
@@ -206,6 +212,14 @@ orbital MediaGalleryOrbital {
|
|
|
206
212
|
@label "Aspect Ratio"
|
|
207
213
|
@description "Aspect ratio for thumbnails"
|
|
208
214
|
@tier "presentation"
|
|
215
|
+
srcField : string = src
|
|
216
|
+
@label "Src Field"
|
|
217
|
+
@description "Record field holding each image's URL (entity mode). Default `src`."
|
|
218
|
+
@tier "presentation"
|
|
219
|
+
captionField : string = caption
|
|
220
|
+
@label "Caption Field"
|
|
221
|
+
@description "Record field holding each image's caption (entity mode). Default `caption`."
|
|
222
|
+
@tier "presentation"
|
|
209
223
|
viewerRole : string = ""
|
|
210
224
|
@label "Viewer's role"
|
|
211
225
|
@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."
|
|
@@ -20,6 +20,12 @@ orbital StatCardOrbital {
|
|
|
20
20
|
value : string
|
|
21
21
|
icon : icon
|
|
22
22
|
format : string
|
|
23
|
+
aggregate : "count" | "sum"
|
|
24
|
+
filter : StatCardMetricsItemFilter
|
|
25
|
+
}
|
|
26
|
+
type StatCardMetricsItemFilter = {
|
|
27
|
+
field : string!
|
|
28
|
+
equals : string!
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
entity StatCardItem [runtime] {
|
|
@@ -44,6 +44,10 @@ orbital TimelineOrbital {
|
|
|
44
44
|
title: @config.title
|
|
45
45
|
items: @config.items
|
|
46
46
|
fields: @config.fields
|
|
47
|
+
titleField: @config.titleField
|
|
48
|
+
descriptionField: @config.descriptionField
|
|
49
|
+
dateField: @config.dateField
|
|
50
|
+
statusField: @config.statusField
|
|
47
51
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
48
52
|
look: @config.look
|
|
49
53
|
type: timeline
|
|
@@ -57,6 +61,10 @@ orbital TimelineOrbital {
|
|
|
57
61
|
title: @config.title
|
|
58
62
|
items: @config.items
|
|
59
63
|
fields: @config.fields
|
|
64
|
+
titleField: @config.titleField
|
|
65
|
+
descriptionField: @config.descriptionField
|
|
66
|
+
dateField: @config.dateField
|
|
67
|
+
statusField: @config.statusField
|
|
60
68
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
61
69
|
look: @config.look
|
|
62
70
|
type: timeline
|
|
@@ -70,6 +78,10 @@ orbital TimelineOrbital {
|
|
|
70
78
|
title: @config.title
|
|
71
79
|
items: @config.items
|
|
72
80
|
fields: @config.fields
|
|
81
|
+
titleField: @config.titleField
|
|
82
|
+
descriptionField: @config.descriptionField
|
|
83
|
+
dateField: @config.dateField
|
|
84
|
+
statusField: @config.statusField
|
|
73
85
|
itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
|
|
74
86
|
look: @config.look
|
|
75
87
|
type: timeline
|
|
@@ -110,9 +122,25 @@ orbital TimelineOrbital {
|
|
|
110
122
|
@label "Items"
|
|
111
123
|
@description "Timeline items"
|
|
112
124
|
@tier "presentation"
|
|
113
|
-
fields : [string] = [
|
|
125
|
+
fields : [string] = []
|
|
114
126
|
@label "Fields"
|
|
115
|
-
@description "
|
|
127
|
+
@description "Entity fields the timeline draws; each slot is named by its own `*Field` prop."
|
|
128
|
+
@tier "presentation"
|
|
129
|
+
titleField : string
|
|
130
|
+
@label "Title Field"
|
|
131
|
+
@description "Entity field holding each item's title."
|
|
132
|
+
@tier "presentation"
|
|
133
|
+
descriptionField : string
|
|
134
|
+
@label "Description Field"
|
|
135
|
+
@description "Entity field holding each item's description."
|
|
136
|
+
@tier "presentation"
|
|
137
|
+
dateField : string
|
|
138
|
+
@label "Date Field"
|
|
139
|
+
@description "Entity field holding each item's date."
|
|
140
|
+
@tier "presentation"
|
|
141
|
+
statusField : string
|
|
142
|
+
@label "Status Field"
|
|
143
|
+
@description "Entity field holding each item's status (complete | active | pending | error)."
|
|
116
144
|
@tier "presentation"
|
|
117
145
|
itemActions : [TimelineItemActionsItem] = []
|
|
118
146
|
@label "Item Actions"
|
|
@@ -76,7 +76,7 @@ orbital CounterTemplateOrbital {
|
|
|
76
76
|
@label "Reset Event"
|
|
77
77
|
@description "Declarative event key — emits UI:{resetEvent} via bus on reset"
|
|
78
78
|
@tier "presentation"
|
|
79
|
-
title : string
|
|
79
|
+
title : string
|
|
80
80
|
@label "Title"
|
|
81
81
|
@description "Title displayed above the counter"
|
|
82
82
|
@tier "presentation"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"game-shell": {
|
|
3
|
-
"signature": "
|
|
3
|
+
"signature": "354579dbf896ca3f",
|
|
4
4
|
"board": "packages/almadar-std/behaviors/lolo/ui/game/templates/ui-game-shell.lolo"
|
|
5
5
|
},
|
|
6
6
|
"timer-display": {
|
|
7
|
-
"signature": "
|
|
7
|
+
"signature": "97c478e49455845f",
|
|
8
8
|
"board": "packages/almadar-std/behaviors/lolo/ui/game/atoms/ui-timer-display.lolo"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -39,11 +39,11 @@ orbital DialogueBubbleOrbital {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
config {
|
|
42
|
-
speaker : string
|
|
42
|
+
speaker : string
|
|
43
43
|
@label "Speaker"
|
|
44
44
|
@description "Speaker name displayed at the top"
|
|
45
45
|
@tier "presentation"
|
|
46
|
-
text : string = "
|
|
46
|
+
text : string = ""
|
|
47
47
|
@label "Text"
|
|
48
48
|
@description "Dialogue text content"
|
|
49
49
|
@tier "presentation"
|