@almadar/std 16.196.0 → 16.198.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 (368) hide show
  1. package/behaviors/lolo/agent/atoms/std-agent-tool-call.lolo +2 -2
  2. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +2 -2
  3. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +3 -3
  4. package/behaviors/lolo/infra/atoms/std-audit-capture.lolo +4 -4
  5. package/behaviors/lolo/infra/atoms/std-cascade-on-delete.lolo +5 -5
  6. package/behaviors/lolo/infra/atoms/std-cooldown.lolo +1 -1
  7. package/behaviors/lolo/infra/atoms/std-game-clock.lolo +1 -1
  8. package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +3 -3
  9. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +30 -25
  10. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +2 -2
  11. package/behaviors/lolo/infra/atoms/std-reminder-scheduler.lolo +3 -3
  12. package/behaviors/lolo/ml/atoms/std-data-collector.lolo +3 -3
  13. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +6 -5
  14. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +11 -2
  15. package/behaviors/lolo/ml/atoms/std-ml-exact-check.lolo +8 -8
  16. package/behaviors/lolo/ml/atoms/std-ml-infer.lolo +12 -8
  17. package/behaviors/lolo/ml/atoms/std-ml-label-capture.lolo +6 -6
  18. package/behaviors/lolo/ml/atoms/std-ml-lookup.lolo +7 -7
  19. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +12 -3
  20. package/behaviors/lolo/ml/atoms/std-tokenizer.lolo +2 -2
  21. package/behaviors/lolo/ml/atoms/std-weight-validator.lolo +5 -4
  22. package/behaviors/lolo/ml/organisms/std-escalating-decision.lolo +33 -17
  23. package/behaviors/lolo/ml/organisms/std-knowledge-tracing.lolo +9 -6
  24. package/behaviors/lolo/ui/avl/atoms/ui-behavior-view.lolo +61 -1
  25. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +61 -1
  26. package/behaviors/lolo/ui/core/atoms/std-board.lolo +6 -4
  27. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +6 -4
  28. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +2 -0
  29. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +9 -0
  30. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +4 -2
  31. package/behaviors/lolo/ui/core/atoms/std-filter.lolo +5 -0
  32. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +4 -2
  33. package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +2 -0
  34. package/behaviors/lolo/ui/core/atoms/std-import.lolo +6 -5
  35. package/behaviors/lolo/ui/core/atoms/std-list.lolo +2 -0
  36. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +4 -4
  37. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +10 -10
  38. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +5 -5
  39. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +4 -4
  40. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +1 -1
  41. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +2 -0
  42. package/behaviors/lolo/ui/core/atoms/std-tag-strip.lolo +4 -0
  43. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +3 -3
  44. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +2 -0
  45. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +2 -2
  46. package/behaviors/lolo/ui/core/atoms/ui-avatar.lolo +3 -7
  47. package/behaviors/lolo/ui/core/atoms/ui-box.lolo +3 -5
  48. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +2 -4
  49. package/behaviors/lolo/ui/core/atoms/ui-card.lolo +1 -3
  50. package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +1 -3
  51. package/behaviors/lolo/ui/core/atoms/ui-conditional-wrapper.lolo +4 -4
  52. package/behaviors/lolo/ui/core/atoms/ui-flip-container.lolo +1 -3
  53. package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +2 -4
  54. package/behaviors/lolo/ui/core/atoms/ui-infinite-scroll-sentinel.lolo +2 -4
  55. package/behaviors/lolo/ui/core/atoms/ui-input.lolo +34 -8
  56. package/behaviors/lolo/ui/core/atoms/ui-overlay.lolo +1 -3
  57. package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +23 -2
  58. package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +23 -2
  59. package/behaviors/lolo/ui/core/atoms/ui-select.lolo +3 -9
  60. package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +2 -4
  61. package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +51 -14
  62. package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +2 -6
  63. package/behaviors/lolo/ui/core/atoms/ui-typewriter-text.lolo +1 -3
  64. package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +2 -4
  65. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +2 -6
  66. package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +8 -1
  67. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +3 -1
  68. package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +4 -8
  69. package/behaviors/lolo/ui/core/molecules/ui-carousel.lolo +2 -2
  70. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +1 -1
  71. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +1 -1
  72. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +2 -6
  73. package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +1 -1
  74. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +4 -5
  75. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +9 -17
  76. package/behaviors/lolo/ui/core/molecules/ui-doc-sidebar.lolo +1 -1
  77. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +1 -1
  78. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +1 -1
  79. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +1 -3
  80. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
  81. package/behaviors/lolo/ui/core/molecules/ui-empty-state.lolo +1 -3
  82. package/behaviors/lolo/ui/core/molecules/ui-error-state.lolo +1 -3
  83. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +1 -1
  84. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +57 -6
  85. package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +1 -3
  86. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +4 -8
  87. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +1 -1
  88. package/behaviors/lolo/ui/core/molecules/ui-form-section-header.lolo +1 -3
  89. package/behaviors/lolo/ui/core/molecules/ui-fx-overlay.lolo +1 -1
  90. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +6 -6
  91. package/behaviors/lolo/ui/core/molecules/ui-header.lolo +3 -9
  92. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +3 -7
  93. package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +35 -8
  94. package/behaviors/lolo/ui/core/molecules/ui-lightbox.lolo +1 -3
  95. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +2 -2
  96. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +1 -1
  97. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +2 -6
  98. package/behaviors/lolo/ui/core/molecules/ui-navigation.lolo +1 -1
  99. package/behaviors/lolo/ui/core/molecules/ui-notification.lolo +2 -6
  100. package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +21 -2
  101. package/behaviors/lolo/ui/core/molecules/ui-option-constraint-group.lolo +1 -1
  102. package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +4 -6
  103. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +2 -4
  104. package/behaviors/lolo/ui/core/molecules/ui-pull-to-refresh.lolo +2 -4
  105. package/behaviors/lolo/ui/core/molecules/ui-qr-scanner.lolo +3 -1
  106. package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +1 -3
  107. package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +2 -1
  108. package/behaviors/lolo/ui/core/molecules/ui-side-panel.lolo +1 -3
  109. package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +3 -7
  110. package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +1 -3
  111. package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +4 -2
  112. package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +20 -2
  113. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +3 -3
  114. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +7 -5
  115. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +2 -2
  116. package/behaviors/lolo/ui/core/molecules/ui-tag-input.lolo +6 -3
  117. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +9 -2
  118. package/behaviors/lolo/ui/core/molecules/ui-violation-alert.lolo +1 -3
  119. package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +18 -20
  120. package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +3 -9
  121. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +2 -2
  122. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +11 -5
  123. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +5 -5
  124. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +16 -12
  125. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +16 -12
  126. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +2 -2
  127. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +5 -1
  128. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +4 -6
  129. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +2 -1
  130. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +3 -9
  131. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +5 -8
  132. package/behaviors/lolo/ui/game/.hand-authored.json +1 -1
  133. package/behaviors/lolo/ui/game/atoms/std-fx-particles.lolo +1 -0
  134. package/behaviors/lolo/ui/game/atoms/std-mesh-asset-art.lolo +3 -3
  135. package/behaviors/lolo/ui/game/atoms/std-svg-asset-art.lolo +3 -3
  136. package/behaviors/lolo/ui/game/atoms/ui-action-palette.lolo +15 -2
  137. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +15 -2
  138. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +2 -4
  139. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +79 -10
  140. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +2 -6
  141. package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +2 -6
  142. package/behaviors/lolo/ui/game/atoms/ui-draw-fx-layer.lolo +4 -2
  143. package/behaviors/lolo/ui/game/atoms/ui-draw-group.lolo +1 -1
  144. package/behaviors/lolo/ui/game/atoms/ui-draw-shape-layer.lolo +13 -5
  145. package/behaviors/lolo/ui/game/atoms/ui-draw-shape.lolo +11 -3
  146. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite-layer.lolo +4 -3
  147. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +6 -1
  148. package/behaviors/lolo/ui/game/atoms/ui-draw-text-layer.lolo +3 -3
  149. package/behaviors/lolo/ui/game/atoms/ui-draw-text.lolo +1 -1
  150. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +2 -5
  151. package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +29 -3
  152. package/behaviors/lolo/ui/game/atoms/ui-state-graph.lolo +1 -1
  153. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +42 -3
  154. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +1 -1
  155. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +1 -1
  156. package/behaviors/lolo/ui/game/templates/ui-game-shell.lolo +2 -2
  157. package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +2 -2
  158. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +1 -1
  159. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +65 -3
  160. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +65 -3
  161. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +20 -0
  162. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +7 -0
  163. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +65 -3
  164. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +4 -4
  165. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +4 -4
  166. package/behaviors/registry/infra/atoms/std-approval-gate.orb +7 -7
  167. package/behaviors/registry/infra/atoms/std-audit-capture.orb +3 -3
  168. package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +3 -3
  169. package/behaviors/registry/infra/atoms/std-cooldown.orb +1 -2
  170. package/behaviors/registry/infra/atoms/std-game-clock.orb +1 -2
  171. package/behaviors/registry/infra/atoms/std-lifecycle.orb +2 -2
  172. package/behaviors/registry/infra/atoms/std-migration-job.orb +201 -29
  173. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1 -1
  174. package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +2 -2
  175. package/behaviors/registry/ml/atoms/std-data-collector.orb +4 -4
  176. package/behaviors/registry/ml/atoms/std-graph-builder.orb +20 -5
  177. package/behaviors/registry/ml/atoms/std-ml-classify.orb +50 -0
  178. package/behaviors/registry/ml/atoms/std-ml-exact-check.orb +13 -13
  179. package/behaviors/registry/ml/atoms/std-ml-infer.orb +106 -11
  180. package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +6 -6
  181. package/behaviors/registry/ml/atoms/std-ml-lookup.orb +11 -11
  182. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +94 -0
  183. package/behaviors/registry/ml/atoms/std-tokenizer.orb +2 -2
  184. package/behaviors/registry/ml/atoms/std-weight-validator.orb +22 -5
  185. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +263 -12
  186. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +67 -9
  187. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +337 -2
  188. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +337 -2
  189. package/behaviors/registry/ui/core/atoms/std-board.orb +16 -4
  190. package/behaviors/registry/ui/core/atoms/std-browse.orb +16 -1
  191. package/behaviors/registry/ui/core/atoms/std-calendar.orb +10 -0
  192. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +15 -0
  193. package/behaviors/registry/ui/core/atoms/std-event-log.orb +13 -2
  194. package/behaviors/registry/ui/core/atoms/std-filter.orb +19 -0
  195. package/behaviors/registry/ui/core/atoms/std-gallery.orb +11 -0
  196. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +8 -0
  197. package/behaviors/registry/ui/core/atoms/std-import.orb +90 -4
  198. package/behaviors/registry/ui/core/atoms/std-list.orb +9 -0
  199. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +8 -4
  200. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +14 -10
  201. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +20 -12
  202. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +6 -4
  203. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +5 -2
  204. package/behaviors/registry/ui/core/atoms/std-selection.orb +9 -0
  205. package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +16 -0
  206. package/behaviors/registry/ui/core/atoms/std-thread.orb +7 -4
  207. package/behaviors/registry/ui/core/atoms/std-tree.orb +9 -0
  208. package/behaviors/registry/ui/core/atoms/std-wizard.orb +4 -2
  209. package/behaviors/registry/ui/core/atoms/ui-avatar.orb +3 -26
  210. package/behaviors/registry/ui/core/atoms/ui-box.orb +9 -18
  211. package/behaviors/registry/ui/core/atoms/ui-button.orb +2 -14
  212. package/behaviors/registry/ui/core/atoms/ui-card.orb +1 -12
  213. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -12
  214. package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +4 -4
  215. package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -0
  216. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +1 -0
  217. package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -12
  218. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +2 -14
  219. package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +2 -14
  220. package/behaviors/registry/ui/core/atoms/ui-input.orb +78 -28
  221. package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -12
  222. package/behaviors/registry/ui/core/atoms/ui-radio.orb +67 -4
  223. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +63 -6
  224. package/behaviors/registry/ui/core/atoms/ui-select.orb +3 -36
  225. package/behaviors/registry/ui/core/atoms/ui-stack.orb +2 -14
  226. package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -0
  227. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +140 -45
  228. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +2 -24
  229. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -0
  230. package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -12
  231. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +2 -14
  232. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +2 -0
  233. package/behaviors/registry/ui/core/molecules/ui-alert.orb +2 -24
  234. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +3 -2
  235. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +23 -2
  236. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +9 -28
  237. package/behaviors/registry/ui/core/molecules/ui-carousel.orb +4 -4
  238. package/behaviors/registry/ui/core/molecules/ui-chart.orb +1 -1
  239. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +2 -1
  240. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +2 -24
  241. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +1 -4
  242. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +20 -16
  243. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +30 -60
  244. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +2 -0
  245. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -0
  246. package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +1 -1
  247. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +4 -2
  248. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +4 -0
  249. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +1 -1
  250. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -12
  251. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +5 -2
  252. package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +1 -12
  253. package/behaviors/registry/ui/core/molecules/ui-error-state.orb +1 -12
  254. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +2 -1
  255. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +185 -18
  256. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -12
  257. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +4 -27
  258. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +1 -1
  259. package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -12
  260. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +2 -0
  261. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +17 -10
  262. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +2 -0
  263. package/behaviors/registry/ui/core/molecules/ui-header.orb +4 -36
  264. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +3 -25
  265. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -0
  266. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +79 -28
  267. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +2 -12
  268. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -0
  269. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +2 -0
  270. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +1 -0
  271. package/behaviors/registry/ui/core/molecules/ui-menu.orb +2 -2
  272. package/behaviors/registry/ui/core/molecules/ui-meter.orb +1 -1
  273. package/behaviors/registry/ui/core/molecules/ui-modal.orb +2 -24
  274. package/behaviors/registry/ui/core/molecules/ui-navigation.orb +1 -1
  275. package/behaviors/registry/ui/core/molecules/ui-notification.orb +2 -24
  276. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +61 -6
  277. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +3 -2
  278. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +4 -15
  279. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +3 -13
  280. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +2 -0
  281. package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -0
  282. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +2 -0
  283. package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +1 -0
  284. package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +2 -14
  285. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +27 -4
  286. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -0
  287. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +3 -12
  288. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +4 -0
  289. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -0
  290. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +14 -2
  291. package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +1 -12
  292. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +4 -25
  293. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +3 -12
  294. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +28 -6
  295. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +60 -6
  296. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +3 -4
  297. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +37 -9
  298. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +3 -2
  299. package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +43 -6
  300. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +8 -6
  301. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +3 -0
  302. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +2 -12
  303. package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +1 -0
  304. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +31 -35
  305. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +6 -36
  306. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +1 -0
  307. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +12 -5
  308. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +56 -13
  309. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +15 -8
  310. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +107 -26
  311. package/behaviors/registry/ui/core/organisms/ui-form.orb +107 -26
  312. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +4 -3
  313. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +26 -2
  314. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +7 -18
  315. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -0
  316. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +12 -0
  317. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +3 -36
  318. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +11 -26
  319. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +14 -0
  320. package/behaviors/registry/ui/game/atoms/std-mesh-asset-art.orb +15 -3
  321. package/behaviors/registry/ui/game/atoms/std-svg-asset-art.orb +15 -3
  322. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +103 -2
  323. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +79 -1
  324. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +6 -14
  325. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +336 -32
  326. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +2 -24
  327. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +2 -24
  328. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +2 -0
  329. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +14 -2
  330. package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +2 -2
  331. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +78 -8
  332. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +31 -2
  333. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +21 -4
  334. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +14 -2
  335. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +14 -4
  336. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +7 -2
  337. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +3 -20
  338. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +199 -2
  339. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +5 -2
  340. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +247 -0
  341. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +11 -1
  342. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +10 -1
  343. package/behaviors/registry/ui/game/templates/ui-game-shell.orb +2 -2
  344. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +2 -2
  345. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1 -1
  346. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +2 -0
  347. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +1 -0
  348. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +254 -6
  349. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +254 -6
  350. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +53 -0
  351. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +17 -0
  352. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +254 -6
  353. package/dist/behaviors/exports-reader.js +1456 -293
  354. package/dist/behaviors/factory-signatures.js +5 -1
  355. package/dist/behaviors/functions/index.d.ts +155 -643
  356. package/dist/behaviors/functions/index.js +1456 -293
  357. package/dist/behaviors/index.d.ts +1 -1
  358. package/dist/behaviors/index.js +1458 -296
  359. package/dist/behaviors/query.js +1456 -293
  360. package/dist/behaviors-embeddings.hash.json +3 -3
  361. package/dist/behaviors-embeddings.json +17 -17
  362. package/dist/behaviors-registry.json +75 -37
  363. package/dist/index.d.ts +1 -1
  364. package/dist/index.js +1458 -296
  365. package/dist/knob-embeddings.hash.json +3 -3
  366. package/dist/knob-embeddings.json +1 -1
  367. package/dist/registry/factory-signatures.json +1 -1
  368. package/package.json +2 -2
