@almadar/std 3.1.0 → 3.1.1

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 (176) hide show
  1. package/dist/behaviors/exports/atoms/std-async.orb +420 -0
  2. package/dist/behaviors/exports/atoms/std-browse.orb +173 -0
  3. package/dist/behaviors/exports/atoms/std-cache-aside.orb +881 -0
  4. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +501 -0
  5. package/dist/behaviors/exports/atoms/std-collision.orb +616 -0
  6. package/dist/behaviors/exports/atoms/std-combat-log.orb +145 -0
  7. package/dist/behaviors/exports/atoms/std-combat.orb +410 -0
  8. package/dist/behaviors/exports/atoms/std-confirmation.orb +282 -0
  9. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +238 -0
  10. package/dist/behaviors/exports/atoms/std-display.orb +842 -0
  11. package/dist/behaviors/exports/atoms/std-drawer.orb +316 -0
  12. package/dist/behaviors/exports/atoms/std-filter.orb +442 -0
  13. package/dist/behaviors/exports/atoms/std-game-audio.orb +113 -0
  14. package/dist/behaviors/exports/atoms/std-game-canvas-2d.orb +135 -0
  15. package/dist/behaviors/exports/atoms/std-game-canvas-3d.orb +224 -0
  16. package/dist/behaviors/exports/atoms/std-game-hud.orb +151 -0
  17. package/dist/behaviors/exports/atoms/std-game-menu.orb +211 -0
  18. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +195 -0
  19. package/dist/behaviors/exports/atoms/std-gameflow.orb +318 -0
  20. package/dist/behaviors/exports/atoms/std-input.orb +629 -0
  21. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +255 -0
  22. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +631 -0
  23. package/dist/behaviors/exports/atoms/std-loading.orb +511 -0
  24. package/dist/behaviors/exports/atoms/std-modal.orb +270 -0
  25. package/dist/behaviors/exports/atoms/std-movement.orb +1037 -0
  26. package/dist/behaviors/exports/atoms/std-notification.orb +418 -0
  27. package/dist/behaviors/exports/atoms/std-overworld.orb +483 -0
  28. package/dist/behaviors/exports/atoms/std-pagination.orb +331 -0
  29. package/dist/behaviors/exports/atoms/std-physics2d.orb +419 -0
  30. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +257 -0
  31. package/dist/behaviors/exports/atoms/std-quest.orb +980 -0
  32. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +638 -0
  33. package/dist/behaviors/exports/atoms/std-score-board.orb +238 -0
  34. package/dist/behaviors/exports/atoms/std-score.orb +466 -0
  35. package/dist/behaviors/exports/atoms/std-search.orb +373 -0
  36. package/dist/behaviors/exports/atoms/std-selection.orb +759 -0
  37. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +183 -0
  38. package/dist/behaviors/exports/atoms/std-sort.orb +578 -0
  39. package/dist/behaviors/exports/atoms/std-sprite.orb +156 -0
  40. package/dist/behaviors/exports/atoms/std-tabs.orb +274 -0
  41. package/dist/behaviors/exports/atoms/std-timer.orb +1030 -0
  42. package/dist/behaviors/exports/atoms/std-undo.orb +694 -0
  43. package/dist/behaviors/exports/atoms/std-wizard.orb +666 -0
  44. package/dist/behaviors/exports/molecules/std-builder-game.orb +183 -0
  45. package/dist/behaviors/exports/molecules/std-cart.orb +591 -0
  46. package/dist/behaviors/exports/molecules/std-classifier-game.orb +183 -0
  47. package/dist/behaviors/exports/molecules/std-debugger-game.orb +183 -0
  48. package/dist/behaviors/exports/molecules/std-detail.orb +589 -0
  49. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +183 -0
  50. package/dist/behaviors/exports/molecules/std-geospatial.orb +649 -0
  51. package/dist/behaviors/exports/molecules/std-inventory.orb +853 -0
  52. package/dist/behaviors/exports/molecules/std-list.orb +954 -0
  53. package/dist/behaviors/exports/molecules/std-messaging.orb +585 -0
  54. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +183 -0
  55. package/dist/behaviors/exports/molecules/std-platformer-game.orb +496 -0
  56. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +527 -0
  57. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +183 -0
  58. package/dist/behaviors/exports/molecules/std-simulator-game.orb +183 -0
  59. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +443 -0
  60. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2296 -0
  61. package/dist/behaviors/exports/organisms/std-arcade-game.orb +833 -0
  62. package/dist/behaviors/exports/organisms/std-booking-system.orb +3977 -0
  63. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2214 -0
  64. package/dist/behaviors/exports/organisms/std-cms.orb +2644 -0
  65. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1394 -0
  66. package/dist/behaviors/exports/organisms/std-crm.orb +3541 -0
  67. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3134 -0
  68. package/dist/behaviors/exports/organisms/std-ecommerce.orb +3743 -0
  69. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +2385 -0
  70. package/dist/behaviors/exports/organisms/std-healthcare.orb +4679 -0
  71. package/dist/behaviors/exports/organisms/std-helpdesk.orb +2564 -0
  72. package/dist/behaviors/exports/organisms/std-hr-portal.orb +4029 -0
  73. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2297 -0
  74. package/dist/behaviors/exports/organisms/std-lms.orb +2854 -0
  75. package/dist/behaviors/exports/organisms/std-logic-training.orb +598 -0
  76. package/dist/behaviors/exports/organisms/std-platformer-app.orb +1569 -0
  77. package/dist/behaviors/exports/organisms/std-project-manager.orb +3021 -0
  78. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +743 -0
  79. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2380 -0
  80. package/dist/behaviors/exports/organisms/std-rpg-game.orb +2804 -0
  81. package/dist/behaviors/exports/organisms/std-social-feed.orb +1221 -0
  82. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1210 -0
  83. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1761 -0
  84. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +2217 -0
  85. package/dist/behaviors/exports-reader.d.ts +2 -0
  86. package/dist/behaviors/exports-reader.js +5 -3
  87. package/dist/behaviors/exports-reader.js.map +1 -1
  88. package/dist/behaviors/index.js +5 -3
  89. package/dist/behaviors/index.js.map +1 -1
  90. package/dist/exports/atoms/std-async.orb +420 -0
  91. package/dist/exports/atoms/std-browse.orb +173 -0
  92. package/dist/exports/atoms/std-cache-aside.orb +881 -0
  93. package/dist/exports/atoms/std-circuit-breaker.orb +501 -0
  94. package/dist/exports/atoms/std-collision.orb +616 -0
  95. package/dist/exports/atoms/std-combat-log.orb +145 -0
  96. package/dist/exports/atoms/std-combat.orb +410 -0
  97. package/dist/exports/atoms/std-confirmation.orb +282 -0
  98. package/dist/exports/atoms/std-dialogue-box.orb +238 -0
  99. package/dist/exports/atoms/std-display.orb +842 -0
  100. package/dist/exports/atoms/std-drawer.orb +316 -0
  101. package/dist/exports/atoms/std-filter.orb +442 -0
  102. package/dist/exports/atoms/std-game-audio.orb +113 -0
  103. package/dist/exports/atoms/std-game-canvas-2d.orb +135 -0
  104. package/dist/exports/atoms/std-game-canvas-3d.orb +224 -0
  105. package/dist/exports/atoms/std-game-hud.orb +151 -0
  106. package/dist/exports/atoms/std-game-menu.orb +211 -0
  107. package/dist/exports/atoms/std-game-over-screen.orb +195 -0
  108. package/dist/exports/atoms/std-gameflow.orb +318 -0
  109. package/dist/exports/atoms/std-input.orb +629 -0
  110. package/dist/exports/atoms/std-inventory-panel.orb +255 -0
  111. package/dist/exports/atoms/std-isometric-canvas.orb +631 -0
  112. package/dist/exports/atoms/std-loading.orb +511 -0
  113. package/dist/exports/atoms/std-modal.orb +270 -0
  114. package/dist/exports/atoms/std-movement.orb +1037 -0
  115. package/dist/exports/atoms/std-notification.orb +418 -0
  116. package/dist/exports/atoms/std-overworld.orb +483 -0
  117. package/dist/exports/atoms/std-pagination.orb +331 -0
  118. package/dist/exports/atoms/std-physics2d.orb +419 -0
  119. package/dist/exports/atoms/std-platformer-canvas.orb +257 -0
  120. package/dist/exports/atoms/std-quest.orb +980 -0
  121. package/dist/exports/atoms/std-rate-limiter.orb +638 -0
  122. package/dist/exports/atoms/std-score-board.orb +238 -0
  123. package/dist/exports/atoms/std-score.orb +466 -0
  124. package/dist/exports/atoms/std-search.orb +373 -0
  125. package/dist/exports/atoms/std-selection.orb +759 -0
  126. package/dist/exports/atoms/std-simulation-canvas.orb +183 -0
  127. package/dist/exports/atoms/std-sort.orb +578 -0
  128. package/dist/exports/atoms/std-sprite.orb +156 -0
  129. package/dist/exports/atoms/std-tabs.orb +274 -0
  130. package/dist/exports/atoms/std-timer.orb +1030 -0
  131. package/dist/exports/atoms/std-undo.orb +694 -0
  132. package/dist/exports/atoms/std-wizard.orb +666 -0
  133. package/dist/exports/molecules/std-builder-game.orb +183 -0
  134. package/dist/exports/molecules/std-cart.orb +591 -0
  135. package/dist/exports/molecules/std-classifier-game.orb +183 -0
  136. package/dist/exports/molecules/std-debugger-game.orb +183 -0
  137. package/dist/exports/molecules/std-detail.orb +589 -0
  138. package/dist/exports/molecules/std-event-handler-game.orb +183 -0
  139. package/dist/exports/molecules/std-geospatial.orb +649 -0
  140. package/dist/exports/molecules/std-inventory.orb +853 -0
  141. package/dist/exports/molecules/std-list.orb +954 -0
  142. package/dist/exports/molecules/std-messaging.orb +585 -0
  143. package/dist/exports/molecules/std-negotiator-game.orb +183 -0
  144. package/dist/exports/molecules/std-platformer-game.orb +496 -0
  145. package/dist/exports/molecules/std-puzzle-game.orb +527 -0
  146. package/dist/exports/molecules/std-sequencer-game.orb +183 -0
  147. package/dist/exports/molecules/std-simulator-game.orb +183 -0
  148. package/dist/exports/molecules/std-turn-based-battle.orb +443 -0
  149. package/dist/exports/organisms/std-api-gateway.orb +2296 -0
  150. package/dist/exports/organisms/std-arcade-game.orb +833 -0
  151. package/dist/exports/organisms/std-booking-system.orb +3977 -0
  152. package/dist/exports/organisms/std-cicd-pipeline.orb +2214 -0
  153. package/dist/exports/organisms/std-cms.orb +2644 -0
  154. package/dist/exports/organisms/std-coding-academy.orb +1394 -0
  155. package/dist/exports/organisms/std-crm.orb +3541 -0
  156. package/dist/exports/organisms/std-devops-dashboard.orb +3134 -0
  157. package/dist/exports/organisms/std-ecommerce.orb +3743 -0
  158. package/dist/exports/organisms/std-finance-tracker.orb +2385 -0
  159. package/dist/exports/organisms/std-healthcare.orb +4679 -0
  160. package/dist/exports/organisms/std-helpdesk.orb +2564 -0
  161. package/dist/exports/organisms/std-hr-portal.orb +4029 -0
  162. package/dist/exports/organisms/std-iot-dashboard.orb +2297 -0
  163. package/dist/exports/organisms/std-lms.orb +2854 -0
  164. package/dist/exports/organisms/std-logic-training.orb +598 -0
  165. package/dist/exports/organisms/std-platformer-app.orb +1569 -0
  166. package/dist/exports/organisms/std-project-manager.orb +3021 -0
  167. package/dist/exports/organisms/std-puzzle-app.orb +743 -0
  168. package/dist/exports/organisms/std-realtime-chat.orb +2380 -0
  169. package/dist/exports/organisms/std-rpg-game.orb +2804 -0
  170. package/dist/exports/organisms/std-social-feed.orb +1221 -0
  171. package/dist/exports/organisms/std-stem-lab.orb +1210 -0
  172. package/dist/exports/organisms/std-strategy-game.orb +1761 -0
  173. package/dist/exports/organisms/std-trading-dashboard.orb +2217 -0
  174. package/dist/index.js +5 -3
  175. package/dist/index.js.map +1 -1
  176. package/package.json +1 -1
