@almadar/std 16.152.0 → 16.154.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +5 -1
  2. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +1 -0
  3. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +56 -0
  4. package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +39 -0
  5. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +11 -0
  6. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +2 -2
  7. package/behaviors/lolo/ui/game/molecules/std-crew-board-2d.lolo +4 -4
  8. package/behaviors/lolo/ui/game/molecules/std-dungeon-board-2d.lolo +6 -6
  9. package/behaviors/lolo/ui/game/molecules/std-tactics-board-2d.lolo +41 -9
  10. package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +2 -2
  11. package/behaviors/lolo/ui/game/molecules/ui-canvas-2d.lolo +11 -1
  12. package/behaviors/lolo/ui/game/molecules/ui-canvas.lolo +10 -0
  13. package/behaviors/lolo/ui/game/organisms/ui-arena-board.lolo +2 -2
  14. package/behaviors/lolo/ui/game/organisms/ui-battle-board.lolo +110 -7
  15. package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +5 -20
  16. package/behaviors/lolo/ui/game/organisms/ui-card-battler-board.lolo +2 -0
  17. package/behaviors/lolo/ui/game/organisms/ui-castle-board.lolo +3 -3
  18. package/behaviors/lolo/ui/game/organisms/ui-city-builder-board.lolo +9 -7
  19. package/behaviors/lolo/ui/game/organisms/ui-fishing-board.lolo +8 -8
  20. package/behaviors/lolo/ui/game/organisms/ui-grid-tactics-demo-board.lolo +2 -2
  21. package/behaviors/lolo/ui/game/organisms/ui-hex-strategy-board.lolo +5 -1
  22. package/behaviors/lolo/ui/game/organisms/ui-holiday-runner-board.lolo +1 -1
  23. package/behaviors/lolo/ui/game/organisms/ui-minigolf-board.lolo +22 -22
  24. package/behaviors/lolo/ui/game/organisms/ui-physics-sandbox-board.lolo +5 -5
  25. package/behaviors/lolo/ui/game/organisms/ui-pinball-board.lolo +7 -7
  26. package/behaviors/lolo/ui/game/organisms/ui-pirate-board.lolo +14 -14
  27. package/behaviors/lolo/ui/game/organisms/ui-platformer-board.lolo +4 -0
  28. package/behaviors/lolo/ui/game/organisms/ui-roguelike-board.lolo +5 -5
  29. package/behaviors/lolo/ui/game/organisms/ui-sokoban-board.lolo +5 -5
  30. package/behaviors/lolo/ui/game/organisms/ui-sports-board.lolo +10 -7
  31. package/behaviors/lolo/ui/game/organisms/ui-state-architect-board.lolo +4 -4
  32. package/behaviors/lolo/ui/game/organisms/ui-tactics-demo-2d.lolo +7 -3
  33. package/behaviors/lolo/ui/game/organisms/ui-tanks-board.lolo +5 -1
  34. package/behaviors/lolo/ui/game/organisms/ui-topdown-rts-board.lolo +5 -1
  35. package/behaviors/lolo/ui/game/organisms/ui-tower-defense-board.lolo +8 -8
  36. package/behaviors/lolo/ui/game/organisms/ui-uncontrolled-battle-board.lolo +5 -5
  37. package/behaviors/lolo/ui/game/organisms/ui-winter-ski-board.lolo +7 -7
  38. package/behaviors/lolo/ui/game/organisms/ui-world-map-board.lolo +3 -3
  39. package/behaviors/registry/factory-signatures.json +6211 -2181
  40. package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
  41. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  42. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  43. package/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
  44. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  45. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  46. package/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
  47. package/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
  48. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  49. package/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
  50. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  51. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  52. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  53. package/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
  54. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  55. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
  56. package/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
  57. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
  58. package/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
  59. package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
  60. package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
  61. package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
  62. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
  63. package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
  64. package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
  65. package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
  66. package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
  67. package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
  68. package/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
  69. package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
  70. package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
  71. package/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
  72. package/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
  73. package/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
  74. package/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
  75. package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
  76. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
  77. package/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  78. package/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  79. package/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  80. package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +4 -54
  81. package/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
  82. package/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
  83. package/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  84. package/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  85. package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  86. package/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  87. package/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  88. package/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  89. package/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
  90. package/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  91. package/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  92. package/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  93. package/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  94. package/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
  95. package/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  96. package/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  97. package/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  98. package/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
  99. package/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
  100. package/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  101. package/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
  102. package/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  103. package/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  104. package/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  105. package/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  106. package/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  107. package/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
  108. package/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  109. package/dist/behaviors/behaviors-embeddings.json +384 -380
  110. package/dist/behaviors/behaviors-registry.json +594 -57
  111. package/dist/behaviors/exports-reader.js +3409 -3101
  112. package/dist/behaviors/functions/index.d.ts +596 -5
  113. package/dist/behaviors/functions/index.js +3389 -3102
  114. package/dist/behaviors/index.d.ts +1 -1
  115. package/dist/behaviors/index.js +3410 -3102
  116. package/dist/behaviors/knob-embeddings.json +1 -1
  117. package/dist/behaviors/query.js +3409 -3101
  118. package/dist/behaviors/registry/factory-signatures.json +6211 -2181
  119. package/dist/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
  120. package/dist/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  121. package/dist/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  122. package/dist/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
  123. package/dist/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  124. package/dist/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  125. package/dist/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
  126. package/dist/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
  127. package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  128. package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
  129. package/dist/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  130. package/dist/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  131. package/dist/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  132. package/dist/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
  133. package/dist/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  134. package/dist/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
  135. package/dist/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
  136. package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
  137. package/dist/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
  138. package/dist/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
  139. package/dist/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
  140. package/dist/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
  141. package/dist/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
  142. package/dist/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
  143. package/dist/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
  144. package/dist/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
  145. package/dist/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
  146. package/dist/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
  147. package/dist/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
  148. package/dist/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
  149. package/dist/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
  150. package/dist/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
  151. package/dist/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
  152. package/dist/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
  153. package/dist/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
  154. package/dist/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
  155. package/dist/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
  156. package/dist/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  157. package/dist/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  158. package/dist/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  159. package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +4 -54
  160. package/dist/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
  161. package/dist/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
  162. package/dist/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  163. package/dist/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  164. package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  165. package/dist/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  166. package/dist/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  167. package/dist/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  168. package/dist/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
  169. package/dist/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  170. package/dist/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  171. package/dist/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  172. package/dist/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  173. package/dist/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
  174. package/dist/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  175. package/dist/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  176. package/dist/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  177. package/dist/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
  178. package/dist/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
  179. package/dist/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  180. package/dist/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
  181. package/dist/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  182. package/dist/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  183. package/dist/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  184. package/dist/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  185. package/dist/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  186. package/dist/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
  187. package/dist/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  188. package/dist/behaviors-embeddings.json +384 -380
  189. package/dist/behaviors-registry.json +594 -57
  190. package/dist/index.d.ts +1 -1
  191. package/dist/index.js +3410 -3102
  192. package/dist/knob-embeddings.json +1 -1
  193. package/dist/registry/factory-signatures.json +6211 -2181
  194. package/package.json +2 -2
