@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.
Files changed (115) hide show
  1. package/behaviors/behaviors-registry.json +1389 -265
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +7 -0
  3. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  4. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +5 -0
  5. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +5 -0
  6. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +32 -5
  7. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +32 -0
  8. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +8 -1
  9. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
  10. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  11. package/behaviors/lolo/ui/core/atoms/std-list.lolo +7 -0
  12. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
  13. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +13 -1
  14. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +4 -0
  15. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +6 -0
  16. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +7 -0
  17. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +7 -1
  18. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +36 -0
  19. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
  20. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
  21. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +1 -1
  22. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +4 -4
  23. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +19 -2
  24. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +6 -0
  25. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
  26. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +1 -0
  27. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
  28. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +1 -1
  29. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +9 -1
  30. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -2
  31. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +1 -1
  32. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +1 -0
  33. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +16 -2
  34. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +21 -4
  35. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +28 -7
  36. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +37 -5
  37. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +18 -1
  38. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +2 -0
  39. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +2 -0
  40. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +14 -0
  41. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
  42. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +30 -2
  43. package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
  44. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +1 -1
  45. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +1 -1
  46. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  47. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
  48. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +2 -2
  49. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +1 -1
  50. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
  51. package/behaviors/lolo-behavior-contracts.json +1 -1
  52. package/behaviors/registry/factory-signatures.json +1 -1
  53. package/behaviors/registry/infra/atoms/std-approval-gate.orb +70 -0
  54. package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
  55. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +9 -0
  56. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +9 -0
  57. package/behaviors/registry/ui/core/atoms/std-browse.orb +204 -8
  58. package/behaviors/registry/ui/core/atoms/std-event-log.orb +44 -0
  59. package/behaviors/registry/ui/core/atoms/std-file-store.orb +12 -1
  60. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
  61. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -0
  62. package/behaviors/registry/ui/core/atoms/std-list.orb +11 -0
  63. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
  64. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +71 -3
  65. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +4 -0
  66. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +54 -0
  67. package/behaviors/registry/ui/core/atoms/std-selection.orb +39 -0
  68. package/behaviors/registry/ui/core/atoms/std-version-history.orb +11 -1
  69. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +132 -0
  70. package/behaviors/registry/ui/core/atoms/ui-typography.orb +7 -0
  71. package/behaviors/registry/ui/core/molecules/ui-alert.orb +7 -0
  72. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
  73. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +2 -4
  74. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +108 -2
  75. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +72 -0
  76. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
  77. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +12 -0
  78. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +0 -1
  79. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +0 -1
  80. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +28 -1
  81. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +9 -2
  82. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
  83. package/behaviors/registry/ui/core/molecules/ui-menu.orb +17 -0
  84. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +148 -2
  85. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +133 -13
  86. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +210 -26
  87. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +166 -17
  88. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +122 -0
  89. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +28 -0
  90. package/behaviors/registry/ui/core/organisms/ui-form.orb +28 -0
  91. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +20 -0
  92. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
  93. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +38 -5
  94. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
  95. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +0 -1
  96. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +0 -1
  97. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
  98. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -2
  99. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
  100. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
  101. package/dist/behaviors/exports-reader.js +1157 -61
  102. package/dist/behaviors/functions/index.d.ts +114 -32
  103. package/dist/behaviors/functions/index.js +1157 -61
  104. package/dist/behaviors/index.d.ts +1 -1
  105. package/dist/behaviors/index.js +1157 -61
  106. package/dist/behaviors/query.js +1157 -61
  107. package/dist/behaviors-embeddings.hash.json +3 -3
  108. package/dist/behaviors-embeddings.json +15 -15
  109. package/dist/behaviors-registry.json +1389 -265
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.js +1157 -61
  112. package/dist/knob-embeddings.hash.json +3 -3
  113. package/dist/knob-embeddings.json +165 -25
  114. package/dist/registry/factory-signatures.json +1 -1
  115. package/package.json +3 -3
@@ -10,17 +10,22 @@ orbital EntityListOrbital {
10
10
  stack : string
11
11
  }
12
12
  type EntityListFieldsItem = {
13
- key : string
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] = [{ key: "Key", header: "Header", name: "Name", label: "Label" }, { key: "Key 2", header: "Header 2", name: "Name 2", label: "Label 2" }]
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 - accepts string[] or {key, header}[] for unified interface"
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] = ["Item", "Item 2"]
125
+ fields : [string] = []
114
126
  @label "Fields"
115
- @description "Fields to display"
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"
@@ -22,7 +22,7 @@ orbital AuthLayoutOrbital {
22
22
  }
23
23
 
24
24
  config {
25
- appName : string = "My App"
25
+ appName : string
26
26
  @label "App Name"
27
27
  @description "App name"
28
28
  @tier "presentation"
@@ -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 = Counter
79
+ title : string
80
80
  @label "Title"
81
81
  @description "Title displayed above the counter"
82
82
  @tier "presentation"
@@ -84,7 +84,7 @@ orbital DashboardLayoutOrbital {
84
84
  }
85
85
 
86
86
  config {
87
- appName : string = "{{APP_TITLE}}"
87
+ appName : string
88
88
  @label "App Name"
89
89
  @description "App name shown in sidebar"
90
90
  @tier "presentation"
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "game-shell": {
3
- "signature": "aba270d4ed2ee09a",
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": "6ed079507206072d",
7
+ "signature": "97c478e49455845f",
8
8
  "board": "packages/almadar-std/behaviors/lolo/ui/game/atoms/ui-timer-display.lolo"
9
9
  }
10
10
  }
@@ -51,7 +51,7 @@ orbital ChoiceButtonOrbital {
51
51
  }
52
52
 
53
53
  config {
54
- text : string = "Charge forward into the fray"
54
+ text : string = ""
55
55
  @label "Text"
56
56
  @description "Choice text content"
57
57
  @tier "presentation"
@@ -39,11 +39,11 @@ orbital DialogueBubbleOrbital {
39
39
  }
40
40
 
41
41
  config {
42
- speaker : string = Hero
42
+ speaker : string
43
43
  @label "Speaker"
44
44
  @description "Speaker name displayed at the top"
45
45
  @tier "presentation"
46
- text : string = "The dungeon awaits. Choose your path wisely."
46
+ text : string = ""
47
47
  @label "Text"
48
48
  @description "Dialogue text content"
49
49
  @tier "presentation"
@@ -77,7 +77,7 @@ orbital GameMenuOrbital {
77
77
  }
78
78
 
79
79
  config {
80
- title : string = "Epic Quest"
80
+ title : string = ""
81
81
  @label "Title"
82
82
  @description "Menu title"
83
83
  @tier "presentation"
@@ -68,7 +68,7 @@ orbital ScoreDisplayOrbital {
68
68
  @label "Class Name"
69
69
  @description "Additional CSS classes"
70
70
  @tier "presentation"
71
- locale : string = "en-US"
71
+ locale : string
72
72
  @label "Locale"
73
73
  @description "Number formatting locale"
74
74
  @tier "presentation"