@almadar/std 16.199.0 → 16.201.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 (252) hide show
  1. package/behaviors/lolo/ui/avl/atoms/ui-behavior-view.lolo +2 -2
  2. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +2 -2
  3. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +1 -1
  4. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +1 -1
  5. package/behaviors/lolo/ui/core/atoms/ui-conditional-wrapper.lolo +11 -4
  6. package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +1 -1
  7. package/behaviors/lolo/ui/core/atoms/ui-input.lolo +10 -4
  8. package/behaviors/lolo/ui/core/atoms/ui-select.lolo +6 -4
  9. package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +5 -5
  10. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +8 -1
  11. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +1 -1
  12. package/behaviors/lolo/ui/core/molecules/ui-edge-decoration.lolo +1 -1
  13. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +5 -0
  14. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +1 -1
  15. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +54 -0
  16. package/behaviors/lolo/ui/core/molecules/ui-gradient-divider.lolo +1 -1
  17. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +8 -1
  18. package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +10 -4
  19. package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +3 -3
  20. package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +1 -1
  21. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +3 -3
  22. package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +23 -16
  23. package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +186 -0
  24. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +2 -2
  25. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +1 -1
  26. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +2 -2
  27. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +15 -8
  28. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +15 -8
  29. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +37 -1
  30. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +1 -1
  31. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +3 -3
  32. package/behaviors/lolo/ui/game/atoms/std-coef-pad.lolo +5 -3
  33. package/behaviors/lolo/ui/game/atoms/std-fx-narrative.lolo +126 -0
  34. package/behaviors/lolo/ui/game/atoms/std-pickup.lolo +104 -0
  35. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +50 -21
  36. package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +3 -3
  37. package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +1 -1
  38. package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +1 -1
  39. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +3 -3
  40. package/behaviors/lolo/ui/game/atoms/ui-stat-badge.lolo +3 -3
  41. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +12 -0
  42. package/behaviors/registry/infra/atoms/std-approval-gate.orb +20 -10
  43. package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
  44. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
  45. package/behaviors/registry/infra/atoms/std-data-erasure.orb +16 -8
  46. package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
  47. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
  48. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +2 -1
  49. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +10 -5
  50. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +4 -2
  51. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +389 -3
  52. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +389 -3
  53. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +93 -2
  54. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
  55. package/behaviors/registry/ui/core/atoms/std-browse.orb +6 -3
  56. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
  57. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
  58. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
  59. package/behaviors/registry/ui/core/atoms/std-export.orb +4 -2
  60. package/behaviors/registry/ui/core/atoms/std-file-store.orb +101 -2
  61. package/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
  62. package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
  63. package/behaviors/registry/ui/core/atoms/std-list.orb +6 -3
  64. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +13 -1
  65. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +13 -1
  66. package/behaviors/registry/ui/core/atoms/ui-badge.orb +56 -1
  67. package/behaviors/registry/ui/core/atoms/ui-button.orb +56 -1
  68. package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +277 -5
  69. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +56 -1
  70. package/behaviors/registry/ui/core/atoms/ui-icon.orb +1 -10
  71. package/behaviors/registry/ui/core/atoms/ui-input.orb +42 -7
  72. package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +27 -1
  73. package/behaviors/registry/ui/core/atoms/ui-select.orb +69 -9
  74. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +30 -1
  75. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +76 -13
  76. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +30 -1
  77. package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +15 -1
  78. package/behaviors/registry/ui/core/molecules/ui-chart.orb +133 -1
  79. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +77 -1
  80. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +22 -1
  81. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +34 -1
  82. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +99 -1
  83. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +118 -1
  84. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +27 -1
  85. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +15 -1
  86. package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +14 -1
  87. package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +35 -1
  88. package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +20 -1
  89. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +65 -3
  90. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +22 -1
  91. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +60 -1
  92. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -8
  93. package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +1 -9
  94. package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +39 -1
  95. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +8 -0
  96. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +39 -1
  97. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +29 -10
  98. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +274 -0
  99. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +85 -1
  100. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +22 -1
  101. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +76 -1
  102. package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +1 -10
  103. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +421 -1
  104. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +92 -1
  105. package/behaviors/registry/ui/core/molecules/ui-header.orb +59 -1
  106. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +125 -2
  107. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +17 -1
  108. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +39 -1
  109. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +42 -7
  110. package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +22 -1
  111. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +17 -1
  112. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +15 -1
  113. package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +18 -1
  114. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +109 -1
  115. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +27 -1
  116. package/behaviors/registry/ui/core/molecules/ui-meter.orb +57 -1
  117. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +27 -1
  118. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +78 -4
  119. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +91 -1
  120. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +20 -1
  121. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +23 -1
  122. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +18 -1
  123. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +5 -2
  124. package/behaviors/registry/ui/core/molecules/ui-section.orb +22 -1
  125. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +22 -1
  126. package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +18 -1
  127. package/behaviors/registry/ui/core/molecules/ui-split.orb +22 -1
  128. package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +22 -1
  129. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +64 -4
  130. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +136 -1
  131. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +301 -1
  132. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +25 -1
  133. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +28 -1
  134. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +46 -1
  135. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +518 -102
  136. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +19 -1
  137. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +22 -1
  138. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +40 -1
  139. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +196 -1
  140. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +521 -0
  141. package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +22 -1
  142. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +83 -14
  143. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +64 -8
  144. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +152 -14
  145. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +1140 -15
  146. package/behaviors/registry/ui/core/organisms/ui-form.orb +1140 -15
  147. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +22 -1
  148. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +71 -1
  149. package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +22 -1
  150. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +29 -1
  151. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +109 -2
  152. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +61 -7
  153. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +22 -1
  154. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +37 -7
  155. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +31 -1
  156. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +73 -1
  157. package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +22 -1
  158. package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +170 -4
  159. package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +695 -0
  160. package/behaviors/registry/ui/game/atoms/std-pickup.orb +835 -0
  161. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1613 -1062
  162. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +269 -1
  163. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +288 -1
  164. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +54 -1
  165. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +311 -1
  166. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +56 -1
  167. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +59 -20
  168. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +186 -7
  169. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +56 -1
  170. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +233 -1
  171. package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +137 -1
  172. package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +219 -1
  173. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +951 -1
  174. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +512 -1
  175. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +270 -1
  176. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +106 -1
  177. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +85 -1
  178. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +19 -1
  179. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +128 -1
  180. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +168 -8
  181. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +151 -13
  182. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +109 -1
  183. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +56 -1
  184. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +523 -1
  185. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +112 -22
  186. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +24 -1
  187. package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +20 -1
  188. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +849 -1
  189. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +8 -4
  190. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +6 -3
  191. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +10 -5
  192. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +8 -4
  193. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +8 -4
  194. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +6 -3
  195. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +8 -4
  196. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -6
  197. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +8 -4
  198. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +6 -3
  199. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +289 -1
  200. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +424 -1
  201. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +925 -1
  202. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +970 -1
  203. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +351 -1
  204. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +610 -1
  205. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1049 -1
  206. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +2 -1
  207. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +2 -1
  208. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +2 -1
  209. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +2 -1
  210. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +2 -1
  211. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +2 -1
  212. package/behaviors/registry/ui/marketing/atoms/ui-community-links.orb +36 -1
  213. package/behaviors/registry/ui/marketing/atoms/ui-cta-banner.orb +27 -1
  214. package/behaviors/registry/ui/marketing/atoms/ui-hero-section.orb +39 -1
  215. package/behaviors/registry/ui/marketing/atoms/ui-marketing-footer.orb +55 -1
  216. package/behaviors/registry/ui/marketing/atoms/ui-pricing-card.orb +15 -1
  217. package/behaviors/registry/ui/marketing/atoms/ui-pricing-grid.orb +65 -1
  218. package/behaviors/registry/ui/marketing/atoms/ui-service-catalog.orb +19 -1
  219. package/behaviors/registry/ui/marketing/atoms/ui-showcase-card.orb +15 -1
  220. package/behaviors/registry/ui/marketing/atoms/ui-split-section.orb +15 -1
  221. package/behaviors/registry/ui/marketing/atoms/ui-stats-grid.orb +15 -1
  222. package/behaviors/registry/ui/marketing/atoms/ui-step-flow.orb +23 -1
  223. package/behaviors/registry/ui/marketing/atoms/ui-tag-cloud.orb +18 -1
  224. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +84 -1
  225. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +22 -1
  226. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +22 -1
  227. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +52 -1
  228. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +22 -1
  229. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +32 -1
  230. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +22 -1
  231. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +22 -1
  232. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +22 -1
  233. package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +176 -1
  234. package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +147 -1
  235. package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +260 -1
  236. package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +98 -1
  237. package/dist/behaviors/exports-reader.js +3918 -2596
  238. package/dist/behaviors/functions/index.d.ts +469 -30
  239. package/dist/behaviors/functions/index.js +3906 -2597
  240. package/dist/behaviors/index.d.ts +2 -2
  241. package/dist/behaviors/index.js +3929 -2597
  242. package/dist/behaviors/query.d.ts +88 -4
  243. package/dist/behaviors/query.js +3929 -2597
  244. package/dist/behaviors-embeddings.hash.json +3 -3
  245. package/dist/behaviors-embeddings.json +19 -3
  246. package/dist/behaviors-registry.json +122305 -2637
  247. package/dist/index.d.ts +2 -2
  248. package/dist/index.js +3929 -2597
  249. package/dist/knob-embeddings.hash.json +3 -3
  250. package/dist/knob-embeddings.json +1 -1
  251. package/dist/registry/factory-signatures.json +1 -1
  252. package/package.json +3 -3