@@ -0,0 +1,214 @@
1
+ {
2
+ "description": "EmojiPicker — UI factory (1:1 with the @almadar/ui emoji-picker pattern).",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01KYQH4C3Q9BVPB3K23JCEX9A4": {
6
+ "bakedName": "EmojiPickerItem",
7
+ "curName": "EmojiPickerItem",
8
+ "id": "ent_01KYQH4C3Q9BVPB3K23JCEX9A4",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01KYQH4C3Q8PNKE9JWBWBV1MJY": {
14
+ "bakedName": "INIT",
15
+ "curName": "INIT",
16
+ "id": "evt_01KYQH4C3Q8PNKE9JWBWBV1MJY",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01KYQH4C3QDP4SZTQXM1REWR2C",
20
+ "renames": []
21
+ },
22
+ "evt_01KYQH4C422XMP60F6KRA0A70N": {
23
+ "bakedName": "@config.pickEvent",
24
+ "curName": "@config.pickEvent",
25
+ "id": "evt_01KYQH4C422XMP60F6KRA0A70N",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01KYQH4C3QDP4SZTQXM1REWR2C",
29
+ "renames": []
30
+ },
31
+ "orb_01KYQH4C3QSJA8JK76ZYH10CMT": {
32
+ "bakedName": "EmojiPickerOrbital",
33
+ "curName": "EmojiPickerOrbital",
34
+ "id": "orb_01KYQH4C3QSJA8JK76ZYH10CMT",
35
+ "kind": "orbital",
36
+ "owner": "workspace",
37
+ "renames": []
38
+ },
39
+ "pag_01KYQH4C43QP034T5Y20CFKP8C": {
40
+ "bakedName": "EmojiPickerPage",
41
+ "curName": "EmojiPickerPage",
42
+ "id": "pag_01KYQH4C43QP034T5Y20CFKP8C",
43
+ "kind": "page",
44
+ "owner": "workspace",
45
+ "renames": []
46
+ },
47
+ "trt_01KYQH4C3QDP4SZTQXM1REWR2C": {
48
+ "bakedName": "EmojiPickerRender",
49
+ "curName": "EmojiPickerRender",
50
+ "id": "trt_01KYQH4C3QDP4SZTQXM1REWR2C",
51
+ "kind": "trait",
52
+ "owner": "workspace",
53
+ "renames": []
54
+ }
55
+ },
56
+ "schemaVersion": 1
57
+ },
58
+ "name": "ui-emoji-picker",
59
+ "orbitals": [
60
+ {
61
+ "entity": {
62
+ "fields": [
63
+ {
64
+ "name": "id",
65
+ "required": true,
66
+ "type": "string"
67
+ }
68
+ ],
69
+ "id": "ent_01KYQH4C3Q9BVPB3K23JCEX9A4",
70
+ "name": "EmojiPickerItem",
71
+ "persistence": "runtime"
72
+ },
73
+ "id": "orb_01KYQH4C3QSJA8JK76ZYH10CMT",
74
+ "name": "EmojiPickerOrbital",
75
+ "pages": [
76
+ {
77
+ "id": "pag_01KYQH4C43QP034T5Y20CFKP8C",
78
+ "name": "EmojiPickerPage",
79
+ "path": "/emoji-picker",
80
+ "traits": [
81
+ {
82
+ "ref": "EmojiPickerRender",
83
+ "refId": "trt_01KYQH4C3QDP4SZTQXM1REWR2C"
84
+ }
85
+ ]
86
+ }
87
+ ],
88
+ "traits": [
89
+ {
90
+ "category": "interaction",
91
+ "config": {
92
+ "className": {
93
+ "description": "Additional CSS classes applied to the trigger button",
94
+ "label": "Class Name",
95
+ "tier": "presentation",
96
+ "type": "string"
97
+ },
98
+ "pickEvent": {
99
+ "default": "PICK",
100
+ "description": "Declarative event name — picking an emoji emits UI:{pickEvent} with { emoji } via eventBus",
101
+ "label": "Pick Event",
102
+ "tier": "presentation",
103
+ "type": "string"
104
+ },
105
+ "position": {
106
+ "default": "top",
107
+ "description": "Which side of the trigger the panel opens on",
108
+ "label": "Position",
109
+ "tier": "presentation",
110
+ "type": "string",
111
+ "values": [
112
+ "top",
113
+ "bottom"
114
+ ]
115
+ },
116
+ "triggerIcon": {
117
+ "description": "Icon shown on the trigger button",
118
+ "label": "Trigger Icon",
119
+ "tier": "presentation",
120
+ "type": "icon"
121
+ },
122
+ "triggerLabel": {
123
+ "default": "Add emoji",
124
+ "description": "Accessible label for the trigger button",
125
+ "label": "Trigger Label",
126
+ "tier": "presentation",
127
+ "type": "string"
128
+ }
129
+ },
130
+ "emits": [
131
+ {
132
+ "description": "Declarative event name — picking an emoji emits UI:{pickEvent} with { emoji } via eventBus",
133
+ "event": "@config.pickEvent",
134
+ "eventId": "evt_01KYQH4C422XMP60F6KRA0A70N",
135
+ "payloadSchema": [
136
+ {
137
+ "name": "id",
138
+ "type": "string"
139
+ }
140
+ ],
141
+ "scope": "external",
142
+ "tier": "essential"
143
+ }
144
+ ],
145
+ "entityContract": {
146
+ "provides": [],
147
+ "requires": []
148
+ },
149
+ "entityRebindable": true,
150
+ "entityRefIds": {
151
+ "EmojiPickerItem": "ent_01KYQH4C3Q9BVPB3K23JCEX9A4"
152
+ },
153
+ "id": "trt_01KYQH4C3QDP4SZTQXM1REWR2C",
154
+ "linkedEntity": "EmojiPickerItem",
155
+ "linkedEntityId": "ent_01KYQH4C3Q9BVPB3K23JCEX9A4",
156
+ "name": "EmojiPickerRender",
157
+ "scope": "instance",
158
+ "stateMachine": {
159
+ "events": [
160
+ {
161
+ "id": "evt_01KYQH4C3Q8PNKE9JWBWBV1MJY",
162
+ "key": "INIT",
163
+ "name": "Initialize"
164
+ },
165
+ {
166
+ "description": "Declarative event name — picking an emoji emits UI:{pickEvent} with { emoji } via eventBus",
167
+ "id": "evt_01KYQH4C422XMP60F6KRA0A70N",
168
+ "key": "@config.pickEvent",
169
+ "name": "@config.pick event",
170
+ "payloadSchema": [
171
+ {
172
+ "name": "id",
173
+ "type": "string"
174
+ }
175
+ ],
176
+ "tier": "essential"
177
+ }
178
+ ],
179
+ "states": [
180
+ {
181
+ "isInitial": true,
182
+ "name": "idle"
183
+ }
184
+ ],
185
+ "transitions": [
186
+ {
187
+ "effects": [
188
+ [
189
+ "render-ui",
190
+ "main",
191
+ {
192
+ "className": "@config.className",
193
+ "pickEvent": "@config.pickEvent",
194
+ "position": "@config.position",
195
+ "triggerIcon": "@config.triggerIcon",
196
+ "triggerLabel": "@config.triggerLabel",
197
+ "type": "emoji-picker"
198
+ }
199
+ ]
200
+ ],
201
+ "event": "INIT",
202
+ "eventId": "evt_01KYQH4C3Q8PNKE9JWBWBV1MJY",
203
+ "from": "idle",
204
+ "to": "idle"
205
+ }
206
+ ]
207
+ }
208
+ }
209
+ ]
210
+ }
211
+ ],
212
+ "schemaVersion": 1,
213
+ "version": "1.0.0"
214
+ }
@@ -19,6 +19,24 @@
19
19
  "parent": "trt_01KXG04QHPHB07PFRVRXWCZZZ3",