@@ -14,7 +14,7 @@ orbital ActionTileOrbital {
14
14
  description : string
15
15
  iconEmoji : string
16
16
  iconUrl : ActionTileActionIconUrl
17
- stateMachine : object
17
+ stateMachine : ActionTileActionStateMachine
18
18
  }
19
19
  type ActionTileActionIconUrl = {
20
20
  url : asset!
@@ -30,6 +30,19 @@ orbital ActionTileOrbital {
30
30
  name : string
31
31
  thumbnailUrl : string
32
32
  }
33
+ type ActionTileActionStateMachine = {
34
+ name : string!
35
+ states : [string]!
36
+ currentState : string!
37
+ transitions : [ActionTileActionStateMachineTransitionsItem]!
38
+ description : string
39
+ }
40
+ type ActionTileActionStateMachineTransitionsItem = {
41
+ from : string!
42
+ to : string!
43
+ event : string!
44
+ guardHint : string
45
+ }
33
46
  type ActionTileCategoryColorsValue = {
34
47
  bg : string!
35
48
  border : string!
@@ -110,7 +123,7 @@ orbital ActionTileOrbital {
110
123
  @label "Selected Ids"
111
124
  @description "Currently selected item IDs"
112
125
  @tier "presentation"
113
- action : ActionTileAction = { id: "Id", name: "Name", category: "Category", description: "Description", iconEmoji: "Icon Emoji", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" } }
126
+ action : ActionTileAction = { id: "Id", name: "Name", category: "Category", description: "Description", iconEmoji: "Icon Emoji", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" }, stateMachine: { name: "Name", states: ["Item", "Item 2"], currentState: "Current State", transitions: [{ from: "From", to: "To", event: "Event", guardHint: "Guard Hint" }, { from: "From 2", to: "To 2", event: "Event 2", guardHint: "Guard Hint 2" }], description: "Description" } }
114
127
  @label "Action"
115
128
  @description "The action data"
116
129
  @tier "presentation"
@@ -71,9 +71,7 @@ orbital Canvas2dOrbital {
71
71
  }
72
72
  @description "Emits UI:{tileHoverEvent} with the unprojected scene { x, y } on hover."
73
73
  @tier "essential"
74
- @config.tileLeaveEvent -> external {
75
- id : string
76
- }
74
+ @config.tileLeaveEvent -> external { }
77
75
  @description "Emits UI:{tileLeaveEvent} with {} on pointer leave."
78
76
  @tier "essential"
79
77
  }
@@ -95,7 +93,7 @@ orbital Canvas2dOrbital {
95
93
  @label "Projection"
96
94
  @description "--- Projection ---"
97
95
  @tier "presentation"
98
- drawables : [object] = []
96
+ drawables : [node] = []
99
97
  @label "Drawables"
100
98
  @description "--- Scene ---"
101
99
  @tier "presentation"
@@ -1,6 +1,69 @@
1
1
  app ui-canvas "1.0.0"
2
2
  "Canvas — UI factory (1:1 with the @almadar/ui canvas pattern)."
3
3
  orbital CanvasOrbital {
4
+ type CanvasCamera = {
5
+ pos : CanvasCameraPos
6
+ target : CanvasCameraTarget
7
+ zoom : number
8
+ fov : number
9
+ mode : "isometric" | "perspective" | "top-down" | "front" | "follow" | "chase"
10
+ azimuth : number
11
+ elevation : number
12
+ }
13
+ type CanvasCameraPos = {
14
+ x : number!
15
+ y : number!
16
+ z : number
17
+ }
18
+ type CanvasCameraTarget = {
19
+ x : number!
20
+ y : number!
21
+ z : number
22
+ }
23
+ type CanvasLighting = {
24
+ ambient : CanvasLightingAmbient
25
+ directional : CanvasLightingDirectional
26
+ hemisphere : CanvasLightingHemisphere
27
+ points : [CanvasLightingPointsItem]
28
+ environment : "room" | "none"
29
+ toneMapping : "aces" | "none"
30
+ }
31
+ type CanvasLightingAmbient = {
32
+ intensity : number
33
+ color : string
34
+ position : [number]
35
+ }
36
+ type CanvasLightingDirectional = {
37
+ intensity : number
38
+ color : string
39
+ position : [number]
40
+ }
41
+ type CanvasLightingHemisphere = {
42
+ intensity : number
43
+ color : string
44
+ groundColor : string
45
+ }
46
+ type CanvasLightingPointsItem = {
47
+ intensity : number
48
+ color : string
49
+ position : [number]!
50
+ distance : number
51
+ decay : number
52
+ }
53
+ type CanvasPost = {
54
+ bloom : CanvasPostBloom
55
+ vignette : CanvasPostVignette
56
+ }
57
+ type CanvasPostBloom = {
58
+ intensity : number
59
+ threshold : number
60
+ smoothing : number
61
+ }
62
+ type CanvasPostVignette = {
63
+ offset : number
64
+ darkness : number
65
+ }
66
+
4
67
  entity CanvasItem [runtime] {
5
68
  id : string!
6
69
  }
@@ -47,23 +110,29 @@ orbital CanvasOrbital {
47
110
 
48
111
  emits {
49
112
  @config.tileClickEvent -> external {
50
- _payload : object
113
+ x : number
114
+ y : number
115
+ tileId : string
116
+ z : number
51
117
  }
52
118
  @description "--- Shared interaction (LOLO-owned). The painter emitted at runtime depends on"
53
119
  @tier "essential"
54
120
  @config.unitClickEvent -> external {
55
- _payload : object
121
+ unitId : string
122
+ x : number
123
+ z : number
56
124
  }
57
125
  @description "unitClickEvent prop"
58
126
  @tier "essential"
59
127
  @config.tileHoverEvent -> external {
60
- _payload : object
128
+ x : number
129
+ y : number
130
+ tileId : string
131
+ z : number
61
132
  }
62
133
  @description "tileHoverEvent prop"
63
134
  @tier "essential"
64
- @config.tileLeaveEvent -> external {
65
- id : string
66
- }
135
+ @config.tileLeaveEvent -> external { }
67
136
  @description "tileLeaveEvent prop"
68
137
  @tier "essential"
69
138
  @config.featureClickEvent -> external {
@@ -81,11 +150,11 @@ orbital CanvasOrbital {
81
150
  @label "Mode"
82
151
  @description "Painter: 2D sprite/shape/text raster, or 3D mesh. Default '2d'."
83
152
  @tier "presentation"
84
- drawables : [object] = []
153
+ drawables : [node] = []
85
154
  @label "Drawables"
86
155
  @description "Neutral drawable descriptors — the `draw-*` children. Routed to the host's painter."
87
156
  @tier "presentation"
88
- camera : json = {}
157
+ camera : CanvasCamera
89
158
  @label "Camera"
90
159
  @description "Neutral camera pose. Mapped to the underlying host's framing + zoom."
91
160
  @tier "presentation"
@@ -157,11 +226,11 @@ orbital CanvasOrbital {
157
226
  @label "Fog Of War"
158
227
  @description "fogOfWar prop"
159
228
  @tier "presentation"
160
- lighting : object = {}
229
+ lighting : CanvasLighting
161
230
  @label "Lighting"
162
231
  @description "3D scene light rig as data — ambient/directional/hemisphere/point lights + optional 'room' environment for PBR reflections. Omitted → the standard fixed rig."
163
232
  @tier "presentation"
164
- post : object = {}
233
+ post : CanvasPost
165
234
  @label "Post"
166
235
  @description "3D post-processing stack — bloom (emissive glow / neon) and vignette. Omitted → no post pass."
167
236
  @tier "presentation"
@@ -41,14 +41,10 @@ orbital ChoiceButtonOrbital {
41
41
  }
42
42
 
43
43
  emits {
44
- @config.onClick -> external {
45
- id : string
46
- }
44
+ @config.onClick -> external { }
47
45
  @description "Click handler"
48
46
  @tier "essential"
49
- @config.action -> external {
50
- id : string
51
- }
47
+ @config.action -> external { }
52
48
  @description "Declarative event name — emits UI:{action} via eventBus on click"
53
49
  @tier "essential"
54
50
  }
@@ -44,14 +44,10 @@ orbital ControlButtonOrbital {
44
44
  }
45
45
 
46
46
  emits {
47
- @config.onPress -> external {
48
- id : string
49
- }
47
+ @config.onPress -> external { }
50
48
  @description "Called when button is pressed"
51
49
  @tier "essential"
52
- @config.onRelease -> external {
53
- id : string
54
- }
50
+ @config.onRelease -> external { }
55
51
  @description "Called when button is released"
56
52
  @tier "essential"
57
53
  }
@@ -20,6 +20,7 @@ orbital DrawFxLayerOrbital {
20
20
  vy : number
21
21
  vz : number
22
22
  particleCount : number
23
+ animation : string
23
24
  }
24
25
  type DrawFxLayerItemsItemPosition = {
25
26
  x : number!
@@ -41,6 +42,7 @@ orbital DrawFxLayerOrbital {
41
42
  space : "world" | "screen"
42
43
  effect : "confetti" | "flash" | "shake" | "sparkle" | "float-text" | "streak-glow"
43
44
  particleCount : number
45
+ animation : string
44
46
  }
45
47
  type DrawFxLayerSpritesValue = {
46
48
  url : asset!
@@ -78,7 +80,7 @@ orbital DrawFxLayerOrbital {
78
80
  }
79
81
 
80
82
  config {
81
- items : [DrawFxLayerItemsItem] = [{ id: "e1", x: 2, y: 2, type: "spawn", message: "Unit spawned" }, { id: "e2", x: 3, y: 1, type: "effect", message: "Attack landed" }]
83
+ items : [DrawFxLayerItemsItem] = [{ id: "e1", x: 2, y: 2, type: "spawn", message: "Unit spawned", ttl: 1 }, { id: "e2", x: 3, y: 1, type: "effect", message: "Attack landed", ttl: 2 }]
82
84
  @label "Items"
83
85
  @description "The live fx entries — the mechanic's `@entity.fx` list passed whole; `space: 'screen'` entries are skipped (the overlay owns those)."
84
86
  @tier "presentation"
@@ -86,7 +88,7 @@ orbital DrawFxLayerOrbital {
86
88
  @label "Presets"
87
89
  @description "Consumer-declared effect vocabulary — one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst."
88
90
  @tier "presentation"
89
- art : Map string Map string [object] = { item: {} }
91
+ art : Map string Map string [node] = { item: {} }
90
92
  @label "Art"
91
93
  @description "Vector art per fx type (an asset-art map: type → anim-state → drawables); a type's `idle` state wins over sprites/procedural."
92
94
  @tier "presentation"
@@ -87,7 +87,7 @@ orbital DrawGroupOrbital {
87
87
  @label "Clip"
88
88
  @description "Clip the group's items to an SVG path (`d` syntax) in world units relative to the group origin — masked reveals, meters, portraits."
89
89
  @tier "presentation"
90
- items : [object] = []
90
+ items : [node] = []
91
91
  @label "Items"
92
92
  @description "The grouped drawables, painted through the normal dispatch."
93
93
  @tier "presentation"
@@ -2,10 +2,10 @@ app ui-draw-shape-layer "1.0.0"
2
2
  "DrawShapeLayer — UI factory (1:1 with the @almadar/ui draw-shape-layer pattern)."
3
3
  orbital DrawShapeLayerOrbital {
4
4
  type DrawShapeLayerItemsItem = {
5
- type : json!
5
+ type : "draw-shape"!
6
6
  shape : "cell" | "rect" | "ellipse" | "poly" | "path"!
7
7
  position : DrawShapeLayerItemsItemPosition!
8
- anchor : object
8
+ anchor : "top-left" | "ground" | "center"
9
9
  width : number
10
10
  height : number
11
11
  radiusX : number
@@ -46,7 +46,7 @@ orbital DrawShapeLayerOrbital {
46
46
  center : DrawShapeLayerItemsItemGradientCenter
47
47
  radius : number
48
48
  angle : number
49
- stops : [object]!
49
+ stops : [DrawShapeLayerItemsItemGradientStopsItem]!
50
50
  }
51
51
  type DrawShapeLayerItemsItemGradientFrom = {
52
52
  x : number!
@@ -60,6 +60,10 @@ orbital DrawShapeLayerOrbital {
60
60
  x : number!
61
61
  y : number!
62
62
  }
63
+ type DrawShapeLayerItemsItemGradientStopsItem = {
64
+ offset : number!
65
+ color : string!
66
+ }
63
67
  type DrawShapeLayerItemsItemFillPattern = {
64
68
  kind : "noise" | "image"!
65
69
  url : string
@@ -74,7 +78,7 @@ orbital DrawShapeLayerOrbital {
74
78
  center : DrawShapeLayerItemsItemStrokeGradientCenter
75
79
  radius : number
76
80
  angle : number
77
- stops : [object]!
81
+ stops : [DrawShapeLayerItemsItemStrokeGradientStopsItem]!
78
82
  }
79
83
  type DrawShapeLayerItemsItemStrokeGradientFrom = {
80
84
  x : number!
@@ -88,6 +92,10 @@ orbital DrawShapeLayerOrbital {
88
92
  x : number!
89
93
  y : number!
90
94
  }
95
+ type DrawShapeLayerItemsItemStrokeGradientStopsItem = {
96
+ offset : number!
97
+ color : string!
98
+ }
91
99
  type DrawShapeLayerItemsItemPivot = {
92
100
  x : number!
93
101
  y : number!
@@ -139,7 +147,7 @@ orbital DrawShapeLayerOrbital {
139
147
  }
140
148
 
141
149
  config {
142
- items : [DrawShapeLayerItemsItem] = [{ type: "Type", shape: cell, position: { x: 1, y: 1, z: 1 }, width: 1, height: 1, radiusX: 1, radiusY: 1, offsetX: 1, offsetY: 1, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D", fill: "Fill", gradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [] }, fillPattern: { kind: noise, url: "Url", scale: 1, alpha: 1, color: "Color" }, stroke: "Stroke", strokeWidth: 1, strokeGradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 1, blendMode: "source-over", blur: 1, rotate: 1, pivot: { x: 1, y: 1 }, shadow: { color: "Color", blur: 1 }, animation: { durationMs: 1, loop: false, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 1 }, { type: "Type 2", shape: rect, position: { x: 2, y: 2, z: 2 }, width: 2, height: 2, radiusX: 2, radiusY: 2, offsetX: 2, offsetY: 2, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D 2", fill: "Fill 2", gradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [] }, fillPattern: { kind: image, url: "Url 2", scale: 2, alpha: 2, color: "Color 2" }, stroke: "Stroke 2", strokeWidth: 2, strokeGradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 2, blendMode: lighter, blur: 2, rotate: 2, pivot: { x: 2, y: 2 }, shadow: { color: "Color 2", blur: 2 }, animation: { durationMs: 2, loop: true, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 2 }]
150
+ items : [DrawShapeLayerItemsItem] = [{ type: "draw-shape", shape: cell, position: { x: 1, y: 1, z: 1 }, anchor: "top-left", width: 1, height: 1, radiusX: 1, radiusY: 1, offsetX: 1, offsetY: 1, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D", fill: "Fill", gradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [{ offset: 1, color: "Color" }, { offset: 2, color: "Color 2" }] }, fillPattern: { kind: noise, url: "Url", scale: 1, alpha: 1, color: "Color" }, stroke: "Stroke", strokeWidth: 1, strokeGradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [{ offset: 1, color: "Color" }, { offset: 2, color: "Color 2" }] }, strokeDash: [1, 2], strokeDashOffset: 1, blendMode: "source-over", blur: 1, rotate: 1, pivot: { x: 1, y: 1 }, shadow: { color: "Color", blur: 1 }, animation: { durationMs: 1, loop: false, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 1 }, { type: "draw-shape", shape: rect, position: { x: 2, y: 2, z: 2 }, anchor: ground, width: 2, height: 2, radiusX: 2, radiusY: 2, offsetX: 2, offsetY: 2, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D 2", fill: "Fill 2", gradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [{ offset: 1, color: "Color" }, { offset: 2, color: "Color 2" }] }, fillPattern: { kind: image, url: "Url 2", scale: 2, alpha: 2, color: "Color 2" }, stroke: "Stroke 2", strokeWidth: 2, strokeGradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [{ offset: 1, color: "Color" }, { offset: 2, color: "Color 2" }] }, strokeDash: [1, 2], strokeDashOffset: 2, blendMode: lighter, blur: 2, rotate: 2, pivot: { x: 2, y: 2 }, shadow: { color: "Color 2", blur: 2 }, animation: { durationMs: 2, loop: true, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 2 }]
143
151
  @label "Items"
144
152
  @description "items prop"
145
153
  @tier "presentation"
@@ -17,7 +17,7 @@ orbital DrawShapeOrbital {
17
17
  center : DrawShapeGradientCenter
18
18
  radius : number
19
19
  angle : number
20
- stops : [object]!
20
+ stops : [DrawShapeGradientStopsItem]!
21
21
  }
22
22
  type DrawShapeGradientFrom = {
23
23
  x : number!
@@ -31,6 +31,10 @@ orbital DrawShapeOrbital {
31
31
  x : number!
32
32
  y : number!
33
33
  }
34
+ type DrawShapeGradientStopsItem = {
35
+ offset : number!
36
+ color : string!
37
+ }
34
38
  type DrawShapeFillPattern = {
35
39
  kind : "noise" | "image"!
36
40
  url : string
@@ -45,7 +49,7 @@ orbital DrawShapeOrbital {
45
49
  center : DrawShapeStrokeGradientCenter
46
50
  radius : number
47
51
  angle : number
48
- stops : [object]!
52
+ stops : [DrawShapeStrokeGradientStopsItem]!
49
53
  }
50
54
  type DrawShapeStrokeGradientFrom = {
51
55
  x : number!
@@ -59,6 +63,10 @@ orbital DrawShapeOrbital {
59
63
  x : number!
60
64
  y : number!
61
65
  }
66
+ type DrawShapeStrokeGradientStopsItem = {
67
+ offset : number!
68
+ color : string!
69
+ }
62
70
  type DrawShapePivot = {
63
71
  x : number!
64
72
  y : number!
@@ -143,7 +151,7 @@ orbital DrawShapeOrbital {
143
151
  @label "Position"
144
152
  @description "Logical scene position; the projector maps it to pixels / world."
145
153
  @tier "presentation"
146
- anchor : object = {}
154
+ anchor : "top-left" | "ground" | "center" = "top-left"
147
155
  @label "Anchor"
148
156
  @description "How the shape aligns to its projected position. Default varies by `shape`."
149
157
  @tier "presentation"
@@ -2,15 +2,16 @@ app ui-draw-sprite-layer "1.0.0"
2
2
  "DrawSpriteLayer — UI factory (1:1 with the @almadar/ui draw-sprite-layer pattern)."
3
3
  orbital DrawSpriteLayerOrbital {
4
4
  type DrawSpriteLayerItemsItem = {
5
- type : json!
5
+ type : "draw-sprite"!
6
6
  position : DrawSpriteLayerItemsItemPosition!
7
7
  asset : DrawSpriteLayerItemsItemAsset!
8
- anchor : object
8
+ anchor : "top-left" | "ground" | "center"
9
9
  width : number
10
10
  height : number
11
11
  frame : DrawSpriteLayerItemsItemFrame
12
12
  animation : string
13
13
  loop : boolean
14
+ clockMs : number
14
15
  flipX : boolean
15
16
  rotation : number
16
17
  opacity : number
@@ -62,7 +63,7 @@ orbital DrawSpriteLayerOrbital {
62
63
  }
63
64
 
64
65
  config {
65
- items : [DrawSpriteLayerItemsItem] = [{ type: "Type", position: { x: 1, y: 1, z: 1 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 1, height: 1, frame: { x: 1, y: 1, w: 1, h: 1 }, animation: "Animation", loop: false, flipX: false, rotation: 1, opacity: 1, shadow: { color: "Color", blur: 1 } }, { type: "Type 2", position: { x: 2, y: 2, z: 2 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 2, height: 2, frame: { x: 2, y: 2, w: 2, h: 2 }, animation: "Animation 2", loop: true, flipX: true, rotation: 2, opacity: 2, shadow: { color: "Color 2", blur: 2 } }]
66
+ items : [DrawSpriteLayerItemsItem] = [{ type: "draw-sprite", position: { x: 1, y: 1, z: 1 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, anchor: "top-left", width: 1, height: 1, frame: { x: 1, y: 1, w: 1, h: 1 }, animation: "Animation", loop: false, clockMs: 1, flipX: false, rotation: 1, opacity: 1, shadow: { color: "Color", blur: 1 } }, { type: "draw-sprite", position: { x: 2, y: 2, z: 2 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, anchor: ground, width: 2, height: 2, frame: { x: 2, y: 2, w: 2, h: 2 }, animation: "Animation 2", loop: true, clockMs: 2, flipX: true, rotation: 2, opacity: 2, shadow: { color: "Color 2", blur: 2 } }]
66
67
  @label "Items"
67
68
  @description "Sprites painted in array order; z-ordering is the caller's responsibility."
68
69
  @tier "presentation"
@@ -49,6 +49,7 @@ orbital DrawSpriteOrbital {
49
49
  frame: @config.frame
50
50
  animation: @config.animation
51
51
  loop: @config.loop
52
+ clockMs: @config.clockMs
52
53
  flipX: @config.flipX
53
54
  rotation: @config.rotation
54
55
  opacity: @config.opacity
@@ -66,7 +67,7 @@ orbital DrawSpriteOrbital {
66
67
  @label "Asset"
67
68
  @description "The image / atlas reference to blit."
68
69
  @tier "presentation"
69
- anchor : object = {}
70
+ anchor : "top-left" | "ground" | "center" = "top-left"
70
71
  @label "Anchor"
71
72
  @description "How the sprite aligns to its projected position. Default `'top-left'`."
72
73
  @tier "presentation"
@@ -90,6 +91,10 @@ orbital DrawSpriteOrbital {
90
91
  @label "Loop"
91
92
  @description "Override the sheet row's loop flag. The paint clock is wall-time, so one-shot rows hold their final frame — preview pages set `true` to cycle attack/hit/death continuously."
92
93
  @tier "presentation"
94
+ clockMs : number
95
+ @label "Clock Ms"
96
+ @description "Animation clock override in ms (e.g. an fx entry's age since spawn). Omitted → the host paint clock; one-shot rows anchored to wall-time would otherwise sit on their final frame."
97
+ @tier "presentation"
93
98
  flipX : boolean
94
99
  @label "Flip X"
95
100
  @description "Mirror horizontally (facing)."
@@ -2,10 +2,10 @@ app ui-draw-text-layer "1.0.0"
2
2
  "DrawTextLayer — UI factory (1:1 with the @almadar/ui draw-text-layer pattern)."
3
3
  orbital DrawTextLayerOrbital {
4
4
  type DrawTextLayerItemsItem = {
5
- type : json!
5
+ type : "draw-text"!
6
6
  text : string!
7
7
  position : DrawTextLayerItemsItemPosition!
8
- anchor : object
8
+ anchor : "top-left" | "ground" | "center"
9
9
  offsetX : number
10
10
  offsetY : number
11
11
  color : string!
@@ -36,7 +36,7 @@ orbital DrawTextLayerOrbital {
36
36
  }
37
37
 
38
38
  config {
39
- items : [DrawTextLayerItemsItem] = [{ type: "Type", text: "Text", position: { x: 1, y: 1, z: 1 }, offsetX: 1, offsetY: 1, color: "Color", font: "Font", align: center, baseline: alphabetic, opacity: 1 }, { type: "Type 2", text: "Text 2", position: { x: 2, y: 2, z: 2 }, offsetX: 2, offsetY: 2, color: "Color 2", font: "Font 2", align: end, baseline: bottom, opacity: 2 }]
39
+ items : [DrawTextLayerItemsItem] = [{ type: "draw-text", text: "Text", position: { x: 1, y: 1, z: 1 }, anchor: "top-left", offsetX: 1, offsetY: 1, color: "Color", font: "Font", align: center, baseline: alphabetic, opacity: 1 }, { type: "draw-text", text: "Text 2", position: { x: 2, y: 2, z: 2 }, anchor: ground, offsetX: 2, offsetY: 2, color: "Color 2", font: "Font 2", align: end, baseline: bottom, opacity: 2 }]
40
40
  @label "Items"
41
41
  @description "items prop"
42
42
  @tier "presentation"
@@ -40,7 +40,7 @@ orbital DrawTextOrbital {
40
40
  @label "Position"
41
41
  @description "Logical scene position; the projector maps it to pixels / world."
42
42
  @tier "presentation"
43
- anchor : object = {}
43
+ anchor : "top-left" | "ground" | "center" = "top-left"
44
44
  @label "Anchor"
45
45
  @description "anchor prop"
46
46
  @tier "presentation"
@@ -4,22 +4,20 @@ orbital GameMenuOrbital {
4
4
  type GameMenuOptionsItem = {
5
5
  id : string
6
6
  label : string!
7
- event : string
7
+ event : event
8
8
  navigatesTo : string
9
9
  variant : "primary" | "secondary" | "ghost"
10
10
  disabled : boolean
11
11
  subLabel : string
12
- action : string
13
12
  }
14
13
  type GameMenuMenuItemsItem = {
15
14
  id : string
16
15
  label : string!
17
- event : string
16
+ event : event
18
17
  navigatesTo : string
19
18
  variant : "primary" | "secondary" | "ghost"
20
19
  disabled : boolean
21
20
  subLabel : string
22
- action : string
23
21
  }
24
22
  type GameMenuLogo = {
25
23
  url : asset!
@@ -43,7 +41,6 @@ orbital GameMenuOrbital {
43
41
  variant : "primary" | "secondary" | "ghost"
44
42
  disabled : boolean
45
43
  subLabel : string
46
- action : string
47
44
  }
48
45
 
49
46
  entity GameMenuItem [runtime] {
@@ -8,7 +8,7 @@ orbital SequenceBarOrbital {
8
8
  description : string
9
9
  iconEmoji : string
10
10
  iconUrl : SequenceBarSlotsItemIconUrl
11
- stateMachine : object
11
+ stateMachine : SequenceBarSlotsItemStateMachine
12
12
  }
13
13
  type SequenceBarSlotsItemIconUrl = {
14
14
  url : asset!
@@ -24,6 +24,19 @@ orbital SequenceBarOrbital {
24
24
  name : string
25
25
  thumbnailUrl : string
26
26
  }
27
+ type SequenceBarSlotsItemStateMachine = {
28
+ name : string!
29
+ states : [string]!
30
+ currentState : string!
31
+ transitions : [SequenceBarSlotsItemStateMachineTransitionsItem]!
32
+ description : string
33
+ }
34
+ type SequenceBarSlotsItemStateMachineTransitionsItem = {
35
+ from : string!
36
+ to : string!
37
+ event : string!
38
+ guardHint : string
39
+ }
27
40
  type SequenceBarCategoryColorsValue = {
28
41
  bg : string!
29
42
  border : string!
@@ -35,7 +48,7 @@ orbital SequenceBarOrbital {
35
48
  description : string
36
49
  iconEmoji : string
37
50
  iconUrl : SequenceBarSLOTDROPItemIconUrl
38
- stateMachine : object
51
+ stateMachine : SequenceBarSLOTDROPItemStateMachine
39
52
  }
40
53
  type SequenceBarSLOTDROPItemIconUrl = {
41
54
  url : asset!
@@ -51,6 +64,19 @@ orbital SequenceBarOrbital {
51
64
  name : string
52
65
  thumbnailUrl : string
53
66
  }
67
+ type SequenceBarSLOTDROPItemStateMachine = {
68
+ name : string!
69
+ states : [string]!
70
+ currentState : string!
71
+ transitions : [SequenceBarSLOTDROPItemStateMachineTransitionsItem]!
72
+ description : string
73
+ }
74
+ type SequenceBarSLOTDROPItemStateMachineTransitionsItem = {
75
+ from : string!
76
+ to : string!
77
+ event : string!
78
+ guardHint : string
79
+ }
54
80
 
55
81
  entity SequenceBarItem [runtime] {
56
82
  id : string!
@@ -96,7 +122,7 @@ orbital SequenceBarOrbital {
96
122
  }
97
123
 
98
124
  config {
99
- slots : [SequenceBarSlotsItem] = [{ id: "Id", name: "Name", category: "Category", description: "Description", iconEmoji: "Icon Emoji", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" } }, { id: "Id 2", name: "Name 2", category: "Category 2", description: "Description 2", iconEmoji: "Icon Emoji 2", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" } }]
125
+ slots : [SequenceBarSlotsItem] = [{ id: "Id", name: "Name", category: "Category", description: "Description", iconEmoji: "Icon Emoji", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" }, stateMachine: { name: "Name", states: ["Item", "Item 2"], currentState: "Current State", transitions: [{ from: "From", to: "To", event: "Event", guardHint: "Guard Hint" }, { from: "From 2", to: "To 2", event: "Event 2", guardHint: "Guard Hint 2" }], description: "Description" } }, { id: "Id 2", name: "Name 2", category: "Category 2", description: "Description 2", iconEmoji: "Icon Emoji 2", iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-battle-board/default/ui/star.png", role: "ui", category: "iconUrl", animations: ["static"], style: "pixel", dimension: "2d", aspect: "1:1", name: "iconUrl", thumbnailUrl: "" }, stateMachine: { name: "Name 2", states: ["Item", "Item 2"], currentState: "Current State 2", transitions: [{ from: "From", to: "To", event: "Event", guardHint: "Guard Hint" }, { from: "From 2", to: "To 2", event: "Event 2", guardHint: "Guard Hint 2" }], description: "Description 2" } }]
100
126
  @label "Slots"
101
127
  @description "The current sequence (sparse — undefined means empty slot)"
102
128
  @tier "presentation"
@@ -34,7 +34,7 @@ orbital StateGraphOrbital {
34
34
 
35
35
  emits {
36
36
  @config.nodeClickEvent -> external {
37
- id : string
37
+ stateId : string!
38
38
  }
39
39
  @description "Emits UI:{nodeClickEvent} with { stateId } when a node is clicked."
40
40
  @tier "essential"