@almadar/std 16.235.0 → 16.237.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 (283) hide show
  1. package/behaviors/behaviors-registry.json +5621 -1993
  2. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +32 -41
  3. package/behaviors/lolo/infra/atoms/std-audit-capture.lolo +0 -5
  4. package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +0 -24
  5. package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +1 -17
  6. package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +17 -24
  7. package/behaviors/lolo/infra/atoms/std-data-import.lolo +8 -11
  8. package/behaviors/lolo/infra/atoms/std-game-clock.lolo +2 -0
  9. package/behaviors/lolo/infra/atoms/std-knowledge-loop.lolo +0 -5
  10. package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +3 -1
  11. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  12. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +40 -18
  13. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +25 -11
  14. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +0 -5
  15. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +28 -11
  16. package/behaviors/lolo/infra/atoms/std-rate-limiter.lolo +84 -22
  17. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -6
  18. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +3 -1
  19. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +0 -4
  20. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +0 -4
  21. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +12 -0
  22. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +55 -9
  23. package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +6 -2
  24. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +19 -14
  25. package/behaviors/lolo/ui/core/atoms/std-board.lolo +77 -27
  26. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +76 -33
  27. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +7 -3
  28. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +25 -13
  29. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +5 -0
  30. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +32 -5
  31. package/behaviors/lolo/ui/core/atoms/std-export.lolo +0 -10
  32. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +15 -4
  33. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -6
  34. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +8 -1
  35. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -0
  36. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +20 -4
  37. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  38. package/behaviors/lolo/ui/core/atoms/std-import.lolo +0 -5
  39. package/behaviors/lolo/ui/core/atoms/std-list.lolo +53 -32
  40. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +2 -2
  41. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +24 -0
  42. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +12 -13
  43. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +29 -13
  44. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +14 -1
  45. package/behaviors/lolo/ui/core/atoms/std-role-gate.lolo +39 -0
  46. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +84 -16
  47. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +22 -10
  48. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +5 -5
  49. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -0
  50. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +41 -73
  51. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +27 -12
  52. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +0 -4
  53. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
  54. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +21 -0
  55. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +36 -0
  56. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +5 -0
  57. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +5 -0
  58. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +1 -1
  59. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +6 -1
  60. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +11 -1
  61. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +13 -8
  62. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +11 -6
  63. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +2 -2
  64. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +8 -0
  65. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +60 -5
  66. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +47 -3
  67. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +3 -3
  68. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +31 -9
  69. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +8 -3
  70. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +6 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +13 -0
  72. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
  73. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +1 -1
  74. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +6 -1
  75. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +6 -1
  76. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +6 -1
  77. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +9 -1
  78. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -1
  79. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -2
  80. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +1 -1
  81. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +7 -1
  82. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +6 -1
  83. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +5 -0
  84. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +11 -1
  85. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +1 -1
  86. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +44 -15
  87. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +57 -5
  88. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +8 -2
  89. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +87 -16
  90. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +37 -10
  91. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +46 -8
  92. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +36 -10
  93. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +57 -10
  94. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +57 -10
  95. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +22 -3
  96. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +6 -0
  97. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +12 -0
  98. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +38 -5
  99. package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +1 -1
  100. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +3 -45
  101. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +7 -2
  102. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +2 -37
  103. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  104. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
  105. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +2 -2
  106. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +9 -3
  107. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
  108. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +2 -2
  109. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +0 -4
  110. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +2 -66
  111. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +0 -4
  112. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +0 -4
  113. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +6 -6
  114. package/behaviors/lolo-behavior-contracts.json +1 -1
  115. package/behaviors/registry/factory-signatures.json +1 -1
  116. package/behaviors/registry/infra/atoms/std-approval-gate.orb +194 -67
  117. package/behaviors/registry/infra/atoms/std-audit-capture.orb +0 -8
  118. package/behaviors/registry/infra/atoms/std-cache-aside.orb +0 -84
  119. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -44
  120. package/behaviors/registry/infra/atoms/std-data-erasure.orb +124 -55
  121. package/behaviors/registry/infra/atoms/std-data-import.orb +12 -11
  122. package/behaviors/registry/infra/atoms/std-game-clock.orb +31 -0
  123. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +0 -57
  124. package/behaviors/registry/infra/atoms/std-lifecycle.orb +43 -0
  125. package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
  126. package/behaviors/registry/infra/atoms/std-mod-queue.orb +379 -103
  127. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +135 -12
  128. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +0 -11
  129. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +137 -12
  130. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +287 -72
  131. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +5 -8
  132. package/behaviors/registry/ml/atoms/std-graph-builder.orb +11 -0
  133. package/behaviors/registry/ml/atoms/std-ml-classify.orb +0 -7
  134. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +0 -7
  135. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +82 -0
  136. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +417 -9
  137. package/behaviors/registry/ui/core/atoms/std-app-search.orb +53 -1
  138. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +209 -19
  139. package/behaviors/registry/ui/core/atoms/std-board.orb +242 -61
  140. package/behaviors/registry/ui/core/atoms/std-browse.orb +499 -49
  141. package/behaviors/registry/ui/core/atoms/std-calendar.orb +96 -2
  142. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +122 -15
  143. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +11 -0
  144. package/behaviors/registry/ui/core/atoms/std-event-log.orb +42 -6
  145. package/behaviors/registry/ui/core/atoms/std-export.orb +0 -16
  146. package/behaviors/registry/ui/core/atoms/std-file-store.orb +121 -3
  147. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -43
  148. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +25 -1
  149. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +5 -0
  150. package/behaviors/registry/ui/core/atoms/std-graphs.orb +173 -66
  151. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -0
  152. package/behaviors/registry/ui/core/atoms/std-import.orb +0 -8
  153. package/behaviors/registry/ui/core/atoms/std-list.orb +237 -34
  154. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +10 -1
  155. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +24 -0
  156. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +37 -19
  157. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +275 -14
  158. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +93 -4
  159. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +217 -0
  160. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +473 -19
  161. package/behaviors/registry/ui/core/atoms/std-selection.orb +179 -10
  162. package/behaviors/registry/ui/core/atoms/std-stats.orb +73 -1
  163. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +3 -0
  164. package/behaviors/registry/ui/core/atoms/std-thread.orb +190 -115
  165. package/behaviors/registry/ui/core/atoms/std-version-history.orb +138 -14
  166. package/behaviors/registry/ui/core/atoms/std-vote.orb +0 -9
  167. package/behaviors/registry/ui/core/atoms/std-wizard.orb +33 -3
  168. package/behaviors/registry/ui/core/atoms/ui-presence.orb +59 -0
  169. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +132 -0
  170. package/behaviors/registry/ui/core/atoms/ui-typography.orb +7 -0
  171. package/behaviors/registry/ui/core/molecules/ui-alert.orb +7 -0
  172. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
  173. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +53 -1
  174. package/behaviors/registry/ui/core/molecules/ui-chart.orb +68 -1
  175. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +291 -8
  176. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +89 -6
  177. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +3 -2
  178. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +32 -0
  179. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +297 -5
  180. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +261 -3
  181. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -3
  182. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +93 -24
  183. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +121 -3
  184. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +53 -1
  185. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +40 -0
  186. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +0 -1
  187. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +0 -1
  188. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +53 -1
  189. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +53 -1
  190. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +53 -1
  191. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +28 -1
  192. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +53 -1
  193. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +9 -2
  194. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
  195. package/behaviors/registry/ui/core/molecules/ui-menu.orb +74 -1
  196. package/behaviors/registry/ui/core/molecules/ui-meter.orb +53 -1
  197. package/behaviors/registry/ui/core/molecules/ui-modal.orb +8 -0
  198. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +60 -1
  199. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  200. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +393 -23
  201. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +337 -5
  202. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +99 -2
  203. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +415 -33
  204. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +340 -29
  205. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +296 -20
  206. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +489 -9
  207. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +132 -13
  208. package/behaviors/registry/ui/core/organisms/ui-form.orb +132 -13
  209. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +141 -3
  210. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +58 -0
  211. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +82 -0
  212. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +159 -8
  213. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +0 -1
  214. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -173
  215. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +53 -2
  216. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -116
  217. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
  218. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -2
  219. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +100 -3
  220. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +0 -1
  221. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -0
  222. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +0 -7
  223. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -807
  224. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +0 -7
  225. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +0 -7
  226. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +6 -0
  227. package/canonical-operators.json +18 -1
  228. package/dist/behaviors/exports-reader.js +8942 -3946
  229. package/dist/behaviors/functions/index.d.ts +419 -132
  230. package/dist/behaviors/functions/index.js +8931 -3946
  231. package/dist/behaviors/index.d.ts +1 -1
  232. package/dist/behaviors/index.js +8943 -3947
  233. package/dist/behaviors/query.js +8942 -3946
  234. package/dist/behaviors-embeddings.hash.json +3 -3
  235. package/dist/behaviors-embeddings.json +49 -41
  236. package/dist/behaviors-registry.json +5621 -1993
  237. package/dist/index.d.ts +3 -3
  238. package/dist/index.js +8960 -3947
  239. package/dist/knob-embeddings.hash.json +3 -3
  240. package/dist/knob-embeddings.json +774 -374
  241. package/dist/modules/anim.d.ts +1 -1
  242. package/dist/modules/array.d.ts +1 -1
  243. package/dist/modules/array.js +15 -0
  244. package/dist/modules/async.d.ts +1 -1
  245. package/dist/modules/behavior.d.ts +1 -1
  246. package/dist/modules/browser.d.ts +1 -1
  247. package/dist/modules/composition.d.ts +1 -1
  248. package/dist/modules/contract.d.ts +1 -1
  249. package/dist/modules/core.d.ts +1 -1
  250. package/dist/modules/core.js +2 -0
  251. package/dist/modules/data.d.ts +1 -1
  252. package/dist/modules/ease.d.ts +1 -1
  253. package/dist/modules/format.d.ts +1 -1
  254. package/dist/modules/geo.d.ts +1 -1
  255. package/dist/modules/graph.d.ts +1 -1
  256. package/dist/modules/grid.d.ts +1 -1
  257. package/dist/modules/index.d.ts +1 -1
  258. package/dist/modules/index.js +17 -0
  259. package/dist/modules/integration.d.ts +1 -1
  260. package/dist/modules/json.d.ts +1 -1
  261. package/dist/modules/llm.d.ts +1 -1
  262. package/dist/modules/math.d.ts +1 -1
  263. package/dist/modules/memory.d.ts +1 -1
  264. package/dist/modules/nn.d.ts +1 -1
  265. package/dist/modules/noise.d.ts +1 -1
  266. package/dist/modules/object.d.ts +1 -1
  267. package/dist/modules/os.d.ts +1 -1
  268. package/dist/modules/path.d.ts +1 -1
  269. package/dist/modules/prob.d.ts +1 -1
  270. package/dist/modules/session.d.ts +1 -1
  271. package/dist/modules/str.d.ts +1 -1
  272. package/dist/modules/tensor.d.ts +1 -1
  273. package/dist/modules/time.d.ts +1 -1
  274. package/dist/modules/trace.d.ts +1 -1
  275. package/dist/modules/train.d.ts +1 -1
  276. package/dist/modules/validate.d.ts +1 -1
  277. package/dist/modules/vector.d.ts +1 -1
  278. package/dist/modules/workspace.d.ts +1 -1
  279. package/dist/registry/factory-signatures.json +1 -1
  280. package/dist/registry.d.ts +2 -2
  281. package/dist/registry.js +17 -0
  282. package/dist/{types-Ggla7OK7.d.ts → types-DLx38UFZ.d.ts} +23 -3
  283. package/package.json +3 -3