20
20
  "renames": []
21
21
  },
22
+ "evt_01KYQH4C8T000A3RVFDAXSCAXR": {
23
+ "bakedName": "OPEN_CHANGE",
24
+ "curName": "OPEN_CHANGE",
25
+ "id": "evt_01KYQH4C8T000A3RVFDAXSCAXR",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01KXG04QHPHB07PFRVRXWCZZZ3",
29
+ "renames": []
30
+ },
31
+ "evt_01KYQH4C8TH1DGZ4141EYBQ2JG": {
32
+ "bakedName": "@config.onOpenChange",
33
+ "curName": "@config.onOpenChange",
34
+ "id": "evt_01KYQH4C8TH1DGZ4141EYBQ2JG",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01KXG04QHPHB07PFRVRXWCZZZ3",
38
+ "renames": []
39
+ },
22
40
  "orb_01KXG04QHN73J68Z4BJMKERHWN": {
23
41
  "bakedName": "PopoverOrbital",
24
42
  "curName": "PopoverOrbital",
@@ -55,6 +73,10 @@
55
73
  "name": "id",
56
74
  "required": true,
57
75
  "type": "string"
76
+ },
77
+ {
78
+ "name": "open",
79
+ "type": "boolean"
58
80
  }
59
81
  ],
60
82
  "id": "ent_01KXG04QHPFXYX2GXK0M1509YJ",
