@almadar/std 16.187.0 → 16.188.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 (81) hide show
  1. package/behaviors/lolo/ui/core/.hand-authored.json +4 -0
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +138 -4
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +148 -8
  4. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +141 -3
  5. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +255 -2
  6. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +148 -1
  7. package/behaviors/lolo/ui/core/atoms/std-list.lolo +193 -1
  8. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +329 -0
  9. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +182 -1
  10. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +113 -3
  11. package/behaviors/lolo/ui/game/atoms/std-area-fill.lolo +93 -0
  12. package/behaviors/lolo/ui/game/atoms/std-loop-lock.lolo +79 -0
  13. package/behaviors/lolo/ui/game/atoms/std-pad-lock.lolo +93 -0
  14. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +14 -7
  15. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +21 -4
  16. package/behaviors/lolo/ui/game/atoms/std-velocity-gate.lolo +101 -0
  17. package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
  18. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  19. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  20. package/behaviors/registry/infra/atoms/std-data-erasure.orb +16 -8
  21. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  22. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  23. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +2 -1
  24. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +10 -5
  25. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +4 -2
  26. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  27. package/behaviors/registry/ui/core/atoms/std-board.orb +355 -2
  28. package/behaviors/registry/ui/core/atoms/std-browse.orb +304 -31
  29. package/behaviors/registry/ui/core/atoms/std-calendar.orb +344 -0
  30. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  31. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  32. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  33. package/behaviors/registry/ui/core/atoms/std-event-log.orb +773 -0
  34. package/behaviors/registry/ui/core/atoms/std-export.orb +4 -2
  35. package/behaviors/registry/ui/core/atoms/std-gallery.orb +390 -0
  36. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  37. package/behaviors/registry/ui/core/atoms/std-list.orb +451 -0
  38. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1141 -0
  39. package/behaviors/registry/ui/core/atoms/std-selection.orb +436 -0
  40. package/behaviors/registry/ui/core/atoms/std-tree.orb +292 -1
  41. package/behaviors/registry/ui/game/atoms/std-area-fill.orb +955 -0
  42. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
  43. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
  44. package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
  45. package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +785 -0
  46. package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +903 -0
  47. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +190 -44
  48. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +868 -637
  49. package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1040 -0
  50. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +8 -4
  51. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +6 -3
  52. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +10 -5
  53. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +8 -4
  54. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +8 -4
  55. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +7 -4
  56. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +8 -4
  57. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -6
  58. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +8 -4
  59. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +6 -3
  60. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
  61. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +2 -1
  62. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +2 -1
  63. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +2 -1
  64. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +2 -1
  65. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +2 -1
  66. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +2 -1
  67. package/dist/behaviors/exports-reader.js +7541 -3153
  68. package/dist/behaviors/functions/index.d.ts +598 -18
  69. package/dist/behaviors/functions/index.js +7524 -3154
  70. package/dist/behaviors/index.d.ts +1 -1
  71. package/dist/behaviors/index.js +7542 -3154
  72. package/dist/behaviors/query.js +7541 -3153
  73. package/dist/behaviors-embeddings.hash.json +3 -3
  74. package/dist/behaviors-embeddings.json +485 -461
  75. package/dist/behaviors-registry.json +2612 -934
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.js +7542 -3154
  78. package/dist/knob-embeddings.hash.json +3 -3
  79. package/dist/knob-embeddings.json +1 -1
  80. package/dist/registry/factory-signatures.json +1 -1
  81. package/package.json +1 -1