@@ -23,6 +23,7 @@ orbital MediaGalleryOrbital {
23
23
  event : event
24
24
  navigatesTo : string
25
25
  variant : "primary" | "secondary" | "ghost"
26
+ roles : [string]
26
27
  }
27
28
 
28
29
  entity MediaGalleryItem [runtime] {
@@ -55,8 +56,10 @@ orbital MediaGalleryOrbital {
55
56
  selectedItems: @config.selectedItems
56
57
  selectionEvent: @config.selectionEvent
57
58
  showUpload: @config.showUpload
58
- actions: @config.actions
59
+ actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
59
60
  aspectRatio: @config.aspectRatio
61
+ srcField: @config.srcField
62
+ captionField: @config.captionField
60
63
  type: media-gallery
61
64
  })
62
65
  INIT -> idle when (not @config.selfFetch)
@@ -80,8 +83,10 @@ orbital MediaGalleryOrbital {
80
83
  selectedItems: @config.selectedItems
81
84
  selectionEvent: @config.selectionEvent
82
85
  showUpload: @config.showUpload
83
- actions: @config.actions
86
+ actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
84
87
  aspectRatio: @config.aspectRatio
88
+ srcField: @config.srcField
89
+ captionField: @config.captionField
85
90
  type: media-gallery
86
91
  })