@@ -98,6 +120,19 @@
98
120
  "tier": "presentation",
99
121
  "type": "node"
100
122
  },
123
+ "onOpenChange": {
124
+ "default": "OPEN_CHANGE",
125
+ "description": "Fired when the popover wants to change visibility (trigger click, outside click)",
126
+ "label": "On Open Change",
127
+ "tier": "presentation",
128
+ "type": "string"
129
+ },
130
+ "open": {
131
+ "description": "Controlled open state. When set, the host owns visibility and the popover reports intent through onOpenChange instead of toggling itself.",
132
+ "label": "Open",
133
+ "tier": "presentation",
134
+ "type": "boolean"
135
+ },
101
136
  "position": {
102
137
  "default": "bottom",
103
138
  "description": "Popover position",
@@ -130,8 +165,25 @@
130
165
  ]
131
166
  }
132
167
  },
168
+ "emits": [
169
+ {
170
+ "description": "Fired when the popover wants to change visibility (trigger click, outside click)",
171
+ "event": "@config.onOpenChange",
172
+ "eventId": "evt_01KYQH4C8TH1DGZ4141EYBQ2JG",
173
+ "payloadSchema": [
174
+ {
175
+ "name": "open",
176
+ "type": "boolean"
177
+ }
178
+ ],
179
+ "scope": "external",
180
+ "tier": "essential"
181
+ }
182
+ ],
133
183
  "entityContract": {
134
- "provides": [],
184
+ "provides": [
185
+ "open"
186
+ ],
135
187
  "requires": []
136
188
  },