@@ -0,0 +1,104 @@
1
+ app std-pickup "1.0.0"
2
+ "Headless side-view collectible authority — the platformer twin of grid std-gather. Listens BODY_MOVED and, when the player touches an uncollected feature (|dx| <= reachX, |dy| <= reachY of the feature center — the coef-pad touch idiom minus the grounded requirement, so airborne pickups work), stamps it collected on the shared entity and emits PICKED once per item (id, kind, position, glyph, message) plus COLLECT{total} with the running count (the event std-gate-lock already consumes). When every feature is collected it emits PICKUP_SET_COMPLETED once. RESTART re-arms every feature and zeroes the count. kind is board-defined vocabulary (star, boost, …) — this atom reports, boards judge. Renders nothing; boards draw the features and read collected from the shared entity."
3
+ orbital PickupOrbital {
4
+ type PickupFeature = {
5
+ id : string!
6
+ x : number!
7
+ y : number!
8
+ kind : string!
9
+ glyph : string
10
+ message : string
11
+ collected : boolean
12
+ }
13
+
14
+ entity PickupData [runtime, shared] {
15
+ id : string!
16
+ pickups : [PickupFeature] = []
17
+ pickupCompleted : boolean = false
18
+ total : number = 0
19
+ }
20
+
21
+ trait Pickup -> @rebindable PickupData [lifecycle] {
22
+ initial: active
23
+
24
+ state active {
25
+ INIT -> active
26
+ (set @entity.pickups (array/map @config.features (fn f (object/merge @f { collected: false }))))
27
+ (set @entity.pickupCompleted false)
28
+ (set @entity.total 0)
29
+
30
+ BODY_MOVED -> active when @config.running
31
+ (let ((touch (array/filter @entity.pickups (fn f
32
+ (and (== (object/get @f collected) false)
33
+ (and (<= (math/abs (- @payload.x (object/get @f x))) @config.reachX)
34
+ (<= (math/abs (- @payload.y (object/get @f y))) @config.reachY)))))))
35
+ (if (> (array/len @touch) 0)
36
+ (let ((f (array/first @touch)))
37
+ (let ((remaining (array/len (array/filter @entity.pickups (fn c (and (== (object/get @c collected) false) (!= (object/get @c id) (object/get @f id))))))))
38
+ (do
39
+ (set @entity.pickups (array/map @entity.pickups (fn c (if (== (object/get @c id) (object/get @f id)) (object/merge @c { collected: true }) @c))))
40
+ (set @entity.total (+ @entity.total 1))
41
+ (emit PICKED { id: (object/get @f id), kind: (object/get @f kind), x: (object/get @f x), y: (object/get @f y), glyph: (object/get @f glyph), message: (object/get @f message) })
42
+ (emit COLLECT { total: @entity.total })
43
+ (if (and (== @entity.pickupCompleted false) (== @remaining 0))
44
+ (do
45
+ (set @entity.pickupCompleted true)
46
+ (emit PICKUP_SET_COMPLETED {}))
47
+ null))))
48
+ null))
49
+
50
+ RESTART -> active
51
+ (set @entity.pickups (array/map @config.features (fn f (object/merge @f { collected: false }))))
52
+ (set @entity.pickupCompleted false)
53
+ (set @entity.total 0)
54
+ }
55
+
56
+ emits {
57
+ PICKED -> external {
58
+ id : string!
59
+ kind : string!
60
+ x : number!
61
+ y : number!
62
+ glyph : string
63
+ message : string
64
+ }
65
+ @description "The player touched an uncollected feature; carries the feature identity, board-defined kind (star, boost, …), position and display glyph/message. Fires once per feature per run."
66
+ @tier "domain"
67
+ COLLECT -> external {
68
+ total : number!
69
+ }
70
+ @description "Running count of collected features after this pickup — the event std-gate-lock consumes to count openings."
71
+ @tier "domain"
72
+ PICKUP_SET_COMPLETED -> external {
73
+ }
74
+ @description "Every feature in the set is collected; fires once per run."
75
+ @tier "domain"
76
+ }
77
+
78
+ listens {
79
+ BODY_MOVED { x : number!, y : number!, vx : number!, vy : number!, grounded : boolean!, skating : boolean!, speed : number! }
80
+ RESTART { id : string }
81
+ }
82
+
83
+ config {
84
+ running : boolean = true
85
+ @label "Running"
86
+ @description "When true, BODY_MOVED collects touched features; toggle to freeze the set as-is."
87
+ @tier "domain"
88
+ features : [PickupFeature] = []
89
+ @label "Features"
90
+ @description "One row per collectible: id, center (x, y in world units), board-defined kind (star, boost, …), display glyph and message floated on pickup. collected is stamped at runtime."
91
+ @tier "domain"
92
+ reachX : number = 0.7
93
+ @label "Reach X"
94
+ @description "Horizontal tolerance (world units) around a feature's center when testing player contact."
95
+ @tier "domain"
96
+ reachY : number = 1.2
97
+ @label "Reach Y"
98
+ @description "Vertical tolerance (world units) around a feature's center when testing player contact; generous values catch fly-through pickups."
99
+ @tier "domain"
100
+ }
101
+ }
102
+
103
+ page "/pickup" as PickupPage -> Pickup
104
+ }
@@ -36,9 +36,15 @@ orbital PlatformerBodyOrbital {
36
36
  x0 : number!
37
37
  x1 : number!
38
38
  a : number!
39
+ b : number!
39
40
  h : number!
40
41
  k : number!
41
42
  }