87
92
  MediaGalleryLoaded -> idle
@@ -105,8 +110,10 @@ orbital MediaGalleryOrbital {
105
110
  selectedItems: @config.selectedItems
106
111
  selectionEvent: @config.selectionEvent
107
112
  showUpload: @config.showUpload
108
- actions: @config.actions
113
+ actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
109
114
  aspectRatio: @config.aspectRatio
115
+ srcField: @config.srcField
116
+ captionField: @config.captionField
110
117
  type: media-gallery
111
118
  })
112
119
  }
@@ -205,6 +212,18 @@ orbital MediaGalleryOrbital {
205
212
  @label "Aspect Ratio"
206
213
  @description "Aspect ratio for thumbnails"
207
214
  @tier "presentation"
215
+ srcField : string = src
216
+ @label "Src Field"
217
+ @description "Record field holding each image's URL (entity mode). Default `src`."
218
+ @tier "presentation"
219
+ captionField : string = caption
220
+ @label "Caption Field"
221
+ @description "Record field holding each image's caption (entity mode). Default `caption`."
222
+ @tier "presentation"
223
+ viewerRole : string = ""
224
+ @label "Viewer's role"
225
+ @description "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show."
226
+ @tier "policy"
208
227
  selfFetch : boolean = true
209
228
  @label "Fetch its own rows on mount?"
210
229
  @description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
@@ -20,6 +20,12 @@ orbital StatCardOrbital {
20
20
  value : string
21
21
  icon : icon
22
22
  format : string
23
+ aggregate : "count" | "sum"
24
+ filter : StatCardMetricsItemFilter
25
+ }
26
+ type StatCardMetricsItemFilter = {
27
+ field : string!
28
+ equals : string!
23
29
  }
24
30
 
25
31
  entity StatCardItem [runtime] {
@@ -33,6 +33,12 @@ orbital StateMachineViewOrbital {
33
33
  code : string
34
34
  stack : string
35
35
  }
36
+ type StateMachineViewTRANSITIONCLICKTransition = {
37
+ index : number!
38
+ event : string!
39
+ from : string!
40
+ to : string!
41
+ }
36
42
 
37
43
  entity StateMachineViewItem [runtime] {
38
44
  id : string!
@@ -49,6 +55,7 @@ orbital StateMachineViewOrbital {
49
55
  visitedStates: @config.visitedStates
50
56
  stateClickEvent: @config.stateClickEvent
51
57
  transitionClickEvent: @config.transitionClickEvent
58
+ onTransitionClick: @config.onTransitionClick
52
59
  selectedState: @config.selectedState
53
60
  pendingSourceState: @config.pendingSourceState
54
61
  nodeShape: @config.nodeShape
@@ -74,6 +81,7 @@ orbital StateMachineViewOrbital {
74
81
  event : string!
75
82
  from : string!
76
83
  to : string!
84
+ transition : StateMachineViewTRANSITIONCLICKTransition
77
85
  }
78
86
  @description "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked."
79
87
  @tier "essential"
@@ -100,6 +108,10 @@ orbital StateMachineViewOrbital {
100
108
  @label "Transition Click Event"
101
109
  @description "Emits UI:{transitionClickEvent} with { index, event, from, to } when a transition label is clicked."
102
110
  @tier "presentation"
111
+ onTransitionClick : event = "TRANSITION_CLICK"
112
+ @label "On Transition Click"
113
+ @description "Direct transition-click callback, for React hosts (e.g. a canvas node)."
114
+ @tier "presentation"
103
115
  selectedState : string
104
116
  @label "Selected State"
105
117
  @description "State picked in an editor (first click)."
@@ -23,6 +23,7 @@ orbital TimelineOrbital {
23
23
  event : event
24
24
  navigatesTo : string
25
25
  variant : "primary" | "secondary" | "ghost"
26
+ roles : [string]
26
27
  }
27
28
 
28
29
  entity TimelineItem [runtime] {
@@ -43,7 +44,11 @@ orbital TimelineOrbital {
43
44
  title: @config.title
44
45
  items: @config.items
45
46
  fields: @config.fields
46
- itemActions: @config.itemActions
47
+ titleField: @config.titleField
48
+ descriptionField: @config.descriptionField
49
+ dateField: @config.dateField
50
+ statusField: @config.statusField
51
+ itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
47
52
  look: @config.look
48
53
  type: timeline
49
54
  })
@@ -56,7 +61,11 @@ orbital TimelineOrbital {
56
61
  title: @config.title
57
62
  items: @config.items
58
63
  fields: @config.fields
59
- itemActions: @config.itemActions
64
+ titleField: @config.titleField
65
+ descriptionField: @config.descriptionField
66
+ dateField: @config.dateField
67
+ statusField: @config.statusField
68
+ itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
60
69
  look: @config.look
61
70
  type: timeline
62
71
  })
@@ -69,7 +78,11 @@ orbital TimelineOrbital {
69
78
  title: @config.title
70
79
  items: @config.items
71
80
  fields: @config.fields
72
- itemActions: @config.itemActions
81
+ titleField: @config.titleField
82
+ descriptionField: @config.descriptionField
83
+ dateField: @config.dateField
84
+ statusField: @config.statusField
85
+ itemActions: (array/filter @config.itemActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
73
86
  look: @config.look
74
87
  type: timeline
75
88
  })
@@ -109,9 +122,25 @@ orbital TimelineOrbital {
109
122
  @label "Items"
110
123
  @description "Timeline items"
111
124
  @tier "presentation"
112
- fields : [string] = ["Item", "Item 2"]
125
+ fields : [string] = []
113
126
  @label "Fields"
114
- @description "Fields to display"
127
+ @description "Entity fields the timeline draws; each slot is named by its own `*Field` prop."
128
+ @tier "presentation"
129
+ titleField : string
130
+ @label "Title Field"
131
+ @description "Entity field holding each item's title."
132
+ @tier "presentation"
133
+ descriptionField : string
134
+ @label "Description Field"
135
+ @description "Entity field holding each item's description."
136
+ @tier "presentation"
137
+ dateField : string
138
+ @label "Date Field"
139
+ @description "Entity field holding each item's date."
140
+ @tier "presentation"
141
+ statusField : string
142
+ @label "Status Field"
143
+ @description "Entity field holding each item's status (complete | active | pending | error)."
115
144
  @tier "presentation"
116
145
  itemActions : [TimelineItemActionsItem] = []
117
146
  @label "Item Actions"
@@ -121,6 +150,10 @@ orbital TimelineOrbital {
121
150
  @label "Look"
122
151
  @description "Layer 2 visual treatment."
123
152
  @tier "presentation"
153
+ viewerRole : string = ""
154
+ @label "Viewer's role"
155
+ @description "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show."
156
+ @tier "policy"
124
157
  selfFetch : boolean = true
125
158
  @label "Fetch its own rows on mount?"
126
159
  @description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
@@ -22,7 +22,7 @@ orbital AuthLayoutOrbital {
22
22
  }
23
23
 
24
24
  config {
25
- appName : string = "My App"
25
+ appName : string
26
26
  @label "App Name"
27
27
  @description "App name"
28
28
  @tier "presentation"
@@ -2,8 +2,6 @@ app ui-counter-template "1.0.0"
2
2
  "CounterTemplate — UI factory (1:1 with the @almadar/ui counter-template pattern)."
3
3
  ;; @pattern "counter-template"
4
4
  orbital CounterTemplateOrbital {
5
- type CounterTemplateLoaded = Event { data : [CounterTemplateItem] } "CounterTemplate rows finished loading; payload.data holds the collection"
6
-
7
5
  entity CounterTemplateItem [runtime] {
8
6
  id : string!
9
7
  count : number = 1
@@ -18,24 +16,8 @@ orbital CounterTemplateOrbital {
18
16
  initial: idle
19
17
 
20
18
  state idle {
21
- INIT -> idle when @config.selfFetch
22
- (fetch CounterTemplateItem { emit: { success: CounterTemplateLoaded } })
23
- (render-ui main {
24
- entity: @entity
25
- className: @config.className
26
- onIncrement: @config.onIncrement
27
- onDecrement: @config.onDecrement
28
- onReset: @config.onReset
29
- incrementEvent: @config.incrementEvent
30
- decrementEvent: @config.decrementEvent
31
- resetEvent: @config.resetEvent
32
- title: @config.title
33
- showReset: @config.showReset
34
- size: @config.size
35
- variant: @config.variant
36
- type: counter-template
37
- })
38
- INIT -> idle when (not @config.selfFetch)
19
+ INIT -> idle
20
+ (fetch CounterTemplateItem {})
39
21
  (render-ui main {
40
22
  entity: @entity
41
23
  className: @config.className
@@ -51,22 +33,6 @@ orbital CounterTemplateOrbital {
51
33
  variant: @config.variant
52
34
  type: counter-template
53
35
  })
54
- CounterTemplateLoaded -> idle
55
- (render-ui main {
56
- entity: @payload.data
57
- className: @config.className
58
- onIncrement: @config.onIncrement
59
- onDecrement: @config.onDecrement
60
- onReset: @config.onReset
61
- incrementEvent: @config.incrementEvent
62
- decrementEvent: @config.decrementEvent
63
- resetEvent: @config.resetEvent
64
- title: @config.title
65
- showReset: @config.showReset
66
- size: @config.size
67
- variant: @config.variant
68
- type: counter-template
69
- })
70
36
  }
71
37
 
72
38
  emits {
@@ -79,10 +45,6 @@ orbital CounterTemplateOrbital {
79
45
  @config.onReset -> external { }
80
46
  @description "Called when reset is clicked"
81
47
  @tier "essential"
82
- CounterTemplateLoaded
83
- @description "CounterTemplate rows finished loading; payload.data holds the collection."
84
- @synonyms "loaded, fetched, retrieved"
85
- @tier "essential"
86
48
  }
87
49
 
88
50
  config {
@@ -114,7 +76,7 @@ orbital CounterTemplateOrbital {
114
76
  @label "Reset Event"
115
77
  @description "Declarative event key — emits UI:{resetEvent} via bus on reset"
116
78
  @tier "presentation"
117
- title : string = Counter
79
+ title : string
118
80
  @label "Title"
119
81
  @description "Title displayed above the counter"
120
82
  @tier "presentation"
@@ -130,10 +92,6 @@ orbital CounterTemplateOrbital {
130
92
  @label "Variant"
131
93
  @description "Template variant"
132
94
  @tier "presentation"
133
- selfFetch : boolean = true
134
- @label "Fetch its own rows on mount?"
135
- @description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
136
- @tier "internal"
137
95
  }
138
96
  }
139
97
 
@@ -21,6 +21,7 @@ orbital DashboardLayoutOrbital {
21
21
  navigatesTo : string
22
22
  badge : string
23
23
  variant : "default" | "primary" | "danger"
24
+ roles : [string]
24
25
  }
25
26
  type DashboardLayoutNotificationsItem = {
26
27
  id : string!
@@ -48,7 +49,7 @@ orbital DashboardLayoutOrbital {
48
49
  showSearch: @config.showSearch
49
50
  searchEvent: @config.searchEvent
50
51
  onSearchSubmit: @config.onSearchSubmit
51
- topBarActions: @config.topBarActions
52
+ topBarActions: (array/filter @config.topBarActions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
52
53
  notifications: @config.notifications
53
54
  notificationClickEvent: @config.notificationClickEvent
54
55
  onNotificationClick: @config.onNotificationClick
@@ -83,7 +84,7 @@ orbital DashboardLayoutOrbital {
83
84
  }
84
85
 
85
86
  config {
86
- appName : string = "{{APP_TITLE}}"
87
+ appName : string
87
88
  @label "App Name"
88
89
  @description "App name shown in sidebar"
89
90
  @tier "presentation"
@@ -159,6 +160,10 @@ orbital DashboardLayoutOrbital {
159
160
  @label "Children"
160
161
  @description "Page content rendered inside the main area"
161
162
  @tier "presentation"
163
+ viewerRole : string = ""
164
+ @label "Viewer's role"
165
+ @description "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show."
166
+ @tier "policy"
162
167
  }
163
168
  }
164
169
 
@@ -2,8 +2,6 @@ app ui-generic-app-template "1.0.0"
2
2
  "GenericAppTemplate — UI factory (1:1 with the @almadar/ui generic-app-template pattern)."
3
3
  ;; @pattern "generic-app-template"
4
4
  orbital GenericAppTemplateOrbital {
5
- type GenericAppTemplateLoaded = Event { data : [GenericAppTemplateItem] } "GenericAppTemplate rows finished loading; payload.data holds the collection"
6
-
7
5
  entity GenericAppTemplateItem [runtime] {
8
6
  id : string!
9
7
  }
@@ -12,19 +10,8 @@ orbital GenericAppTemplateOrbital {
12
10
  initial: idle
13
11
 
14
12
  state idle {
15
- INIT -> idle when @config.selfFetch
16
- (fetch GenericAppTemplateItem { emit: { success: GenericAppTemplateLoaded } })
17
- (render-ui main {
18
- entity: @entity
19
- className: @config.className
20
- title: @config.title
21
- subtitle: @config.subtitle
22
- children: @config.children
23
- headerActions: @config.headerActions
24
- footer: @config.footer
25
- type: generic-app-template
26
- })
27
- INIT -> idle when (not @config.selfFetch)
13
+ INIT -> idle
14
+ (fetch GenericAppTemplateItem {})
28
15
  (render-ui main {
29
16
  entity: @entity
30
17
  className: @config.className
@@ -35,24 +22,6 @@ orbital GenericAppTemplateOrbital {
35
22
  footer: @config.footer
36
23
  type: generic-app-template
37
24
  })
38
- GenericAppTemplateLoaded -> idle
39
- (render-ui main {
40
- entity: @payload.data
41
- className: @config.className
42
- title: @config.title
43
- subtitle: @config.subtitle
44
- children: @config.children
45
- headerActions: @config.headerActions
46
- footer: @config.footer
47
- type: generic-app-template
48
- })
49
- }
50
-
51
- emits {
52
- GenericAppTemplateLoaded
53
- @description "GenericAppTemplate rows finished loading; payload.data holds the collection."
54
- @synonyms "loaded, fetched, retrieved"
55
- @tier "essential"
56
25
  }
57
26
 
58
27
  config {
@@ -80,10 +49,6 @@ orbital GenericAppTemplateOrbital {
80
49
  @label "Footer"
81
50
  @description "Footer content"
82
51
  @tier "presentation"
83
- selfFetch : boolean = true
84
- @label "Fetch its own rows on mount?"
85
- @description "true (default) = standalone mount self-populates on INIT. false = a composing atom owns the fetch and routes its loaded event here — suppresses the wrapper's own un-hydrated fetch so it cannot race the composer's."
86
- @tier "internal"
87
52
  }
88
53
  }
89
54
 
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "game-shell": {
3
- "signature": "aba270d4ed2ee09a",
3
+ "signature": "354579dbf896ca3f",
4
4
  "board": "packages/almadar-std/behaviors/lolo/ui/game/templates/ui-game-shell.lolo"
5
5
  },
6
6
  "timer-display": {
7
- "signature": "6ed079507206072d",
7
+ "signature": "97c478e49455845f",
8
8
  "board": "packages/almadar-std/behaviors/lolo/ui/game/atoms/ui-timer-display.lolo"
9
9
  }
10
10
  }
@@ -51,7 +51,7 @@ orbital ChoiceButtonOrbital {
51
51
  }
52
52
 
53
53
  config {
54
- text : string = "Charge forward into the fray"
54
+ text : string = ""
55
55
  @label "Text"
56
56
  @description "Choice text content"
57
57
  @tier "presentation"
@@ -39,11 +39,11 @@ orbital DialogueBubbleOrbital {
39
39
  }
40
40
 
41
41
  config {
42
- speaker : string = Hero
42
+ speaker : string
43
43
  @label "Speaker"
44
44
  @description "Speaker name displayed at the top"
45
45
  @tier "presentation"
46
- text : string = "The dungeon awaits. Choose your path wisely."
46
+ text : string = ""
47
47
  @label "Text"
48
48
  @description "Dialogue text content"
49
49
  @tier "presentation"
@@ -10,6 +10,7 @@ orbital GameMenuOrbital {
10
10
  variant : string
11
11
  disabled : boolean
12
12
  subLabel : string
13
+ roles : [string]
13
14
  }
14
15
  type GameMenuMenuItemsItem = {
15
16
  id : string
@@ -19,6 +20,7 @@ orbital GameMenuOrbital {
19
20
  variant : string
20
21
  disabled : boolean
21
22
  subLabel : string
23
+ roles : [string]
22
24
  }
23
25
  type GameMenuLogo = {
24
26
  url : asset!
@@ -56,8 +58,8 @@ orbital GameMenuOrbital {
56
58
  (render-ui main {
57
59
  title: @config.title
58
60
  subtitle: @config.subtitle
59
- options: @config.options
60
- menuItems: @config.menuItems
61
+ options: (array/filter @config.options (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
62
+ menuItems: (array/filter @config.menuItems (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
61
63
  onSelect: @config.onSelect
62
64
  background: @config.background
63
65
  logo: @config.logo
@@ -75,7 +77,7 @@ orbital GameMenuOrbital {
75
77
  }
76
78
 
77
79
  config {
78
- title : string = "Epic Quest"
80
+ title : string = ""
79
81
  @label "Title"
80
82
  @description "Menu title"
81
83
  @tier "presentation"
@@ -107,6 +109,10 @@ orbital GameMenuOrbital {
107
109
  @label "Class Name"
108
110
  @description "Additional CSS classes"
109
111
  @tier "presentation"
112
+ viewerRole : string = ""
113
+ @label "Viewer's role"
114
+ @description "The viewer's role that each action's `roles` is checked against; bind it at the call site (e.g. `viewerRole: @user.role`). Empty = only actions with no `roles` show."
115
+ @tier "policy"
110
116
  }
111
117
  }
112
118
 
@@ -68,7 +68,7 @@ orbital ScoreDisplayOrbital {
68
68
  @label "Class Name"
69
69
  @description "Additional CSS classes"
70
70
  @tier "presentation"
71
- locale : string = "en-US"
71
+ locale : string
72
72
  @label "Locale"
73
73
  @description "Number formatting locale"
74
74
  @tier "presentation"
@@ -215,7 +215,7 @@ orbital ArcadeBoard3DFrameOrbital {
215
215
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
216
216
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
217
217
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.85, color: "#ffffff" })) }
218
- { type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
218
+ { type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets, sprites: (object/get @config.assetManifest effects) }
219
219
  ] } ]
220
220
  })
221
221
 
@@ -261,7 +261,7 @@ orbital ArcadeBoard3DFrameOrbital {
261
261
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
262
262
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
263
263
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.85, color: "#ffffff" })) }
264
- { type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
264
+ { type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets, sprites: (object/get @config.assetManifest effects) }
265
265
  ] } ]
266
266
  })
267
267
 
@@ -299,10 +299,6 @@ orbital CrewBoard2DOrbital {
299
299
  @label "Show Minimap"
300
300
  @description "Whether the canvas draws a minimap."
301
301
  @tier "presentation"
302
- scale : number = 1
303
- @label "Scale"
304
- @description "Canvas render scale."
305
- @tier "presentation"
306
302
  backgroundAsset : Asset = {}
307
303
  @label "Background Asset"
308
304
  @description "Game-shell background panel sprite (theme chrome)."
@@ -1,5 +1,5 @@
1
1
  app std-platformer-puzzle "1.0.0"
2
- "Platformer + puzzle genre substrate organism. Composes the standard authorities — platformer-body, pickup, objective-flow, choice-gate, fx-particles, fx-narrative, tutorial-overlay — and enforces five trait-typed pillar slots: agency, challenge, goal, reward, feedback. Levels consume this organism, fill every slot with a local rebinding trait, and add their own geometry, render, and math rules. Math targets and grade levels stay downstream in the domain package; this substrate is domain-agnostic."
2
+ "Platformer + puzzle genre substrate organism. Composes the standard authorities — platformer-body, pickup, objective-flow, choice-gate, fx-particles, fx-narrative, tutorial-overlay — as the pillars a level rebinds: agency (body), challenge (choice), goal (objective), reward (pickup), feedback (fx, narrative, tutorial). Levels rebind these authorities locally and add their own geometry, render, and math rules. Math targets and grade levels stay downstream in the domain package; this substrate is domain-agnostic."
3
3
 
4
4
  orbital PlatformerPuzzleOrbital {
5
5
  uses Body from "std/behaviors/std-platformer-body"
@@ -135,26 +135,6 @@ orbital PlatformerPuzzleOrbital {
135
135
  body : string
136
136
  demoId : string
137
137
  }
138
- type Asset = {
139
- url : asset
140
- atlas : asset
141
- sprite : string
142
- role : string
143
- category : string
144
- animations : [string]
145
- style : string
146
- variant : string
147
- dimension : string
148
- aspect : string
149
- name : string
150
- thumbnailUrl : string
151
- }
152
- type DirectionAssets = {
153
- up : Asset
154
- down : Asset
155
- left : Asset
156
- right : Asset
157
- }
158
138
 
159
139
  entity PlatformerPuzzleData [runtime, shared] {
160
140
  id : string!
@@ -281,49 +261,5 @@ orbital PlatformerPuzzleOrbital {
281
261
  }
282
262
  }
283
263
 
284
- trait PlatformerPuzzle -> @rebindable PlatformerPuzzleData [interaction, instance] {
285
- initial: active
286
-
287
- state active {
288
- INIT -> active
289
- (render-ui main null)
290
- }
291
-
292
- config {
293
- agencyTrait : trait
294
- @label "Agency trait"
295
- @description "Trait that provides player verbs and immediate response. Usually a rebinding of std-platformer-body, std-motion-body, or std-hero-nav."
296
- @tier "domain"
297
- challengeTrait : trait
298
- @label "Challenge trait"
299
- @description "Trait that provides the obstacle, decision, or opposition. Usually a rebinding of std-choice-gate, std-gate-lock, std-patrol-hazard, std-velocity-gate, std-loop-lock, or std-pad-lock."
300
- @tier "domain"
301
- goalTrait : trait
302
- @label "Goal trait"
303
- @description "Trait that resolves the win condition. Usually a rebinding of std-objective-flow or std-objective-reach."
304
- @tier "domain"
305
- rewardTrait : trait
306
- @label "Reward trait"
307
- @description "Trait that provides collectibles or scoring. Usually a rebinding of std-pickup, std-score, std-xp, or std-gold."
308
- @tier "domain"
309
- feedbackTrait : trait
310
- @label "Feedback trait"
311
- @description "Trait that provides visual, audio, or narrative feedback. Usually a rebinding of std-fx-particles, std-fx-narrative, std-tutorial-overlay, std-audio-cue, or std-zone-card."
312
- @tier "domain"
313
- backgroundAsset : Asset = {}
314
- @label "Background Asset"
315
- @description "Game-shell background panel sprite (theme chrome)."
316
- @tier "presentation"
317
- hudBackgroundAsset : Asset = {}
318
- @label "HUD Background Asset"
319
- @description "HUD panel background sprite (theme chrome)."
320
- @tier "presentation"
321
- directionAssets : DirectionAssets = {}
322
- @label "Direction Assets"
323
- @description "D-pad direction icon sprites."
324
- @tier "presentation"
325
- }
326
- }
327
-
328
- page "/platformer-puzzle" as PlatformerPuzzlePage -> PlatformerPuzzleBody, PlatformerPuzzlePickup, PlatformerPuzzleObjective, PlatformerPuzzleChoice, PlatformerPuzzleFx, PlatformerPuzzleNarrative, PlatformerPuzzleTutorial, PlatformerPuzzle
264
+ page "/platformer-puzzle" as PlatformerPuzzlePage -> PlatformerPuzzleBody, PlatformerPuzzlePickup, PlatformerPuzzleObjective, PlatformerPuzzleChoice, PlatformerPuzzleFx, PlatformerPuzzleNarrative, PlatformerPuzzleTutorial
329
265
  }
@@ -424,10 +424,6 @@ orbital TacticsBoard2DOrbital {
424
424
  @label "Show Minimap"
425
425
  @description "Whether the canvas draws a minimap."
426
426
  @tier "presentation"
427
- scale : number = 1
428
- @label "Scale"
429
- @description "Canvas render scale."
430
- @tier "presentation"
431
427
  backgroundAsset : Asset = {}
432
428
  @label "Background Asset"
433
429
  @description "Game-shell background panel sprite (theme chrome)."
@@ -288,10 +288,6 @@ orbital WorldMapBoard2DOrbital {
288
288
  @label "Asset Manifest"
289
289
  @description "Terrain/unit/feature/effect sprite manifest."
290
290
  @tier "presentation"
291
- scale : number = 0.8
292
- @label "Scale"
293
- @description "Canvas render scale."
294
- @tier "presentation"
295
291
  region : string = "Overworld"
296
292
  @label "Region"
297
293
  @description "Region name shown in the HUD."