@@ -0,0 +1,1141 @@
1
+ {
2
+ "description": "std-record-detail — single primitive: detail-panel. Owns the fetch-one-record state machine (loading → viewing → error, with RETRY), the record counterpart to std-browse's collection machine. Consumers configure fields/sections/actions and the title/subtitle/status bindings; the atom fetches by the id carried on INIT and renders the panel. `detailLook` (panel default / slide-over / page) selects one of three render bodies. Pair with std-detail-layout for the back + breadcrumb chrome — that atom owns navigation, this one owns the record — exactly as a list page pairs std-browse with std-app-layout.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M11G7GKTBPP8VHM2QHYFXK9A": {
6
+ "bakedName": "RecordItem",
7
+ "curName": "RecordItem",
8
+ "id": "ent_01M11G7GKTBPP8VHM2QHYFXK9A",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M11G7GKT2W4J3T30YBM3SFZV": {
14
+ "bakedName": "EDIT",
15
+ "curName": "EDIT",
16
+ "id": "evt_01M11G7GKT2W4J3T30YBM3SFZV",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
20
+ "renames": []
21
+ },
22
+ "evt_01M11G7GKT3BDT1MGPXJQ3AZPK": {
23
+ "bakedName": "RETRY",
24
+ "curName": "RETRY",
25
+ "id": "evt_01M11G7GKT3BDT1MGPXJQ3AZPK",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
29
+ "renames": []
30
+ },
31
+ "evt_01M11G7GKTCPVY3J7BKGBCXK3T": {
32
+ "bakedName": "DELETE",
33
+ "curName": "DELETE",
34
+ "id": "evt_01M11G7GKTCPVY3J7BKGBCXK3T",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
38
+ "renames": []
39
+ },
40
+ "evt_01M11G7GKTPSHKRVR2KJCCXH83": {
41
+ "bakedName": "RecordItemLoaded",
42
+ "curName": "RecordItemLoaded",
43
+ "id": "evt_01M11G7GKTPSHKRVR2KJCCXH83",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
47
+ "renames": []
48
+ },
49
+ "evt_01M11G7GKTQS53CSYF3WN812EB": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01M11G7GKTQS53CSYF3WN812EB",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
56
+ "renames": []
57
+ },
58
+ "evt_01M11G7GKTW27F8E4B51MZXT3J": {
59
+ "bakedName": "RecordItemLoadFailed",
60
+ "curName": "RecordItemLoadFailed",
61
+ "id": "evt_01M11G7GKTW27F8E4B51MZXT3J",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
65
+ "renames": []
66
+ },
67
+ "evt_01M11JRVVZ5NTTZVC714X45YET": {
68
+ "bakedName": "CLOSE_VIEW",
69
+ "curName": "CLOSE_VIEW",
70
+ "id": "evt_01M11JRVVZ5NTTZVC714X45YET",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
74
+ "renames": []
75
+ },
76
+ "evt_01M11JRVVZSRPRJG40FASZ2Q9H": {
77
+ "bakedName": "OPEN_VIEW",
78
+ "curName": "OPEN_VIEW",
79
+ "id": "evt_01M11JRVVZSRPRJG40FASZ2Q9H",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M11G7GKT47CAAQ530NWE10AQ",
83
+ "renames": []
84
+ },
85
+ "orb_01M11G7GKT7RY3DH0JWRPW7G7M": {
86
+ "bakedName": "RecordItemOrbital",
87
+ "curName": "RecordItemOrbital",
88
+ "id": "orb_01M11G7GKT7RY3DH0JWRPW7G7M",
89
+ "kind": "orbital",
90
+ "owner": "workspace",
91
+ "renames": []
92
+ },
93
+ "pag_01M11G7GKTE2460QW8F66B5Z2D": {
94
+ "bakedName": "RecordItemDetailPage",
95
+ "curName": "RecordItemDetailPage",
96
+ "id": "pag_01M11G7GKTE2460QW8F66B5Z2D",
97
+ "kind": "page",
98
+ "owner": "workspace",
99
+ "renames": []
100
+ },
101
+ "trt_01M11G7GKT47CAAQ530NWE10AQ": {
102
+ "bakedName": "RecordItemDetail",
103
+ "curName": "RecordItemDetail",
104
+ "id": "trt_01M11G7GKT47CAAQ530NWE10AQ",
105
+ "kind": "trait",
106
+ "owner": "workspace",
107
+ "renames": []
108
+ }
109
+ },
110
+ "schemaVersion": 1
111
+ },
112
+ "name": "std-record-detail",
113
+ "orbitals": [
114
+ {
115
+ "entity": {
116
+ "fields": [
117
+ {
118
+ "name": "id",
119
+ "required": true,
120
+ "type": "string"
121
+ },
122
+ {
123
+ "description": "The record's title or identifier.",
124
+ "name": "name",
125
+ "required": true,
126
+ "synonyms": "title, label, heading",
127
+ "type": "string"
128
+ },
129
+ {
130
+ "description": "A textual explanation or summary of the record.",
131
+ "name": "description",
132
+ "synonyms": "summary, details, notes",
133
+ "type": "string"
134
+ },
135
+ {
136
+ "default": "active",
137
+ "description": "The record's current state.",
138
+ "name": "status",
139
+ "synonyms": "state, condition, stage",
140
+ "type": "string",
141
+ "values": [
142
+ "active",
143
+ "inactive",
144
+ "pending"
145
+ ]
146
+ },
147
+ {
148
+ "name": "createdAt",
149
+ "type": "string"
150
+ }
151
+ ],
152
+ "id": "ent_01M11G7GKTBPP8VHM2QHYFXK9A",
153
+ "name": "RecordItem",
154
+ "persistence": "runtime"
155
+ },
156
+ "id": "orb_01M11G7GKT7RY3DH0JWRPW7G7M",
157
+ "name": "RecordItemOrbital",
158
+ "pages": [
159
+ {
160
+ "id": "pag_01M11G7GKTE2460QW8F66B5Z2D",
161
+ "name": "RecordItemDetailPage",
162
+ "path": "/recorditems",
163
+ "traits": [
164
+ {
165
+ "ref": "RecordItemDetail",
166
+ "refId": "trt_01M11G7GKT47CAAQ530NWE10AQ"
167
+ }
168
+ ]
169
+ }
170
+ ],
171
+ "traits": [
172
+ {
173
+ "category": "interaction",
174
+ "config": {
175
+ "actions": {
176
+ "default": [
177
+ {
178
+ "event": "EDIT",
179
+ "label": "Edit",
180
+ "variant": "secondary"
181
+ },
182
+ {
183
+ "event": "DELETE",
184
+ "label": "Delete",
185
+ "variant": "danger"
186
+ }
187
+ ],
188
+ "description": "Buttons on the panel header. One primary at most; the rest collapse past maxInlineActions.",
189
+ "items": {
190
+ "properties": {
191
+ "event": {
192
+ "name": "event",
193
+ "required": true,
194
+ "type": "string"
195
+ },
196
+ "icon": {
197
+ "name": "icon",
198
+ "required": false,
199
+ "type": "string"
200
+ },
201
+ "label": {
202
+ "name": "label",
203
+ "required": true,
204
+ "type": "string"
205
+ },
206
+ "variant": {
207
+ "name": "variant",
208
+ "required": false,
209
+ "type": "string",
210
+ "values": [
211
+ "primary",
212
+ "secondary",
213
+ "ghost",
214
+ "danger"
215
+ ]
216
+ }
217
+ },
218
+ "type": "object"
219
+ },
220
+ "label": "What actions can users take on this record?",
221
+ "synonyms": "record actions, detail actions, panel buttons",
222
+ "tier": "presentation",
223
+ "type": "[RecordAction]"
224
+ },
225
+ "bodyContent": {
226
+ "default": {
227
+ "children": [
228
+ {
229
+ "actions": "@config.actions",
230
+ "entity": "@payload.data",
231
+ "fields": "@config.fields",
232
+ "initialData": "@payload.data",
233
+ "maxInlineActions": "@config.maxInlineActions",
234
+ "sections": "@config.sections",
235
+ "showActions": "@config.showActions",
236
+ "subtitle": "@entity.description",
237
+ "title": "@entity.name",
238
+ "type": "detail-panel"
239
+ }
240
+ ],
241
+ "direction": "vertical",
242
+ "gap": "lg",
243
+ "type": "stack"
244
+ },
245
+ "description": "Render-ui SExpr rendered after the record loads when detailLook = panel (the default). See slideOverBodyContent/pageBodyContent for the other looks; any may be overridden directly while inheriting the same trait, state machine, emits, and listens.",
246
+ "label": "Body content tree",
247
+ "tier": "internal",
248
+ "type": "render-ui"
249
+ },
250
+ "detailLook": {
251
+ "default": "panel",
252
+ "description": "Visual treatment for the record surface. panel = an inline detail-panel in the page flow (bodyContent); slide-over = the same panel as a right-hand drawer over the list behind it (slideOverBodyContent); page = a full-width record page with roomier spacing (pageBodyContent). Selecting a non-panel look swaps which body tree renders after the record loads; any body may still be overridden directly at the call site.",
253
+ "label": "Detail look",
254
+ "synonyms": "detail style, drawer, slide over, full page",
255
+ "tier": "presentation",
256
+ "type": "string",
257
+ "values": [
258
+ "panel",
259
+ "slide-over",
260
+ "page"
261
+ ]
262
+ },
263
+ "fields": {
264
+ "default": [
265
+ {
266
+ "header": "Name",
267
+ "key": "name"
268
+ },
269
+ {
270
+ "header": "Description",
271
+ "key": "description"
272
+ },
273
+ {
274
+ "header": "Status",
275
+ "key": "status"
276
+ },
277
+ {
278
+ "format": "date",
279
+ "header": "Created",
280
+ "key": "createdAt"
281
+ }
282
+ ],
283
+ "description": "Each entry maps one entity field to a labelled row in the panel. Unlike a list row, a detail panel SHOULD label every field — the value stands alone here with no column header or repeated row position to name it.",
284
+ "items": {
285
+ "properties": {
286
+ "format": {
287
+ "name": "format",
288
+ "required": false,
289
+ "type": "string",
290
+ "values": [
291
+ "date",
292
+ "currency",
293
+ "number",
294
+ "boolean",
295
+ "percent"
296
+ ]
297
+ },
298
+ "header": {
299
+ "name": "header",
300
+ "required": false,
301
+ "type": "string"
302
+ },
303
+ "key": {
304
+ "name": "key",
305
+ "required": true,
306
+ "type": "string"
307
+ }
308
+ },
309
+ "type": "object"
310
+ },
311
+ "label": "Which fields appear in the record panel?",
312
+ "synonyms": "detail fields, record fields, panel fields, shown fields",
313
+ "tier": "presentation",
314
+ "type": "[RecordFieldSpec]"
315
+ },
316
+ "include": {
317
+ "default": [],
318
+ "description": "Entity relation field names to hydrate on fetch, so panel fields can use dot-paths like owner.name. Empty = no hydration, the default.",
319
+ "items": {
320
+ "type": "string"
321
+ },
322
+ "label": "Which relation fields to hydrate?",
323
+ "synonyms": "relation hydration, populate relations, joined fields",
324
+ "tier": "internal",
325
+ "type": "[string]"
326
+ },
327
+ "maxInlineActions": {
328
+ "default": 3.0,
329
+ "description": "Actions beyond this count collapse into a '⋯' overflow menu.",
330
+ "label": "How many actions before collapsing?",
331
+ "synonyms": "inline actions limit, overflow threshold",
332
+ "tier": "presentation",
333
+ "type": "number"
334
+ },
335
+ "openOn": {
336
+ "default": "init",
337
+ "description": "init = a routed detail page; the record loads as soon as the page mounts (the default). event = an overlay that stays blank until a row-click OPEN_VIEW hands it an id, which is what a list-embedded slide-over needs — mounting an init-loading surface on a list page would fetch a record it has no id for.",
338
+ "label": "When does this surface load?",
339
+ "synonyms": "open on click, slide over, row click, blank until opened, list embedded",
340
+ "tier": "policy",
341
+ "type": "string",
342
+ "values": [
343
+ "init",
344
+ "event"
345
+ ]
346
+ },
347
+ "pageBodyContent": {
348
+ "default": {
349
+ "children": [
350
+ {
351
+ "actions": "@config.actions",
352
+ "entity": "@payload.data",
353
+ "fields": "@config.fields",
354
+ "initialData": "@payload.data",
355
+ "maxInlineActions": "@config.maxInlineActions",
356
+ "sections": "@config.sections",
357
+ "showActions": "@config.showActions",
358
+ "subtitle": "@entity.description",
359
+ "title": "@entity.name",
360
+ "type": "detail-panel"
361
+ }
362
+ ],
363
+ "className": "w-full max-w-4xl",
364
+ "direction": "vertical",
365
+ "gap": "lg",
366
+ "type": "stack"
367
+ },
368
+ "description": "Render-ui SExpr rendered after the record loads when detailLook = page: a full record page, width-capped so field rows do not stretch past a readable measure (Almadar_UI_Beauty.md §3).",
369
+ "label": "Page look body",
370
+ "tier": "internal",
371
+ "type": "render-ui"
372
+ },
373
+ "sections": {
374
+ "default": [],
375
+ "description": "Optional titled groups over `fields`, e.g. [{title: Contact, fields: [email, phone]}]. Group into sections of 3-5 once a record carries more than about seven fields — a flat list past that is the cognitive-load problem Almadar_UX.md §1.4 (Miller) describes. Empty = one ungrouped list, the default.",
376
+ "items": {
377
+ "properties": {
378
+ "fields": {
379
+ "items": {
380
+ "type": "string"
381
+ },
382
+ "name": "fields",
383
+ "required": false,
384
+ "type": "array"
385
+ },
386
+ "title": {
387
+ "name": "title",
388
+ "required": true,
389
+ "type": "string"
390
+ }
391
+ },
392
+ "type": "object"
393
+ },
394
+ "label": "How should the fields be grouped?",
395
+ "synonyms": "field groups, grouped fields, panel sections, fieldsets",
396
+ "tier": "presentation",
397
+ "type": "[RecordSection]"
398
+ },
399
+ "showActions": {
400
+ "default": true,
401
+ "description": "Set false for a read-only record view; a panel with actions nothing listens to is a dead affordance.",
402
+ "label": "Show the action buttons?",
403
+ "synonyms": "read only, hide actions, view only",
404
+ "tier": "presentation",
405
+ "type": "boolean"
406
+ },
407
+ "slideOverBodyContent": {
408
+ "default": {
409
+ "children": [
410
+ {
411
+ "actions": "@config.actions",
412
+ "entity": "@payload.data",
413
+ "fields": "@config.fields",
414
+ "initialData": "@payload.data",
415
+ "maxInlineActions": "@config.maxInlineActions",
416
+ "sections": "@config.sections",
417
+ "showActions": "@config.showActions",
418
+ "slideOver": true,
419
+ "subtitle": "@entity.description",
420
+ "title": "@entity.name",
421
+ "type": "detail-panel"
422
+ }
423
+ ],
424
+ "direction": "vertical",
425
+ "gap": "none",
426
+ "type": "stack"
427
+ },
428
+ "description": "Render-ui SExpr rendered after the record loads when detailLook = slide-over: the same panel as a right-hand drawer, so the list behind stays in place. Use when the record is a glance, not a workspace.",
429
+ "label": "Slide-over look body",
430
+ "tier": "internal",
431
+ "type": "render-ui"
432
+ },
433
+ "subtitleField": {
434
+ "default": "description",
435
+ "description": "Name of the field shown under the title (e.g. company, category). Leave at the default when the record has no meaningful second line.",
436
+ "label": "Which field is the subtitle?",
437
+ "synonyms": "subtitle field, secondary field, subheading",
438
+ "tier": "presentation",
439
+ "type": "string"
440
+ },
441
+ "titleField": {
442
+ "default": "name",
443
+ "description": "Name of the field on the loaded record shown as the panel title (e.g. contactName, subject, title).",
444
+ "label": "Which field is the record's title?",
445
+ "synonyms": "title field, heading field, name field, label field",
446
+ "tier": "presentation",
447
+ "type": "string"
448
+ }
449
+ },
450
+ "emits": [
451
+ {
452
+ "description": "Signals that the record has been successfully loaded.",
453
+ "event": "RecordItemLoaded",
454
+ "eventId": "evt_01M11G7GKTPSHKRVR2KJCCXH83",
455
+ "payloadSchema": [
456
+ {
457
+ "name": "data",
458
+ "type": "RecordItem"
459
+ },
460
+ {
461
+ "name": "totalCount",
462
+ "type": "number"
463
+ }
464
+ ],
465
+ "scope": "internal",
466
+ "synonyms": "loaded, received, ready, fetched",
467
+ "tier": "domain"
468
+ },
469
+ {
470
+ "description": "Indicates a failure to load the record.",
471
+ "event": "RecordItemLoadFailed",
472
+ "eventId": "evt_01M11G7GKTW27F8E4B51MZXT3J",
473
+ "payloadSchema": [
474
+ {
475
+ "name": "error",
476
+ "type": "string"
477
+ },
478
+ {
479
+ "name": "code",
480
+ "type": "string"
481
+ }
482
+ ],
483
+ "scope": "internal",
484
+ "synonyms": "error, failed, problem, unsuccessful",
485
+ "tier": "internal"
486
+ },
487
+ {
488
+ "description": "Signals a request to edit the record being viewed.",
489
+ "event": "EDIT",
490
+ "eventId": "evt_01M11G7GKT2W4J3T30YBM3SFZV",
491
+ "payloadSchema": [
492
+ {
493
+ "name": "id",
494
+ "required": true,
495
+ "type": "string"
496
+ },
497
+ {
498
+ "name": "row",
499
+ "properties": [
500
+ {
501
+ "name": "id",
502
+ "required": true,
503
+ "type": "string"
504
+ },
505
+ {
506
+ "name": "name",
507
+ "required": true,
508
+ "type": "string"
509
+ },
510
+ {
511
+ "name": "description",
512
+ "type": "string"
513
+ },
514
+ {
515
+ "name": "status",
516
+ "type": "string"
517
+ },
518
+ {
519
+ "name": "createdAt",
520
+ "type": "string"
521
+ }
522
+ ],
523
+ "type": "object"
524
+ }
525
+ ],
526
+ "scope": "external",
527
+ "synonyms": "modify, update, change",
528
+ "tier": "domain"
529
+ },
530
+ {
531
+ "description": "Signals a request to remove the record being viewed.",
532
+ "event": "DELETE",
533
+ "eventId": "evt_01M11G7GKTCPVY3J7BKGBCXK3T",
534
+ "payloadSchema": [
535
+ {
536
+ "name": "id",
537
+ "required": true,
538
+ "type": "string"
539
+ },
540
+ {
541
+ "name": "row",
542
+ "properties": [
543
+ {
544
+ "name": "id",
545
+ "required": true,
546
+ "type": "string"
547
+ },
548
+ {
549
+ "name": "name",
550
+ "required": true,
551
+ "type": "string"
552
+ },
553
+ {
554
+ "name": "description",
555
+ "type": "string"
556
+ },
557
+ {
558
+ "name": "status",
559
+ "type": "string"
560
+ },
561
+ {
562
+ "name": "createdAt",
563
+ "type": "string"
564
+ }
565
+ ],
566
+ "type": "object"
567
+ }
568
+ ],
569
+ "scope": "external",
570
+ "synonyms": "remove, discard, delete, archive",
571
+ "tier": "domain"
572
+ }
573
+ ],
574
+ "entityContract": {
575
+ "provides": [
576
+ "description",
577
+ "name"
578
+ ],
579
+ "requires": []
580
+ },
581
+ "entityRebindable": true,
582
+ "entityRefIds": {
583
+ "RecordItem": "ent_01M11G7GKTBPP8VHM2QHYFXK9A"
584
+ },
585
+ "id": "trt_01M11G7GKT47CAAQ530NWE10AQ",
586
+ "linkedEntity": "RecordItem",
587
+ "linkedEntityId": "ent_01M11G7GKTBPP8VHM2QHYFXK9A",
588
+ "name": "RecordItemDetail",
589
+ "scope": "instance",
590
+ "stateMachine": {
591
+ "events": [
592
+ {
593
+ "description": "Opens the detail surface for the record with this id.",
594
+ "id": "evt_01M11G7GKTQS53CSYF3WN812EB",
595
+ "key": "INIT",
596
+ "name": "Initialize",
597
+ "payloadSchema": [
598
+ {
599
+ "name": "id",
600
+ "type": "string"
601
+ }
602
+ ],
603
+ "synonyms": "open record, view record, show details, drill in",
604
+ "tier": "domain"
605
+ },
606
+ {
607
+ "description": "A row was opened from a list; shows that record in this surface.",
608
+ "id": "evt_01M11JRVVZSRPRJG40FASZ2Q9H",
609
+ "key": "OPEN_VIEW",
610
+ "name": "Open View",
611
+ "payloadSchema": [
612
+ {
613
+ "name": "id",
614
+ "required": true,
615
+ "type": "string"
616
+ },
617
+ {
618
+ "name": "row",
619
+ "type": "RecordItem"
620
+ }
621
+ ],
622
+ "synonyms": "open record, view row, show details, drill in, expand",
623
+ "tier": "domain"
624
+ },
625
+ {
626
+ "description": "Signals that the record has been successfully loaded.",
627
+ "id": "evt_01M11G7GKTPSHKRVR2KJCCXH83",
628
+ "key": "RecordItemLoaded",
629
+ "name": "RecordItem loaded",
630
+ "payloadSchema": [
631
+ {
632
+ "name": "data",
633
+ "type": "RecordItem"
634
+ },
635
+ {
636
+ "name": "totalCount",
637
+ "type": "number"
638
+ }
639
+ ],
640
+ "synonyms": "loaded, received, ready, fetched",
641
+ "tier": "domain"
642
+ },
643
+ {
644
+ "description": "Indicates a failure to load the record.",
645
+ "id": "evt_01M11G7GKTW27F8E4B51MZXT3J",
646
+ "key": "RecordItemLoadFailed",
647
+ "name": "RecordItem load failed",
648
+ "payloadSchema": [
649
+ {
650
+ "name": "error",
651
+ "type": "string"
652
+ },
653
+ {
654
+ "name": "code",
655
+ "type": "string"
656
+ }
657
+ ],
658
+ "synonyms": "error, failed, problem, unsuccessful",
659
+ "tier": "internal"
660
+ },
661
+ {
662
+ "description": "Closes the record surface and returns it to blank.",
663
+ "id": "evt_01M11JRVVZ5NTTZVC714X45YET",
664
+ "key": "CLOSE_VIEW",
665
+ "name": "Close View",
666
+ "synonyms": "close, dismiss, back to list",
667
+ "tier": "domain"
668
+ },
669
+ {
670
+ "description": "Re-runs the fetch after a failed load.",
671
+ "id": "evt_01M11G7GKT3BDT1MGPXJQ3AZPK",
672
+ "key": "RETRY",
673
+ "name": "Retry",
674
+ "synonyms": "try again, reload, refresh",
675
+ "tier": "domain"
676
+ },
677
+ {
678
+ "description": "Signals a request to edit the record being viewed.",
679
+ "id": "evt_01M11G7GKT2W4J3T30YBM3SFZV",
680
+ "key": "EDIT",
681
+ "name": "Edit",
682
+ "payloadSchema": [
683
+ {
684
+ "name": "id",
685
+ "required": true,
686
+ "type": "string"
687
+ },
688
+ {
689
+ "name": "row",
690
+ "properties": [
691
+ {
692
+ "name": "id",
693
+ "required": true,
694
+ "type": "string"
695
+ },
696
+ {
697
+ "name": "name",
698
+ "required": true,
699
+ "type": "string"
700
+ },
701
+ {
702
+ "name": "description",
703
+ "type": "string"
704
+ },
705
+ {
706
+ "name": "status",
707
+ "type": "string"
708
+ },
709
+ {
710
+ "name": "createdAt",
711
+ "type": "string"
712
+ }
713
+ ],
714
+ "type": "object"
715
+ }
716
+ ],
717
+ "synonyms": "modify, update, change",
718
+ "tier": "domain"
719
+ },
720
+ {
721
+ "description": "Signals a request to remove the record being viewed.",
722
+ "id": "evt_01M11G7GKTCPVY3J7BKGBCXK3T",
723
+ "key": "DELETE",
724
+ "name": "Delete",
725
+ "payloadSchema": [
726
+ {
727
+ "name": "id",
728
+ "required": true,
729
+ "type": "string"
730
+ },
731
+ {
732
+ "name": "row",
733
+ "properties": [
734
+ {
735
+ "name": "id",
736
+ "required": true,
737
+ "type": "string"
738
+ },
739
+ {
740
+ "name": "name",
741
+ "required": true,
742
+ "type": "string"
743
+ },
744
+ {
745
+ "name": "description",
746
+ "type": "string"
747
+ },
748
+ {
749
+ "name": "status",
750
+ "type": "string"
751
+ },
752
+ {
753
+ "name": "createdAt",
754
+ "type": "string"
755
+ }
756
+ ],
757
+ "type": "object"
758
+ }
759
+ ],
760
+ "synonyms": "remove, discard, delete, archive",
761
+ "tier": "domain"
762
+ }
763
+ ],
764
+ "states": [
765
+ {
766
+ "isInitial": true,
767
+ "name": "idle"
768
+ },
769
+ {
770
+ "name": "loading"
771
+ },
772
+ {
773
+ "name": "viewing"
774
+ },
775
+ {
776
+ "name": "error"
777
+ }
778
+ ],
779
+ "transitions": [
780
+ {
781
+ "effects": [
782
+ [
783
+ "set",
784
+ "@entity.id",
785
+ "@payload.id"
786
+ ],
787
+ [
788
+ "fetch",
789
+ "RecordItem",
790
+ {
791
+ "emit": {
792
+ "failure": "RecordItemLoadFailed",
793
+ "success": "RecordItemLoaded"
794
+ },
795
+ "id": "@payload.id",
796
+ "include": "@config.include"
797
+ }
798
+ ],
799
+ [
800
+ "render-ui",
801
+ "main",
802
+ {
803
+ "rows": 4.0,
804
+ "type": "skeleton"
805
+ }
806
+ ]
807
+ ],
808
+ "event": "INIT",
809
+ "eventId": "evt_01M11G7GKTQS53CSYF3WN812EB",
810
+ "from": "idle",
811
+ "guard": [
812
+ "=",
813
+ "@config.openOn",
814
+ "init"
815
+ ],
816
+ "to": "loading"
817
+ },
818
+ {
819
+ "effects": [
820
+ [
821
+ "set",
822
+ "@entity.id",
823
+ "@payload.id"
824
+ ],
825
+ [
826
+ "fetch",
827
+ "RecordItem",
828
+ {
829
+ "emit": {
830
+ "failure": "RecordItemLoadFailed",
831
+ "success": "RecordItemLoaded"
832
+ },
833
+ "id": "@payload.id",
834
+ "include": "@config.include"
835
+ }
836
+ ],
837
+ [
838
+ "render-ui",
839
+ "main",
840
+ {
841
+ "rows": 4.0,
842
+ "type": "skeleton"
843
+ }
844
+ ]
845
+ ],
846
+ "event": "OPEN_VIEW",
847
+ "eventId": "evt_01M11JRVVZSRPRJG40FASZ2Q9H",
848
+ "from": "idle",
849
+ "to": "loading"
850
+ },
851
+ {
852
+ "effects": [
853
+ [
854
+ "set",
855
+ "@entity.id",
856
+ "@payload.id"
857
+ ],
858
+ [
859
+ "fetch",
860
+ "RecordItem",
861
+ {
862
+ "emit": {
863
+ "failure": "RecordItemLoadFailed",
864
+ "success": "RecordItemLoaded"
865
+ },
866
+ "id": "@payload.id",
867
+ "include": "@config.include"
868
+ }
869
+ ],
870
+ [
871
+ "render-ui",
872
+ "main",
873
+ {
874
+ "rows": 4.0,
875
+ "type": "skeleton"
876
+ }
877
+ ]
878
+ ],
879
+ "event": "INIT",
880
+ "eventId": "evt_01M11G7GKTQS53CSYF3WN812EB",
881
+ "from": "loading",
882
+ "to": "loading"
883
+ },
884
+ {
885
+ "effects": [
886
+ [
887
+ "set",
888
+ "@entity.name",
889
+ [
890
+ "object/get",
891
+ "@payload.data",
892
+ "@config.titleField"
893
+ ]
894
+ ],
895
+ [
896
+ "set",
897
+ "@entity.description",
898
+ [
899
+ "object/get",
900
+ "@payload.data",
901
+ "@config.subtitleField"
902
+ ]
903
+ ],
904
+ [
905
+ "if",
906
+ [
907
+ "=",
908
+ "@config.detailLook",
909
+ "slide-over"
910
+ ],
911
+ [
912
+ "render-ui",
913
+ "main",
914
+ "@config.slideOverBodyContent"
915
+ ],
916
+ [
917
+ "if",
918
+ [
919
+ "=",
920
+ "@config.detailLook",
921
+ "page"
922
+ ],
923
+ [
924
+ "render-ui",
925
+ "main",
926
+ "@config.pageBodyContent"
927
+ ],
928
+ [
929
+ "render-ui",
930
+ "main",
931
+ "@config.bodyContent"
932
+ ]
933
+ ]
934
+ ]
935
+ ],
936
+ "event": "RecordItemLoaded",
937
+ "eventId": "evt_01M11G7GKTPSHKRVR2KJCCXH83",
938
+ "from": "loading",
939
+ "to": "viewing"
940
+ },
941
+ {
942
+ "effects": [
943
+ [
944
+ "render-ui",
945
+ "main",
946
+ {
947
+ "message": "@payload.error",
948
+ "title": "Couldn't load this record",
949
+ "type": "alert",
950
+ "variant": "error"
951
+ }
952
+ ]
953
+ ],
954
+ "event": "RecordItemLoadFailed",
955
+ "eventId": "evt_01M11G7GKTW27F8E4B51MZXT3J",
956
+ "from": "loading",
957
+ "to": "error"
958
+ },
959
+ {
960
+ "effects": [
961
+ [
962
+ "set",
963
+ "@entity.id",
964
+ "@payload.id"
965
+ ],
966
+ [
967
+ "fetch",
968
+ "RecordItem",
969
+ {
970
+ "emit": {
971
+ "failure": "RecordItemLoadFailed",
972
+ "success": "RecordItemLoaded"
973
+ },
974
+ "id": "@payload.id",
975
+ "include": "@config.include"
976
+ }
977
+ ]
978
+ ],
979
+ "event": "INIT",
980
+ "eventId": "evt_01M11G7GKTQS53CSYF3WN812EB",
981
+ "from": "viewing",
982
+ "to": "loading"
983
+ },
984
+ {
985
+ "effects": [
986
+ [
987
+ "set",
988
+ "@entity.name",
989
+ [
990
+ "object/get",
991
+ "@payload.data",
992
+ "@config.titleField"
993
+ ]
994
+ ],
995
+ [
996
+ "set",
997
+ "@entity.description",
998
+ [
999
+ "object/get",
1000
+ "@payload.data",
1001
+ "@config.subtitleField"
1002
+ ]
1003
+ ],
1004
+ [
1005
+ "if",
1006
+ [
1007
+ "=",
1008
+ "@config.detailLook",
1009
+ "slide-over"
1010
+ ],
1011
+ [
1012
+ "render-ui",
1013
+ "main",
1014
+ "@config.slideOverBodyContent"
1015
+ ],
1016
+ [
1017
+ "if",
1018
+ [
1019
+ "=",
1020
+ "@config.detailLook",
1021
+ "page"
1022
+ ],
1023
+ [
1024
+ "render-ui",
1025
+ "main",
1026
+ "@config.pageBodyContent"
1027
+ ],
1028
+ [
1029
+ "render-ui",
1030
+ "main",
1031
+ "@config.bodyContent"
1032
+ ]
1033
+ ]
1034
+ ]
1035
+ ],
1036
+ "event": "RecordItemLoaded",
1037
+ "eventId": "evt_01M11G7GKTPSHKRVR2KJCCXH83",
1038
+ "from": "viewing",
1039
+ "to": "viewing"
1040
+ },
1041
+ {
1042
+ "effects": [
1043
+ [
1044
+ "render-ui",
1045
+ "main",
1046
+ {
1047
+ "message": "@payload.error",
1048
+ "title": "Couldn't load this record",
1049
+ "type": "alert",
1050
+ "variant": "error"
1051
+ }
1052
+ ]
1053
+ ],
1054
+ "event": "RecordItemLoadFailed",
1055
+ "eventId": "evt_01M11G7GKTW27F8E4B51MZXT3J",
1056
+ "from": "viewing",
1057
+ "to": "error"
1058
+ },
1059
+ {
1060
+ "effects": [
1061
+ [
1062
+ "render-ui",
1063
+ "main",
1064
+ null
1065
+ ]
1066
+ ],
1067
+ "event": "CLOSE_VIEW",
1068
+ "eventId": "evt_01M11JRVVZ5NTTZVC714X45YET",
1069
+ "from": "viewing",
1070
+ "to": "idle"
1071
+ },
1072
+ {
1073
+ "effects": [
1074
+ [
1075
+ "set",
1076
+ "@entity.id",
1077
+ "@payload.id"
1078
+ ],
1079
+ [
1080
+ "fetch",
1081
+ "RecordItem",
1082
+ {
1083
+ "emit": {
1084
+ "failure": "RecordItemLoadFailed",
1085
+ "success": "RecordItemLoaded"
1086
+ },
1087
+ "id": "@payload.id",
1088
+ "include": "@config.include"
1089
+ }
1090
+ ],
1091
+ [
1092
+ "render-ui",
1093
+ "main",
1094
+ {
1095
+ "rows": 4.0,
1096
+ "type": "skeleton"
1097
+ }
1098
+ ]
1099
+ ],
1100
+ "event": "INIT",
1101
+ "eventId": "evt_01M11G7GKTQS53CSYF3WN812EB",
1102
+ "from": "error",
1103
+ "to": "loading"
1104
+ },
1105
+ {
1106
+ "effects": [
1107
+ [
1108
+ "fetch",
1109
+ "RecordItem",
1110
+ {
1111
+ "emit": {
1112
+ "failure": "RecordItemLoadFailed",
1113
+ "success": "RecordItemLoaded"
1114
+ },
1115
+ "id": "@entity.id",
1116
+ "include": "@config.include"
1117
+ }
1118
+ ],
1119
+ [
1120
+ "render-ui",
1121
+ "main",
1122
+ {
1123
+ "rows": 4.0,
1124
+ "type": "skeleton"
1125
+ }
1126
+ ]
1127
+ ],
1128
+ "event": "RETRY",
1129
+ "eventId": "evt_01M11G7GKT3BDT1MGPXJQ3AZPK",
1130
+ "from": "error",
1131
+ "to": "loading"
1132
+ }
1133
+ ]
1134
+ }
1135
+ }
1136
+ ]
1137
+ }
1138
+ ],
1139
+ "schemaVersion": 1,
1140
+ "version": "1.0.0"
1141
+ }