@almadar/std 3.1.0 → 3.1.2

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 (256) hide show
  1. package/behaviors/exports/atoms/std-async.orb +2 -1
  2. package/behaviors/exports/atoms/std-browse.orb +2 -1
  3. package/behaviors/exports/atoms/std-cache-aside.orb +2 -1
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +2 -1
  5. package/behaviors/exports/atoms/std-collision.orb +2 -1
  6. package/behaviors/exports/atoms/std-combat-log.orb +2 -1
  7. package/behaviors/exports/atoms/std-combat.orb +2 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +2 -1
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +2 -1
  10. package/behaviors/exports/atoms/std-display.orb +2 -1
  11. package/behaviors/exports/atoms/std-drawer.orb +2 -1
  12. package/behaviors/exports/atoms/std-filter.orb +2 -1
  13. package/behaviors/exports/atoms/std-game-audio.orb +2 -1
  14. package/behaviors/exports/atoms/std-game-hud.orb +2 -1
  15. package/behaviors/exports/atoms/std-game-menu.orb +2 -1
  16. package/behaviors/exports/atoms/std-game-over-screen.orb +2 -1
  17. package/behaviors/exports/atoms/std-gameflow.orb +2 -1
  18. package/behaviors/exports/atoms/std-input.orb +2 -1
  19. package/behaviors/exports/atoms/std-inventory-panel.orb +2 -1
  20. package/behaviors/exports/atoms/std-isometric-canvas.orb +2 -1
  21. package/behaviors/exports/atoms/std-loading.orb +2 -1
  22. package/behaviors/exports/atoms/std-modal.orb +2 -1
  23. package/behaviors/exports/atoms/std-movement.orb +2 -1
  24. package/behaviors/exports/atoms/std-notification.orb +2 -1
  25. package/behaviors/exports/atoms/std-overworld.orb +2 -1
  26. package/behaviors/exports/atoms/std-pagination.orb +2 -1
  27. package/behaviors/exports/atoms/std-physics2d.orb +2 -1
  28. package/behaviors/exports/atoms/std-platformer-canvas.orb +2 -1
  29. package/behaviors/exports/atoms/std-quest.orb +2 -1
  30. package/behaviors/exports/atoms/std-rate-limiter.orb +2 -1
  31. package/behaviors/exports/atoms/std-score-board.orb +2 -1
  32. package/behaviors/exports/atoms/std-score.orb +2 -1
  33. package/behaviors/exports/atoms/std-search.orb +2 -1
  34. package/behaviors/exports/atoms/std-selection.orb +2 -1
  35. package/behaviors/exports/atoms/std-simulation-canvas.orb +2 -1
  36. package/behaviors/exports/atoms/std-sort.orb +2 -1
  37. package/behaviors/exports/atoms/std-sprite.orb +2 -1
  38. package/behaviors/exports/atoms/std-tabs.orb +2 -1
  39. package/behaviors/exports/atoms/std-timer.orb +2 -1
  40. package/behaviors/exports/atoms/std-undo.orb +2 -1
  41. package/behaviors/exports/atoms/std-wizard.orb +2 -1
  42. package/behaviors/exports/molecules/std-builder-game.orb +2 -1
  43. package/behaviors/exports/molecules/std-cart.orb +2 -1
  44. package/behaviors/exports/molecules/std-classifier-game.orb +2 -1
  45. package/behaviors/exports/molecules/std-debugger-game.orb +2 -1
  46. package/behaviors/exports/molecules/std-detail.orb +2 -1
  47. package/behaviors/exports/molecules/std-event-handler-game.orb +2 -1
  48. package/behaviors/exports/molecules/std-geospatial.orb +2 -1
  49. package/behaviors/exports/molecules/std-inventory.orb +2 -1
  50. package/behaviors/exports/molecules/std-list.orb +2 -1
  51. package/behaviors/exports/molecules/std-messaging.orb +2 -1
  52. package/behaviors/exports/molecules/std-negotiator-game.orb +2 -1
  53. package/behaviors/exports/molecules/std-platformer-game.orb +2 -1
  54. package/behaviors/exports/molecules/std-puzzle-game.orb +2 -1
  55. package/behaviors/exports/molecules/std-sequencer-game.orb +2 -1
  56. package/behaviors/exports/molecules/std-simulator-game.orb +2 -1
  57. package/behaviors/exports/molecules/std-turn-based-battle.orb +2 -1
  58. package/behaviors/exports/organisms/std-api-gateway.orb +2 -1
  59. package/behaviors/exports/organisms/std-arcade-game.orb +2 -1
  60. package/behaviors/exports/organisms/std-booking-system.orb +2 -1
  61. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2 -1
  62. package/behaviors/exports/organisms/std-cms.orb +2 -1
  63. package/behaviors/exports/organisms/std-coding-academy.orb +2 -1
  64. package/behaviors/exports/organisms/std-crm.orb +2 -1
  65. package/behaviors/exports/organisms/std-devops-dashboard.orb +2 -1
  66. package/behaviors/exports/organisms/std-ecommerce.orb +2 -1
  67. package/behaviors/exports/organisms/std-finance-tracker.orb +2 -1
  68. package/behaviors/exports/organisms/std-healthcare.orb +2 -1
  69. package/behaviors/exports/organisms/std-helpdesk.orb +2 -1
  70. package/behaviors/exports/organisms/std-hr-portal.orb +2 -1
  71. package/behaviors/exports/organisms/std-iot-dashboard.orb +2 -1
  72. package/behaviors/exports/organisms/std-lms.orb +2 -1
  73. package/behaviors/exports/organisms/std-logic-training.orb +2 -1
  74. package/behaviors/exports/organisms/std-platformer-app.orb +2 -1
  75. package/behaviors/exports/organisms/std-project-manager.orb +2 -1
  76. package/behaviors/exports/organisms/std-puzzle-app.orb +2 -1
  77. package/behaviors/exports/organisms/std-realtime-chat.orb +2 -1
  78. package/behaviors/exports/organisms/std-rpg-game.orb +2 -1
  79. package/behaviors/exports/organisms/std-social-feed.orb +2 -1
  80. package/behaviors/exports/organisms/std-stem-lab.orb +2 -1
  81. package/behaviors/exports/organisms/std-strategy-game.orb +2 -1
  82. package/behaviors/exports/organisms/std-trading-dashboard.orb +2 -1
  83. package/dist/behaviors/exports/atoms/std-async.orb +421 -0
  84. package/dist/behaviors/exports/atoms/std-browse.orb +174 -0
  85. package/dist/behaviors/exports/atoms/std-cache-aside.orb +882 -0
  86. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +502 -0
  87. package/dist/behaviors/exports/atoms/std-collision.orb +617 -0
  88. package/dist/behaviors/exports/atoms/std-combat-log.orb +146 -0
  89. package/dist/behaviors/exports/atoms/std-combat.orb +411 -0
  90. package/dist/behaviors/exports/atoms/std-confirmation.orb +283 -0
  91. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +239 -0
  92. package/dist/behaviors/exports/atoms/std-display.orb +843 -0
  93. package/dist/behaviors/exports/atoms/std-drawer.orb +317 -0
  94. package/dist/behaviors/exports/atoms/std-filter.orb +443 -0
  95. package/dist/behaviors/exports/atoms/std-game-audio.orb +114 -0
  96. package/dist/behaviors/exports/atoms/std-game-hud.orb +152 -0
  97. package/dist/behaviors/exports/atoms/std-game-menu.orb +212 -0
  98. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +196 -0
  99. package/dist/behaviors/exports/atoms/std-gameflow.orb +319 -0
  100. package/dist/behaviors/exports/atoms/std-input.orb +630 -0
  101. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +256 -0
  102. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +632 -0
  103. package/dist/behaviors/exports/atoms/std-loading.orb +512 -0
  104. package/dist/behaviors/exports/atoms/std-modal.orb +271 -0
  105. package/dist/behaviors/exports/atoms/std-movement.orb +1038 -0
  106. package/dist/behaviors/exports/atoms/std-notification.orb +419 -0
  107. package/dist/behaviors/exports/atoms/std-overworld.orb +484 -0
  108. package/dist/behaviors/exports/atoms/std-pagination.orb +332 -0
  109. package/dist/behaviors/exports/atoms/std-physics2d.orb +420 -0
  110. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +258 -0
  111. package/dist/behaviors/exports/atoms/std-quest.orb +981 -0
  112. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +639 -0
  113. package/dist/behaviors/exports/atoms/std-score-board.orb +239 -0
  114. package/dist/behaviors/exports/atoms/std-score.orb +467 -0
  115. package/dist/behaviors/exports/atoms/std-search.orb +374 -0
  116. package/dist/behaviors/exports/atoms/std-selection.orb +760 -0
  117. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +184 -0
  118. package/dist/behaviors/exports/atoms/std-sort.orb +579 -0
  119. package/dist/behaviors/exports/atoms/std-sprite.orb +157 -0
  120. package/dist/behaviors/exports/atoms/std-tabs.orb +275 -0
  121. package/dist/behaviors/exports/atoms/std-timer.orb +1031 -0
  122. package/dist/behaviors/exports/atoms/std-undo.orb +695 -0
  123. package/dist/behaviors/exports/atoms/std-wizard.orb +667 -0
  124. package/dist/behaviors/exports/molecules/std-builder-game.orb +184 -0
  125. package/dist/behaviors/exports/molecules/std-cart.orb +592 -0
  126. package/dist/behaviors/exports/molecules/std-classifier-game.orb +184 -0
  127. package/dist/behaviors/exports/molecules/std-debugger-game.orb +184 -0
  128. package/dist/behaviors/exports/molecules/std-detail.orb +590 -0
  129. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +184 -0
  130. package/dist/behaviors/exports/molecules/std-geospatial.orb +650 -0
  131. package/dist/behaviors/exports/molecules/std-inventory.orb +854 -0
  132. package/dist/behaviors/exports/molecules/std-list.orb +955 -0
  133. package/dist/behaviors/exports/molecules/std-messaging.orb +586 -0
  134. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +184 -0
  135. package/dist/behaviors/exports/molecules/std-platformer-game.orb +497 -0
  136. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +528 -0
  137. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +184 -0
  138. package/dist/behaviors/exports/molecules/std-simulator-game.orb +184 -0
  139. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +444 -0
  140. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2297 -0
  141. package/dist/behaviors/exports/organisms/std-arcade-game.orb +834 -0
  142. package/dist/behaviors/exports/organisms/std-booking-system.orb +3978 -0
  143. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2215 -0
  144. package/dist/behaviors/exports/organisms/std-cms.orb +2645 -0
  145. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1395 -0
  146. package/dist/behaviors/exports/organisms/std-crm.orb +3542 -0
  147. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3135 -0
  148. package/dist/behaviors/exports/organisms/std-ecommerce.orb +3744 -0
  149. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +2386 -0
  150. package/dist/behaviors/exports/organisms/std-healthcare.orb +4680 -0
  151. package/dist/behaviors/exports/organisms/std-helpdesk.orb +2565 -0
  152. package/dist/behaviors/exports/organisms/std-hr-portal.orb +4030 -0
  153. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2298 -0
  154. package/dist/behaviors/exports/organisms/std-lms.orb +2855 -0
  155. package/dist/behaviors/exports/organisms/std-logic-training.orb +599 -0
  156. package/dist/behaviors/exports/organisms/std-platformer-app.orb +1570 -0
  157. package/dist/behaviors/exports/organisms/std-project-manager.orb +3022 -0
  158. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +744 -0
  159. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2381 -0
  160. package/dist/behaviors/exports/organisms/std-rpg-game.orb +2805 -0
  161. package/dist/behaviors/exports/organisms/std-social-feed.orb +1222 -0
  162. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1211 -0
  163. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1762 -0
  164. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +2218 -0
  165. package/dist/behaviors/exports-reader.d.ts +2 -0
  166. package/dist/behaviors/exports-reader.js +5 -3
  167. package/dist/behaviors/exports-reader.js.map +1 -1
  168. package/dist/behaviors/index.js +5 -3
  169. package/dist/behaviors/index.js.map +1 -1
  170. package/dist/exports/atoms/std-async.orb +421 -0
  171. package/dist/exports/atoms/std-browse.orb +174 -0
  172. package/dist/exports/atoms/std-cache-aside.orb +882 -0
  173. package/dist/exports/atoms/std-circuit-breaker.orb +502 -0
  174. package/dist/exports/atoms/std-collision.orb +617 -0
  175. package/dist/exports/atoms/std-combat-log.orb +146 -0
  176. package/dist/exports/atoms/std-combat.orb +411 -0
  177. package/dist/exports/atoms/std-confirmation.orb +283 -0
  178. package/dist/exports/atoms/std-dialogue-box.orb +239 -0
  179. package/dist/exports/atoms/std-display.orb +843 -0
  180. package/dist/exports/atoms/std-drawer.orb +317 -0
  181. package/dist/exports/atoms/std-filter.orb +443 -0
  182. package/dist/exports/atoms/std-game-audio.orb +114 -0
  183. package/dist/exports/atoms/std-game-hud.orb +152 -0
  184. package/dist/exports/atoms/std-game-menu.orb +212 -0
  185. package/dist/exports/atoms/std-game-over-screen.orb +196 -0
  186. package/dist/exports/atoms/std-gameflow.orb +319 -0
  187. package/dist/exports/atoms/std-input.orb +630 -0
  188. package/dist/exports/atoms/std-inventory-panel.orb +256 -0
  189. package/dist/exports/atoms/std-isometric-canvas.orb +632 -0
  190. package/dist/exports/atoms/std-loading.orb +512 -0
  191. package/dist/exports/atoms/std-modal.orb +271 -0
  192. package/dist/exports/atoms/std-movement.orb +1038 -0
  193. package/dist/exports/atoms/std-notification.orb +419 -0
  194. package/dist/exports/atoms/std-overworld.orb +484 -0
  195. package/dist/exports/atoms/std-pagination.orb +332 -0
  196. package/dist/exports/atoms/std-physics2d.orb +420 -0
  197. package/dist/exports/atoms/std-platformer-canvas.orb +258 -0
  198. package/dist/exports/atoms/std-quest.orb +981 -0
  199. package/dist/exports/atoms/std-rate-limiter.orb +639 -0
  200. package/dist/exports/atoms/std-score-board.orb +239 -0
  201. package/dist/exports/atoms/std-score.orb +467 -0
  202. package/dist/exports/atoms/std-search.orb +374 -0
  203. package/dist/exports/atoms/std-selection.orb +760 -0
  204. package/dist/exports/atoms/std-simulation-canvas.orb +184 -0
  205. package/dist/exports/atoms/std-sort.orb +579 -0
  206. package/dist/exports/atoms/std-sprite.orb +157 -0
  207. package/dist/exports/atoms/std-tabs.orb +275 -0
  208. package/dist/exports/atoms/std-timer.orb +1031 -0
  209. package/dist/exports/atoms/std-undo.orb +695 -0
  210. package/dist/exports/atoms/std-wizard.orb +667 -0
  211. package/dist/exports/molecules/std-builder-game.orb +184 -0
  212. package/dist/exports/molecules/std-cart.orb +592 -0
  213. package/dist/exports/molecules/std-classifier-game.orb +184 -0
  214. package/dist/exports/molecules/std-debugger-game.orb +184 -0
  215. package/dist/exports/molecules/std-detail.orb +590 -0
  216. package/dist/exports/molecules/std-event-handler-game.orb +184 -0
  217. package/dist/exports/molecules/std-geospatial.orb +650 -0
  218. package/dist/exports/molecules/std-inventory.orb +854 -0
  219. package/dist/exports/molecules/std-list.orb +955 -0
  220. package/dist/exports/molecules/std-messaging.orb +586 -0
  221. package/dist/exports/molecules/std-negotiator-game.orb +184 -0
  222. package/dist/exports/molecules/std-platformer-game.orb +497 -0
  223. package/dist/exports/molecules/std-puzzle-game.orb +528 -0
  224. package/dist/exports/molecules/std-sequencer-game.orb +184 -0
  225. package/dist/exports/molecules/std-simulator-game.orb +184 -0
  226. package/dist/exports/molecules/std-turn-based-battle.orb +444 -0
  227. package/dist/exports/organisms/std-api-gateway.orb +2297 -0
  228. package/dist/exports/organisms/std-arcade-game.orb +834 -0
  229. package/dist/exports/organisms/std-booking-system.orb +3978 -0
  230. package/dist/exports/organisms/std-cicd-pipeline.orb +2215 -0
  231. package/dist/exports/organisms/std-cms.orb +2645 -0
  232. package/dist/exports/organisms/std-coding-academy.orb +1395 -0
  233. package/dist/exports/organisms/std-crm.orb +3542 -0
  234. package/dist/exports/organisms/std-devops-dashboard.orb +3135 -0
  235. package/dist/exports/organisms/std-ecommerce.orb +3744 -0
  236. package/dist/exports/organisms/std-finance-tracker.orb +2386 -0
  237. package/dist/exports/organisms/std-healthcare.orb +4680 -0
  238. package/dist/exports/organisms/std-helpdesk.orb +2565 -0
  239. package/dist/exports/organisms/std-hr-portal.orb +4030 -0
  240. package/dist/exports/organisms/std-iot-dashboard.orb +2298 -0
  241. package/dist/exports/organisms/std-lms.orb +2855 -0
  242. package/dist/exports/organisms/std-logic-training.orb +599 -0
  243. package/dist/exports/organisms/std-platformer-app.orb +1570 -0
  244. package/dist/exports/organisms/std-project-manager.orb +3022 -0
  245. package/dist/exports/organisms/std-puzzle-app.orb +744 -0
  246. package/dist/exports/organisms/std-realtime-chat.orb +2381 -0
  247. package/dist/exports/organisms/std-rpg-game.orb +2805 -0
  248. package/dist/exports/organisms/std-social-feed.orb +1222 -0
  249. package/dist/exports/organisms/std-stem-lab.orb +1211 -0
  250. package/dist/exports/organisms/std-strategy-game.orb +1762 -0
  251. package/dist/exports/organisms/std-trading-dashboard.orb +2218 -0
  252. package/dist/index.js +5 -3
  253. package/dist/index.js.map +1 -1
  254. package/package.json +1 -1
  255. package/behaviors/exports/atoms/std-game-canvas-2d.orb +0 -135
  256. package/behaviors/exports/atoms/std-game-canvas-3d.orb +0 -224