43
+ type PlatformerTuning = {
44
+ jumpStrength : number
45
+ moveSpeed : number
46
+ gravity : number
47
+ }
42
48
 
43
49
  entity PlatformerBodyData [runtime, shared] {
44
50
  id : string!
@@ -48,6 +54,7 @@ orbital PlatformerBodyOrbital {
48
54
  curveMods : [CurveMod] = []
49
55
  goalId : string = ""
50
56
  skating : boolean = false
57
+ tuning : PlatformerTuning = {}
51
58
  }
52
59
 
53
60
  trait PlatformerBody -> @rebindable PlatformerBodyData [lifecycle] {
@@ -62,10 +69,10 @@ orbital PlatformerBodyOrbital {
62
69
  (set @entity.skating false)
63
70
 
64
71
  STEER -> active when @config.running
65
- (set @entity.body (object/merge @entity.body { vx: (* @payload.dir @config.moveSpeed), facingRight: (if (!= @payload.dir 0) (> @payload.dir 0) @entity.body.facingRight) }))
72
+ (set @entity.body (object/merge @entity.body { vx: (* @payload.dir (if (== (object/get @entity.tuning moveSpeed null) null) @config.moveSpeed (object/get @entity.tuning moveSpeed null))), facingRight: (if (!= @payload.dir 0) (> @payload.dir 0) @entity.body.facingRight) }))
66
73
 
67
74
  JUMP -> active when (and @config.running (== @entity.body.grounded true))
68
- (set @entity.body (object/merge @entity.body { vy: (if (> @config.gravity 0) (- 0 @config.jumpStrength) @config.jumpStrength), grounded: false }))
75
+ (set @entity.body (object/merge @entity.body { vy: (if (> (if (== (object/get @entity.tuning gravity null) null) @config.gravity (object/get @entity.tuning gravity null)) 0) (- 0 (if (== (object/get @entity.tuning jumpStrength null) null) @config.jumpStrength (object/get @entity.tuning jumpStrength null))) (if (== (object/get @entity.tuning jumpStrength null) null) @config.jumpStrength (object/get @entity.tuning jumpStrength null))), grounded: false }))
69
76
  (emit BODY_JUMPED { x: @entity.body.x, y: @entity.body.y })
70
77
 
71
78
  PLACE -> active
@@ -75,7 +82,15 @@ orbital PlatformerBodyOrbital {
75
82
  (set @entity.skating false)
76
83
 
77
84
  CURVE_MOD_ADD -> active when @config.curveModsEnabled
78
- (set @entity.curveMods (array/append @entity.curveMods { x0: @payload.x0, x1: @payload.x1, a: @payload.a, h: @payload.h, k: @payload.k }))
85
+ (set @entity.curveMods (array/append @entity.curveMods { x0: @payload.x0, x1: @payload.x1, a: @payload.a, b: (if (== @payload.b null) 1 @payload.b), h: @payload.h, k: @payload.k }))
86
+
87
+ CURVE_MOD_CLEAR -> active when @config.curveModsEnabled
88
+ (set @entity.curveMods [])
89
+
90
+ SET_TUNING -> active
91
+ (set @entity.tuning (object/merge @entity.tuning (if (== @payload.jumpStrength null) {} { jumpStrength: @payload.jumpStrength })))
92
+ (set @entity.tuning (object/merge @entity.tuning (if (== @payload.moveSpeed null) {} { moveSpeed: @payload.moveSpeed })))
93
+ (set @entity.tuning (object/merge @entity.tuning (if (== @payload.gravity null) {} { gravity: @payload.gravity })))
79
94
 
80
95
  RESTART -> active
81
96
  (set @entity.body @config.spawn)
@@ -84,16 +99,18 @@ orbital PlatformerBodyOrbital {
84
99
  (set @entity.hazardId "")
85
100
  (set @entity.goalId "")
86
101
  (set @entity.skating false)
102
+ (set @entity.tuning {})
87
103
  }
88
104
 
89
105
  ticks {
90
106
  physicsTick every 33ms
91
107
  when (and @config.running (> @entity.body.width 0))
92
- (let ((gdir (if (> @config.gravity 0) 1 -1)))
108
+ (let ((eg (if (== (object/get @entity.tuning gravity null) null) @config.gravity (object/get @entity.tuning gravity null))))
109
+ (let ((gdir (if (> @eg 0) 1 -1)))
93
110
  (let ((bcx (+ (object/get @entity.body x) (/ (object/get @entity.body width) 2))) (bcy (+ (object/get @entity.body y) (/ (object/get @entity.body height) 2))))
94
111
  (let ((drift (array/find @config.driftRegions (fn r (and (>= @bcx (object/get @r x0)) (and (<= @bcx (object/get @r x1)) (and (>= @bcy (object/get @r y0)) (<= @bcy (object/get @r y1)))))))))
95
112
  (let ((dax (if (== @drift null) 0 (object/get @drift ax))) (day (if (== @drift null) 0 (object/get @drift ay))))
96
- (let ((vy1 (math/clamp (+ @entity.body.vy (* (+ @config.gravity @day) 0.033)) (- 0 @config.maxFallSpeed) @config.maxFallSpeed)))
113
+ (let ((vy1 (math/clamp (+ @entity.body.vy (* (+ @eg @day) 0.033)) (- 0 @config.maxFallSpeed) @config.maxFallSpeed)))
97
114
  (let ((bw (object/get @entity.body width)) (bh (object/get @entity.body height)))
98
115
  (let ((nx (math/clamp (+ @entity.body.x (* @entity.body.vx 0.033)) @config.xMin @config.xMax)))
99
116
  (let ((ny (+ @entity.body.y (* @vy1 0.033))))
@@ -108,18 +125,24 @@ orbital PlatformerBodyOrbital {
108
125
  (let ((slope (if @inRange (/ (- (object/get @rightSamp y) (object/get @leftSamp y)) (- (object/get @rightSamp x) (object/get @leftSamp x))) 0)))
109
126
  (let ((curveY (if @inRange (+ (object/get @leftSamp y) (* @slope (- @cx (object/get @leftSamp x)))) 0)))
110
127
  (let ((gapBreak (and (> @config.skateMaxGap 0) (> (- (object/get @rightSamp x) (object/get @leftSamp x)) @config.skateMaxGap))))
111
- (let ((curveMod (if (and @config.curveModsEnabled @inRange) (array/find @entity.curveMods (fn m (and (>= @cx (object/get @m x0)) (<= @cx (object/get @m x1))))) null)))
112
- (let ((modX (if (== @curveMod null) @cx (- @cx (object/get @curveMod h)))))
113
- (let ((modInRange (and (!= @curveMod null) (and (>= @modX (object/get (array/first @config.skateCurve) x)) (< @modX (object/get (array/last @config.skateCurve) x))))))
114
- (let ((modLeft (if @modInRange (array/last (array/filter @config.skateCurve (fn s (<= (object/get @s x) @modX)))) @leftSamp)))
115
- (let ((modRight (if @modInRange (array/first (array/filter @config.skateCurve (fn s (> (object/get @s x) @modX)))) @rightSamp)))
116
- (let ((modSlope (if @modInRange (/ (- (object/get @modRight y) (object/get @modLeft y)) (- (object/get @modRight x) (object/get @modLeft x))) @slope)))
117
- (let ((modCurveY (if @modInRange (+ (object/get @modLeft y) (* @modSlope (- @modX (object/get @modLeft x)))) @curveY)))
118
- (let ((slope (if (== @curveMod null) @slope (* (object/get @curveMod a) @modSlope))))
119
- (let ((curveY (if (== @curveMod null) @curveY (+ (* (object/get @curveMod a) @modCurveY) (object/get @curveMod k)))))
128
+ (let ((mods (if (and @config.curveModsEnabled @inRange) (array/filter @entity.curveMods (fn m (and (>= @cx (object/get @m x0)) (<= @cx (object/get @m x1))))) [])))
129
+ (let ((modded (array/reduce @mods { y: @curveY, s: @slope } (fn (acc m)
130
+ (let ((modX (* (object/get @m b) (- @cx (object/get @m h)))))
131
+ (let ((modInRange (and (>= @modX (object/get (array/first @config.skateCurve) x)) (< @modX (object/get (array/last @config.skateCurve) x)))))
132
+ (let ((modLeft (if @modInRange (array/last (array/filter @config.skateCurve (fn s (<= (object/get @s x) @modX)))) null)))
133
+ (let ((modRight (if @modInRange (array/first (array/filter @config.skateCurve (fn s (> (object/get @s x) @modX)))) null)))
134
+ (let ((modOK (and @modInRange (and (!= @modLeft null) (!= @modRight null)))))
135
+ (let ((modSlope (if @modOK (/ (- (object/get @modRight y) (object/get @modLeft y)) (- (object/get @modRight x) (object/get @modLeft x))) 0)))
136
+ (let ((modCurveY (if @modOK (+ (object/get @modLeft y) (* @modSlope (- @modX (object/get @modLeft x)))) 0)))
137
+ (if @modOK
138
+ { y: (+ (object/get @acc y) (- (+ (* (object/get @m a) @modCurveY) (object/get @m k)) @curveY)), s: (+ (object/get @acc s) (- (* (* (object/get @m a) (object/get @m b)) @modSlope) @slope)) }
139
+ @acc))))))))))))
140
+ (let ((slope (object/get @modded s)))
141
+ (let ((curveY (object/get @modded y)))
142
+ (let ((aboveCurve (< (* (- @ny2 @curveY) @gdir) 0)))
120
143
  (let ((movingUp (< (* @vy1 @gdir) -0.01)))
121
- (let ((skateNow (and @inRange (and (not @gapBreak) (and (<= (math/abs (- @ny2 @curveY)) @config.skateSnap) (and (or @landed @entity.skating) (or @entity.body.grounded (not @movingUp))))))))
122
- (let ((vx2 (if @skateNow (math/clamp (+ @entity.body.vx (* (/ (* @config.gravity @slope) (+ 1 (* @slope @slope))) 0.033)) (- 0 @config.maxFallSpeed) @config.maxFallSpeed) @entity.body.vx)))
144
+ (let ((skateNow (and @inRange (and (not @gapBreak) (and (<= (math/abs (- @ny2 @curveY)) @config.skateSnap) (and (or @landed (or @entity.skating (and (not @movingUp) @aboveCurve))) (or @entity.body.grounded (not @movingUp))))))))
145
+ (let ((vx2 (if @skateNow (math/clamp (+ @entity.body.vx (* (/ (* @eg @slope) (+ 1 (* @slope @slope))) 0.033)) (- 0 @config.maxFallSpeed) @config.maxFallSpeed) @entity.body.vx)))
123
146
  (let ((vx3 (if (== @drift null) @vx2 (math/clamp (+ @vx2 (* @dax 0.033)) (- 0 @config.maxFallSpeed) @config.maxFallSpeed))))
124
147
  (let ((fy (if @skateNow @curveY @ny2)) (fvy (if @skateNow (* (* @vx2 (math/cos (math/atan @slope))) (math/sin (math/atan @slope))) @vy2)) (fgrounded (or @landed @skateNow)))
125
148
  (let ((hazardHit (array/find @config.platforms (fn p (and (== (object/get @p type) "hazard") (geo/aabb-overlap @rect { x: @p.x, y: @p.y, w: @p.width, h: @p.height }))))))
@@ -156,7 +179,7 @@ orbital PlatformerBodyOrbital {
156
179
  (set @entity.fell true)
157
180
  (emit BODY_FELL { x: @nx, y: @fy }))
158
181
  null)
159
- (emit BODY_MOVED { x: @nx, y: @fy, vx: @entity.body.vx, vy: @fvy, grounded: @fgrounded, skating: @skateNow, speed: (math/hypot @entity.body.vx @fvy) }))))))))))))))))))))))))))))))))))))))
182
+ (emit BODY_MOVED { x: @nx, y: @fy, vx: @entity.body.vx, vy: @fvy, grounded: @fgrounded, skating: @skateNow, speed: (math/hypot @entity.body.vx @fvy) })))))))))))))))))))))))))))))))))))
160
183
  }