@@ -0,0 +1,3021 @@
1
+ {
2
+ "name": "ProjectManagerApp",
3
+ "version": "1.0.0",
4
+ "orbitals": [
5
+ {
6
+ "name": "TaskOrbital",
7
+ "entity": {
8
+ "name": "Task",
9
+ "persistence": "runtime",
10
+ "fields": [
11
+ {
12
+ "name": "id",
13
+ "type": "string",
14
+ "required": true
15
+ },
16
+ {
17
+ "name": "title",
18
+ "type": "string",
19
+ "required": true
20
+ },
21
+ {
22
+ "name": "description",
23
+ "type": "string"
24
+ },
25
+ {
26
+ "name": "assignee",
27
+ "type": "string"
28
+ },
29
+ {
30
+ "name": "priority",
31
+ "type": "string",
32
+ "default": "medium"
33
+ },
34
+ {
35
+ "name": "status",
36
+ "type": "string",
37
+ "default": "todo"
38
+ },
39
+ {
40
+ "name": "storyPoints",
41
+ "type": "number",
42
+ "default": 0
43
+ },
44
+ {
45
+ "name": "dueDate",
46
+ "type": "string"
47
+ }
48
+ ]
49
+ },
50
+ "traits": [
51
+ {
52
+ "name": "TaskBrowse",
53
+ "linkedEntity": "Task",
54
+ "category": "interaction",
55
+ "listens": [
56
+ {
57
+ "event": "TASK_CREATED",
58
+ "triggers": "TASK_CREATED"
59
+ },
60
+ {
61
+ "event": "TASK_UPDATED",
62
+ "triggers": "TASK_UPDATED"
63
+ },
64
+ {
65
+ "event": "ASSIGN_TASK",
66
+ "triggers": "INIT",
67
+ "scope": "external"
68
+ }
69
+ ],
70
+ "stateMachine": {
71
+ "states": [
72
+ {
73
+ "name": "browsing",
74
+ "isInitial": true
75
+ },
76
+ {
77
+ "name": "deleting"
78
+ }
79
+ ],
80
+ "events": [
81
+ {
82
+ "key": "INIT",
83
+ "name": "Initialize"
84
+ },
85
+ {
86
+ "key": "CREATE",
87
+ "name": "CREATE"
88
+ },
89
+ {
90
+ "key": "VIEW",
91
+ "name": "VIEW",
92
+ "payload": [
93
+ {
94
+ "name": "id",
95
+ "type": "string",
96
+ "required": true
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "key": "EDIT",
102
+ "name": "EDIT",
103
+ "payload": [
104
+ {
105
+ "name": "id",
106
+ "type": "string",
107
+ "required": true
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "key": "DELETE",
113
+ "name": "DELETE",
114
+ "payload": [
115
+ {
116
+ "name": "id",
117
+ "type": "string",
118
+ "required": true
119
+ }
120
+ ]
121
+ },
122
+ {
123
+ "key": "TASK_CREATED",
124
+ "name": "TASK_CREATED",
125
+ "payload": [
126
+ {
127
+ "name": "data",
128
+ "type": "object",
129
+ "required": true
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "key": "TASK_UPDATED",
135
+ "name": "TASK_UPDATED",
136
+ "payload": [
137
+ {
138
+ "name": "data",
139
+ "type": "object",
140
+ "required": true
141
+ }
142
+ ]
143
+ },
144
+ {
145
+ "key": "CONFIRM_DELETE",
146
+ "name": "Confirm Delete"
147
+ },
148
+ {
149
+ "key": "CANCEL",
150
+ "name": "Cancel"
151
+ },
152
+ {
153
+ "key": "CLOSE",
154
+ "name": "Close"
155
+ }
156
+ ],
157
+ "transitions": [
158
+ {
159
+ "from": "browsing",
160
+ "to": "browsing",
161
+ "event": "INIT",
162
+ "effects": [
163
+ [
164
+ "fetch",
165
+ "Task"
166
+ ],
167
+ [
168
+ "render-ui",
169
+ "main",
170
+ {
171
+ "type": "stack",
172
+ "direction": "vertical",
173
+ "gap": "lg",
174
+ "children": [
175
+ {
176
+ "type": "stack",
177
+ "direction": "horizontal",
178
+ "gap": "md",
179
+ "justify": "space-between",
180
+ "children": [
181
+ {
182
+ "type": "stack",
183
+ "direction": "horizontal",
184
+ "gap": "sm",
185
+ "align": "center",
186
+ "children": [
187
+ {
188
+ "type": "icon",
189
+ "name": "check-square",
190
+ "size": "lg"
191
+ },
192
+ {
193
+ "type": "typography",
194
+ "content": "Tasks",
195
+ "variant": "h2"
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "type": "stack",
201
+ "direction": "horizontal",
202
+ "gap": "sm",
203
+ "children": [
204
+ {
205
+ "type": "button",
206
+ "label": "Create Task",
207
+ "event": "CREATE",
208
+ "variant": "primary",
209
+ "icon": "plus"
210
+ }
211
+ ]
212
+ }
213
+ ]
214
+ },
215
+ {
216
+ "type": "divider"
217
+ },
218
+ {
219
+ "type": "data-grid",
220
+ "entity": "Task",
221
+ "emptyIcon": "inbox",
222
+ "emptyTitle": "No tasks yet",
223
+ "emptyDescription": "Create your first task to get started.",
224
+ "itemActions": [
225
+ {
226
+ "label": "View",
227
+ "event": "VIEW"
228
+ },
229
+ {
230
+ "label": "Edit",
231
+ "event": "EDIT"
232
+ },
233
+ {
234
+ "label": "Delete",
235
+ "event": "DELETE",
236
+ "variant": "danger"
237
+ }
238
+ ],
239
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
240
+ "children": [
241
+ {
242
+ "type": "stack",
243
+ "direction": "vertical",
244
+ "gap": "sm",
245
+ "children": [
246
+ {
247
+ "type": "stack",
248
+ "direction": "horizontal",
249
+ "justify": "space-between",
250
+ "align": "center",
251
+ "children": [
252
+ {
253
+ "type": "stack",
254
+ "direction": "horizontal",
255
+ "gap": "sm",
256
+ "align": "center",
257
+ "children": [
258
+ {
259
+ "type": "icon",
260
+ "name": "check-square",
261
+ "size": "sm"
262
+ },
263
+ {
264
+ "type": "typography",
265
+ "variant": "h4",
266
+ "content": "@entity.title"
267
+ }
268
+ ]
269
+ },
270
+ {
271
+ "type": "badge",
272
+ "label": "@entity.description"
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "type": "typography",
278
+ "variant": "caption",
279
+ "color": "muted",
280
+ "content": "@entity.assignee"
281
+ }
282
+ ]
283
+ }
284
+ ]
285
+ }
286
+ ]
287
+ }
288
+ ]
289
+ ]
290
+ },
291
+ {
292
+ "from": "browsing",
293
+ "to": "browsing",
294
+ "event": "TASK_CREATED",
295
+ "effects": [
296
+ [
297
+ "fetch",
298
+ "Task"
299
+ ]
300
+ ]
301
+ },
302
+ {
303
+ "from": "browsing",
304
+ "to": "browsing",
305
+ "event": "TASK_UPDATED",
306
+ "effects": [
307
+ [
308
+ "fetch",
309
+ "Task"
310
+ ]
311
+ ]
312
+ },
313
+ {
314
+ "from": "browsing",
315
+ "to": "deleting",
316
+ "event": "DELETE",
317
+ "effects": [
318
+ [
319
+ "fetch",
320
+ "Task",
321
+ "@payload.id"
322
+ ],
323
+ [
324
+ "render-ui",
325
+ "modal",
326
+ {
327
+ "type": "stack",
328
+ "direction": "vertical",
329
+ "gap": "md",
330
+ "children": [
331
+ {
332
+ "type": "stack",
333
+ "direction": "horizontal",
334
+ "gap": "sm",
335
+ "children": [
336
+ {
337
+ "type": "icon",
338
+ "name": "trash-2",
339
+ "size": "md"
340
+ },
341
+ {
342
+ "type": "typography",
343
+ "content": "Delete Task",
344
+ "variant": "h3"
345
+ }
346
+ ]
347
+ },
348
+ {
349
+ "type": "divider"
350
+ },
351
+ {
352
+ "type": "typography",
353
+ "content": "Are you sure you want to delete this task?",
354
+ "variant": "body"
355
+ },
356
+ {
357
+ "type": "stack",
358
+ "direction": "horizontal",
359
+ "gap": "sm",
360
+ "justify": "end",
361
+ "children": [
362
+ {
363
+ "type": "button",
364
+ "label": "Cancel",
365
+ "event": "CANCEL",
366
+ "variant": "ghost"
367
+ },
368
+ {
369
+ "type": "button",
370
+ "label": "Delete",
371
+ "event": "CONFIRM_DELETE",
372
+ "variant": "danger",
373
+ "icon": "trash"
374
+ }
375
+ ]
376
+ }
377
+ ]
378
+ }
379
+ ]
380
+ ]
381
+ },
382
+ {
383
+ "from": "deleting",
384
+ "to": "browsing",
385
+ "event": "CONFIRM_DELETE",
386
+ "effects": [
387
+ [
388
+ "persist",
389
+ "delete",
390
+ "Task",
391
+ "@entity.id"
392
+ ],
393
+ [
394
+ "render-ui",
395
+ "modal",
396
+ null
397
+ ],
398
+ [
399
+ "fetch",
400
+ "Task"
401
+ ],
402
+ [
403
+ "notify",
404
+ "Task deleted successfully"
405
+ ]
406
+ ]
407
+ },
408
+ {
409
+ "from": "deleting",
410
+ "to": "browsing",
411
+ "event": "CANCEL",
412
+ "effects": [
413
+ [
414
+ "render-ui",
415
+ "modal",
416
+ null
417
+ ]
418
+ ]
419
+ },
420
+ {
421
+ "from": "deleting",
422
+ "to": "browsing",
423
+ "event": "CLOSE",
424
+ "effects": [
425
+ [
426
+ "render-ui",
427
+ "modal",
428
+ null
429
+ ]
430
+ ]
431
+ }
432
+ ]
433
+ }
434
+ },
435
+ {
436
+ "name": "TaskCreate",
437
+ "linkedEntity": "Task",
438
+ "category": "interaction",
439
+ "emits": [
440
+ {
441
+ "event": "TASK_CREATED"
442
+ }
443
+ ],
444
+ "stateMachine": {
445
+ "states": [
446
+ {
447
+ "name": "closed",
448
+ "isInitial": true
449
+ },
450
+ {
451
+ "name": "open"
452
+ }
453
+ ],
454
+ "events": [
455
+ {
456
+ "key": "INIT",
457
+ "name": "Initialize"
458
+ },
459
+ {
460
+ "key": "CREATE",
461
+ "name": "Open"
462
+ },
463
+ {
464
+ "key": "CLOSE",
465
+ "name": "Close"
466
+ },
467
+ {
468
+ "key": "SAVE",
469
+ "name": "Save",
470
+ "payload": [
471
+ {
472
+ "name": "data",
473
+ "type": "object",
474
+ "required": true
475
+ }
476
+ ]
477
+ }
478
+ ],
479
+ "transitions": [
480
+ {
481
+ "from": "closed",
482
+ "to": "closed",
483
+ "event": "INIT",
484
+ "effects": [
485
+ [
486
+ "fetch",
487
+ "Task"
488
+ ]
489
+ ]
490
+ },
491
+ {
492
+ "from": "closed",
493
+ "to": "open",
494
+ "event": "CREATE",
495
+ "effects": [
496
+ [
497
+ "fetch",
498
+ "Task"
499
+ ],
500
+ [
501
+ "render-ui",
502
+ "modal",
503
+ {
504
+ "type": "stack",
505
+ "direction": "vertical",
506
+ "gap": "md",
507
+ "children": [
508
+ {
509
+ "type": "stack",
510
+ "direction": "horizontal",
511
+ "gap": "sm",
512
+ "children": [
513
+ {
514
+ "type": "icon",
515
+ "name": "plus-circle",
516
+ "size": "md"
517
+ },
518
+ {
519
+ "type": "typography",
520
+ "content": "Create Task",
521
+ "variant": "h3"
522
+ }
523
+ ]
524
+ },
525
+ {
526
+ "type": "divider"
527
+ },
528
+ {
529
+ "type": "form-section",
530
+ "entity": "Task",
531
+ "mode": "create",
532
+ "submitEvent": "SAVE",
533
+ "cancelEvent": "CLOSE",
534
+ "fields": [
535
+ "title",
536
+ "description",
537
+ "assignee",
538
+ "priority",
539
+ "status",
540
+ "storyPoints",
541
+ "dueDate"
542
+ ]
543
+ }
544
+ ]
545
+ }
546
+ ]
547
+ ]
548
+ },
549
+ {
550
+ "from": "open",
551
+ "to": "closed",
552
+ "event": "CLOSE",
553
+ "effects": [
554
+ [
555
+ "render-ui",
556
+ "modal",
557
+ null
558
+ ]
559
+ ]
560
+ },
561
+ {
562
+ "from": "open",
563
+ "to": "closed",
564
+ "event": "SAVE",
565
+ "effects": [
566
+ [
567
+ "persist",
568
+ "create",
569
+ "Task",
570
+ "@payload.data"
571
+ ],
572
+ [
573
+ "fetch",
574
+ "Task"
575
+ ],
576
+ [
577
+ "render-ui",
578
+ "modal",
579
+ null
580
+ ],
581
+ [
582
+ "emit",
583
+ "TASK_CREATED"
584
+ ],
585
+ [
586
+ "notify",
587
+ "Task created successfully"
588
+ ]
589
+ ]
590
+ }
591
+ ]
592
+ }
593
+ },
594
+ {
595
+ "name": "TaskEdit",
596
+ "linkedEntity": "Task",
597
+ "category": "interaction",
598
+ "emits": [
599
+ {
600
+ "event": "TASK_UPDATED"
601
+ }
602
+ ],
603
+ "stateMachine": {
604
+ "states": [
605
+ {
606
+ "name": "closed",
607
+ "isInitial": true
608
+ },
609
+ {
610
+ "name": "open"
611
+ }
612
+ ],
613
+ "events": [
614
+ {
615
+ "key": "INIT",
616
+ "name": "Initialize"
617
+ },
618
+ {
619
+ "key": "EDIT",
620
+ "name": "Open",
621
+ "payload": [
622
+ {
623
+ "name": "id",
624
+ "type": "string",
625
+ "required": true
626
+ }
627
+ ]
628
+ },
629
+ {
630
+ "key": "CLOSE",
631
+ "name": "Close"
632
+ },
633
+ {
634
+ "key": "SAVE",
635
+ "name": "Save",
636
+ "payload": [
637
+ {
638
+ "name": "data",
639
+ "type": "object",
640
+ "required": true
641
+ }
642
+ ]
643
+ }
644
+ ],
645
+ "transitions": [
646
+ {
647
+ "from": "closed",
648
+ "to": "closed",
649
+ "event": "INIT",
650
+ "effects": [
651
+ [
652
+ "fetch",
653
+ "Task"
654
+ ]
655
+ ]
656
+ },
657
+ {
658
+ "from": "closed",
659
+ "to": "open",
660
+ "event": "EDIT",
661
+ "effects": [
662
+ [
663
+ "fetch",
664
+ "Task",
665
+ "@payload.id"
666
+ ],
667
+ [
668
+ "render-ui",
669
+ "modal",
670
+ {
671
+ "type": "stack",
672
+ "direction": "vertical",
673
+ "gap": "md",
674
+ "children": [
675
+ {
676
+ "type": "stack",
677
+ "direction": "horizontal",
678
+ "gap": "sm",
679
+ "children": [
680
+ {
681
+ "type": "icon",
682
+ "name": "edit",
683
+ "size": "md"
684
+ },
685
+ {
686
+ "type": "typography",
687
+ "content": "Edit Task",
688
+ "variant": "h3"
689
+ }
690
+ ]
691
+ },
692
+ {
693
+ "type": "divider"
694
+ },
695
+ {
696
+ "type": "form-section",
697
+ "entity": "Task",
698
+ "mode": "edit",
699
+ "submitEvent": "SAVE",
700
+ "cancelEvent": "CLOSE",
701
+ "fields": [
702
+ "title",
703
+ "description",
704
+ "assignee",
705
+ "priority",
706
+ "status",
707
+ "storyPoints",
708
+ "dueDate"
709
+ ]
710
+ }
711
+ ]
712
+ }
713
+ ]
714
+ ]
715
+ },
716
+ {
717
+ "from": "open",
718
+ "to": "closed",
719
+ "event": "CLOSE",
720
+ "effects": [
721
+ [
722
+ "render-ui",
723
+ "modal",
724
+ null
725
+ ]
726
+ ]
727
+ },
728
+ {
729
+ "from": "open",
730
+ "to": "closed",
731
+ "event": "SAVE",
732
+ "effects": [
733
+ [
734
+ "persist",
735
+ "update",
736
+ "Task",
737
+ "@payload.data"
738
+ ],
739
+ [
740
+ "fetch",
741
+ "Task"
742
+ ],
743
+ [
744
+ "render-ui",
745
+ "modal",
746
+ null
747
+ ],
748
+ [
749
+ "emit",
750
+ "TASK_UPDATED"
751
+ ],
752
+ [
753
+ "notify",
754
+ "Task updated successfully"
755
+ ]
756
+ ]
757
+ }
758
+ ]
759
+ }
760
+ },
761
+ {
762
+ "name": "TaskView",
763
+ "linkedEntity": "Task",
764
+ "category": "interaction",
765
+ "stateMachine": {
766
+ "states": [
767
+ {
768
+ "name": "closed",
769
+ "isInitial": true
770
+ },
771
+ {
772
+ "name": "open"
773
+ }
774
+ ],
775
+ "events": [
776
+ {
777
+ "key": "INIT",
778
+ "name": "Initialize"
779
+ },
780
+ {
781
+ "key": "VIEW",
782
+ "name": "Open",
783
+ "payload": [
784
+ {
785
+ "name": "id",
786
+ "type": "string",
787
+ "required": true
788
+ }
789
+ ]
790
+ },
791
+ {
792
+ "key": "CLOSE",
793
+ "name": "Close"
794
+ }
795
+ ],
796
+ "transitions": [
797
+ {
798
+ "from": "closed",
799
+ "to": "closed",
800
+ "event": "INIT",
801
+ "effects": [
802
+ [
803
+ "fetch",
804
+ "Task"
805
+ ]
806
+ ]
807
+ },
808
+ {
809
+ "from": "closed",
810
+ "to": "open",
811
+ "event": "VIEW",
812
+ "effects": [
813
+ [
814
+ "fetch",
815
+ "Task",
816
+ "@payload.id"
817
+ ],
818
+ [
819
+ "render-ui",
820
+ "modal",
821
+ {
822
+ "type": "stack",
823
+ "direction": "vertical",
824
+ "gap": "md",
825
+ "children": [
826
+ {
827
+ "type": "stack",
828
+ "direction": "horizontal",
829
+ "gap": "sm",
830
+ "align": "center",
831
+ "children": [
832
+ {
833
+ "type": "icon",
834
+ "name": "eye",
835
+ "size": "md"
836
+ },
837
+ {
838
+ "type": "typography",
839
+ "variant": "h3",
840
+ "content": "@entity.title"
841
+ }
842
+ ]
843
+ },
844
+ {
845
+ "type": "divider"
846
+ },
847
+ {
848
+ "type": "stack",
849
+ "direction": "horizontal",
850
+ "gap": "md",
851
+ "children": [
852
+ {
853
+ "type": "typography",
854
+ "variant": "caption",
855
+ "content": "Title"
856
+ },
857
+ {
858
+ "type": "typography",
859
+ "variant": "body",
860
+ "content": "@entity.title"
861
+ }
862
+ ]
863
+ },
864
+ {
865
+ "type": "stack",
866
+ "direction": "horizontal",
867
+ "gap": "md",
868
+ "children": [
869
+ {
870
+ "type": "typography",
871
+ "variant": "caption",
872
+ "content": "Description"
873
+ },
874
+ {
875
+ "type": "typography",
876
+ "variant": "body",
877
+ "content": "@entity.description"
878
+ }
879
+ ]
880
+ },
881
+ {
882
+ "type": "stack",
883
+ "direction": "horizontal",
884
+ "gap": "md",
885
+ "children": [
886
+ {
887
+ "type": "typography",
888
+ "variant": "caption",
889
+ "content": "Assignee"
890
+ },
891
+ {
892
+ "type": "typography",
893
+ "variant": "body",
894
+ "content": "@entity.assignee"
895
+ }
896
+ ]
897
+ },
898
+ {
899
+ "type": "stack",
900
+ "direction": "horizontal",
901
+ "gap": "md",
902
+ "children": [
903
+ {
904
+ "type": "typography",
905
+ "variant": "caption",
906
+ "content": "Priority"
907
+ },
908
+ {
909
+ "type": "typography",
910
+ "variant": "body",
911
+ "content": "@entity.priority"
912
+ }
913
+ ]
914
+ },
915
+ {
916
+ "type": "stack",
917
+ "direction": "horizontal",
918
+ "gap": "md",
919
+ "children": [
920
+ {
921
+ "type": "typography",
922
+ "variant": "caption",
923
+ "content": "Status"
924
+ },
925
+ {
926
+ "type": "typography",
927
+ "variant": "body",
928
+ "content": "@entity.status"
929
+ }
930
+ ]
931
+ },
932
+ {
933
+ "type": "stack",
934
+ "direction": "horizontal",
935
+ "gap": "md",
936
+ "children": [
937
+ {
938
+ "type": "typography",
939
+ "variant": "caption",
940
+ "content": "StoryPoints"
941
+ },
942
+ {
943
+ "type": "typography",
944
+ "variant": "body",
945
+ "content": "@entity.storyPoints"
946
+ }
947
+ ]
948
+ },
949
+ {
950
+ "type": "stack",
951
+ "direction": "horizontal",
952
+ "gap": "md",
953
+ "children": [
954
+ {
955
+ "type": "typography",
956
+ "variant": "caption",
957
+ "content": "DueDate"
958
+ },
959
+ {
960
+ "type": "typography",
961
+ "variant": "body",
962
+ "content": "@entity.dueDate"
963
+ }
964
+ ]
965
+ },
966
+ {
967
+ "type": "divider"
968
+ },
969
+ {
970
+ "type": "stack",
971
+ "direction": "horizontal",
972
+ "gap": "sm",
973
+ "justify": "end",
974
+ "children": [
975
+ {
976
+ "type": "button",
977
+ "label": "Edit",
978
+ "event": "EDIT",
979
+ "variant": "primary",
980
+ "icon": "edit"
981
+ },
982
+ {
983
+ "type": "button",
984
+ "label": "Close",
985
+ "event": "CLOSE",
986
+ "variant": "ghost"
987
+ }
988
+ ]
989
+ }
990
+ ]
991
+ }
992
+ ]
993
+ ]
994
+ },
995
+ {
996
+ "from": "open",
997
+ "to": "closed",
998
+ "event": "CLOSE",
999
+ "effects": [
1000
+ [
1001
+ "render-ui",
1002
+ "modal",
1003
+ null
1004
+ ]
1005
+ ]
1006
+ }
1007
+ ]
1008
+ }
1009
+ }
1010
+ ],
1011
+ "pages": [
1012
+ {
1013
+ "name": "TasksPage",
1014
+ "path": "/tasks",
1015
+ "isInitial": true,
1016
+ "traits": [
1017
+ {
1018
+ "ref": "TaskBrowse"
1019
+ },
1020
+ {
1021
+ "ref": "TaskCreate"
1022
+ },
1023
+ {
1024
+ "ref": "TaskEdit"
1025
+ },
1026
+ {
1027
+ "ref": "TaskView"
1028
+ }
1029
+ ]
1030
+ }
1031
+ ]
1032
+ },
1033
+ {
1034
+ "name": "SprintOrbital",
1035
+ "entity": {
1036
+ "name": "Sprint",
1037
+ "persistence": "runtime",
1038
+ "fields": [
1039
+ {
1040
+ "name": "id",
1041
+ "type": "string",
1042
+ "required": true
1043
+ },
1044
+ {
1045
+ "name": "name",
1046
+ "type": "string",
1047
+ "required": true
1048
+ },
1049
+ {
1050
+ "name": "startDate",
1051
+ "type": "string",
1052
+ "required": true
1053
+ },
1054
+ {
1055
+ "name": "endDate",
1056
+ "type": "string",
1057
+ "required": true
1058
+ },
1059
+ {
1060
+ "name": "goal",
1061
+ "type": "string"
1062
+ },
1063
+ {
1064
+ "name": "status",
1065
+ "type": "string",
1066
+ "default": "planning"
1067
+ },
1068
+ {
1069
+ "name": "taskCount",
1070
+ "type": "number",
1071
+ "default": 0
1072
+ }
1073
+ ]
1074
+ },
1075
+ "traits": [
1076
+ {
1077
+ "name": "SprintBrowse",
1078
+ "linkedEntity": "Sprint",
1079
+ "category": "interaction",
1080
+ "listens": [
1081
+ {
1082
+ "event": "SPRINT_CREATED",
1083
+ "triggers": "SPRINT_CREATED"
1084
+ },
1085
+ {
1086
+ "event": "SPRINT_UPDATED",
1087
+ "triggers": "SPRINT_UPDATED"
1088
+ }
1089
+ ],
1090
+ "stateMachine": {
1091
+ "states": [
1092
+ {
1093
+ "name": "browsing",
1094
+ "isInitial": true
1095
+ },
1096
+ {
1097
+ "name": "deleting"
1098
+ }
1099
+ ],
1100
+ "events": [
1101
+ {
1102
+ "key": "INIT",
1103
+ "name": "Initialize"
1104
+ },
1105
+ {
1106
+ "key": "CREATE",
1107
+ "name": "CREATE"
1108
+ },
1109
+ {
1110
+ "key": "VIEW",
1111
+ "name": "VIEW",
1112
+ "payload": [
1113
+ {
1114
+ "name": "id",
1115
+ "type": "string",
1116
+ "required": true
1117
+ }
1118
+ ]
1119
+ },
1120
+ {
1121
+ "key": "EDIT",
1122
+ "name": "EDIT",
1123
+ "payload": [
1124
+ {
1125
+ "name": "id",
1126
+ "type": "string",
1127
+ "required": true
1128
+ }
1129
+ ]
1130
+ },
1131
+ {
1132
+ "key": "DELETE",
1133
+ "name": "DELETE",
1134
+ "payload": [
1135
+ {
1136
+ "name": "id",
1137
+ "type": "string",
1138
+ "required": true
1139
+ }
1140
+ ]
1141
+ },
1142
+ {
1143
+ "key": "SPRINT_CREATED",
1144
+ "name": "SPRINT_CREATED",
1145
+ "payload": [
1146
+ {
1147
+ "name": "data",
1148
+ "type": "object",
1149
+ "required": true
1150
+ }
1151
+ ]
1152
+ },
1153
+ {
1154
+ "key": "SPRINT_UPDATED",
1155
+ "name": "SPRINT_UPDATED",
1156
+ "payload": [
1157
+ {
1158
+ "name": "data",
1159
+ "type": "object",
1160
+ "required": true
1161
+ }
1162
+ ]
1163
+ },
1164
+ {
1165
+ "key": "CONFIRM_DELETE",
1166
+ "name": "Confirm Delete"
1167
+ },
1168
+ {
1169
+ "key": "CANCEL",
1170
+ "name": "Cancel"
1171
+ },
1172
+ {
1173
+ "key": "CLOSE",
1174
+ "name": "Close"
1175
+ }
1176
+ ],
1177
+ "transitions": [
1178
+ {
1179
+ "from": "browsing",
1180
+ "to": "browsing",
1181
+ "event": "INIT",
1182
+ "effects": [
1183
+ [
1184
+ "fetch",
1185
+ "Sprint"
1186
+ ],
1187
+ [
1188
+ "render-ui",
1189
+ "main",
1190
+ {
1191
+ "type": "stack",
1192
+ "direction": "vertical",
1193
+ "gap": "lg",
1194
+ "children": [
1195
+ {
1196
+ "type": "stack",
1197
+ "direction": "horizontal",
1198
+ "gap": "md",
1199
+ "justify": "space-between",
1200
+ "children": [
1201
+ {
1202
+ "type": "stack",
1203
+ "direction": "horizontal",
1204
+ "gap": "sm",
1205
+ "align": "center",
1206
+ "children": [
1207
+ {
1208
+ "type": "icon",
1209
+ "name": "zap",
1210
+ "size": "lg"
1211
+ },
1212
+ {
1213
+ "type": "typography",
1214
+ "content": "Sprints",
1215
+ "variant": "h2"
1216
+ }
1217
+ ]
1218
+ },
1219
+ {
1220
+ "type": "stack",
1221
+ "direction": "horizontal",
1222
+ "gap": "sm",
1223
+ "children": [
1224
+ {
1225
+ "type": "button",
1226
+ "label": "Create Sprint",
1227
+ "event": "CREATE",
1228
+ "variant": "primary",
1229
+ "icon": "plus"
1230
+ }
1231
+ ]
1232
+ }
1233
+ ]
1234
+ },
1235
+ {
1236
+ "type": "divider"
1237
+ },
1238
+ {
1239
+ "type": "data-grid",
1240
+ "entity": "Sprint",
1241
+ "emptyIcon": "inbox",
1242
+ "emptyTitle": "No sprints yet",
1243
+ "emptyDescription": "Create your first sprint to get started.",
1244
+ "itemActions": [
1245
+ {
1246
+ "label": "View",
1247
+ "event": "VIEW"
1248
+ },
1249
+ {
1250
+ "label": "Edit",
1251
+ "event": "EDIT"
1252
+ },
1253
+ {
1254
+ "label": "Delete",
1255
+ "event": "DELETE",
1256
+ "variant": "danger"
1257
+ }
1258
+ ],
1259
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
1260
+ "children": [
1261
+ {
1262
+ "type": "stack",
1263
+ "direction": "vertical",
1264
+ "gap": "sm",
1265
+ "children": [
1266
+ {
1267
+ "type": "stack",
1268
+ "direction": "horizontal",
1269
+ "justify": "space-between",
1270
+ "align": "center",
1271
+ "children": [
1272
+ {
1273
+ "type": "stack",
1274
+ "direction": "horizontal",
1275
+ "gap": "sm",
1276
+ "align": "center",
1277
+ "children": [
1278
+ {
1279
+ "type": "icon",
1280
+ "name": "zap",
1281
+ "size": "sm"
1282
+ },
1283
+ {
1284
+ "type": "typography",
1285
+ "variant": "h4",
1286
+ "content": "@entity.name"
1287
+ }
1288
+ ]
1289
+ },
1290
+ {
1291
+ "type": "badge",
1292
+ "label": "@entity.startDate"
1293
+ }
1294
+ ]
1295
+ },
1296
+ {
1297
+ "type": "typography",
1298
+ "variant": "caption",
1299
+ "color": "muted",
1300
+ "content": "@entity.endDate"
1301
+ }
1302
+ ]
1303
+ }
1304
+ ]
1305
+ }
1306
+ ]
1307
+ }
1308
+ ]
1309
+ ]
1310
+ },
1311
+ {
1312
+ "from": "browsing",
1313
+ "to": "browsing",
1314
+ "event": "SPRINT_CREATED",
1315
+ "effects": [
1316
+ [
1317
+ "fetch",
1318
+ "Sprint"
1319
+ ]
1320
+ ]
1321
+ },
1322
+ {
1323
+ "from": "browsing",
1324
+ "to": "browsing",
1325
+ "event": "SPRINT_UPDATED",
1326
+ "effects": [
1327
+ [
1328
+ "fetch",
1329
+ "Sprint"
1330
+ ]
1331
+ ]
1332
+ },
1333
+ {
1334
+ "from": "browsing",
1335
+ "to": "deleting",
1336
+ "event": "DELETE",
1337
+ "effects": [
1338
+ [
1339
+ "fetch",
1340
+ "Sprint",
1341
+ "@payload.id"
1342
+ ],
1343
+ [
1344
+ "render-ui",
1345
+ "modal",
1346
+ {
1347
+ "type": "stack",
1348
+ "direction": "vertical",
1349
+ "gap": "md",
1350
+ "children": [
1351
+ {
1352
+ "type": "stack",
1353
+ "direction": "horizontal",
1354
+ "gap": "sm",
1355
+ "children": [
1356
+ {
1357
+ "type": "icon",
1358
+ "name": "trash-2",
1359
+ "size": "md"
1360
+ },
1361
+ {
1362
+ "type": "typography",
1363
+ "content": "Delete Sprint",
1364
+ "variant": "h3"
1365
+ }
1366
+ ]
1367
+ },
1368
+ {
1369
+ "type": "divider"
1370
+ },
1371
+ {
1372
+ "type": "typography",
1373
+ "content": "Are you sure you want to delete this sprint?",
1374
+ "variant": "body"
1375
+ },
1376
+ {
1377
+ "type": "stack",
1378
+ "direction": "horizontal",
1379
+ "gap": "sm",
1380
+ "justify": "end",
1381
+ "children": [
1382
+ {
1383
+ "type": "button",
1384
+ "label": "Cancel",
1385
+ "event": "CANCEL",
1386
+ "variant": "ghost"
1387
+ },
1388
+ {
1389
+ "type": "button",
1390
+ "label": "Delete",
1391
+ "event": "CONFIRM_DELETE",
1392
+ "variant": "danger",
1393
+ "icon": "trash"
1394
+ }
1395
+ ]
1396
+ }
1397
+ ]
1398
+ }
1399
+ ]
1400
+ ]
1401
+ },
1402
+ {
1403
+ "from": "deleting",
1404
+ "to": "browsing",
1405
+ "event": "CONFIRM_DELETE",
1406
+ "effects": [
1407
+ [
1408
+ "persist",
1409
+ "delete",
1410
+ "Sprint",
1411
+ "@entity.id"
1412
+ ],
1413
+ [
1414
+ "render-ui",
1415
+ "modal",
1416
+ null
1417
+ ],
1418
+ [
1419
+ "fetch",
1420
+ "Sprint"
1421
+ ],
1422
+ [
1423
+ "notify",
1424
+ "Sprint deleted successfully"
1425
+ ]
1426
+ ]
1427
+ },
1428
+ {
1429
+ "from": "deleting",
1430
+ "to": "browsing",
1431
+ "event": "CANCEL",
1432
+ "effects": [
1433
+ [
1434
+ "render-ui",
1435
+ "modal",
1436
+ null
1437
+ ]
1438
+ ]
1439
+ },
1440
+ {
1441
+ "from": "deleting",
1442
+ "to": "browsing",
1443
+ "event": "CLOSE",
1444
+ "effects": [
1445
+ [
1446
+ "render-ui",
1447
+ "modal",
1448
+ null
1449
+ ]
1450
+ ]
1451
+ }
1452
+ ]
1453
+ },
1454
+ "emits": [
1455
+ {
1456
+ "event": "ASSIGN_TASK",
1457
+ "payload": [
1458
+ {
1459
+ "name": "id",
1460
+ "type": "string",
1461
+ "required": true
1462
+ }
1463
+ ],
1464
+ "scope": "external"
1465
+ },
1466
+ {
1467
+ "event": "COMPLETE_SPRINT",
1468
+ "payload": [
1469
+ {
1470
+ "name": "id",
1471
+ "type": "string",
1472
+ "required": true
1473
+ }
1474
+ ],
1475
+ "scope": "external"
1476
+ }
1477
+ ]
1478
+ },
1479
+ {
1480
+ "name": "SprintCreate",
1481
+ "linkedEntity": "Sprint",
1482
+ "category": "interaction",
1483
+ "emits": [
1484
+ {
1485
+ "event": "SPRINT_CREATED"
1486
+ }
1487
+ ],
1488
+ "stateMachine": {
1489
+ "states": [
1490
+ {
1491
+ "name": "closed",
1492
+ "isInitial": true
1493
+ },
1494
+ {
1495
+ "name": "open"
1496
+ }
1497
+ ],
1498
+ "events": [
1499
+ {
1500
+ "key": "INIT",
1501
+ "name": "Initialize"
1502
+ },
1503
+ {
1504
+ "key": "CREATE",
1505
+ "name": "Open"
1506
+ },
1507
+ {
1508
+ "key": "CLOSE",
1509
+ "name": "Close"
1510
+ },
1511
+ {
1512
+ "key": "SAVE",
1513
+ "name": "Save",
1514
+ "payload": [
1515
+ {
1516
+ "name": "data",
1517
+ "type": "object",
1518
+ "required": true
1519
+ }
1520
+ ]
1521
+ }
1522
+ ],
1523
+ "transitions": [
1524
+ {
1525
+ "from": "closed",
1526
+ "to": "closed",
1527
+ "event": "INIT",
1528
+ "effects": [
1529
+ [
1530
+ "fetch",
1531
+ "Sprint"
1532
+ ]
1533
+ ]
1534
+ },
1535
+ {
1536
+ "from": "closed",
1537
+ "to": "open",
1538
+ "event": "CREATE",
1539
+ "effects": [
1540
+ [
1541
+ "fetch",
1542
+ "Sprint"
1543
+ ],
1544
+ [
1545
+ "render-ui",
1546
+ "modal",
1547
+ {
1548
+ "type": "stack",
1549
+ "direction": "vertical",
1550
+ "gap": "md",
1551
+ "children": [
1552
+ {
1553
+ "type": "stack",
1554
+ "direction": "horizontal",
1555
+ "gap": "sm",
1556
+ "children": [
1557
+ {
1558
+ "type": "icon",
1559
+ "name": "plus-circle",
1560
+ "size": "md"
1561
+ },
1562
+ {
1563
+ "type": "typography",
1564
+ "content": "Create Sprint",
1565
+ "variant": "h3"
1566
+ }
1567
+ ]
1568
+ },
1569
+ {
1570
+ "type": "divider"
1571
+ },
1572
+ {
1573
+ "type": "form-section",
1574
+ "entity": "Sprint",
1575
+ "mode": "create",
1576
+ "submitEvent": "SAVE",
1577
+ "cancelEvent": "CLOSE",
1578
+ "fields": [
1579
+ "name",
1580
+ "startDate",
1581
+ "endDate",
1582
+ "goal",
1583
+ "status",
1584
+ "taskCount"
1585
+ ]
1586
+ }
1587
+ ]
1588
+ }
1589
+ ]
1590
+ ]
1591
+ },
1592
+ {
1593
+ "from": "open",
1594
+ "to": "closed",
1595
+ "event": "CLOSE",
1596
+ "effects": [
1597
+ [
1598
+ "render-ui",
1599
+ "modal",
1600
+ null
1601
+ ]
1602
+ ]
1603
+ },
1604
+ {
1605
+ "from": "open",
1606
+ "to": "closed",
1607
+ "event": "SAVE",
1608
+ "effects": [
1609
+ [
1610
+ "persist",
1611
+ "create",
1612
+ "Sprint",
1613
+ "@payload.data"
1614
+ ],
1615
+ [
1616
+ "fetch",
1617
+ "Sprint"
1618
+ ],
1619
+ [
1620
+ "render-ui",
1621
+ "modal",
1622
+ null
1623
+ ],
1624
+ [
1625
+ "emit",
1626
+ "SPRINT_CREATED"
1627
+ ],
1628
+ [
1629
+ "notify",
1630
+ "Sprint created successfully"
1631
+ ]
1632
+ ]
1633
+ }
1634
+ ]
1635
+ }
1636
+ },
1637
+ {
1638
+ "name": "SprintEdit",
1639
+ "linkedEntity": "Sprint",
1640
+ "category": "interaction",
1641
+ "emits": [
1642
+ {
1643
+ "event": "SPRINT_UPDATED"
1644
+ }
1645
+ ],
1646
+ "stateMachine": {
1647
+ "states": [
1648
+ {
1649
+ "name": "closed",
1650
+ "isInitial": true
1651
+ },
1652
+ {
1653
+ "name": "open"
1654
+ }
1655
+ ],
1656
+ "events": [
1657
+ {
1658
+ "key": "INIT",
1659
+ "name": "Initialize"
1660
+ },
1661
+ {
1662
+ "key": "EDIT",
1663
+ "name": "Open",
1664
+ "payload": [
1665
+ {
1666
+ "name": "id",
1667
+ "type": "string",
1668
+ "required": true
1669
+ }
1670
+ ]
1671
+ },
1672
+ {
1673
+ "key": "CLOSE",
1674
+ "name": "Close"
1675
+ },
1676
+ {
1677
+ "key": "SAVE",
1678
+ "name": "Save",
1679
+ "payload": [
1680
+ {
1681
+ "name": "data",
1682
+ "type": "object",
1683
+ "required": true
1684
+ }
1685
+ ]
1686
+ }
1687
+ ],
1688
+ "transitions": [
1689
+ {
1690
+ "from": "closed",
1691
+ "to": "closed",
1692
+ "event": "INIT",
1693
+ "effects": [
1694
+ [
1695
+ "fetch",
1696
+ "Sprint"
1697
+ ]
1698
+ ]
1699
+ },
1700
+ {
1701
+ "from": "closed",
1702
+ "to": "open",
1703
+ "event": "EDIT",
1704
+ "effects": [
1705
+ [
1706
+ "fetch",
1707
+ "Sprint",
1708
+ "@payload.id"
1709
+ ],
1710
+ [
1711
+ "render-ui",
1712
+ "modal",
1713
+ {
1714
+ "type": "stack",
1715
+ "direction": "vertical",
1716
+ "gap": "md",
1717
+ "children": [
1718
+ {
1719
+ "type": "stack",
1720
+ "direction": "horizontal",
1721
+ "gap": "sm",
1722
+ "children": [
1723
+ {
1724
+ "type": "icon",
1725
+ "name": "edit",
1726
+ "size": "md"
1727
+ },
1728
+ {
1729
+ "type": "typography",
1730
+ "content": "Edit Sprint",
1731
+ "variant": "h3"
1732
+ }
1733
+ ]
1734
+ },
1735
+ {
1736
+ "type": "divider"
1737
+ },
1738
+ {
1739
+ "type": "form-section",
1740
+ "entity": "Sprint",
1741
+ "mode": "edit",
1742
+ "submitEvent": "SAVE",
1743
+ "cancelEvent": "CLOSE",
1744
+ "fields": [
1745
+ "name",
1746
+ "startDate",
1747
+ "endDate",
1748
+ "goal",
1749
+ "status",
1750
+ "taskCount"
1751
+ ]
1752
+ }
1753
+ ]
1754
+ }
1755
+ ]
1756
+ ]
1757
+ },
1758
+ {
1759
+ "from": "open",
1760
+ "to": "closed",
1761
+ "event": "CLOSE",
1762
+ "effects": [
1763
+ [
1764
+ "render-ui",
1765
+ "modal",
1766
+ null
1767
+ ]
1768
+ ]
1769
+ },
1770
+ {
1771
+ "from": "open",
1772
+ "to": "closed",
1773
+ "event": "SAVE",
1774
+ "effects": [
1775
+ [
1776
+ "persist",
1777
+ "update",
1778
+ "Sprint",
1779
+ "@payload.data"
1780
+ ],
1781
+ [
1782
+ "fetch",
1783
+ "Sprint"
1784
+ ],
1785
+ [
1786
+ "render-ui",
1787
+ "modal",
1788
+ null
1789
+ ],
1790
+ [
1791
+ "emit",
1792
+ "SPRINT_UPDATED"
1793
+ ],
1794
+ [
1795
+ "notify",
1796
+ "Sprint updated successfully"
1797
+ ]
1798
+ ]
1799
+ }
1800
+ ]
1801
+ }
1802
+ },
1803
+ {
1804
+ "name": "SprintView",
1805
+ "linkedEntity": "Sprint",
1806
+ "category": "interaction",
1807
+ "stateMachine": {
1808
+ "states": [
1809
+ {
1810
+ "name": "closed",
1811
+ "isInitial": true
1812
+ },
1813
+ {
1814
+ "name": "open"
1815
+ }
1816
+ ],
1817
+ "events": [
1818
+ {
1819
+ "key": "INIT",
1820
+ "name": "Initialize"
1821
+ },
1822
+ {
1823
+ "key": "VIEW",
1824
+ "name": "Open",
1825
+ "payload": [
1826
+ {
1827
+ "name": "id",
1828
+ "type": "string",
1829
+ "required": true
1830
+ }
1831
+ ]
1832
+ },
1833
+ {
1834
+ "key": "CLOSE",
1835
+ "name": "Close"
1836
+ }
1837
+ ],
1838
+ "transitions": [
1839
+ {
1840
+ "from": "closed",
1841
+ "to": "closed",
1842
+ "event": "INIT",
1843
+ "effects": [
1844
+ [
1845
+ "fetch",
1846
+ "Sprint"
1847
+ ]
1848
+ ]
1849
+ },
1850
+ {
1851
+ "from": "closed",
1852
+ "to": "open",
1853
+ "event": "VIEW",
1854
+ "effects": [
1855
+ [
1856
+ "fetch",
1857
+ "Sprint",
1858
+ "@payload.id"
1859
+ ],
1860
+ [
1861
+ "render-ui",
1862
+ "modal",
1863
+ {
1864
+ "type": "stack",
1865
+ "direction": "vertical",
1866
+ "gap": "md",
1867
+ "children": [
1868
+ {
1869
+ "type": "stack",
1870
+ "direction": "horizontal",
1871
+ "gap": "sm",
1872
+ "align": "center",
1873
+ "children": [
1874
+ {
1875
+ "type": "icon",
1876
+ "name": "eye",
1877
+ "size": "md"
1878
+ },
1879
+ {
1880
+ "type": "typography",
1881
+ "variant": "h3",
1882
+ "content": "@entity.name"
1883
+ }
1884
+ ]
1885
+ },
1886
+ {
1887
+ "type": "divider"
1888
+ },
1889
+ {
1890
+ "type": "stack",
1891
+ "direction": "horizontal",
1892
+ "gap": "md",
1893
+ "children": [
1894
+ {
1895
+ "type": "typography",
1896
+ "variant": "caption",
1897
+ "content": "Name"
1898
+ },
1899
+ {
1900
+ "type": "typography",
1901
+ "variant": "body",
1902
+ "content": "@entity.name"
1903
+ }
1904
+ ]
1905
+ },
1906
+ {
1907
+ "type": "stack",
1908
+ "direction": "horizontal",
1909
+ "gap": "md",
1910
+ "children": [
1911
+ {
1912
+ "type": "typography",
1913
+ "variant": "caption",
1914
+ "content": "StartDate"
1915
+ },
1916
+ {
1917
+ "type": "typography",
1918
+ "variant": "body",
1919
+ "content": "@entity.startDate"
1920
+ }
1921
+ ]
1922
+ },
1923
+ {
1924
+ "type": "stack",
1925
+ "direction": "horizontal",
1926
+ "gap": "md",
1927
+ "children": [
1928
+ {
1929
+ "type": "typography",
1930
+ "variant": "caption",
1931
+ "content": "EndDate"
1932
+ },
1933
+ {
1934
+ "type": "typography",
1935
+ "variant": "body",
1936
+ "content": "@entity.endDate"
1937
+ }
1938
+ ]
1939
+ },
1940
+ {
1941
+ "type": "stack",
1942
+ "direction": "horizontal",
1943
+ "gap": "md",
1944
+ "children": [
1945
+ {
1946
+ "type": "typography",
1947
+ "variant": "caption",
1948
+ "content": "Goal"
1949
+ },
1950
+ {
1951
+ "type": "typography",
1952
+ "variant": "body",
1953
+ "content": "@entity.goal"
1954
+ }
1955
+ ]
1956
+ },
1957
+ {
1958
+ "type": "stack",
1959
+ "direction": "horizontal",
1960
+ "gap": "md",
1961
+ "children": [
1962
+ {
1963
+ "type": "typography",
1964
+ "variant": "caption",
1965
+ "content": "Status"
1966
+ },
1967
+ {
1968
+ "type": "typography",
1969
+ "variant": "body",
1970
+ "content": "@entity.status"
1971
+ }
1972
+ ]
1973
+ },
1974
+ {
1975
+ "type": "stack",
1976
+ "direction": "horizontal",
1977
+ "gap": "md",
1978
+ "children": [
1979
+ {
1980
+ "type": "typography",
1981
+ "variant": "caption",
1982
+ "content": "TaskCount"
1983
+ },
1984
+ {
1985
+ "type": "typography",
1986
+ "variant": "body",
1987
+ "content": "@entity.taskCount"
1988
+ }
1989
+ ]
1990
+ },
1991
+ {
1992
+ "type": "divider"
1993
+ },
1994
+ {
1995
+ "type": "stack",
1996
+ "direction": "horizontal",
1997
+ "gap": "sm",
1998
+ "justify": "end",
1999
+ "children": [
2000
+ {
2001
+ "type": "button",
2002
+ "label": "Edit",
2003
+ "event": "EDIT",
2004
+ "variant": "primary",
2005
+ "icon": "edit"
2006
+ },
2007
+ {
2008
+ "type": "button",
2009
+ "label": "Close",
2010
+ "event": "CLOSE",
2011
+ "variant": "ghost"
2012
+ }
2013
+ ]
2014
+ }
2015
+ ]
2016
+ }
2017
+ ]
2018
+ ]
2019
+ },
2020
+ {
2021
+ "from": "open",
2022
+ "to": "closed",
2023
+ "event": "CLOSE",
2024
+ "effects": [
2025
+ [
2026
+ "render-ui",
2027
+ "modal",
2028
+ null
2029
+ ]
2030
+ ]
2031
+ }
2032
+ ]
2033
+ }
2034
+ }
2035
+ ],
2036
+ "pages": [
2037
+ {
2038
+ "name": "SprintsPage",
2039
+ "path": "/sprints",
2040
+ "traits": [
2041
+ {
2042
+ "ref": "SprintBrowse"
2043
+ },
2044
+ {
2045
+ "ref": "SprintCreate"
2046
+ },
2047
+ {
2048
+ "ref": "SprintEdit"
2049
+ },
2050
+ {
2051
+ "ref": "SprintView"
2052
+ }
2053
+ ]
2054
+ }
2055
+ ]
2056
+ },
2057
+ {
2058
+ "name": "BurndownOrbital",
2059
+ "entity": {
2060
+ "name": "Burndown",
2061
+ "persistence": "singleton",
2062
+ "fields": [
2063
+ {
2064
+ "name": "id",
2065
+ "type": "string",
2066
+ "required": true
2067
+ },
2068
+ {
2069
+ "name": "totalPoints",
2070
+ "type": "number",
2071
+ "default": 0
2072
+ },
2073
+ {
2074
+ "name": "completedPoints",
2075
+ "type": "number",
2076
+ "default": 0
2077
+ },
2078
+ {
2079
+ "name": "remainingPoints",
2080
+ "type": "number",
2081
+ "default": 0
2082
+ },
2083
+ {
2084
+ "name": "velocity",
2085
+ "type": "number",
2086
+ "default": 0
2087
+ },
2088
+ {
2089
+ "name": "daysRemaining",
2090
+ "type": "number",
2091
+ "default": 0
2092
+ }
2093
+ ]
2094
+ },
2095
+ "traits": [
2096
+ {
2097
+ "name": "BurndownDisplay",
2098
+ "linkedEntity": "Burndown",
2099
+ "category": "interaction",
2100
+ "stateMachine": {
2101
+ "states": [
2102
+ {
2103
+ "name": "loading",
2104
+ "isInitial": true
2105
+ },
2106
+ {
2107
+ "name": "displaying"
2108
+ },
2109
+ {
2110
+ "name": "refreshing"
2111
+ }
2112
+ ],
2113
+ "events": [
2114
+ {
2115
+ "key": "INIT",
2116
+ "name": "Initialize"
2117
+ },
2118
+ {
2119
+ "key": "LOADED",
2120
+ "name": "Loaded"
2121
+ },
2122
+ {
2123
+ "key": "REFRESH",
2124
+ "name": "Refresh"
2125
+ },
2126
+ {
2127
+ "key": "REFRESHED",
2128
+ "name": "Refreshed"
2129
+ }
2130
+ ],
2131
+ "transitions": [
2132
+ {
2133
+ "from": "loading",
2134
+ "to": "displaying",
2135
+ "event": "INIT",
2136
+ "effects": [
2137
+ [
2138
+ "fetch",
2139
+ "Burndown"
2140
+ ],
2141
+ [
2142
+ "render-ui",
2143
+ "main",
2144
+ {
2145
+ "type": "stack",
2146
+ "direction": "vertical",
2147
+ "gap": "lg",
2148
+ "children": [
2149
+ {
2150
+ "type": "stack",
2151
+ "direction": "horizontal",
2152
+ "gap": "md",
2153
+ "justify": "space-between",
2154
+ "children": [
2155
+ {
2156
+ "type": "stack",
2157
+ "direction": "horizontal",
2158
+ "gap": "md",
2159
+ "children": [
2160
+ {
2161
+ "type": "icon",
2162
+ "name": "trending-down",
2163
+ "size": "lg"
2164
+ },
2165
+ {
2166
+ "type": "typography",
2167
+ "content": "Burndown Chart",
2168
+ "variant": "h2"
2169
+ }
2170
+ ]
2171
+ },
2172
+ {
2173
+ "type": "button",
2174
+ "label": "Refresh",
2175
+ "event": "REFRESH",
2176
+ "variant": "secondary",
2177
+ "icon": "refresh-cw"
2178
+ }
2179
+ ]
2180
+ },
2181
+ {
2182
+ "type": "divider"
2183
+ },
2184
+ {
2185
+ "type": "simple-grid",
2186
+ "columns": 5,
2187
+ "children": [
2188
+ {
2189
+ "type": "card",
2190
+ "children": [
2191
+ {
2192
+ "type": "stack",
2193
+ "direction": "vertical",
2194
+ "gap": "sm",
2195
+ "children": [
2196
+ {
2197
+ "type": "typography",
2198
+ "variant": "caption",
2199
+ "content": "TotalPoints"
2200
+ },
2201
+ {
2202
+ "type": "typography",
2203
+ "variant": "h3",
2204
+ "content": "@entity.totalPoints"
2205
+ }
2206
+ ]
2207
+ }
2208
+ ]
2209
+ },
2210
+ {
2211
+ "type": "card",
2212
+ "children": [
2213
+ {
2214
+ "type": "stack",
2215
+ "direction": "vertical",
2216
+ "gap": "sm",
2217
+ "children": [
2218
+ {
2219
+ "type": "typography",
2220
+ "variant": "caption",
2221
+ "content": "CompletedPoints"
2222
+ },
2223
+ {
2224
+ "type": "typography",
2225
+ "variant": "h3",
2226
+ "content": "@entity.completedPoints"
2227
+ }
2228
+ ]
2229
+ }
2230
+ ]
2231
+ },
2232
+ {
2233
+ "type": "card",
2234
+ "children": [
2235
+ {
2236
+ "type": "stack",
2237
+ "direction": "vertical",
2238
+ "gap": "sm",
2239
+ "children": [
2240
+ {
2241
+ "type": "typography",
2242
+ "variant": "caption",
2243
+ "content": "RemainingPoints"
2244
+ },
2245
+ {
2246
+ "type": "typography",
2247
+ "variant": "h3",
2248
+ "content": "@entity.remainingPoints"
2249
+ }
2250
+ ]
2251
+ }
2252
+ ]
2253
+ },
2254
+ {
2255
+ "type": "card",
2256
+ "children": [
2257
+ {
2258
+ "type": "stack",
2259
+ "direction": "vertical",
2260
+ "gap": "sm",
2261
+ "children": [
2262
+ {
2263
+ "type": "typography",
2264
+ "variant": "caption",
2265
+ "content": "Velocity"
2266
+ },
2267
+ {
2268
+ "type": "typography",
2269
+ "variant": "h3",
2270
+ "content": "@entity.velocity"
2271
+ }
2272
+ ]
2273
+ }
2274
+ ]
2275
+ },
2276
+ {
2277
+ "type": "card",
2278
+ "children": [
2279
+ {
2280
+ "type": "stack",
2281
+ "direction": "vertical",
2282
+ "gap": "sm",
2283
+ "children": [
2284
+ {
2285
+ "type": "typography",
2286
+ "variant": "caption",
2287
+ "content": "DaysRemaining"
2288
+ },
2289
+ {
2290
+ "type": "typography",
2291
+ "variant": "h3",
2292
+ "content": "@entity.daysRemaining"
2293
+ }
2294
+ ]
2295
+ }
2296
+ ]
2297
+ }
2298
+ ]
2299
+ }
2300
+ ]
2301
+ }
2302
+ ]
2303
+ ]
2304
+ },
2305
+ {
2306
+ "from": "loading",
2307
+ "to": "displaying",
2308
+ "event": "LOADED",
2309
+ "effects": [
2310
+ [
2311
+ "fetch",
2312
+ "Burndown"
2313
+ ],
2314
+ [
2315
+ "render-ui",
2316
+ "main",
2317
+ {
2318
+ "type": "stack",
2319
+ "direction": "vertical",
2320
+ "gap": "lg",
2321
+ "children": [
2322
+ {
2323
+ "type": "stack",
2324
+ "direction": "horizontal",
2325
+ "gap": "md",
2326
+ "justify": "space-between",
2327
+ "children": [
2328
+ {
2329
+ "type": "stack",
2330
+ "direction": "horizontal",
2331
+ "gap": "md",
2332
+ "children": [
2333
+ {
2334
+ "type": "icon",
2335
+ "name": "trending-down",
2336
+ "size": "lg"
2337
+ },
2338
+ {
2339
+ "type": "typography",
2340
+ "content": "Burndown Chart",
2341
+ "variant": "h2"
2342
+ }
2343
+ ]
2344
+ },
2345
+ {
2346
+ "type": "button",
2347
+ "label": "Refresh",
2348
+ "event": "REFRESH",
2349
+ "variant": "secondary",
2350
+ "icon": "refresh-cw"
2351
+ }
2352
+ ]
2353
+ },
2354
+ {
2355
+ "type": "divider"
2356
+ },
2357
+ {
2358
+ "type": "simple-grid",
2359
+ "columns": 5,
2360
+ "children": [
2361
+ {
2362
+ "type": "card",
2363
+ "children": [
2364
+ {
2365
+ "type": "stack",
2366
+ "direction": "vertical",
2367
+ "gap": "sm",
2368
+ "children": [
2369
+ {
2370
+ "type": "typography",
2371
+ "variant": "caption",
2372
+ "content": "TotalPoints"
2373
+ },
2374
+ {
2375
+ "type": "typography",
2376
+ "variant": "h3",
2377
+ "content": "@entity.totalPoints"
2378
+ }
2379
+ ]
2380
+ }
2381
+ ]
2382
+ },
2383
+ {
2384
+ "type": "card",
2385
+ "children": [
2386
+ {
2387
+ "type": "stack",
2388
+ "direction": "vertical",
2389
+ "gap": "sm",
2390
+ "children": [
2391
+ {
2392
+ "type": "typography",
2393
+ "variant": "caption",
2394
+ "content": "CompletedPoints"
2395
+ },
2396
+ {
2397
+ "type": "typography",
2398
+ "variant": "h3",
2399
+ "content": "@entity.completedPoints"
2400
+ }
2401
+ ]
2402
+ }
2403
+ ]
2404
+ },
2405
+ {
2406
+ "type": "card",
2407
+ "children": [
2408
+ {
2409
+ "type": "stack",
2410
+ "direction": "vertical",
2411
+ "gap": "sm",
2412
+ "children": [
2413
+ {
2414
+ "type": "typography",
2415
+ "variant": "caption",
2416
+ "content": "RemainingPoints"
2417
+ },
2418
+ {
2419
+ "type": "typography",
2420
+ "variant": "h3",
2421
+ "content": "@entity.remainingPoints"
2422
+ }
2423
+ ]
2424
+ }
2425
+ ]
2426
+ },
2427
+ {
2428
+ "type": "card",
2429
+ "children": [
2430
+ {
2431
+ "type": "stack",
2432
+ "direction": "vertical",
2433
+ "gap": "sm",
2434
+ "children": [
2435
+ {
2436
+ "type": "typography",
2437
+ "variant": "caption",
2438
+ "content": "Velocity"
2439
+ },
2440
+ {
2441
+ "type": "typography",
2442
+ "variant": "h3",
2443
+ "content": "@entity.velocity"
2444
+ }
2445
+ ]
2446
+ }
2447
+ ]
2448
+ },
2449
+ {
2450
+ "type": "card",
2451
+ "children": [
2452
+ {
2453
+ "type": "stack",
2454
+ "direction": "vertical",
2455
+ "gap": "sm",
2456
+ "children": [
2457
+ {
2458
+ "type": "typography",
2459
+ "variant": "caption",
2460
+ "content": "DaysRemaining"
2461
+ },
2462
+ {
2463
+ "type": "typography",
2464
+ "variant": "h3",
2465
+ "content": "@entity.daysRemaining"
2466
+ }
2467
+ ]
2468
+ }
2469
+ ]
2470
+ }
2471
+ ]
2472
+ }
2473
+ ]
2474
+ }
2475
+ ]
2476
+ ]
2477
+ },
2478
+ {
2479
+ "from": "displaying",
2480
+ "to": "displaying",
2481
+ "event": "INIT",
2482
+ "effects": [
2483
+ [
2484
+ "fetch",
2485
+ "Burndown"
2486
+ ],
2487
+ [
2488
+ "render-ui",
2489
+ "main",
2490
+ {
2491
+ "type": "stack",
2492
+ "direction": "vertical",
2493
+ "gap": "lg",
2494
+ "children": [
2495
+ {
2496
+ "type": "stack",
2497
+ "direction": "horizontal",
2498
+ "gap": "md",
2499
+ "justify": "space-between",
2500
+ "children": [
2501
+ {
2502
+ "type": "stack",
2503
+ "direction": "horizontal",
2504
+ "gap": "md",
2505
+ "children": [
2506
+ {
2507
+ "type": "icon",
2508
+ "name": "trending-down",
2509
+ "size": "lg"
2510
+ },
2511
+ {
2512
+ "type": "typography",
2513
+ "content": "Burndown Chart",
2514
+ "variant": "h2"
2515
+ }
2516
+ ]
2517
+ },
2518
+ {
2519
+ "type": "button",
2520
+ "label": "Refresh",
2521
+ "event": "REFRESH",
2522
+ "variant": "secondary",
2523
+ "icon": "refresh-cw"
2524
+ }
2525
+ ]
2526
+ },
2527
+ {
2528
+ "type": "divider"
2529
+ },
2530
+ {
2531
+ "type": "simple-grid",
2532
+ "columns": 5,
2533
+ "children": [
2534
+ {
2535
+ "type": "card",
2536
+ "children": [
2537
+ {
2538
+ "type": "stack",
2539
+ "direction": "vertical",
2540
+ "gap": "sm",
2541
+ "children": [
2542
+ {
2543
+ "type": "typography",
2544
+ "variant": "caption",
2545
+ "content": "TotalPoints"
2546
+ },
2547
+ {
2548
+ "type": "typography",
2549
+ "variant": "h3",
2550
+ "content": "@entity.totalPoints"
2551
+ }
2552
+ ]
2553
+ }
2554
+ ]
2555
+ },
2556
+ {
2557
+ "type": "card",
2558
+ "children": [
2559
+ {
2560
+ "type": "stack",
2561
+ "direction": "vertical",
2562
+ "gap": "sm",
2563
+ "children": [
2564
+ {
2565
+ "type": "typography",
2566
+ "variant": "caption",
2567
+ "content": "CompletedPoints"
2568
+ },
2569
+ {
2570
+ "type": "typography",
2571
+ "variant": "h3",
2572
+ "content": "@entity.completedPoints"
2573
+ }
2574
+ ]
2575
+ }
2576
+ ]
2577
+ },
2578
+ {
2579
+ "type": "card",
2580
+ "children": [
2581
+ {
2582
+ "type": "stack",
2583
+ "direction": "vertical",
2584
+ "gap": "sm",
2585
+ "children": [
2586
+ {
2587
+ "type": "typography",
2588
+ "variant": "caption",
2589
+ "content": "RemainingPoints"
2590
+ },
2591
+ {
2592
+ "type": "typography",
2593
+ "variant": "h3",
2594
+ "content": "@entity.remainingPoints"
2595
+ }
2596
+ ]
2597
+ }
2598
+ ]
2599
+ },
2600
+ {
2601
+ "type": "card",
2602
+ "children": [
2603
+ {
2604
+ "type": "stack",
2605
+ "direction": "vertical",
2606
+ "gap": "sm",
2607
+ "children": [
2608
+ {
2609
+ "type": "typography",
2610
+ "variant": "caption",
2611
+ "content": "Velocity"
2612
+ },
2613
+ {
2614
+ "type": "typography",
2615
+ "variant": "h3",
2616
+ "content": "@entity.velocity"
2617
+ }
2618
+ ]
2619
+ }
2620
+ ]
2621
+ },
2622
+ {
2623
+ "type": "card",
2624
+ "children": [
2625
+ {
2626
+ "type": "stack",
2627
+ "direction": "vertical",
2628
+ "gap": "sm",
2629
+ "children": [
2630
+ {
2631
+ "type": "typography",
2632
+ "variant": "caption",
2633
+ "content": "DaysRemaining"
2634
+ },
2635
+ {
2636
+ "type": "typography",
2637
+ "variant": "h3",
2638
+ "content": "@entity.daysRemaining"
2639
+ }
2640
+ ]
2641
+ }
2642
+ ]
2643
+ }
2644
+ ]
2645
+ }
2646
+ ]
2647
+ }
2648
+ ]
2649
+ ]
2650
+ },
2651
+ {
2652
+ "from": "displaying",
2653
+ "to": "refreshing",
2654
+ "event": "REFRESH",
2655
+ "effects": [
2656
+ [
2657
+ "fetch",
2658
+ "Burndown"
2659
+ ],
2660
+ [
2661
+ "render-ui",
2662
+ "main",
2663
+ {
2664
+ "type": "stack",
2665
+ "direction": "vertical",
2666
+ "gap": "lg",
2667
+ "children": [
2668
+ {
2669
+ "type": "stack",
2670
+ "direction": "horizontal",
2671
+ "gap": "md",
2672
+ "justify": "space-between",
2673
+ "children": [
2674
+ {
2675
+ "type": "stack",
2676
+ "direction": "horizontal",
2677
+ "gap": "md",
2678
+ "children": [
2679
+ {
2680
+ "type": "icon",
2681
+ "name": "trending-down",
2682
+ "size": "lg"
2683
+ },
2684
+ {
2685
+ "type": "typography",
2686
+ "content": "Burndown Chart",
2687
+ "variant": "h2"
2688
+ }
2689
+ ]
2690
+ },
2691
+ {
2692
+ "type": "button",
2693
+ "label": "Refresh",
2694
+ "event": "REFRESH",
2695
+ "variant": "secondary",
2696
+ "icon": "refresh-cw"
2697
+ }
2698
+ ]
2699
+ },
2700
+ {
2701
+ "type": "divider"
2702
+ },
2703
+ {
2704
+ "type": "simple-grid",
2705
+ "columns": 5,
2706
+ "children": [
2707
+ {
2708
+ "type": "card",
2709
+ "children": [
2710
+ {
2711
+ "type": "stack",
2712
+ "direction": "vertical",
2713
+ "gap": "sm",
2714
+ "children": [
2715
+ {
2716
+ "type": "typography",
2717
+ "variant": "caption",
2718
+ "content": "TotalPoints"
2719
+ },
2720
+ {
2721
+ "type": "typography",
2722
+ "variant": "h3",
2723
+ "content": "@entity.totalPoints"
2724
+ }
2725
+ ]
2726
+ }
2727
+ ]
2728
+ },
2729
+ {
2730
+ "type": "card",
2731
+ "children": [
2732
+ {
2733
+ "type": "stack",
2734
+ "direction": "vertical",
2735
+ "gap": "sm",
2736
+ "children": [
2737
+ {
2738
+ "type": "typography",
2739
+ "variant": "caption",
2740
+ "content": "CompletedPoints"
2741
+ },
2742
+ {
2743
+ "type": "typography",
2744
+ "variant": "h3",
2745
+ "content": "@entity.completedPoints"
2746
+ }
2747
+ ]
2748
+ }
2749
+ ]
2750
+ },
2751
+ {
2752
+ "type": "card",
2753
+ "children": [
2754
+ {
2755
+ "type": "stack",
2756
+ "direction": "vertical",
2757
+ "gap": "sm",
2758
+ "children": [
2759
+ {
2760
+ "type": "typography",
2761
+ "variant": "caption",
2762
+ "content": "RemainingPoints"
2763
+ },
2764
+ {
2765
+ "type": "typography",
2766
+ "variant": "h3",
2767
+ "content": "@entity.remainingPoints"
2768
+ }
2769
+ ]
2770
+ }
2771
+ ]
2772
+ },
2773
+ {
2774
+ "type": "card",
2775
+ "children": [
2776
+ {
2777
+ "type": "stack",
2778
+ "direction": "vertical",
2779
+ "gap": "sm",
2780
+ "children": [
2781
+ {
2782
+ "type": "typography",
2783
+ "variant": "caption",
2784
+ "content": "Velocity"
2785
+ },
2786
+ {
2787
+ "type": "typography",
2788
+ "variant": "h3",
2789
+ "content": "@entity.velocity"
2790
+ }
2791
+ ]
2792
+ }
2793
+ ]
2794
+ },
2795
+ {
2796
+ "type": "card",
2797
+ "children": [
2798
+ {
2799
+ "type": "stack",
2800
+ "direction": "vertical",
2801
+ "gap": "sm",
2802
+ "children": [
2803
+ {
2804
+ "type": "typography",
2805
+ "variant": "caption",
2806
+ "content": "DaysRemaining"
2807
+ },
2808
+ {
2809
+ "type": "typography",
2810
+ "variant": "h3",
2811
+ "content": "@entity.daysRemaining"
2812
+ }
2813
+ ]
2814
+ }
2815
+ ]
2816
+ }
2817
+ ]
2818
+ }
2819
+ ]
2820
+ }
2821
+ ]
2822
+ ]
2823
+ },
2824
+ {
2825
+ "from": "refreshing",
2826
+ "to": "displaying",
2827
+ "event": "REFRESHED",
2828
+ "effects": [
2829
+ [
2830
+ "fetch",
2831
+ "Burndown"
2832
+ ],
2833
+ [
2834
+ "render-ui",
2835
+ "main",
2836
+ {
2837
+ "type": "stack",
2838
+ "direction": "vertical",
2839
+ "gap": "lg",
2840
+ "children": [
2841
+ {
2842
+ "type": "stack",
2843
+ "direction": "horizontal",
2844
+ "gap": "md",
2845
+ "justify": "space-between",
2846
+ "children": [
2847
+ {
2848
+ "type": "stack",
2849
+ "direction": "horizontal",
2850
+ "gap": "md",
2851
+ "children": [
2852
+ {
2853
+ "type": "icon",
2854
+ "name": "trending-down",
2855
+ "size": "lg"
2856
+ },
2857
+ {
2858
+ "type": "typography",
2859
+ "content": "Burndown Chart",
2860
+ "variant": "h2"
2861
+ }
2862
+ ]
2863
+ },
2864
+ {
2865
+ "type": "button",
2866
+ "label": "Refresh",
2867
+ "event": "REFRESH",
2868
+ "variant": "secondary",
2869
+ "icon": "refresh-cw"
2870
+ }
2871
+ ]
2872
+ },
2873
+ {
2874
+ "type": "divider"
2875
+ },
2876
+ {
2877
+ "type": "simple-grid",
2878
+ "columns": 5,
2879
+ "children": [
2880
+ {
2881
+ "type": "card",
2882
+ "children": [
2883
+ {
2884
+ "type": "stack",
2885
+ "direction": "vertical",
2886
+ "gap": "sm",
2887
+ "children": [
2888
+ {
2889
+ "type": "typography",
2890
+ "variant": "caption",
2891
+ "content": "TotalPoints"
2892
+ },
2893
+ {
2894
+ "type": "typography",
2895
+ "variant": "h3",
2896
+ "content": "@entity.totalPoints"
2897
+ }
2898
+ ]
2899
+ }
2900
+ ]
2901
+ },
2902
+ {
2903
+ "type": "card",
2904
+ "children": [
2905
+ {
2906
+ "type": "stack",
2907
+ "direction": "vertical",
2908
+ "gap": "sm",
2909
+ "children": [
2910
+ {
2911
+ "type": "typography",
2912
+ "variant": "caption",
2913
+ "content": "CompletedPoints"
2914
+ },
2915
+ {
2916
+ "type": "typography",
2917
+ "variant": "h3",
2918
+ "content": "@entity.completedPoints"
2919
+ }
2920
+ ]
2921
+ }
2922
+ ]
2923
+ },
2924
+ {
2925
+ "type": "card",
2926
+ "children": [
2927
+ {
2928
+ "type": "stack",
2929
+ "direction": "vertical",
2930
+ "gap": "sm",
2931
+ "children": [
2932
+ {
2933
+ "type": "typography",
2934
+ "variant": "caption",
2935
+ "content": "RemainingPoints"
2936
+ },
2937
+ {
2938
+ "type": "typography",
2939
+ "variant": "h3",
2940
+ "content": "@entity.remainingPoints"
2941
+ }
2942
+ ]
2943
+ }
2944
+ ]
2945
+ },
2946
+ {
2947
+ "type": "card",
2948
+ "children": [
2949
+ {
2950
+ "type": "stack",
2951
+ "direction": "vertical",
2952
+ "gap": "sm",
2953
+ "children": [
2954
+ {
2955
+ "type": "typography",
2956
+ "variant": "caption",
2957
+ "content": "Velocity"
2958
+ },
2959
+ {
2960
+ "type": "typography",
2961
+ "variant": "h3",
2962
+ "content": "@entity.velocity"
2963
+ }
2964
+ ]
2965
+ }
2966
+ ]
2967
+ },
2968
+ {
2969
+ "type": "card",
2970
+ "children": [
2971
+ {
2972
+ "type": "stack",
2973
+ "direction": "vertical",
2974
+ "gap": "sm",
2975
+ "children": [
2976
+ {
2977
+ "type": "typography",
2978
+ "variant": "caption",
2979
+ "content": "DaysRemaining"
2980
+ },
2981
+ {
2982
+ "type": "typography",
2983
+ "variant": "h3",
2984
+ "content": "@entity.daysRemaining"
2985
+ }
2986
+ ]
2987
+ }
2988
+ ]
2989
+ }
2990
+ ]
2991
+ }
2992
+ ]
2993
+ }
2994
+ ]
2995
+ ]
2996
+ }
2997
+ ]
2998
+ },
2999
+ "listens": [
3000
+ {
3001
+ "event": "COMPLETE_SPRINT",
3002
+ "triggers": "INIT",
3003
+ "scope": "external"
3004
+ }
3005
+ ]
3006
+ }
3007
+ ],
3008
+ "pages": [
3009
+ {
3010
+ "name": "BurndownPage",
3011
+ "path": "/burndown",
3012
+ "traits": [
3013
+ {
3014
+ "ref": "BurndownDisplay"
3015
+ }
3016
+ ]
3017
+ }
3018
+ ]
3019
+ }
3020
+ ]
3021
+ }