137
189
  "entityRebindable": true,
@@ -149,6 +201,30 @@
149
201
  "id": "evt_01KXG04QHPR5WWNS2YTHXGN3V7",
150
202
  "key": "INIT",
151
203
  "name": "Initialize"
204
+ },
205
+ {
206
+ "id": "evt_01KYQH4C8T000A3RVFDAXSCAXR",
207
+ "key": "OPEN_CHANGE",
208
+ "name": "Open Change",
209
+ "payloadSchema": [
210
+ {
211
+ "name": "open",
212
+ "type": "boolean"
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "description": "Fired when the popover wants to change visibility (trigger click, outside click)",
218
+ "id": "evt_01KYQH4C8TH1DGZ4141EYBQ2JG",
219
+ "key": "@config.onOpenChange",
220
+ "name": "@config.on open change",
221
+ "payloadSchema": [
222
+ {
223
+ "name": "open",
224
+ "type": "boolean"
225
+ }
226
+ ],
227
+ "tier": "essential"
152
228
  }
153
229
  ],
154
230
  "states": [
@@ -160,6 +236,11 @@
160
236
  "transitions": [
161
237
  {
162
238
  "effects": [
239
+ [
240
+ "set",
241
+ "@entity.open",
242
+ "@config.open"
243
+ ],
163
244
  [
164
245
  "render-ui",
165
246
  "main",
@@ -167,6 +248,8 @@
167
248
  "children": "@config.children",
168
249
  "className": "@config.className",
169
250
  "content": "@config.content",
251
+ "onOpenChange": "@config.onOpenChange",
252
+ "open": "@entity.open",
170
253
  "position": "@config.position",
171
254
  "showArrow": "@config.showArrow",
172
255
  "trigger": "@config.trigger",
@@ -178,6 +261,34 @@
178
261
  "eventId": "evt_01KXG04QHPR5WWNS2YTHXGN3V7",
179
262
  "from": "idle",
180
263
  "to": "idle"
264
+ },
265
+ {
266
+ "effects": [
267
+ [
268
+ "set",
269
+ "@entity.open",
270
+ "@payload.open"
271
+ ],
272
+ [
273
+ "render-ui",
274
+ "main",
275
+ {
276
+ "children": "@config.children",
277
+ "className": "@config.className",
278
+ "content": "@config.content",
279
+ "onOpenChange": "@config.onOpenChange",
280
+ "open": "@entity.open",
281
+ "position": "@config.position",
282
+ "showArrow": "@config.showArrow",
283
+ "trigger": "@config.trigger",
284
+ "type": "popover"
285
+ }
286
+ ]
287
+ ],
288
+ "event": "OPEN_CHANGE",
289
+ "eventId": "evt_01KYQH4C8T000A3RVFDAXSCAXR",
290
+ "from": "idle",
291
+ "to": "idle"
181
292
  }
182
293
  ]
183
294
  }
@@ -55,6 +55,15 @@
55
55
  "parent": "trt_01KXG04RSAMGZ70BX7E6M2EKPH",
56
56
  "renames": []
57
57
  },
58
+ "evt_01KYQ93WDMPFGCAXSHZQ4RAVKK": {
59
+ "bakedName": "@config.itemClickEvent",
60
+ "curName": "@config.itemClickEvent",
61
+ "id": "evt_01KYQ93WDMPFGCAXSHZQ4RAVKK",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01KXG04RSAMGZ70BX7E6M2EKPH",
65
+ "renames": []
66
+ },
58
67
  "orb_01KXG04RSAMH7355J2NZQRJWY9": {
59
68
  "bakedName": "TableViewOrbital",
60
69
  "curName": "TableViewOrbital",
@@ -407,6 +416,13 @@
407
416
  "tier": "presentation",
408
417
  "type": "[TableViewItemActionsItem]"
409
418
  },
419
+ "itemClickEvent": {
420
+ "default": "ITEM_CLICK",
421
+ "description": "When set, the whole row is clickable and emits UI:{itemClickEvent} with { id, row } (action-button clicks stopPropagation so they still win). Mirrors DataList's contract.",
422
+ "label": "Item Click Event",
423
+ "tier": "presentation",
424
+ "type": "string"
425
+ },
410
426
  "look": {
411
427
  "default": "dense",
412
428
  "description": "Layer 2 visual treatment — mirrors the data-list / entity-table look enum so authors share one knob name across row renderers.",
@@ -502,6 +518,19 @@
502
518
  }
503
519
  },
504
520
  "emits": [
521
+ {
522
+ "description": "When set, the whole row is clickable and emits UI:{itemClickEvent} with { id, row } (action-button clicks stopPropagation so they still win). Mirrors DataList's contract.",
523
+ "event": "@config.itemClickEvent",
524
+ "eventId": "evt_01KYQ93WDMPFGCAXSHZQ4RAVKK",
525
+ "payloadSchema": [
526
+ {
527
+ "name": "id",
528
+ "type": "string"
529
+ }
530
+ ],
531
+ "scope": "external",
532
+ "tier": "essential"
533
+ },
505
534
  {
506
535
  "description": "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
507
536
  "event": "@config.selectEvent",
@@ -590,6 +619,19 @@
590
619
  "synonyms": "loaded, fetched, retrieved",
591
620
  "tier": "essential"
592
621
  },
622
+ {
623
+ "description": "When set, the whole row is clickable and emits UI:{itemClickEvent} with { id, row } (action-button clicks stopPropagation so they still win). Mirrors DataList's contract.",
624
+ "id": "evt_01KYQ93WDMPFGCAXSHZQ4RAVKK",
625
+ "key": "@config.itemClickEvent",
626
+ "name": "@config.item click event",
627
+ "payloadSchema": [
628
+ {
629
+ "name": "id",
630
+ "type": "string"
631
+ }
632
+ ],
633
+ "tier": "essential"
634
+ },
593
635
  {
594
636
  "description": "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
595
637
  "id": "evt_01KXG04RSDTCZQPH74KHHQR5MZ",
@@ -666,6 +708,7 @@
666
708
  "groupBy": "@config.groupBy",
667
709
  "isLoading": "@config.isLoading",
668
710
  "itemActions": "@config.itemActions",
711
+ "itemClickEvent": "@config.itemClickEvent",
669
712
  "look": "@config.look",
670
713
  "maxInlineActions": "@config.maxInlineActions",
671
714
  "pageSize": "@config.pageSize",
@@ -707,6 +750,7 @@
707
750
  "groupBy": "@config.groupBy",
708
751
  "isLoading": "@config.isLoading",
709
752
  "itemActions": "@config.itemActions",
753
+ "itemClickEvent": "@config.itemClickEvent",
710
754
  "look": "@config.look",
711
755
  "maxInlineActions": "@config.maxInlineActions",
712
756
  "pageSize": "@config.pageSize",
@@ -158,6 +158,7 @@
158
158
  "linkedEntity": "ArcadeFlowData",
159
159
  "linkedEntityId": "ent_01KXG04TDX07HTCNYVNDHC53RK",
160
160
  "name": "ArcadeFlow",
161
+ "scope": "instance",
161
162
  "stateMachine": {
162
163
  "events": [
163
164
  {
@@ -280,6 +280,7 @@
280
280
  "linkedEntity": "ArcadePlayData",
281
281
  "linkedEntityId": "ent_01KXG04TEBH2S8F34K30KH30N1",
282
282
  "name": "ArcadePlay",
283
+ "scope": "instance",
283
284
  "stateMachine": {
284
285
  "events": [
285
286
  {
@@ -334,6 +334,7 @@
334
334
  "linkedEntity": "ChaseState",
335
335
  "linkedEntityId": "ent_01KXG04TEWGVEGGK1NQKS6APGC",
336
336
  "name": "ChaseAi",
337
+ "scope": "instance",
337
338
  "stateMachine": {
338
339
  "events": [
339
340
  {
@@ -433,6 +433,7 @@
433
433
  "linkedEntity": "DungeonCombatData",
434
434
  "linkedEntityId": "ent_01KXG04TFHJXHJH03SBR5C2V8Q",
435
435
  "name": "DungeonCombat",
436
+ "scope": "instance",
436
437
  "stateMachine": {
437
438
  "events": [
438
439
  {
@@ -211,6 +211,7 @@
211
211
  "linkedEntity": "FxState",
212
212
  "linkedEntityId": "ent_01KXG04TFZP9QXE9KF516SP9KC",
213
213
  "name": "FxParticles",
214
+ "scope": "instance",
214
215
  "stateMachine": {
215
216
  "events": [
216
217
  {
@@ -436,6 +436,7 @@
436
436
  "linkedEntity": "GatherData",
437
437
  "linkedEntityId": "ent_01KXG04TGGZJHPYRRS81F9PP09",
438
438
  "name": "Gather",
439
+ "scope": "instance",
439
440
  "stateMachine": {
440
441
  "events": [
441
442
  {
@@ -165,6 +165,7 @@
165
165
  "linkedEntity": "GoldData",
166
166
  "linkedEntityId": "ent_01KXG04TH3Y6NVBGH0NAHJSXNN",
167
167
  "name": "GoldMine",
168
+ "scope": "instance",
168
169
  "stateMachine": {
169
170
  "events": [
170
171
  {
@@ -416,6 +416,7 @@
416
416
  "linkedEntity": "TacticsState",
417
417
  "linkedEntityId": "ent_01KXG04THRXWP7JG6D7NKVW1RQ",
418
418
  "name": "GridTactics",
419
+ "scope": "instance",
419
420
  "stateMachine": {
420
421
  "events": [
421
422
  {
@@ -394,6 +394,7 @@
394
394
  "linkedEntity": "HeroNavData",
395
395
  "linkedEntityId": "ent_01KXG04TJB0VKAFAXTSAQ751BT",
396
396
  "name": "HeroNav",
397
+ "scope": "instance",
397
398
  "stateMachine": {
398
399
  "events": [
399
400
  {
@@ -165,6 +165,7 @@
165
165
  "linkedEntity": "MarketFlowData",
166
166
  "linkedEntityId": "ent_01KXG04TJW5RCS4DQVWH384F5W",
167
167
  "name": "MarketFlow",
168
+ "scope": "instance",
168
169
  "stateMachine": {
169
170
  "events": [
170
171
  {
@@ -151,6 +151,7 @@
151
151
  "linkedEntity": "FlowState",
152
152
  "linkedEntityId": "ent_01KXG04TKBJ5BFB1E634XZRG5Z",
153
153
  "name": "ObjectiveFlow",
154
+ "scope": "instance",
154
155
  "stateMachine": {
155
156
  "events": [
156
157
  {
@@ -441,6 +441,7 @@
441
441
  "linkedEntity": "ObjectiveState",
442
442
  "linkedEntityId": "ent_01KXG04TKT589Q8E6DEHJMMF61",
443
443
  "name": "ObjectiveReach",
444
+ "scope": "instance",
444
445
  "stateMachine": {
445
446
  "events": [
446
447
  {
@@ -451,6 +451,7 @@
451
451
  "linkedEntity": "PatienceData",
452
452
  "linkedEntityId": "ent_01KXG04TMDA7KDAZVATM3XK8K0",
453
453
  "name": "Patience",
454
+ "scope": "instance",
454
455
  "stateMachine": {
455
456
  "events": [
456
457
  {
@@ -243,6 +243,7 @@
243
243
  "linkedEntity": "ProductionState",
244
244
  "linkedEntityId": "ent_01KXG04TMX5VXK8YE9TAHMXSMW",
245
245
  "name": "Producer",
246
+ "scope": "instance",
246
247
  "stateMachine": {
247
248
  "events": [
248
249
  {
@@ -141,6 +141,7 @@
141
141
  "linkedEntity": "RoundState",
142
142
  "linkedEntityId": "ent_01KXG04TNC4MHVDJM20C3DJKX1",
143
143
  "name": "RoundFlow",
144
+ "scope": "instance",
144
145
  "stateMachine": {
145
146
  "events": [
146
147
  {
@@ -144,6 +144,7 @@
144
144
  "linkedEntity": "ScoreState",
145
145
  "linkedEntityId": "ent_01KXG04TNSC9WJATDGG5AES67C",
146
146
  "name": "ScoreKeeper",
147
+ "scope": "instance",
147
148
  "stateMachine": {
148
149
  "events": [
149
150
  {
@@ -160,6 +160,7 @@
160
160
  "linkedEntity": "SurvivalFlowData",
161
161
  "linkedEntityId": "ent_01KXG04TP606Z9Y15XFV49JRM1",
162
162
  "name": "SurvivalFlow",
163
+ "scope": "instance",
163
164
  "stateMachine": {
164
165
  "events": [
165
166
  {
@@ -214,6 +214,7 @@
214
214
  "linkedEntity": "XpState",
215
215
  "linkedEntityId": "ent_01KXG04TPPCTES5FATA48QHG9W",
216
216
  "name": "XpProgression",
217
+ "scope": "instance",
217
218
  "stateMachine": {
218
219
  "events": [
219
220
  {
@@ -195,7 +195,7 @@
195
195
  "type": "json"
196
196
  },
197
197
  "height": {
198
- "description": "Draw height in world units (fractions of `projector.tileWidth`); omittedresolved source height in px.",
198
+ "description": "Draw height in world units (fractions of `projector.tileWidth`). Omittedone cell on tile grids (`flat`/`iso`/`hex`); native source px on `free`/`side`.",
199
199
  "label": "Height",
200
200
  "tier": "presentation",
201
201
  "type": "number"
@@ -248,7 +248,7 @@
248
248
  "type": "json"
249
249
  },
250
250
  "width": {
251
- "description": "Draw width in world units (fractions of `projector.tileWidth`); omittedresolved source width in px.",
251
+ "description": "Draw width in world units (fractions of `projector.tileWidth`). Omittedone cell on tile grids (`flat`/`iso`/`hex`); native source px on `free`/`side`.",
252
252
  "label": "Width",
253
253
  "tier": "presentation",
254
254
  "type": "number"