161
184
 
162
185
  emits {
@@ -176,7 +199,7 @@ orbital PlatformerBodyOrbital {
176
199
  y : number!
177
200
  slope : number!
178
201
  }
179
- @description "Body engaged curve skating this tick (grounded within skateSnap of the skateCurve surface); slope is the local dy/dx — boards layer fx and equation readouts"
202
+ @description "Body engaged curve skating this tick (grounded, landing, or falling within skateSnap above the skateCurve surface); slope is the local dy/dx — boards layer fx and equation readouts"
180
203
  @tier "domain"
181
204
  BODY_SKATE_END -> external {
182
205
  x : number!
@@ -217,13 +240,19 @@ orbital PlatformerBodyOrbital {
217
240
  }
218
241
  @description "Body crossed killY in the gravity direction (pit fall); fires once per fall and re-arms on PLACE/RESTART, leaving the respawn rule to the board"
219
242
  @tier "domain"
243
+ CURVE_MOD_CLEAR -> external {
244
+ }
245
+ @description "Curve mods were cleared; the skate surface is back to the base skateCurve until a new mod is added."
246
+ @tier "domain"
220
247
  }
221
248
 
222
249
  listens {
223
250
  STEER { dir : number! }
224
251
  JUMP { id : string }
225
252
  PLACE { x : number!, y : number! }
226
- CURVE_MOD_ADD { x0 : number!, x1 : number!, a : number!, h : number!, k : number! }
253
+ CURVE_MOD_ADD { x0 : number!, x1 : number!, a : number!, b : number, h : number!, k : number! }
254
+ CURVE_MOD_CLEAR { }
255
+ SET_TUNING { jumpStrength : number, moveSpeed : number, gravity : number }
227
256
  RESTART { id : string }
228
257
  }
229
258
 
@@ -246,7 +275,7 @@ orbital PlatformerBodyOrbital {
246
275
  @tier "domain"
247
276
  curveModsEnabled : boolean = false
248
277
  @label "Curve Mods Enabled"
249
- @description "When true, entity.curveMods reshape the skate surface inside each mod's x-range: the road samples the base curve at (x − h) and applies a·y + k (slope scales by a) — coefficient pads lift/tilt the segment the player is riding. Default off: boards without coef pads pay nothing."
278
+ @description "When true, entity.curveMods reshape the skate surface inside each mod's x-range: the road samples the base curve at b·(x − h) and applies a·y + k (slope scales by a·b) — coefficient pads lift/tilt/compress the segment the player is riding. Multiple overlapping mods stack by summing each mod's delta from the base surface; a mod whose shifted sample leaves the curve range is skipped. Default off: boards without coef pads pay nothing."
250
279
  @tier "domain"
251
280
  jumpStrength : number = 11
252
281
  @label "Jump Strength"
@@ -274,7 +303,7 @@ orbital PlatformerBodyOrbital {
274
303
  @tier "domain"
275
304
  skate : boolean = false
276
305
  @label "Curve Skating"
277
- @description "When true, a grounded body within skateSnap of the skateCurve surface rides the curve: y snaps to the interpolated surface and tangential gravity (g·slope/(1+slope²)) accelerates vx, so the body slides downhill along the graph and launches off its ends; JUMP kicks free"
306
+ @description "When true, a grounded body within skateSnap of the skateCurve surface rides the curve: y snaps to the interpolated surface and tangential gravity (g·slope/(1+slope²)) accelerates vx, so the body slides downhill along the graph and launches off its ends; JUMP kicks free. Engages when grounded, when landing on a tile, or when a falling (not rising) body passes within skateSnap above the surface."
278
307
  @tier "domain"
279
308
  skateCurve : [PlatformerCurveSample] = []
280
309
  @label "Skate Curve"
@@ -65,15 +65,15 @@ orbital ControlButtonOrbital {
65
65
  @label "Icon"
66
66
  @description "Icon component or emoji"
67
67
  @tier "presentation"
68
- size : "sm" | "md" | "lg" | "xl" = md
68
+ size : string = md
69
69
  @label "Size"
70
70
  @description "Size variant"
71
71
  @tier "presentation"
72
- shape : "circle" | "rounded" | "square" = circle
72
+ shape : string = circle
73
73
  @label "Shape"
74
74
  @description "Shape variant"
75
75
  @tier "presentation"
76
- variant : "primary" | "secondary" | "ghost" = secondary
76
+ variant : string = secondary
77
77
  @label "Variant"
78
78
  @description "Visual variant"
79
79
  @tier "presentation"
@@ -6,7 +6,7 @@ orbital ControlGridOrbital {
6
6
  label : string
7
7
  icon : icon
8
8
  assetUrl : ControlGridButtonsItemAssetUrl
9
- variant : "primary" | "secondary" | "ghost"
9
+ variant : string
10
10
  }
11
11
  type ControlGridButtonsItemAssetUrl = {
12
12
  url : asset!
@@ -58,7 +58,7 @@ orbital GameHudOrbital {
58
58
  }
59
59
 
60
60
  config {
61
- position : "top" | "bottom" | "corners" = top
61
+ position : string
62
62
  @label "Position"
63
63
  @description "Position of the HUD"
64
64
  @tier "presentation"
@@ -6,7 +6,7 @@ orbital GameMenuOrbital {
6
6
  label : string!
7
7
  event : event
8
8
  navigatesTo : string
9
- variant : "primary" | "secondary" | "ghost"
9
+ variant : string
10
10
  disabled : boolean
11
11
  subLabel : string
12
12
  }
@@ -15,7 +15,7 @@ orbital GameMenuOrbital {
15
15
  label : string!
16
16
  event : event
17
17
  navigatesTo : string
18
- variant : "primary" | "secondary" | "ghost"
18
+ variant : string
19
19
  disabled : boolean
20
20
  subLabel : string
21
21
  }
@@ -38,7 +38,7 @@ orbital GameMenuOrbital {
38
38
  label : string!
39
39
  event : string
40
40
  navigatesTo : string
41
- variant : "primary" | "secondary" | "ghost"
41
+ variant : string
42
42
  disabled : boolean
43
43
  subLabel : string
44
44
  }
@@ -85,7 +85,7 @@ orbital StatBadgeOrbital {
85
85
  @label "Field"
86
86
  @description "Field name in the source (for schema config)"
87
87
  @tier "presentation"
88
- format : "number" | "hearts" | "bar" | "text" = number
88
+ format : string = number
89
89
  @label "Format"
90
90
  @description "Display format"
91
91
  @tier "presentation"
@@ -93,11 +93,11 @@ orbital StatBadgeOrbital {
93
93
  @label "Icon"
94
94
  @description "Icon component or emoji"
95
95
  @tier "presentation"
96
- size : "sm" | "md" | "lg" = md
96
+ size : string = md
97
97
  @label "Size"
98
98
  @description "Size variant"
99
99
  @tier "presentation"
100
- variant : "default" | "primary" | "success" | "warning" | "danger" = default
100
+ variant : string = default
101
101
  @label "Variant"
102
102
  @description "Visual variant"
103
103
  @tier "presentation"
@@ -172,6 +172,8 @@ orbital MathCanvasOrbital {
172
172
  gridColor: @config.gridColor
173
173
  axisColor: @config.axisColor
174
174
  showTickLabels: @config.showTickLabels
175
+ tickLabelFontSize: @config.tickLabelFontSize
176
+ labelFontSize: @config.labelFontSize
175
177
  showCurveLabels: @config.showCurveLabels
176
178
  curves: @config.curves
177
179
  points: @config.points
@@ -211,6 +213,8 @@ orbital MathCanvasOrbital {
211
213
  gridColor: @config.gridColor
212
214
  axisColor: @config.axisColor
213
215
  showTickLabels: @config.showTickLabels
216
+ tickLabelFontSize: @config.tickLabelFontSize
217
+ labelFontSize: @config.labelFontSize
214
218
  showCurveLabels: @config.showCurveLabels
215
219
  curves: @payload.curves
216
220
  points: @payload.points
@@ -324,6 +328,14 @@ orbital MathCanvasOrbital {
324
328
  @label "Show Tick Labels"
325
329
  @description "Draw numeric labels on grid lines (default false)."
326
330
  @tier "presentation"
331
+ tickLabelFontSize : number = 10
332
+ @label "Tick Label Font Size"
333
+ @description "Font size in px for axis tick labels (default 10)."
334
+ @tier "presentation"
335
+ labelFontSize : number = 12
336
+ @label "Label Font Size"
337
+ @description "Base font size in px for all other canvas annotations (points, vectors, guides, curves, regions, angles, hops; default 12)."
338
+ @tier "presentation"
327
339
  showCurveLabels : boolean = false
328
340
  @label "Show Curve Labels"
329
341
  @description "Draw each curve's `label` at its last in-range sample (default false)."
@@ -382,7 +382,8 @@
382
382
  "linkedEntity": "ApprovalRequest",
383
383
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
384
384
  "name": "LoadingSpinner",
385
- "ref": "Spinner.traits.SpinnerRender"
385
+ "ref": "Spinner.traits.SpinnerRender",
386
+ "refId": "trt_01KXG04KQTE55FSTDE4V4XKESN"
386
387
  },
387
388
  {
388
389
  "config": {
@@ -395,7 +396,8 @@
395
396
  "linkedEntity": "ApprovalRequest",
396
397
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
397
398
  "name": "ErrorSpinner",
398
- "ref": "Spinner.traits.SpinnerRender"
399
+ "ref": "Spinner.traits.SpinnerRender",
400
+ "refId": "trt_01KXG04KQTE55FSTDE4V4XKESN"
399
401
  },
400
402
  {
401
403
  "config": {
@@ -416,7 +418,8 @@
416
418
  "linkedEntity": "ApprovalRequest",
417
419
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
418
420
  "name": "LoadingText",
419
- "ref": "Typography.traits.TypographyRender"
421
+ "ref": "Typography.traits.TypographyRender",
422
+ "refId": "trt_01KXG04MN4YEZRM29MVNFTYM98"
420
423
  },
421
424
  {
422
425
  "config": {
@@ -429,7 +432,8 @@
429
432
  "linkedEntity": "ApprovalRequest",
430
433
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
431
434
  "name": "ShieldCheckIcon",
432
- "ref": "Icon.traits.IconRender"
435
+ "ref": "Icon.traits.IconRender",
436
+ "refId": "trt_01KXG04K2JE4GSQVWEWHAHDE2A"
433
437
  },
434
438
  {
435
439
  "config": {
@@ -446,7 +450,8 @@
446
450
  "linkedEntity": "ApprovalRequest",
447
451
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
448
452
  "name": "ApprovalQueueTitle",
449
- "ref": "Typography.traits.TypographyRender"
453
+ "ref": "Typography.traits.TypographyRender",
454
+ "refId": "trt_01KXG04MN4YEZRM29MVNFTYM98"
450
455
  },
451
456
  {
452
457
  "config": {
@@ -463,7 +468,8 @@
463
468
  "linkedEntity": "ApprovalRequest",
464
469
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
465
470
  "name": "DenyReasonTitle",
466
- "ref": "Typography.traits.TypographyRender"
471
+ "ref": "Typography.traits.TypographyRender",
472
+ "refId": "trt_01KXG04MN4YEZRM29MVNFTYM98"
467
473
  },
468
474
  {
469
475
  "config": {
@@ -484,7 +490,8 @@
484
490
  "linkedEntity": "ApprovalRequest",
485
491
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
486
492
  "name": "DenyReasonHint",
487
- "ref": "Typography.traits.TypographyRender"
493
+ "ref": "Typography.traits.TypographyRender",
494
+ "refId": "trt_01KXG04MN4YEZRM29MVNFTYM98"
488
495
  },
489
496
  {
490
497
  "config": {
@@ -509,14 +516,16 @@
509
516
  "linkedEntity": "ApprovalRequest",
510
517
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
511
518
  "name": "CloseButton",
512
- "ref": "Button.traits.ButtonRender"
519
+ "ref": "Button.traits.ButtonRender",
520
+ "refId": "trt_01KXG04JBQPWD7RW8X33NXPXG9"
513
521
  },
514
522
  {
515
523
  "id": "trt_01KY21K6QC0P4NS69R6ATZPC18",
516
524
  "linkedEntity": "ApprovalRequest",
517
525
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
518
526
  "name": "ApprovalDivider",
519
- "ref": "Divider.traits.DividerRender"
527
+ "ref": "Divider.traits.DividerRender",
528
+ "refId": "trt_01KXG04JVTJZ479S2KPR7HD1KB"
520
529
  },
521
530
  {
522
531
  "config": {
@@ -533,7 +542,8 @@
533
542
  "linkedEntity": "ApprovalRequest",
534
543
  "linkedEntityId": "ent_01KXG04EYQFWN6TM97JNWHHSF4",
535
544
  "name": "ErrorAlert",
536
- "ref": "Alert.traits.AlertRender"
545
+ "ref": "Alert.traits.AlertRender",
546
+ "refId": "trt_01KXG04MT125AX1BGFS3ZNGX67"
537
547
  },
538
548
  {
539
549
  "capabilities": [