@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,639 @@
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": "count",
33
+ "type": "number",
34
+ "default": 0
35
+ },
36
+ {
37
+ "name": "window",
38
+ "type": "number",
39
+ "default": 0
40
+ },
41
+ {
42
+ "name": "limiterStatus",
43
+ "type": "string",
44
+ "default": "open"
45
+ }
46
+ ]
47
+ },
48
+ "traits": [
49
+ {
50
+ "name": "ItemRateLimiter",
51
+ "linkedEntity": "Item",
52
+ "category": "interaction",
53
+ "stateMachine": {
54
+ "states": [
55
+ {
56
+ "name": "open",
57
+ "isInitial": true
58
+ },
59
+ {
60
+ "name": "throttled"
61
+ }
62
+ ],
63
+ "events": [
64
+ {
65
+ "key": "INIT",
66
+ "name": "Initialize"
67
+ },
68
+ {
69
+ "key": "REQUEST",
70
+ "name": "Request"
71
+ },
72
+ {
73
+ "key": "THROTTLE",
74
+ "name": "Throttle"
75
+ },
76
+ {
77
+ "key": "RESET",
78
+ "name": "Reset"
79
+ }
80
+ ],
81
+ "transitions": [
82
+ {
83
+ "from": "open",
84
+ "to": "open",
85
+ "event": "INIT",
86
+ "effects": [
87
+ [
88
+ "render-ui",
89
+ "main",
90
+ {
91
+ "type": "stack",
92
+ "direction": "vertical",
93
+ "gap": "lg",
94
+ "align": "center",
95
+ "children": [
96
+ {
97
+ "type": "stack",
98
+ "direction": "horizontal",
99
+ "gap": "md",
100
+ "align": "center",
101
+ "children": [
102
+ {
103
+ "type": "icon",
104
+ "name": "shield",
105
+ "size": "lg"
106
+ },
107
+ {
108
+ "type": "typography",
109
+ "content": "Item Rate Limiter",
110
+ "variant": "h2"
111
+ }
112
+ ]
113
+ },
114
+ {
115
+ "type": "divider"
116
+ },
117
+ {
118
+ "type": "card",
119
+ "children": [
120
+ {
121
+ "type": "stack",
122
+ "direction": "vertical",
123
+ "gap": "sm",
124
+ "children": [
125
+ {
126
+ "type": "typography",
127
+ "content": "Requests",
128
+ "variant": "caption"
129
+ },
130
+ {
131
+ "type": "typography",
132
+ "content": "@entity.count",
133
+ "variant": "h4"
134
+ },
135
+ {
136
+ "type": "badge",
137
+ "label": "@entity.limiterStatus"
138
+ }
139
+ ]
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "type": "stack",
145
+ "direction": "horizontal",
146
+ "gap": "sm",
147
+ "justify": "center",
148
+ "children": [
149
+ {
150
+ "type": "button",
151
+ "label": "Request",
152
+ "event": "REQUEST",
153
+ "variant": "primary",
154
+ "icon": "send"
155
+ },
156
+ {
157
+ "type": "button",
158
+ "label": "Reset",
159
+ "event": "RESET",
160
+ "variant": "ghost",
161
+ "icon": "rotate-ccw"
162
+ }
163
+ ]
164
+ }
165
+ ]
166
+ }
167
+ ]
168
+ ]
169
+ },
170
+ {
171
+ "from": "open",
172
+ "to": "open",
173
+ "event": "REQUEST",
174
+ "effects": [
175
+ [
176
+ "render-ui",
177
+ "main",
178
+ {
179
+ "type": "stack",
180
+ "direction": "vertical",
181
+ "gap": "lg",
182
+ "align": "center",
183
+ "children": [
184
+ {
185
+ "type": "stack",
186
+ "direction": "horizontal",
187
+ "gap": "md",
188
+ "align": "center",
189
+ "children": [
190
+ {
191
+ "type": "icon",
192
+ "name": "shield",
193
+ "size": "lg"
194
+ },
195
+ {
196
+ "type": "typography",
197
+ "content": "Item Rate Limiter",
198
+ "variant": "h2"
199
+ }
200
+ ]
201
+ },
202
+ {
203
+ "type": "divider"
204
+ },
205
+ {
206
+ "type": "card",
207
+ "children": [
208
+ {
209
+ "type": "stack",
210
+ "direction": "vertical",
211
+ "gap": "sm",
212
+ "children": [
213
+ {
214
+ "type": "typography",
215
+ "content": "Requests",
216
+ "variant": "caption"
217
+ },
218
+ {
219
+ "type": "typography",
220
+ "content": "@entity.count",
221
+ "variant": "h4"
222
+ },
223
+ {
224
+ "type": "badge",
225
+ "label": "@entity.limiterStatus"
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+ },
231
+ {
232
+ "type": "stack",
233
+ "direction": "horizontal",
234
+ "gap": "sm",
235
+ "justify": "center",
236
+ "children": [
237
+ {
238
+ "type": "button",
239
+ "label": "Request",
240
+ "event": "REQUEST",
241
+ "variant": "primary",
242
+ "icon": "send"
243
+ },
244
+ {
245
+ "type": "button",
246
+ "label": "Reset",
247
+ "event": "RESET",
248
+ "variant": "ghost",
249
+ "icon": "rotate-ccw"
250
+ }
251
+ ]
252
+ }
253
+ ]
254
+ }
255
+ ]
256
+ ]
257
+ },
258
+ {
259
+ "from": "open",
260
+ "to": "throttled",
261
+ "event": "THROTTLE",
262
+ "effects": [
263
+ [
264
+ "set",
265
+ "@entity.limiterStatus",
266
+ "throttled"
267
+ ],
268
+ [
269
+ "render-ui",
270
+ "main",
271
+ {
272
+ "type": "stack",
273
+ "direction": "vertical",
274
+ "gap": "lg",
275
+ "align": "center",
276
+ "children": [
277
+ {
278
+ "type": "stack",
279
+ "direction": "horizontal",
280
+ "gap": "md",
281
+ "align": "center",
282
+ "children": [
283
+ {
284
+ "type": "icon",
285
+ "name": "shield",
286
+ "size": "lg"
287
+ },
288
+ {
289
+ "type": "typography",
290
+ "content": "Item Rate Limiter",
291
+ "variant": "h2"
292
+ }
293
+ ]
294
+ },
295
+ {
296
+ "type": "divider"
297
+ },
298
+ {
299
+ "type": "card",
300
+ "children": [
301
+ {
302
+ "type": "stack",
303
+ "direction": "vertical",
304
+ "gap": "sm",
305
+ "children": [
306
+ {
307
+ "type": "typography",
308
+ "content": "Requests",
309
+ "variant": "caption"
310
+ },
311
+ {
312
+ "type": "typography",
313
+ "content": "@entity.count",
314
+ "variant": "h4"
315
+ },
316
+ {
317
+ "type": "badge",
318
+ "label": "Throttled"
319
+ }
320
+ ]
321
+ }
322
+ ]
323
+ },
324
+ {
325
+ "type": "stack",
326
+ "direction": "horizontal",
327
+ "gap": "sm",
328
+ "justify": "center",
329
+ "children": [
330
+ {
331
+ "type": "button",
332
+ "label": "Reset",
333
+ "event": "RESET",
334
+ "variant": "primary",
335
+ "icon": "rotate-ccw"
336
+ }
337
+ ]
338
+ }
339
+ ]
340
+ }
341
+ ]
342
+ ]
343
+ },
344
+ {
345
+ "from": "throttled",
346
+ "to": "open",
347
+ "event": "RESET",
348
+ "effects": [
349
+ [
350
+ "set",
351
+ "@entity.limiterStatus",
352
+ "open"
353
+ ],
354
+ [
355
+ "set",
356
+ "@entity.count",
357
+ 0
358
+ ],
359
+ [
360
+ "render-ui",
361
+ "main",
362
+ {
363
+ "type": "stack",
364
+ "direction": "vertical",
365
+ "gap": "lg",
366
+ "align": "center",
367
+ "children": [
368
+ {
369
+ "type": "stack",
370
+ "direction": "horizontal",
371
+ "gap": "md",
372
+ "align": "center",
373
+ "children": [
374
+ {
375
+ "type": "icon",
376
+ "name": "shield",
377
+ "size": "lg"
378
+ },
379
+ {
380
+ "type": "typography",
381
+ "content": "Item Rate Limiter",
382
+ "variant": "h2"
383
+ }
384
+ ]
385
+ },
386
+ {
387
+ "type": "divider"
388
+ },
389
+ {
390
+ "type": "card",
391
+ "children": [
392
+ {
393
+ "type": "stack",
394
+ "direction": "vertical",
395
+ "gap": "sm",
396
+ "children": [
397
+ {
398
+ "type": "typography",
399
+ "content": "Requests",
400
+ "variant": "caption"
401
+ },
402
+ {
403
+ "type": "typography",
404
+ "content": "@entity.count",
405
+ "variant": "h4"
406
+ },
407
+ {
408
+ "type": "badge",
409
+ "label": "@entity.limiterStatus"
410
+ }
411
+ ]
412
+ }
413
+ ]
414
+ },
415
+ {
416
+ "type": "stack",
417
+ "direction": "horizontal",
418
+ "gap": "sm",
419
+ "justify": "center",
420
+ "children": [
421
+ {
422
+ "type": "button",
423
+ "label": "Request",
424
+ "event": "REQUEST",
425
+ "variant": "primary",
426
+ "icon": "send"
427
+ },
428
+ {
429
+ "type": "button",
430
+ "label": "Reset",
431
+ "event": "RESET",
432
+ "variant": "ghost",
433
+ "icon": "rotate-ccw"
434
+ }
435
+ ]
436
+ }
437
+ ]
438
+ }
439
+ ]
440
+ ]
441
+ },
442
+ {
443
+ "from": "throttled",
444
+ "to": "throttled",
445
+ "event": "INIT",
446
+ "effects": [
447
+ [
448
+ "render-ui",
449
+ "main",
450
+ {
451
+ "type": "stack",
452
+ "direction": "vertical",
453
+ "gap": "lg",
454
+ "align": "center",
455
+ "children": [
456
+ {
457
+ "type": "stack",
458
+ "direction": "horizontal",
459
+ "gap": "md",
460
+ "align": "center",
461
+ "children": [
462
+ {
463
+ "type": "icon",
464
+ "name": "shield",
465
+ "size": "lg"
466
+ },
467
+ {
468
+ "type": "typography",
469
+ "content": "Item Rate Limiter",
470
+ "variant": "h2"
471
+ }
472
+ ]
473
+ },
474
+ {
475
+ "type": "divider"
476
+ },
477
+ {
478
+ "type": "card",
479
+ "children": [
480
+ {
481
+ "type": "stack",
482
+ "direction": "vertical",
483
+ "gap": "sm",
484
+ "children": [
485
+ {
486
+ "type": "typography",
487
+ "content": "Requests",
488
+ "variant": "caption"
489
+ },
490
+ {
491
+ "type": "typography",
492
+ "content": "@entity.count",
493
+ "variant": "h4"
494
+ },
495
+ {
496
+ "type": "badge",
497
+ "label": "Throttled"
498
+ }
499
+ ]
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ "type": "stack",
505
+ "direction": "horizontal",
506
+ "gap": "sm",
507
+ "justify": "center",
508
+ "children": [
509
+ {
510
+ "type": "button",
511
+ "label": "Reset",
512
+ "event": "RESET",
513
+ "variant": "primary",
514
+ "icon": "rotate-ccw"
515
+ }
516
+ ]
517
+ }
518
+ ]
519
+ }
520
+ ]
521
+ ]
522
+ },
523
+ {
524
+ "from": "open",
525
+ "to": "open",
526
+ "event": "RESET",
527
+ "effects": [
528
+ [
529
+ "set",
530
+ "@entity.count",
531
+ 0
532
+ ],
533
+ [
534
+ "set",
535
+ "@entity.limiterStatus",
536
+ "open"
537
+ ],
538
+ [
539
+ "render-ui",
540
+ "main",
541
+ {
542
+ "type": "stack",
543
+ "direction": "vertical",
544
+ "gap": "lg",
545
+ "align": "center",
546
+ "children": [
547
+ {
548
+ "type": "stack",
549
+ "direction": "horizontal",
550
+ "gap": "md",
551
+ "align": "center",
552
+ "children": [
553
+ {
554
+ "type": "icon",
555
+ "name": "shield",
556
+ "size": "lg"
557
+ },
558
+ {
559
+ "type": "typography",
560
+ "content": "Item Rate Limiter",
561
+ "variant": "h2"
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "type": "divider"
567
+ },
568
+ {
569
+ "type": "card",
570
+ "children": [
571
+ {
572
+ "type": "stack",
573
+ "direction": "vertical",
574
+ "gap": "sm",
575
+ "children": [
576
+ {
577
+ "type": "typography",
578
+ "content": "Requests",
579
+ "variant": "caption"
580
+ },
581
+ {
582
+ "type": "typography",
583
+ "content": "@entity.count",
584
+ "variant": "h4"
585
+ },
586
+ {
587
+ "type": "badge",
588
+ "label": "@entity.limiterStatus"
589
+ }
590
+ ]
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "type": "stack",
596
+ "direction": "horizontal",
597
+ "gap": "sm",
598
+ "justify": "center",
599
+ "children": [
600
+ {
601
+ "type": "button",
602
+ "label": "Request",
603
+ "event": "REQUEST",
604
+ "variant": "primary",
605
+ "icon": "send"
606
+ },
607
+ {
608
+ "type": "button",
609
+ "label": "Reset",
610
+ "event": "RESET",
611
+ "variant": "ghost",
612
+ "icon": "rotate-ccw"
613
+ }
614
+ ]
615
+ }
616
+ ]
617
+ }
618
+ ]
619
+ ]
620
+ }
621
+ ]
622
+ }
623
+ }
624
+ ],
625
+ "pages": [
626
+ {
627
+ "name": "ItemRateLimiterPage",
628
+ "path": "/items/rate-limiter",
629
+ "traits": [
630
+ {
631
+ "ref": "ItemRateLimiter"
632
+ }
633
+ ]
634
+ }
635
+ ]
636
+ }
637
+ ],
638
+ "description": "Rate limiting parameterized for any domain. Provides open and throttled states for controlling request frequency. Tracks request count and throttle status via entity fields. The state machine structure is fixed. The caller controls data and presentation."
639
+ }