@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,1569 @@
1
+ {
2
+ "name": "Platformer App",
3
+ "version": "1.0.0",
4
+ "orbitals": [
5
+ {
6
+ "name": "PlatLevelOrbital",
7
+ "entity": {
8
+ "name": "PlatLevel",
9
+ "persistence": "runtime",
10
+ "fields": [
11
+ {
12
+ "name": "id",
13
+ "type": "string",
14
+ "required": true
15
+ },
16
+ {
17
+ "name": "level",
18
+ "type": "number",
19
+ "default": 1
20
+ },
21
+ {
22
+ "name": "score",
23
+ "type": "number",
24
+ "default": 0
25
+ },
26
+ {
27
+ "name": "lives",
28
+ "type": "number",
29
+ "default": 3
30
+ },
31
+ {
32
+ "name": "time",
33
+ "type": "number",
34
+ "default": 0
35
+ },
36
+ {
37
+ "name": "player",
38
+ "type": "string",
39
+ "default": ""
40
+ },
41
+ {
42
+ "name": "platforms",
43
+ "type": "string",
44
+ "default": ""
45
+ }
46
+ ]
47
+ },
48
+ "traits": [
49
+ {
50
+ "name": "PlatLevelPlatformerFlow",
51
+ "linkedEntity": "PlatLevel",
52
+ "category": "interaction",
53
+ "stateMachine": {
54
+ "states": [
55
+ {
56
+ "name": "menu",
57
+ "isInitial": true
58
+ },
59
+ {
60
+ "name": "playing"
61
+ },
62
+ {
63
+ "name": "paused"
64
+ },
65
+ {
66
+ "name": "gameover"
67
+ }
68
+ ],
69
+ "events": [
70
+ {
71
+ "key": "INIT",
72
+ "name": "Initialize"
73
+ },
74
+ {
75
+ "key": "START",
76
+ "name": "Start Game"
77
+ },
78
+ {
79
+ "key": "LEFT",
80
+ "name": "Move Left"
81
+ },
82
+ {
83
+ "key": "RIGHT",
84
+ "name": "Move Right"
85
+ },
86
+ {
87
+ "key": "JUMP",
88
+ "name": "Jump"
89
+ },
90
+ {
91
+ "key": "STOP",
92
+ "name": "Stop"
93
+ },
94
+ {
95
+ "key": "PAUSE",
96
+ "name": "Pause"
97
+ },
98
+ {
99
+ "key": "RESUME",
100
+ "name": "Resume"
101
+ },
102
+ {
103
+ "key": "GAME_OVER",
104
+ "name": "Game Over"
105
+ },
106
+ {
107
+ "key": "RESTART",
108
+ "name": "Restart"
109
+ },
110
+ {
111
+ "key": "CLOSE",
112
+ "name": "Close"
113
+ },
114
+ {
115
+ "key": "NAVIGATE",
116
+ "name": "Navigate"
117
+ }
118
+ ],
119
+ "transitions": [
120
+ {
121
+ "from": "menu",
122
+ "to": "menu",
123
+ "event": "INIT",
124
+ "effects": [
125
+ [
126
+ "fetch",
127
+ "PlatLevel"
128
+ ],
129
+ [
130
+ "render-ui",
131
+ "main",
132
+ {
133
+ "type": "game-menu",
134
+ "title": "Platformer",
135
+ "subtitle": "Side-Scrolling Adventure",
136
+ "menuItems": [
137
+ {
138
+ "label": "Start Game",
139
+ "event": "START",
140
+ "variant": "primary"
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ ]
146
+ },
147
+ {
148
+ "from": "menu",
149
+ "to": "playing",
150
+ "event": "START",
151
+ "effects": [
152
+ [
153
+ "render-ui",
154
+ "main",
155
+ {
156
+ "type": "platformer-canvas",
157
+ "canvasWidth": 800,
158
+ "canvasHeight": 400,
159
+ "worldWidth": 2400,
160
+ "worldHeight": 400,
161
+ "followCamera": true,
162
+ "bgColor": "#1a1a2e",
163
+ "leftEvent": "LEFT",
164
+ "rightEvent": "RIGHT",
165
+ "jumpEvent": "JUMP",
166
+ "stopEvent": "STOP"
167
+ }
168
+ ]
169
+ ]
170
+ },
171
+ {
172
+ "from": "playing",
173
+ "to": "playing",
174
+ "event": "LEFT",
175
+ "effects": []
176
+ },
177
+ {
178
+ "from": "playing",
179
+ "to": "playing",
180
+ "event": "RIGHT",
181
+ "effects": []
182
+ },
183
+ {
184
+ "from": "playing",
185
+ "to": "playing",
186
+ "event": "JUMP",
187
+ "effects": []
188
+ },
189
+ {
190
+ "from": "playing",
191
+ "to": "playing",
192
+ "event": "STOP",
193
+ "effects": []
194
+ },
195
+ {
196
+ "from": "menu",
197
+ "to": "menu",
198
+ "event": "NAVIGATE",
199
+ "effects": []
200
+ },
201
+ {
202
+ "from": "paused",
203
+ "to": "paused",
204
+ "event": "NAVIGATE",
205
+ "effects": []
206
+ },
207
+ {
208
+ "from": "playing",
209
+ "to": "paused",
210
+ "event": "PAUSE",
211
+ "effects": [
212
+ [
213
+ "render-ui",
214
+ "modal",
215
+ {
216
+ "type": "game-menu",
217
+ "title": "Paused",
218
+ "menuItems": [
219
+ {
220
+ "label": "Resume",
221
+ "event": "RESUME",
222
+ "variant": "primary"
223
+ },
224
+ {
225
+ "label": "Quit",
226
+ "event": "RESTART",
227
+ "variant": "ghost"
228
+ }
229
+ ]
230
+ }
231
+ ]
232
+ ]
233
+ },
234
+ {
235
+ "from": "paused",
236
+ "to": "playing",
237
+ "event": "RESUME",
238
+ "effects": [
239
+ [
240
+ "render-ui",
241
+ "modal",
242
+ null
243
+ ]
244
+ ]
245
+ },
246
+ {
247
+ "from": "paused",
248
+ "to": "playing",
249
+ "event": "CLOSE",
250
+ "effects": [
251
+ [
252
+ "render-ui",
253
+ "modal",
254
+ null
255
+ ]
256
+ ]
257
+ },
258
+ {
259
+ "from": "playing",
260
+ "to": "gameover",
261
+ "event": "GAME_OVER",
262
+ "effects": [
263
+ [
264
+ "render-ui",
265
+ "main",
266
+ {
267
+ "type": "game-over-screen",
268
+ "title": "Game Over",
269
+ "stats": [
270
+ {
271
+ "label": "Score",
272
+ "value": "@entity.score"
273
+ },
274
+ {
275
+ "label": "Lives",
276
+ "value": "@entity.lives"
277
+ }
278
+ ],
279
+ "menuItems": [
280
+ {
281
+ "label": "Play Again",
282
+ "event": "RESTART",
283
+ "variant": "primary"
284
+ },
285
+ {
286
+ "label": "Main Menu",
287
+ "event": "RESTART",
288
+ "variant": "secondary"
289
+ }
290
+ ]
291
+ }
292
+ ]
293
+ ]
294
+ },
295
+ {
296
+ "from": "gameover",
297
+ "to": "menu",
298
+ "event": "RESTART",
299
+ "effects": [
300
+ [
301
+ "render-ui",
302
+ "main",
303
+ {
304
+ "type": "game-menu",
305
+ "title": "Platformer",
306
+ "subtitle": "Side-Scrolling Adventure",
307
+ "menuItems": [
308
+ {
309
+ "label": "Start Game",
310
+ "event": "START",
311
+ "variant": "primary"
312
+ }
313
+ ]
314
+ }
315
+ ]
316
+ ]
317
+ },
318
+ {
319
+ "from": "paused",
320
+ "to": "menu",
321
+ "event": "RESTART",
322
+ "effects": [
323
+ [
324
+ "render-ui",
325
+ "modal",
326
+ null
327
+ ],
328
+ [
329
+ "render-ui",
330
+ "main",
331
+ {
332
+ "type": "game-menu",
333
+ "title": "Platformer",
334
+ "subtitle": "Side-Scrolling Adventure",
335
+ "menuItems": [
336
+ {
337
+ "label": "Start Game",
338
+ "event": "START",
339
+ "variant": "primary"
340
+ }
341
+ ]
342
+ }
343
+ ]
344
+ ]
345
+ }
346
+ ]
347
+ }
348
+ },
349
+ {
350
+ "name": "PlatLevelPlatformerCanvas",
351
+ "linkedEntity": "PlatLevel",
352
+ "category": "interaction",
353
+ "stateMachine": {
354
+ "states": [
355
+ {
356
+ "name": "idle",
357
+ "isInitial": true
358
+ },
359
+ {
360
+ "name": "running"
361
+ }
362
+ ],
363
+ "events": [
364
+ {
365
+ "key": "INIT",
366
+ "name": "Initialize"
367
+ },
368
+ {
369
+ "key": "LEFT",
370
+ "name": "Move Left"
371
+ },
372
+ {
373
+ "key": "RIGHT",
374
+ "name": "Move Right"
375
+ },
376
+ {
377
+ "key": "JUMP",
378
+ "name": "Jump"
379
+ },
380
+ {
381
+ "key": "STOP",
382
+ "name": "Stop"
383
+ },
384
+ {
385
+ "key": "START",
386
+ "name": "Start"
387
+ }
388
+ ],
389
+ "transitions": [
390
+ {
391
+ "from": "idle",
392
+ "to": "idle",
393
+ "event": "INIT",
394
+ "effects": [
395
+ [
396
+ "fetch",
397
+ "PlatLevel"
398
+ ]
399
+ ]
400
+ },
401
+ {
402
+ "from": "idle",
403
+ "to": "running",
404
+ "event": "START",
405
+ "effects": [
406
+ [
407
+ "render-ui",
408
+ "main",
409
+ {
410
+ "type": "platformer-canvas",
411
+ "platforms": "@entity.platforms",
412
+ "player": "@entity.player",
413
+ "canvasWidth": 800,
414
+ "canvasHeight": 400,
415
+ "worldWidth": 2400,
416
+ "worldHeight": 400,
417
+ "followCamera": true,
418
+ "bgColor": "#1a1a2e",
419
+ "leftEvent": "LEFT",
420
+ "rightEvent": "RIGHT",
421
+ "jumpEvent": "JUMP",
422
+ "stopEvent": "STOP"
423
+ }
424
+ ]
425
+ ]
426
+ },
427
+ {
428
+ "from": "running",
429
+ "to": "running",
430
+ "event": "LEFT",
431
+ "effects": []
432
+ },
433
+ {
434
+ "from": "running",
435
+ "to": "running",
436
+ "event": "RIGHT",
437
+ "effects": []
438
+ },
439
+ {
440
+ "from": "running",
441
+ "to": "running",
442
+ "event": "JUMP",
443
+ "effects": []
444
+ },
445
+ {
446
+ "from": "running",
447
+ "to": "idle",
448
+ "event": "STOP",
449
+ "effects": [
450
+ [
451
+ "render-ui",
452
+ "main",
453
+ {
454
+ "type": "platformer-canvas",
455
+ "platforms": "@entity.platforms",
456
+ "player": "@entity.player",
457
+ "canvasWidth": 800,
458
+ "canvasHeight": 400,
459
+ "worldWidth": 2400,
460
+ "worldHeight": 400,
461
+ "followCamera": true,
462
+ "bgColor": "#1a1a2e",
463
+ "leftEvent": "LEFT",
464
+ "rightEvent": "RIGHT",
465
+ "jumpEvent": "JUMP",
466
+ "stopEvent": "STOP"
467
+ }
468
+ ]
469
+ ]
470
+ }
471
+ ]
472
+ }
473
+ }
474
+ ],
475
+ "pages": [
476
+ {
477
+ "name": "GamePage",
478
+ "path": "/game",
479
+ "isInitial": true,
480
+ "traits": [
481
+ {
482
+ "ref": "PlatLevelPlatformerFlow"
483
+ },
484
+ {
485
+ "ref": "PlatLevelPlatformerCanvas"
486
+ }
487
+ ]
488
+ }
489
+ ]
490
+ },
491
+ {
492
+ "name": "PlatScoreOrbital",
493
+ "entity": {
494
+ "name": "PlatScore",
495
+ "persistence": "runtime",
496
+ "fields": [
497
+ {
498
+ "name": "id",
499
+ "type": "string",
500
+ "required": true
501
+ },
502
+ {
503
+ "name": "playerName",
504
+ "type": "string",
505
+ "required": true
506
+ },
507
+ {
508
+ "name": "score",
509
+ "type": "number",
510
+ "required": true
511
+ },
512
+ {
513
+ "name": "level",
514
+ "type": "number"
515
+ },
516
+ {
517
+ "name": "completedAt",
518
+ "type": "string"
519
+ },
520
+ {
521
+ "name": "highScore",
522
+ "type": "number",
523
+ "default": 0
524
+ },
525
+ {
526
+ "name": "combo",
527
+ "type": "number",
528
+ "default": 0
529
+ },
530
+ {
531
+ "name": "multiplier",
532
+ "type": "number",
533
+ "default": 1
534
+ }
535
+ ]
536
+ },
537
+ "traits": [
538
+ {
539
+ "name": "PlatScoreScoreBoard",
540
+ "linkedEntity": "PlatScore",
541
+ "category": "interaction",
542
+ "stateMachine": {
543
+ "states": [
544
+ {
545
+ "name": "idle",
546
+ "isInitial": true
547
+ }
548
+ ],
549
+ "events": [
550
+ {
551
+ "key": "INIT",
552
+ "name": "Initialize"
553
+ },
554
+ {
555
+ "key": "ADD_SCORE",
556
+ "name": "Add Score",
557
+ "payload": [
558
+ {
559
+ "name": "points",
560
+ "type": "number",
561
+ "required": true
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "key": "COMBO",
567
+ "name": "Combo",
568
+ "payload": [
569
+ {
570
+ "name": "multiplier",
571
+ "type": "number",
572
+ "required": true
573
+ }
574
+ ]
575
+ },
576
+ {
577
+ "key": "RESET",
578
+ "name": "Reset"
579
+ }
580
+ ],
581
+ "transitions": [
582
+ {
583
+ "from": "idle",
584
+ "to": "idle",
585
+ "event": "INIT",
586
+ "effects": [
587
+ [
588
+ "fetch",
589
+ "PlatScore"
590
+ ],
591
+ [
592
+ "render-ui",
593
+ "main",
594
+ {
595
+ "type": "score-board",
596
+ "score": "@entity.score",
597
+ "highScore": "@entity.highScore",
598
+ "combo": "@entity.combo",
599
+ "multiplier": "@entity.multiplier",
600
+ "level": "@entity.level"
601
+ }
602
+ ]
603
+ ]
604
+ },
605
+ {
606
+ "from": "idle",
607
+ "to": "idle",
608
+ "event": "ADD_SCORE",
609
+ "effects": [
610
+ [
611
+ "set",
612
+ "@entity.score",
613
+ [
614
+ "+",
615
+ "@entity.score",
616
+ "@payload.points"
617
+ ]
618
+ ],
619
+ [
620
+ "set",
621
+ "@entity.combo",
622
+ [
623
+ "+",
624
+ "@entity.combo",
625
+ 1
626
+ ]
627
+ ],
628
+ [
629
+ "render-ui",
630
+ "main",
631
+ {
632
+ "type": "score-board",
633
+ "score": "@entity.score",
634
+ "highScore": "@entity.highScore",
635
+ "combo": "@entity.combo",
636
+ "multiplier": "@entity.multiplier",
637
+ "level": "@entity.level"
638
+ }
639
+ ]
640
+ ]
641
+ },
642
+ {
643
+ "from": "idle",
644
+ "to": "idle",
645
+ "event": "COMBO",
646
+ "effects": [
647
+ [
648
+ "set",
649
+ "@entity.multiplier",
650
+ "@payload.multiplier"
651
+ ],
652
+ [
653
+ "render-ui",
654
+ "main",
655
+ {
656
+ "type": "score-board",
657
+ "score": "@entity.score",
658
+ "highScore": "@entity.highScore",
659
+ "combo": "@entity.combo",
660
+ "multiplier": "@entity.multiplier",
661
+ "level": "@entity.level"
662
+ }
663
+ ]
664
+ ]
665
+ },
666
+ {
667
+ "from": "idle",
668
+ "to": "idle",
669
+ "event": "RESET",
670
+ "effects": [
671
+ [
672
+ "set",
673
+ "@entity.score",
674
+ 0
675
+ ],
676
+ [
677
+ "set",
678
+ "@entity.combo",
679
+ 0
680
+ ],
681
+ [
682
+ "set",
683
+ "@entity.multiplier",
684
+ 1
685
+ ],
686
+ [
687
+ "render-ui",
688
+ "main",
689
+ {
690
+ "type": "score-board",
691
+ "score": "@entity.score",
692
+ "highScore": "@entity.highScore",
693
+ "combo": "@entity.combo",
694
+ "multiplier": "@entity.multiplier",
695
+ "level": "@entity.level"
696
+ }
697
+ ]
698
+ ]
699
+ }
700
+ ]
701
+ }
702
+ }
703
+ ],
704
+ "pages": [
705
+ {
706
+ "name": "ScoresPage",
707
+ "path": "/scores",
708
+ "traits": [
709
+ {
710
+ "ref": "PlatScoreScoreBoard"
711
+ }
712
+ ]
713
+ }
714
+ ]
715
+ },
716
+ {
717
+ "name": "CollectibleOrbital",
718
+ "entity": {
719
+ "name": "Collectible",
720
+ "persistence": "runtime",
721
+ "fields": [
722
+ {
723
+ "name": "id",
724
+ "type": "string",
725
+ "required": true
726
+ },
727
+ {
728
+ "name": "name",
729
+ "type": "string",
730
+ "required": true
731
+ },
732
+ {
733
+ "name": "type",
734
+ "type": "string",
735
+ "required": true
736
+ },
737
+ {
738
+ "name": "quantity",
739
+ "type": "number",
740
+ "default": 1
741
+ },
742
+ {
743
+ "name": "rarity",
744
+ "type": "string",
745
+ "default": "common"
746
+ },
747
+ {
748
+ "name": "pendingId",
749
+ "type": "string",
750
+ "default": ""
751
+ }
752
+ ]
753
+ },
754
+ "traits": [
755
+ {
756
+ "name": "CollectibleBrowse",
757
+ "linkedEntity": "Collectible",
758
+ "category": "interaction",
759
+ "listens": [
760
+ {
761
+ "event": "ITEM_ADDED",
762
+ "triggers": "ITEM_ADDED"
763
+ },
764
+ {
765
+ "event": "ITEM_USED",
766
+ "triggers": "ITEM_USED"
767
+ },
768
+ {
769
+ "event": "CONFIRM_DROP",
770
+ "triggers": "CONFIRM_DROP"
771
+ }
772
+ ],
773
+ "stateMachine": {
774
+ "states": [
775
+ {
776
+ "name": "browsing",
777
+ "isInitial": true
778
+ }
779
+ ],
780
+ "events": [
781
+ {
782
+ "key": "INIT",
783
+ "name": "Initialize"
784
+ },
785
+ {
786
+ "key": "ADD_ITEM",
787
+ "name": "ADD_ITEM"
788
+ },
789
+ {
790
+ "key": "USE_ITEM",
791
+ "name": "USE_ITEM",
792
+ "payload": [
793
+ {
794
+ "name": "id",
795
+ "type": "string",
796
+ "required": true
797
+ }
798
+ ]
799
+ },
800
+ {
801
+ "key": "DROP",
802
+ "name": "DROP",
803
+ "payload": [
804
+ {
805
+ "name": "id",
806
+ "type": "string",
807
+ "required": true
808
+ }
809
+ ]
810
+ },
811
+ {
812
+ "key": "ITEM_ADDED",
813
+ "name": "ITEM_ADDED",
814
+ "payload": [
815
+ {
816
+ "name": "data",
817
+ "type": "object",
818
+ "required": true
819
+ }
820
+ ]
821
+ },
822
+ {
823
+ "key": "ITEM_USED",
824
+ "name": "ITEM_USED",
825
+ "payload": [
826
+ {
827
+ "name": "data",
828
+ "type": "object",
829
+ "required": true
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ "key": "CONFIRM_DROP",
835
+ "name": "CONFIRM_DROP",
836
+ "payload": [
837
+ {
838
+ "name": "data",
839
+ "type": "object",
840
+ "required": true
841
+ }
842
+ ]
843
+ }
844
+ ],
845
+ "transitions": [
846
+ {
847
+ "from": "browsing",
848
+ "to": "browsing",
849
+ "event": "INIT",
850
+ "effects": [
851
+ [
852
+ "fetch",
853
+ "Collectible"
854
+ ],
855
+ [
856
+ "render-ui",
857
+ "main",
858
+ {
859
+ "type": "stack",
860
+ "direction": "vertical",
861
+ "gap": "lg",
862
+ "children": [
863
+ {
864
+ "type": "stack",
865
+ "direction": "horizontal",
866
+ "gap": "md",
867
+ "justify": "space-between",
868
+ "children": [
869
+ {
870
+ "type": "stack",
871
+ "direction": "horizontal",
872
+ "gap": "sm",
873
+ "align": "center",
874
+ "children": [
875
+ {
876
+ "type": "icon",
877
+ "name": "package",
878
+ "size": "lg"
879
+ },
880
+ {
881
+ "type": "typography",
882
+ "content": "Collectibles",
883
+ "variant": "h2"
884
+ }
885
+ ]
886
+ },
887
+ {
888
+ "type": "stack",
889
+ "direction": "horizontal",
890
+ "gap": "sm",
891
+ "children": [
892
+ {
893
+ "type": "button",
894
+ "label": "Add Collectible",
895
+ "event": "ADD_ITEM",
896
+ "variant": "primary",
897
+ "icon": "plus"
898
+ }
899
+ ]
900
+ }
901
+ ]
902
+ },
903
+ {
904
+ "type": "divider"
905
+ },
906
+ {
907
+ "type": "data-grid",
908
+ "entity": "Collectible",
909
+ "emptyIcon": "inbox",
910
+ "emptyTitle": "No items yet",
911
+ "emptyDescription": "Add your first item to get started.",
912
+ "itemActions": [
913
+ {
914
+ "label": "Use",
915
+ "event": "USE_ITEM"
916
+ },
917
+ {
918
+ "label": "Drop",
919
+ "event": "DROP",
920
+ "variant": "danger"
921
+ }
922
+ ],
923
+ "className": "transition-shadow hover:shadow-md cursor-pointer",
924
+ "children": [
925
+ {
926
+ "type": "stack",
927
+ "direction": "vertical",
928
+ "gap": "sm",
929
+ "children": [
930
+ {
931
+ "type": "stack",
932
+ "direction": "horizontal",
933
+ "justify": "space-between",
934
+ "align": "center",
935
+ "children": [
936
+ {
937
+ "type": "stack",
938
+ "direction": "horizontal",
939
+ "gap": "sm",
940
+ "align": "center",
941
+ "children": [
942
+ {
943
+ "type": "icon",
944
+ "name": "package",
945
+ "size": "sm"
946
+ },
947
+ {
948
+ "type": "typography",
949
+ "variant": "h4",
950
+ "content": "@entity.name"
951
+ }
952
+ ]
953
+ },
954
+ {
955
+ "type": "badge",
956
+ "label": "@entity.type"
957
+ }
958
+ ]
959
+ },
960
+ {
961
+ "type": "typography",
962
+ "variant": "caption",
963
+ "color": "muted",
964
+ "content": "@entity.quantity"
965
+ }
966
+ ]
967
+ }
968
+ ]
969
+ }
970
+ ]
971
+ }
972
+ ]
973
+ ]
974
+ },
975
+ {
976
+ "from": "browsing",
977
+ "to": "browsing",
978
+ "event": "ITEM_ADDED",
979
+ "effects": [
980
+ [
981
+ "fetch",
982
+ "Collectible"
983
+ ]
984
+ ]
985
+ },
986
+ {
987
+ "from": "browsing",
988
+ "to": "browsing",
989
+ "event": "ITEM_USED",
990
+ "effects": [
991
+ [
992
+ "fetch",
993
+ "Collectible"
994
+ ]
995
+ ]
996
+ },
997
+ {
998
+ "from": "browsing",
999
+ "to": "browsing",
1000
+ "event": "CONFIRM_DROP",
1001
+ "effects": [
1002
+ [
1003
+ "fetch",
1004
+ "Collectible"
1005
+ ]
1006
+ ]
1007
+ }
1008
+ ]
1009
+ }
1010
+ },
1011
+ {
1012
+ "name": "CollectibleAdd",
1013
+ "linkedEntity": "Collectible",
1014
+ "category": "interaction",
1015
+ "emits": [
1016
+ {
1017
+ "event": "ITEM_ADDED"
1018
+ }
1019
+ ],
1020
+ "stateMachine": {
1021
+ "states": [
1022
+ {
1023
+ "name": "closed",
1024
+ "isInitial": true
1025
+ },
1026
+ {
1027
+ "name": "open"
1028
+ }
1029
+ ],
1030
+ "events": [
1031
+ {
1032
+ "key": "INIT",
1033
+ "name": "Initialize"
1034
+ },
1035
+ {
1036
+ "key": "ADD_ITEM",
1037
+ "name": "Open"
1038
+ },
1039
+ {
1040
+ "key": "CLOSE",
1041
+ "name": "Close"
1042
+ },
1043
+ {
1044
+ "key": "SAVE",
1045
+ "name": "Save",
1046
+ "payload": [
1047
+ {
1048
+ "name": "data",
1049
+ "type": "object",
1050
+ "required": true
1051
+ }
1052
+ ]
1053
+ }
1054
+ ],
1055
+ "transitions": [
1056
+ {
1057
+ "from": "closed",
1058
+ "to": "closed",
1059
+ "event": "INIT",
1060
+ "effects": [
1061
+ [
1062
+ "fetch",
1063
+ "Collectible"
1064
+ ]
1065
+ ]
1066
+ },
1067
+ {
1068
+ "from": "closed",
1069
+ "to": "open",
1070
+ "event": "ADD_ITEM",
1071
+ "effects": [
1072
+ [
1073
+ "fetch",
1074
+ "Collectible"
1075
+ ],
1076
+ [
1077
+ "render-ui",
1078
+ "modal",
1079
+ {
1080
+ "type": "stack",
1081
+ "direction": "vertical",
1082
+ "gap": "md",
1083
+ "children": [
1084
+ {
1085
+ "type": "stack",
1086
+ "direction": "horizontal",
1087
+ "gap": "sm",
1088
+ "children": [
1089
+ {
1090
+ "type": "icon",
1091
+ "name": "plus-circle",
1092
+ "size": "md"
1093
+ },
1094
+ {
1095
+ "type": "typography",
1096
+ "content": "Add Collectible",
1097
+ "variant": "h3"
1098
+ }
1099
+ ]
1100
+ },
1101
+ {
1102
+ "type": "divider"
1103
+ },
1104
+ {
1105
+ "type": "form-section",
1106
+ "entity": "Collectible",
1107
+ "mode": "create",
1108
+ "submitEvent": "SAVE",
1109
+ "cancelEvent": "CLOSE",
1110
+ "fields": [
1111
+ "name",
1112
+ "type",
1113
+ "quantity",
1114
+ "rarity",
1115
+ "pendingId"
1116
+ ]
1117
+ }
1118
+ ]
1119
+ }
1120
+ ]
1121
+ ]
1122
+ },
1123
+ {
1124
+ "from": "open",
1125
+ "to": "closed",
1126
+ "event": "CLOSE",
1127
+ "effects": [
1128
+ [
1129
+ "render-ui",
1130
+ "modal",
1131
+ null
1132
+ ]
1133
+ ]
1134
+ },
1135
+ {
1136
+ "from": "open",
1137
+ "to": "closed",
1138
+ "event": "SAVE",
1139
+ "effects": [
1140
+ [
1141
+ "persist",
1142
+ "create",
1143
+ "Collectible",
1144
+ "@payload.data"
1145
+ ],
1146
+ [
1147
+ "fetch",
1148
+ "Collectible"
1149
+ ],
1150
+ [
1151
+ "render-ui",
1152
+ "modal",
1153
+ null
1154
+ ],
1155
+ [
1156
+ "emit",
1157
+ "ITEM_ADDED"
1158
+ ],
1159
+ [
1160
+ "notify",
1161
+ "Collectible created successfully"
1162
+ ]
1163
+ ]
1164
+ }
1165
+ ]
1166
+ }
1167
+ },
1168
+ {
1169
+ "name": "CollectibleUse",
1170
+ "linkedEntity": "Collectible",
1171
+ "category": "interaction",
1172
+ "emits": [
1173
+ {
1174
+ "event": "ITEM_USED"
1175
+ }
1176
+ ],
1177
+ "stateMachine": {
1178
+ "states": [
1179
+ {
1180
+ "name": "closed",
1181
+ "isInitial": true
1182
+ },
1183
+ {
1184
+ "name": "open"
1185
+ }
1186
+ ],
1187
+ "events": [
1188
+ {
1189
+ "key": "INIT",
1190
+ "name": "Initialize"
1191
+ },
1192
+ {
1193
+ "key": "USE_ITEM",
1194
+ "name": "Open",
1195
+ "payload": [
1196
+ {
1197
+ "name": "id",
1198
+ "type": "string",
1199
+ "required": true
1200
+ }
1201
+ ]
1202
+ },
1203
+ {
1204
+ "key": "CLOSE",
1205
+ "name": "Close"
1206
+ },
1207
+ {
1208
+ "key": "SAVE",
1209
+ "name": "Save",
1210
+ "payload": [
1211
+ {
1212
+ "name": "data",
1213
+ "type": "object",
1214
+ "required": true
1215
+ }
1216
+ ]
1217
+ }
1218
+ ],
1219
+ "transitions": [
1220
+ {
1221
+ "from": "closed",
1222
+ "to": "closed",
1223
+ "event": "INIT",
1224
+ "effects": [
1225
+ [
1226
+ "fetch",
1227
+ "Collectible"
1228
+ ]
1229
+ ]
1230
+ },
1231
+ {
1232
+ "from": "closed",
1233
+ "to": "open",
1234
+ "event": "USE_ITEM",
1235
+ "effects": [
1236
+ [
1237
+ "fetch",
1238
+ "Collectible",
1239
+ "@payload.id"
1240
+ ],
1241
+ [
1242
+ "render-ui",
1243
+ "modal",
1244
+ {
1245
+ "type": "stack",
1246
+ "direction": "vertical",
1247
+ "gap": "md",
1248
+ "align": "center",
1249
+ "children": [
1250
+ {
1251
+ "type": "stack",
1252
+ "direction": "horizontal",
1253
+ "gap": "sm",
1254
+ "align": "center",
1255
+ "children": [
1256
+ {
1257
+ "type": "icon",
1258
+ "name": "zap",
1259
+ "size": "md"
1260
+ },
1261
+ {
1262
+ "type": "typography",
1263
+ "content": "Use Collectible",
1264
+ "variant": "h3"
1265
+ }
1266
+ ]
1267
+ },
1268
+ {
1269
+ "type": "divider"
1270
+ },
1271
+ {
1272
+ "type": "typography",
1273
+ "content": "@entity.name",
1274
+ "variant": "body"
1275
+ },
1276
+ {
1277
+ "type": "stack",
1278
+ "direction": "horizontal",
1279
+ "gap": "sm",
1280
+ "justify": "center",
1281
+ "children": [
1282
+ {
1283
+ "type": "button",
1284
+ "label": "Cancel",
1285
+ "event": "CLOSE",
1286
+ "variant": "ghost"
1287
+ },
1288
+ {
1289
+ "type": "button",
1290
+ "label": "Confirm Use",
1291
+ "event": "SAVE",
1292
+ "variant": "primary",
1293
+ "icon": "check"
1294
+ }
1295
+ ]
1296
+ }
1297
+ ]
1298
+ }
1299
+ ]
1300
+ ]
1301
+ },
1302
+ {
1303
+ "from": "open",
1304
+ "to": "closed",
1305
+ "event": "CLOSE",
1306
+ "effects": [
1307
+ [
1308
+ "render-ui",
1309
+ "modal",
1310
+ null
1311
+ ]
1312
+ ]
1313
+ },
1314
+ {
1315
+ "from": "open",
1316
+ "to": "closed",
1317
+ "event": "SAVE",
1318
+ "effects": [
1319
+ [
1320
+ "persist",
1321
+ "update",
1322
+ "Collectible",
1323
+ "@payload.data"
1324
+ ],
1325
+ [
1326
+ "fetch",
1327
+ "Collectible"
1328
+ ],
1329
+ [
1330
+ "render-ui",
1331
+ "modal",
1332
+ null
1333
+ ],
1334
+ [
1335
+ "emit",
1336
+ "ITEM_USED"
1337
+ ],
1338
+ [
1339
+ "notify",
1340
+ "Collectible updated successfully"
1341
+ ]
1342
+ ]
1343
+ }
1344
+ ]
1345
+ }
1346
+ },
1347
+ {
1348
+ "name": "CollectibleDrop",
1349
+ "linkedEntity": "Collectible",
1350
+ "category": "interaction",
1351
+ "emits": [
1352
+ {
1353
+ "event": "CONFIRM_DROP"
1354
+ }
1355
+ ],
1356
+ "stateMachine": {
1357
+ "states": [
1358
+ {
1359
+ "name": "idle",
1360
+ "isInitial": true
1361
+ },
1362
+ {
1363
+ "name": "confirming"
1364
+ }
1365
+ ],
1366
+ "events": [
1367
+ {
1368
+ "key": "INIT",
1369
+ "name": "Initialize"
1370
+ },
1371
+ {
1372
+ "key": "DROP",
1373
+ "name": "Request Confirmation",
1374
+ "payload": [
1375
+ {
1376
+ "name": "id",
1377
+ "type": "string",
1378
+ "required": true
1379
+ }
1380
+ ]
1381
+ },
1382
+ {
1383
+ "key": "CONFIRM_DROP",
1384
+ "name": "Confirm",
1385
+ "payload": [
1386
+ {
1387
+ "name": "id",
1388
+ "type": "string",
1389
+ "required": true
1390
+ }
1391
+ ]
1392
+ },
1393
+ {
1394
+ "key": "CANCEL",
1395
+ "name": "Cancel"
1396
+ },
1397
+ {
1398
+ "key": "CLOSE",
1399
+ "name": "Close"
1400
+ }
1401
+ ],
1402
+ "transitions": [
1403
+ {
1404
+ "from": "idle",
1405
+ "to": "idle",
1406
+ "event": "INIT",
1407
+ "effects": [
1408
+ [
1409
+ "fetch",
1410
+ "Collectible"
1411
+ ]
1412
+ ]
1413
+ },
1414
+ {
1415
+ "from": "idle",
1416
+ "to": "confirming",
1417
+ "event": "DROP",
1418
+ "effects": [
1419
+ [
1420
+ "set",
1421
+ "@entity.pendingId",
1422
+ "@payload.id"
1423
+ ],
1424
+ [
1425
+ "fetch",
1426
+ "Collectible",
1427
+ "@payload.id"
1428
+ ],
1429
+ [
1430
+ "render-ui",
1431
+ "modal",
1432
+ {
1433
+ "type": "stack",
1434
+ "direction": "vertical",
1435
+ "gap": "md",
1436
+ "children": [
1437
+ {
1438
+ "type": "stack",
1439
+ "direction": "horizontal",
1440
+ "gap": "sm",
1441
+ "align": "center",
1442
+ "children": [
1443
+ {
1444
+ "type": "icon",
1445
+ "name": "trash-2",
1446
+ "size": "md"
1447
+ },
1448
+ {
1449
+ "type": "typography",
1450
+ "content": "Drop Collectible",
1451
+ "variant": "h3"
1452
+ }
1453
+ ]
1454
+ },
1455
+ {
1456
+ "type": "divider"
1457
+ },
1458
+ {
1459
+ "type": "typography",
1460
+ "content": "Are you sure you want to drop this collectible?",
1461
+ "variant": "body"
1462
+ },
1463
+ {
1464
+ "type": "stack",
1465
+ "direction": "horizontal",
1466
+ "gap": "sm",
1467
+ "justify": "end",
1468
+ "children": [
1469
+ {
1470
+ "type": "button",
1471
+ "label": "Cancel",
1472
+ "event": "CANCEL",
1473
+ "variant": "ghost"
1474
+ },
1475
+ {
1476
+ "type": "button",
1477
+ "label": "Drop",
1478
+ "event": "CONFIRM_DROP",
1479
+ "variant": "danger",
1480
+ "icon": "check"
1481
+ }
1482
+ ]
1483
+ }
1484
+ ]
1485
+ }
1486
+ ]
1487
+ ]
1488
+ },
1489
+ {
1490
+ "from": "confirming",
1491
+ "to": "idle",
1492
+ "event": "CONFIRM_DROP",
1493
+ "effects": [
1494
+ [
1495
+ "persist",
1496
+ "delete",
1497
+ "Collectible",
1498
+ "@payload.id"
1499
+ ],
1500
+ [
1501
+ "fetch",
1502
+ "Collectible"
1503
+ ],
1504
+ [
1505
+ "render-ui",
1506
+ "modal",
1507
+ null
1508
+ ],
1509
+ [
1510
+ "emit",
1511
+ "CONFIRM_DROP"
1512
+ ],
1513
+ [
1514
+ "notify",
1515
+ "Collectible deleted successfully"
1516
+ ]
1517
+ ]
1518
+ },
1519
+ {
1520
+ "from": "confirming",
1521
+ "to": "idle",
1522
+ "event": "CANCEL",
1523
+ "effects": [
1524
+ [
1525
+ "render-ui",
1526
+ "modal",
1527
+ null
1528
+ ]
1529
+ ]
1530
+ },
1531
+ {
1532
+ "from": "confirming",
1533
+ "to": "idle",
1534
+ "event": "CLOSE",
1535
+ "effects": [
1536
+ [
1537
+ "render-ui",
1538
+ "modal",
1539
+ null
1540
+ ]
1541
+ ]
1542
+ }
1543
+ ]
1544
+ }
1545
+ }
1546
+ ],
1547
+ "pages": [
1548
+ {
1549
+ "name": "CollectiblesPage",
1550
+ "path": "/collectibles",
1551
+ "traits": [
1552
+ {
1553
+ "ref": "CollectibleBrowse"
1554
+ },
1555
+ {
1556
+ "ref": "CollectibleAdd"
1557
+ },
1558
+ {
1559
+ "ref": "CollectibleUse"
1560
+ },
1561
+ {
1562
+ "ref": "CollectibleDrop"
1563
+ }
1564
+ ]
1565
+ }
1566
+ ]
1567
+ }
1568
+ ]
1569
+ }