@@ -0,0 +1,1031 @@
1
+ {
2
+ "name": "ItemOrbital",
3
+ "orbitals": [
4
+ {
5
+ "name": "ItemOrbital",
6
+ "entity": {
7
+ "name": "Item",
8
+ "persistence": "runtime",
9
+ "fields": [
10
+ {
11
+ "name": "id",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "name",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "description",
20
+ "type": "string"
21
+ },
22
+ {
23
+ "name": "status",
24
+ "type": "string",
25
+ "default": "active"
26
+ },
27
+ {
28
+ "name": "createdAt",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "remaining",
33
+ "type": "number",
34
+ "default": 0
35
+ },
36
+ {
37
+ "name": "duration",
38
+ "type": "number",
39
+ "default": 0
40
+ }
41
+ ]
42
+ },
43
+ "traits": [
44
+ {
45
+ "name": "ItemTimer",
46
+ "linkedEntity": "Item",
47
+ "category": "interaction",
48
+ "ticks": [
49
+ {
50
+ "name": "countdown",
51
+ "interval": 1000,
52
+ "appliesTo": [
53
+ "running"
54
+ ],
55
+ "guard": [
56
+ ">",
57
+ "@entity.remaining",
58
+ 0
59
+ ],
60
+ "effects": [
61
+ [
62
+ "set",
63
+ "@entity.remaining",
64
+ [
65
+ "-",
66
+ "@entity.remaining",
67
+ 1
68
+ ]
69
+ ]
70
+ ]
71
+ }
72
+ ],
73
+ "stateMachine": {
74
+ "states": [
75
+ {
76
+ "name": "idle",
77
+ "isInitial": true
78
+ },
79
+ {
80
+ "name": "running"
81
+ },
82
+ {
83
+ "name": "paused"
84
+ },
85
+ {
86
+ "name": "expired"
87
+ }
88
+ ],
89
+ "events": [
90
+ {
91
+ "key": "INIT",
92
+ "name": "Initialize"
93
+ },
94
+ {
95
+ "key": "START",
96
+ "name": "Start"
97
+ },
98
+ {
99
+ "key": "PAUSE",
100
+ "name": "Pause"
101
+ },
102
+ {
103
+ "key": "RESUME",
104
+ "name": "Resume"
105
+ },
106
+ {
107
+ "key": "RESET",
108
+ "name": "Reset"
109
+ },
110
+ {
111
+ "key": "TICK",
112
+ "name": "Tick"
113
+ },
114
+ {
115
+ "key": "EXPIRE",
116
+ "name": "Expire"
117
+ }
118
+ ],
119
+ "transitions": [
120
+ {
121
+ "from": "idle",
122
+ "to": "idle",
123
+ "event": "INIT",
124
+ "effects": [
125
+ [
126
+ "render-ui",
127
+ "main",
128
+ {
129
+ "type": "stack",
130
+ "direction": "vertical",
131
+ "gap": "lg",
132
+ "align": "center",
133
+ "children": [
134
+ {
135
+ "type": "stack",
136
+ "direction": "vertical",
137
+ "gap": "md",
138
+ "align": "center",
139
+ "children": [
140
+ {
141
+ "type": "stack",
142
+ "direction": "horizontal",
143
+ "gap": "sm",
144
+ "align": "center",
145
+ "children": [
146
+ {
147
+ "type": "icon",
148
+ "name": "clock",
149
+ "size": "lg"
150
+ },
151
+ {
152
+ "type": "typography",
153
+ "content": "Timer",
154
+ "variant": "h2"
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "type": "divider"
160
+ },
161
+ {
162
+ "type": "typography",
163
+ "content": "@entity.remaining",
164
+ "variant": "h1"
165
+ },
166
+ {
167
+ "type": "typography",
168
+ "content": "seconds remaining",
169
+ "variant": "caption",
170
+ "color": "muted"
171
+ },
172
+ {
173
+ "type": "progress-bar",
174
+ "value": "@entity.remaining",
175
+ "max": 60,
176
+ "color": "primary"
177
+ },
178
+ {
179
+ "type": "badge",
180
+ "label": "@entity.status"
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "type": "stack",
186
+ "direction": "horizontal",
187
+ "gap": "sm",
188
+ "justify": "center",
189
+ "children": [
190
+ {
191
+ "type": "button",
192
+ "label": "Start",
193
+ "event": "START",
194
+ "variant": "primary",
195
+ "icon": "play"
196
+ },
197
+ {
198
+ "type": "button",
199
+ "label": "Pause",
200
+ "event": "PAUSE",
201
+ "variant": "ghost",
202
+ "icon": "pause",
203
+ "disabled": true
204
+ },
205
+ {
206
+ "type": "button",
207
+ "label": "Reset",
208
+ "event": "RESET",
209
+ "variant": "ghost",
210
+ "icon": "rotate-ccw",
211
+ "disabled": true
212
+ }
213
+ ]
214
+ }
215
+ ]
216
+ }
217
+ ]
218
+ ]
219
+ },
220
+ {
221
+ "from": "idle",
222
+ "to": "running",
223
+ "event": "START",
224
+ "effects": [
225
+ [
226
+ "set",
227
+ "@entity.remaining",
228
+ 60
229
+ ],
230
+ [
231
+ "set",
232
+ "@entity.status",
233
+ "running"
234
+ ],
235
+ [
236
+ "render-ui",
237
+ "main",
238
+ {
239
+ "type": "stack",
240
+ "direction": "vertical",
241
+ "gap": "lg",
242
+ "align": "center",
243
+ "children": [
244
+ {
245
+ "type": "stack",
246
+ "direction": "vertical",
247
+ "gap": "md",
248
+ "align": "center",
249
+ "children": [
250
+ {
251
+ "type": "stack",
252
+ "direction": "horizontal",
253
+ "gap": "sm",
254
+ "align": "center",
255
+ "children": [
256
+ {
257
+ "type": "icon",
258
+ "name": "clock",
259
+ "size": "lg"
260
+ },
261
+ {
262
+ "type": "typography",
263
+ "content": "Timer",
264
+ "variant": "h2"
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ "type": "divider"
270
+ },
271
+ {
272
+ "type": "typography",
273
+ "content": "@entity.remaining",
274
+ "variant": "h1"
275
+ },
276
+ {
277
+ "type": "typography",
278
+ "content": "seconds remaining",
279
+ "variant": "caption",
280
+ "color": "muted"
281
+ },
282
+ {
283
+ "type": "progress-bar",
284
+ "value": "@entity.remaining",
285
+ "max": 60,
286
+ "color": "primary"
287
+ },
288
+ {
289
+ "type": "badge",
290
+ "label": "@entity.status"
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "type": "stack",
296
+ "direction": "horizontal",
297
+ "gap": "sm",
298
+ "justify": "center",
299
+ "children": [
300
+ {
301
+ "type": "button",
302
+ "label": "Pause",
303
+ "event": "PAUSE",
304
+ "variant": "secondary",
305
+ "icon": "pause"
306
+ },
307
+ {
308
+ "type": "button",
309
+ "label": "Reset",
310
+ "event": "RESET",
311
+ "variant": "ghost",
312
+ "icon": "rotate-ccw"
313
+ }
314
+ ]
315
+ }
316
+ ]
317
+ }
318
+ ]
319
+ ]
320
+ },
321
+ {
322
+ "from": "running",
323
+ "to": "running",
324
+ "event": "TICK",
325
+ "effects": [
326
+ [
327
+ "render-ui",
328
+ "main",
329
+ {
330
+ "type": "stack",
331
+ "direction": "vertical",
332
+ "gap": "lg",
333
+ "align": "center",
334
+ "children": [
335
+ {
336
+ "type": "stack",
337
+ "direction": "vertical",
338
+ "gap": "md",
339
+ "align": "center",
340
+ "children": [
341
+ {
342
+ "type": "stack",
343
+ "direction": "horizontal",
344
+ "gap": "sm",
345
+ "align": "center",
346
+ "children": [
347
+ {
348
+ "type": "icon",
349
+ "name": "clock",
350
+ "size": "lg"
351
+ },
352
+ {
353
+ "type": "typography",
354
+ "content": "Timer",
355
+ "variant": "h2"
356
+ }
357
+ ]
358
+ },
359
+ {
360
+ "type": "divider"
361
+ },
362
+ {
363
+ "type": "typography",
364
+ "content": "@entity.remaining",
365
+ "variant": "h1"
366
+ },
367
+ {
368
+ "type": "typography",
369
+ "content": "seconds remaining",
370
+ "variant": "caption",
371
+ "color": "muted"
372
+ },
373
+ {
374
+ "type": "progress-bar",
375
+ "value": "@entity.remaining",
376
+ "max": 60,
377
+ "color": "primary"
378
+ },
379
+ {
380
+ "type": "badge",
381
+ "label": "@entity.status"
382
+ }
383
+ ]
384
+ },
385
+ {
386
+ "type": "stack",
387
+ "direction": "horizontal",
388
+ "gap": "sm",
389
+ "justify": "center",
390
+ "children": [
391
+ {
392
+ "type": "button",
393
+ "label": "Pause",
394
+ "event": "PAUSE",
395
+ "variant": "secondary",
396
+ "icon": "pause"
397
+ },
398
+ {
399
+ "type": "button",
400
+ "label": "Reset",
401
+ "event": "RESET",
402
+ "variant": "ghost",
403
+ "icon": "rotate-ccw"
404
+ }
405
+ ]
406
+ }
407
+ ]
408
+ }
409
+ ]
410
+ ]
411
+ },
412
+ {
413
+ "from": "running",
414
+ "to": "paused",
415
+ "event": "PAUSE",
416
+ "effects": [
417
+ [
418
+ "set",
419
+ "@entity.status",
420
+ "paused"
421
+ ],
422
+ [
423
+ "render-ui",
424
+ "main",
425
+ {
426
+ "type": "stack",
427
+ "direction": "vertical",
428
+ "gap": "lg",
429
+ "align": "center",
430
+ "children": [
431
+ {
432
+ "type": "stack",
433
+ "direction": "vertical",
434
+ "gap": "md",
435
+ "align": "center",
436
+ "children": [
437
+ {
438
+ "type": "stack",
439
+ "direction": "horizontal",
440
+ "gap": "sm",
441
+ "align": "center",
442
+ "children": [
443
+ {
444
+ "type": "icon",
445
+ "name": "clock",
446
+ "size": "lg"
447
+ },
448
+ {
449
+ "type": "typography",
450
+ "content": "Timer",
451
+ "variant": "h2"
452
+ }
453
+ ]
454
+ },
455
+ {
456
+ "type": "divider"
457
+ },
458
+ {
459
+ "type": "typography",
460
+ "content": "@entity.remaining",
461
+ "variant": "h1"
462
+ },
463
+ {
464
+ "type": "typography",
465
+ "content": "seconds remaining",
466
+ "variant": "caption",
467
+ "color": "muted"
468
+ },
469
+ {
470
+ "type": "progress-bar",
471
+ "value": "@entity.remaining",
472
+ "max": 60,
473
+ "color": "primary"
474
+ },
475
+ {
476
+ "type": "badge",
477
+ "label": "@entity.status"
478
+ }
479
+ ]
480
+ },
481
+ {
482
+ "type": "stack",
483
+ "direction": "horizontal",
484
+ "gap": "sm",
485
+ "justify": "center",
486
+ "children": [
487
+ {
488
+ "type": "button",
489
+ "label": "Resume",
490
+ "event": "RESUME",
491
+ "variant": "primary",
492
+ "icon": "play"
493
+ },
494
+ {
495
+ "type": "button",
496
+ "label": "Reset",
497
+ "event": "RESET",
498
+ "variant": "ghost",
499
+ "icon": "rotate-ccw"
500
+ }
501
+ ]
502
+ }
503
+ ]
504
+ }
505
+ ]
506
+ ]
507
+ },
508
+ {
509
+ "from": "paused",
510
+ "to": "running",
511
+ "event": "RESUME",
512
+ "effects": [
513
+ [
514
+ "set",
515
+ "@entity.status",
516
+ "running"
517
+ ],
518
+ [
519
+ "render-ui",
520
+ "main",
521
+ {
522
+ "type": "stack",
523
+ "direction": "vertical",
524
+ "gap": "lg",
525
+ "align": "center",
526
+ "children": [
527
+ {
528
+ "type": "stack",
529
+ "direction": "vertical",
530
+ "gap": "md",
531
+ "align": "center",
532
+ "children": [
533
+ {
534
+ "type": "stack",
535
+ "direction": "horizontal",
536
+ "gap": "sm",
537
+ "align": "center",
538
+ "children": [
539
+ {
540
+ "type": "icon",
541
+ "name": "clock",
542
+ "size": "lg"
543
+ },
544
+ {
545
+ "type": "typography",
546
+ "content": "Timer",
547
+ "variant": "h2"
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ "type": "divider"
553
+ },
554
+ {
555
+ "type": "typography",
556
+ "content": "@entity.remaining",
557
+ "variant": "h1"
558
+ },
559
+ {
560
+ "type": "typography",
561
+ "content": "seconds remaining",
562
+ "variant": "caption",
563
+ "color": "muted"
564
+ },
565
+ {
566
+ "type": "progress-bar",
567
+ "value": "@entity.remaining",
568
+ "max": 60,
569
+ "color": "primary"
570
+ },
571
+ {
572
+ "type": "badge",
573
+ "label": "@entity.status"
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "type": "stack",
579
+ "direction": "horizontal",
580
+ "gap": "sm",
581
+ "justify": "center",
582
+ "children": [
583
+ {
584
+ "type": "button",
585
+ "label": "Pause",
586
+ "event": "PAUSE",
587
+ "variant": "secondary",
588
+ "icon": "pause"
589
+ },
590
+ {
591
+ "type": "button",
592
+ "label": "Reset",
593
+ "event": "RESET",
594
+ "variant": "ghost",
595
+ "icon": "rotate-ccw"
596
+ }
597
+ ]
598
+ }
599
+ ]
600
+ }
601
+ ]
602
+ ]
603
+ },
604
+ {
605
+ "from": "running",
606
+ "to": "expired",
607
+ "event": "EXPIRE",
608
+ "effects": [
609
+ [
610
+ "set",
611
+ "@entity.status",
612
+ "expired"
613
+ ],
614
+ [
615
+ "render-ui",
616
+ "main",
617
+ {
618
+ "type": "stack",
619
+ "direction": "vertical",
620
+ "gap": "lg",
621
+ "align": "center",
622
+ "children": [
623
+ {
624
+ "type": "stack",
625
+ "direction": "vertical",
626
+ "gap": "md",
627
+ "align": "center",
628
+ "children": [
629
+ {
630
+ "type": "stack",
631
+ "direction": "horizontal",
632
+ "gap": "sm",
633
+ "align": "center",
634
+ "children": [
635
+ {
636
+ "type": "icon",
637
+ "name": "clock",
638
+ "size": "lg"
639
+ },
640
+ {
641
+ "type": "typography",
642
+ "content": "Timer",
643
+ "variant": "h2"
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "type": "divider"
649
+ },
650
+ {
651
+ "type": "typography",
652
+ "content": "@entity.remaining",
653
+ "variant": "h1"
654
+ },
655
+ {
656
+ "type": "typography",
657
+ "content": "seconds remaining",
658
+ "variant": "caption",
659
+ "color": "muted"
660
+ },
661
+ {
662
+ "type": "progress-bar",
663
+ "value": "@entity.remaining",
664
+ "max": 60,
665
+ "color": "primary"
666
+ },
667
+ {
668
+ "type": "badge",
669
+ "label": "@entity.status"
670
+ }
671
+ ]
672
+ },
673
+ {
674
+ "type": "typography",
675
+ "content": "Time is up!",
676
+ "variant": "h3"
677
+ },
678
+ {
679
+ "type": "stack",
680
+ "direction": "horizontal",
681
+ "gap": "sm",
682
+ "justify": "center",
683
+ "children": [
684
+ {
685
+ "type": "button",
686
+ "label": "Reset",
687
+ "event": "RESET",
688
+ "variant": "primary",
689
+ "icon": "rotate-ccw"
690
+ }
691
+ ]
692
+ }
693
+ ]
694
+ }
695
+ ]
696
+ ]
697
+ },
698
+ {
699
+ "from": "running",
700
+ "to": "idle",
701
+ "event": "RESET",
702
+ "effects": [
703
+ [
704
+ "set",
705
+ "@entity.status",
706
+ "idle"
707
+ ],
708
+ [
709
+ "render-ui",
710
+ "main",
711
+ {
712
+ "type": "stack",
713
+ "direction": "vertical",
714
+ "gap": "lg",
715
+ "align": "center",
716
+ "children": [
717
+ {
718
+ "type": "stack",
719
+ "direction": "vertical",
720
+ "gap": "md",
721
+ "align": "center",
722
+ "children": [
723
+ {
724
+ "type": "stack",
725
+ "direction": "horizontal",
726
+ "gap": "sm",
727
+ "align": "center",
728
+ "children": [
729
+ {
730
+ "type": "icon",
731
+ "name": "clock",
732
+ "size": "lg"
733
+ },
734
+ {
735
+ "type": "typography",
736
+ "content": "Timer",
737
+ "variant": "h2"
738
+ }
739
+ ]
740
+ },
741
+ {
742
+ "type": "divider"
743
+ },
744
+ {
745
+ "type": "typography",
746
+ "content": "@entity.remaining",
747
+ "variant": "h1"
748
+ },
749
+ {
750
+ "type": "typography",
751
+ "content": "seconds remaining",
752
+ "variant": "caption",
753
+ "color": "muted"
754
+ },
755
+ {
756
+ "type": "progress-bar",
757
+ "value": "@entity.remaining",
758
+ "max": 60,
759
+ "color": "primary"
760
+ },
761
+ {
762
+ "type": "badge",
763
+ "label": "@entity.status"
764
+ }
765
+ ]
766
+ },
767
+ {
768
+ "type": "stack",
769
+ "direction": "horizontal",
770
+ "gap": "sm",
771
+ "justify": "center",
772
+ "children": [
773
+ {
774
+ "type": "button",
775
+ "label": "Start",
776
+ "event": "START",
777
+ "variant": "primary",
778
+ "icon": "play"
779
+ },
780
+ {
781
+ "type": "button",
782
+ "label": "Pause",
783
+ "event": "PAUSE",
784
+ "variant": "ghost",
785
+ "icon": "pause",
786
+ "disabled": true
787
+ },
788
+ {
789
+ "type": "button",
790
+ "label": "Reset",
791
+ "event": "RESET",
792
+ "variant": "ghost",
793
+ "icon": "rotate-ccw",
794
+ "disabled": true
795
+ }
796
+ ]
797
+ }
798
+ ]
799
+ }
800
+ ]
801
+ ]
802
+ },
803
+ {
804
+ "from": "paused",
805
+ "to": "idle",
806
+ "event": "RESET",
807
+ "effects": [
808
+ [
809
+ "set",
810
+ "@entity.status",
811
+ "idle"
812
+ ],
813
+ [
814
+ "render-ui",
815
+ "main",
816
+ {
817
+ "type": "stack",
818
+ "direction": "vertical",
819
+ "gap": "lg",
820
+ "align": "center",
821
+ "children": [
822
+ {
823
+ "type": "stack",
824
+ "direction": "vertical",
825
+ "gap": "md",
826
+ "align": "center",
827
+ "children": [
828
+ {
829
+ "type": "stack",
830
+ "direction": "horizontal",
831
+ "gap": "sm",
832
+ "align": "center",
833
+ "children": [
834
+ {
835
+ "type": "icon",
836
+ "name": "clock",
837
+ "size": "lg"
838
+ },
839
+ {
840
+ "type": "typography",
841
+ "content": "Timer",
842
+ "variant": "h2"
843
+ }
844
+ ]
845
+ },
846
+ {
847
+ "type": "divider"
848
+ },
849
+ {
850
+ "type": "typography",
851
+ "content": "@entity.remaining",
852
+ "variant": "h1"
853
+ },
854
+ {
855
+ "type": "typography",
856
+ "content": "seconds remaining",
857
+ "variant": "caption",
858
+ "color": "muted"
859
+ },
860
+ {
861
+ "type": "progress-bar",
862
+ "value": "@entity.remaining",
863
+ "max": 60,
864
+ "color": "primary"
865
+ },
866
+ {
867
+ "type": "badge",
868
+ "label": "@entity.status"
869
+ }
870
+ ]
871
+ },
872
+ {
873
+ "type": "stack",
874
+ "direction": "horizontal",
875
+ "gap": "sm",
876
+ "justify": "center",
877
+ "children": [
878
+ {
879
+ "type": "button",
880
+ "label": "Start",
881
+ "event": "START",
882
+ "variant": "primary",
883
+ "icon": "play"
884
+ },
885
+ {
886
+ "type": "button",
887
+ "label": "Pause",
888
+ "event": "PAUSE",
889
+ "variant": "ghost",
890
+ "icon": "pause",
891
+ "disabled": true
892
+ },
893
+ {
894
+ "type": "button",
895
+ "label": "Reset",
896
+ "event": "RESET",
897
+ "variant": "ghost",
898
+ "icon": "rotate-ccw",
899
+ "disabled": true
900
+ }
901
+ ]
902
+ }
903
+ ]
904
+ }
905
+ ]
906
+ ]
907
+ },
908
+ {
909
+ "from": "expired",
910
+ "to": "idle",
911
+ "event": "RESET",
912
+ "effects": [
913
+ [
914
+ "set",
915
+ "@entity.status",
916
+ "idle"
917
+ ],
918
+ [
919
+ "render-ui",
920
+ "main",
921
+ {
922
+ "type": "stack",
923
+ "direction": "vertical",
924
+ "gap": "lg",
925
+ "align": "center",
926
+ "children": [
927
+ {
928
+ "type": "stack",
929
+ "direction": "vertical",
930
+ "gap": "md",
931
+ "align": "center",
932
+ "children": [
933
+ {
934
+ "type": "stack",
935
+ "direction": "horizontal",
936
+ "gap": "sm",
937
+ "align": "center",
938
+ "children": [
939
+ {
940
+ "type": "icon",
941
+ "name": "clock",
942
+ "size": "lg"
943
+ },
944
+ {
945
+ "type": "typography",
946
+ "content": "Timer",
947
+ "variant": "h2"
948
+ }
949
+ ]
950
+ },
951
+ {
952
+ "type": "divider"
953
+ },
954
+ {
955
+ "type": "typography",
956
+ "content": "@entity.remaining",
957
+ "variant": "h1"
958
+ },
959
+ {
960
+ "type": "typography",
961
+ "content": "seconds remaining",
962
+ "variant": "caption",
963
+ "color": "muted"
964
+ },
965
+ {
966
+ "type": "progress-bar",
967
+ "value": "@entity.remaining",
968
+ "max": 60,
969
+ "color": "primary"
970
+ },
971
+ {
972
+ "type": "badge",
973
+ "label": "@entity.status"
974
+ }
975
+ ]
976
+ },
977
+ {
978
+ "type": "stack",
979
+ "direction": "horizontal",
980
+ "gap": "sm",
981
+ "justify": "center",
982
+ "children": [
983
+ {
984
+ "type": "button",
985
+ "label": "Start",
986
+ "event": "START",
987
+ "variant": "primary",
988
+ "icon": "play"
989
+ },
990
+ {
991
+ "type": "button",
992
+ "label": "Pause",
993
+ "event": "PAUSE",
994
+ "variant": "ghost",
995
+ "icon": "pause",
996
+ "disabled": true
997
+ },
998
+ {
999
+ "type": "button",
1000
+ "label": "Reset",
1001
+ "event": "RESET",
1002
+ "variant": "ghost",
1003
+ "icon": "rotate-ccw",
1004
+ "disabled": true
1005
+ }
1006
+ ]
1007
+ }
1008
+ ]
1009
+ }
1010
+ ]
1011
+ ]
1012
+ }
1013
+ ]
1014
+ }
1015
+ }
1016
+ ],
1017
+ "pages": [
1018
+ {
1019
+ "name": "ItemTimerPage",
1020
+ "path": "/items/timer",
1021
+ "traits": [
1022
+ {
1023
+ "ref": "ItemTimer"
1024
+ }
1025
+ ]
1026
+ }
1027
+ ]
1028
+ }
1029
+ ],
1030
+ "description": "Timer behavior parameterized for any domain. Provides a countdown timer with start, pause, resume, and reset controls. The state machine structure is fixed. The caller controls data and presentation."
1031
+ }