@almadar/std 16.173.0 → 16.175.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 (220) hide show
  1. package/behaviors/lolo/infra/atoms/std-cross-reference.lolo +2 -4
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +5 -9
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +8 -1
  4. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +2 -2
  5. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +3 -7
  6. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -1
  7. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +1 -1
  8. package/behaviors/lolo/ui/core/atoms/std-list.lolo +3 -3
  9. package/behaviors/lolo/ui/core/atoms/std-modal.lolo +2 -2
  10. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +2 -4
  11. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +5 -13
  12. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +3 -7
  13. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +1 -1
  14. package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +2 -2
  15. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +2 -4
  16. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +1 -1
  17. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +2 -2
  18. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +2 -2
  19. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -7
  20. package/behaviors/lolo/ui/core/atoms/ui-atlas-image.lolo +1 -1
  21. package/behaviors/lolo/ui/core/atoms/ui-atlas-panel.lolo +1 -1
  22. package/behaviors/lolo/ui/core/atoms/ui-center.lolo +1 -1
  23. package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +1 -1
  24. package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +1 -1
  25. package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +1 -1
  26. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +1 -1
  27. package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +1 -1
  28. package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +1 -1
  29. package/behaviors/lolo/ui/core/molecules/ui-form-layout.lolo +1 -1
  30. package/behaviors/lolo/ui/core/molecules/ui-grid.lolo +1 -1
  31. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +4 -9
  32. package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +1 -1
  33. package/behaviors/lolo/ui/core/organisms/ui-dashboard-grid.lolo +1 -1
  34. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +1 -1
  35. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +1 -1
  36. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +1 -1
  37. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +1 -1
  38. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +9 -3
  39. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +9 -3
  40. package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +1 -1
  41. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +1 -1
  42. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +7 -1
  43. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +1 -1
  44. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +1 -1
  45. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +1 -1
  46. package/behaviors/lolo/ui/game/atoms/ui-draw-shape-layer.lolo +41 -9
  47. package/behaviors/lolo/ui/game/atoms/ui-draw-shape.lolo +40 -8
  48. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite-layer.lolo +13 -3
  49. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +12 -2
  50. package/behaviors/lolo/ui/game/atoms/ui-draw-text-layer.lolo +3 -3
  51. package/behaviors/lolo/ui/game/atoms/ui-draw-text.lolo +2 -2
  52. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +32 -2
  53. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +133 -23
  54. package/behaviors/lolo/ui/learning/atoms/std-learn-compare.lolo +397 -0
  55. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +537 -0
  56. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +428 -0
  57. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +520 -0
  58. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +419 -0
  59. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +591 -0
  60. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +425 -0
  61. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +398 -0
  62. package/behaviors/lolo/ui/learning/atoms/std-learn-measure.lolo +325 -0
  63. package/behaviors/lolo/ui/learning/atoms/std-learn-perturb.lolo +494 -0
  64. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +408 -0
  65. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +805 -0
  66. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +307 -0
  67. package/behaviors/lolo/ui/learning/atoms/std-learn-sim-3d.lolo +318 -0
  68. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +336 -0
  69. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +409 -0
  70. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +186 -0
  71. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +522 -0
  72. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +192 -0
  73. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +111 -2
  74. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +193 -5
  75. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +173 -5
  76. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +48 -1
  77. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +141 -1
  78. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +242 -5
  79. package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +1 -1
  80. package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +1 -1
  81. package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +1 -1
  82. package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +1 -1
  83. package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +1 -1
  84. package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +1 -1
  85. package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +1 -1
  86. package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +1 -1
  87. package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +1 -1
  88. package/behaviors/registry/agent/atoms/std-agent-session.orb +22 -1
  89. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +38 -2
  90. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +38 -2
  91. package/behaviors/registry/agent/organisms/std-agent-rabit.orb +23 -1
  92. package/behaviors/registry/infra/atoms/std-approval-gate.orb +8 -16
  93. package/behaviors/registry/infra/atoms/std-cache-aside.orb +31 -62
  94. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +16 -32
  95. package/behaviors/registry/infra/atoms/std-cross-reference.orb +32 -4
  96. package/behaviors/registry/infra/atoms/std-data-erasure.orb +8 -16
  97. package/behaviors/registry/infra/atoms/std-mod-queue.orb +8 -16
  98. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +14 -28
  99. package/behaviors/registry/infra/atoms/std-row-access-control.orb +30 -2
  100. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -2
  101. package/behaviors/registry/ui/core/atoms/std-board.orb +19 -5
  102. package/behaviors/registry/ui/core/atoms/std-browse.orb +29 -7
  103. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -2
  104. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +3 -5
  105. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +3 -6
  106. package/behaviors/registry/ui/core/atoms/std-event-log.orb +17 -3
  107. package/behaviors/registry/ui/core/atoms/std-export.orb +2 -4
  108. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
  109. package/behaviors/registry/ui/core/atoms/std-gallery.orb +9 -18
  110. package/behaviors/registry/ui/core/atoms/std-graphs.orb +15 -1
  111. package/behaviors/registry/ui/core/atoms/std-import.orb +2 -4
  112. package/behaviors/registry/ui/core/atoms/std-list.orb +4 -6
  113. package/behaviors/registry/ui/core/atoms/std-modal.orb +2 -2
  114. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +16 -2
  115. package/behaviors/registry/ui/core/atoms/std-pagination.orb +15 -1
  116. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +19 -5
  117. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +17 -3
  118. package/behaviors/registry/ui/core/atoms/std-rich-editor.orb +15 -1
  119. package/behaviors/registry/ui/core/atoms/std-scatter.orb +15 -1
  120. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  121. package/behaviors/registry/ui/core/atoms/std-stats.orb +15 -1
  122. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +16 -2
  123. package/behaviors/registry/ui/core/atoms/std-thread.orb +2 -2
  124. package/behaviors/registry/ui/core/atoms/std-vote.orb +2 -2
  125. package/behaviors/registry/ui/core/atoms/std-wizard.orb +17 -3
  126. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +4 -1
  127. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +4 -1
  128. package/behaviors/registry/ui/core/atoms/ui-center.orb +4 -1
  129. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +4 -1
  130. package/behaviors/registry/ui/core/atoms/ui-icon.orb +4 -1
  131. package/behaviors/registry/ui/core/atoms/ui-stack.orb +4 -1
  132. package/behaviors/registry/ui/core/atoms/ui-typography.orb +4 -1
  133. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +4 -1
  134. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +3 -3
  135. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +4 -1
  136. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +4 -1
  137. package/behaviors/registry/ui/core/molecules/ui-grid.orb +4 -1
  138. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +4 -39
  139. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +2 -2
  140. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
  141. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +4 -1
  142. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +5 -2
  143. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +5 -2
  144. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +4 -1
  145. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +4 -1
  146. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +4 -1
  147. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +34 -2
  148. package/behaviors/registry/ui/core/organisms/ui-form.orb +34 -2
  149. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +4 -1
  150. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +4 -1
  151. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +24 -2
  152. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +4 -1
  153. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +4 -1
  154. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
  155. package/behaviors/registry/ui/core/organisms/ui-ui-slot-renderer.orb +1 -1
  156. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +35 -1
  157. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +4 -1
  158. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +183 -13
  159. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +104 -9
  160. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +56 -2
  161. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +36 -4
  162. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +21 -2
  163. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +19 -4
  164. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +173 -2
  165. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1288 -197
  166. package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +2814 -0
  167. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +3183 -0
  168. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +2512 -0
  169. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +3678 -0
  170. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +2394 -0
  171. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +3951 -0
  172. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +3458 -0
  173. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +2646 -0
  174. package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1979 -0
  175. package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +2994 -0
  176. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +2682 -0
  177. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +6539 -0
  178. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1842 -0
  179. package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1648 -0
  180. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +2307 -0
  181. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +3118 -0
  182. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +986 -0
  183. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +3333 -0
  184. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +716 -0
  185. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +679 -5
  186. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +962 -18
  187. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +919 -30
  188. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +372 -1
  189. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +936 -16
  190. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1328 -43
  191. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +1 -2
  192. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +1 -2
  193. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +1 -2
  194. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +1 -2
  195. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +1 -2
  196. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +1 -2
  197. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +4 -1
  198. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +4 -1
  199. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +4 -1
  200. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +4 -1
  201. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +4 -1
  202. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +4 -1
  203. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +4 -1
  204. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +4 -1
  205. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +4 -1
  206. package/dist/behaviors/exports-reader.js +3704 -2189
  207. package/dist/behaviors/functions/index.d.ts +2638 -254
  208. package/dist/behaviors/functions/index.js +3648 -2190
  209. package/dist/behaviors/index.d.ts +1 -1
  210. package/dist/behaviors/index.js +3705 -2190
  211. package/dist/behaviors/query.js +3704 -2189
  212. package/dist/behaviors-embeddings.hash.json +3 -3
  213. package/dist/behaviors-embeddings.json +289 -213
  214. package/dist/behaviors-registry.json +7900 -587
  215. package/dist/index.d.ts +1 -1
  216. package/dist/index.js +3705 -2190
  217. package/dist/knob-embeddings.hash.json +3 -3
  218. package/dist/knob-embeddings.json +1 -1
  219. package/dist/registry/factory-signatures.json +1 -1
  220. package/package.json +2 -2
@@ -0,0 +1,192 @@
1
+ app ui-algo-graph-canvas "1.0.0"
2
+ "AlgoGraphCanvas — UI factory (1:1 with the @almadar/ui algo-graph-canvas pattern)."
3
+ orbital AlgoGraphCanvasOrbital {
4
+ type AlgoGraphCanvasNodesItem = {
5
+ id : string!
6
+ x : number
7
+ y : number
8
+ label : string
9
+ state : "unvisited" | "frontier" | "current" | "visited" | "goal" | "path"
10
+ color : string
11
+ radius : number
12
+ badge : AlgoGraphCanvasNodesItemBadge
13
+ }
14
+ type AlgoGraphCanvasNodesItemBadge = {
15
+ text : string!
16
+ color : string
17
+ }
18
+ type AlgoGraphCanvasEdgesItem = {
19
+ from : string!
20
+ to : string!
21
+ directed : boolean
22
+ weight : number
23
+ label : string
24
+ state : "default" | "tree" | "relaxed" | "candidate" | "path"
25
+ color : string
26
+ }
27
+ type AlgoGraphCanvasShapesItem = {
28
+ type : "line" | "arrow" | "circle" | "ellipse" | "rect" | "polygon" | "path" | "text" | "axis" | "grid" | "venn-region"!
29
+ id : string
30
+ x : number
31
+ y : number
32
+ x1 : number
33
+ y1 : number
34
+ x2 : number
35
+ y2 : number
36
+ radius : number
37
+ width : number
38
+ height : number
39
+ points : [AlgoGraphCanvasShapesItemPointsItem]
40
+ path : string
41
+ text : string
42
+ label : string
43
+ fontSize : number
44
+ align : "left" | "center" | "right"
45
+ axis : "x" | "y"
46
+ min : number
47
+ max : number
48
+ step : number
49
+ color : string
50
+ fill : string
51
+ lineWidth : number
52
+ opacity : number
53
+ startAngle : number
54
+ endAngle : number
55
+ dash : "dashed" | "dotted"
56
+ inside : [string]
57
+ outside : [string]
58
+ }
59
+ type AlgoGraphCanvasShapesItemPointsItem = {
60
+ x : number!
61
+ y : number!
62
+ }
63
+ type AlgoGraphCanvasError = {
64
+ message : string!
65
+ name : string
66
+ code : string
67
+ stack : string
68
+ }
69
+ type AlgoGraphCanvasSHAPECLICKPayload = {
70
+ id : string
71
+ type : string
72
+ index : number!
73
+ }
74
+ type AlgoGraphCanvasNODECLICKPayload = {
75
+ id : string!
76
+ label : string
77
+ index : number!
78
+ }
79
+
80
+ entity AlgoGraphCanvasItem [runtime] {
81
+ id : string!
82
+ }
83
+
84
+ trait AlgoGraphCanvasRender -> @rebindable AlgoGraphCanvasItem [interaction, instance] {
85
+ initial: idle
86
+
87
+ state idle {
88
+ INIT -> idle
89
+ (render-ui main {
90
+ className: @config.className
91
+ width: @config.width
92
+ height: @config.height
93
+ title: @config.title
94
+ backgroundColor: @config.backgroundColor
95
+ nodes: @config.nodes
96
+ edges: @config.edges
97
+ layout: @config.layout
98
+ root: @config.root
99
+ shapes: @config.shapes
100
+ interactive: @config.interactive
101
+ animate: @config.animate
102
+ onShapeClick: @config.onShapeClick
103
+ onNodeClick: @config.onNodeClick
104
+ isLoading: @config.isLoading
105
+ error: @config.error
106
+ type: algo-graph-canvas
107
+ })
108
+ }
109
+
110
+ emits {
111
+ @config.onShapeClick -> external {
112
+ payload : AlgoGraphCanvasSHAPECLICKPayload
113
+ }
114
+ @description "onShapeClick prop"
115
+ @tier "essential"
116
+ @config.onNodeClick -> external {
117
+ payload : AlgoGraphCanvasNODECLICKPayload
118
+ }
119
+ @description "Fires when a node circle is clicked, alongside `onShapeClick`."
120
+ @tier "essential"
121
+ }
122
+
123
+ config {
124
+ className : string
125
+ @label "Class Name"
126
+ @description "className prop"
127
+ @tier "presentation"
128
+ width : number = 600
129
+ @label "Width"
130
+ @description "width prop"
131
+ @tier "presentation"
132
+ height : number = 400
133
+ @label "Height"
134
+ @description "height prop"
135
+ @tier "presentation"
136
+ title : string
137
+ @label "Title"
138
+ @description "title prop"
139
+ @tier "presentation"
140
+ backgroundColor : string
141
+ @label "Background Color"
142
+ @description "backgroundColor prop"
143
+ @tier "presentation"
144
+ nodes : [AlgoGraphCanvasNodesItem] = []
145
+ @label "Nodes"
146
+ @description "nodes prop"
147
+ @tier "presentation"
148
+ edges : [AlgoGraphCanvasEdgesItem] = []
149
+ @label "Edges"
150
+ @description "edges prop"
151
+ @tier "presentation"
152
+ layout : "manual" | "tree" | "layered" | "circle" = manual
153
+ @label "Layout"
154
+ @description "Deterministic layout to compute node positions; `manual` passes through `x`/`y`."
155
+ @tier "presentation"
156
+ root : string
157
+ @label "Root"
158
+ @description "`tree` layout only: preferred root id. Falls back to the first indegree-0 node."
159
+ @tier "presentation"
160
+ shapes : [AlgoGraphCanvasShapesItem] = []
161
+ @label "Shapes"
162
+ @description "Extra declarative shapes in canvas pixel coordinates."
163
+ @tier "presentation"
164
+ interactive : boolean = false
165
+ @label "Interactive"
166
+ @description "interactive prop"
167
+ @tier "presentation"
168
+ animate : boolean = false
169
+ @label "Animate"
170
+ @description "animate prop"
171
+ @tier "presentation"
172
+ onShapeClick : string = "SHAPE_CLICK"
173
+ @label "On Shape Click"
174
+ @description "onShapeClick prop"
175
+ @tier "presentation"
176
+ onNodeClick : string = "NODE_CLICK"
177
+ @label "On Node Click"
178
+ @description "Fires when a node circle is clicked, alongside `onShapeClick`."
179
+ @tier "presentation"
180
+ isLoading : boolean
181
+ @label "Is Loading"
182
+ @description "isLoading prop"
183
+ @tier "presentation"
184
+ error : AlgoGraphCanvasError
185
+ @label "Error"
186
+ @description "error prop"
187
+ @tier "presentation"
188
+ }
189
+ }
190
+
191
+ page "/algo-graph-canvas" as AlgoGraphCanvasPage -> AlgoGraphCanvasRender
192
+ }
@@ -12,14 +12,63 @@ orbital AlgorithmCanvasOrbital {
12
12
  value : number
13
13
  color : string
14
14
  label : string
15
+ corner : AlgorithmCanvasCellsItemCorner
16
+ }
17
+ type AlgorithmCanvasCellsItemCorner = {
18
+ tl : string
19
+ tr : string
20
+ bl : string
21
+ br : string
15
22
  }
16
23
  type AlgorithmCanvasPointersItem = {
17
24
  index : number!
18
25
  label : string
19
26
  color : string
20
27
  }
28
+ type AlgorithmCanvasRangesItem = {
29
+ from : number!
30
+ to : number!
31
+ color : string
32
+ label : string
33
+ kind : "fill" | "bracket"
34
+ }
35
+ type AlgorithmCanvasSlotsItem = {
36
+ value : string
37
+ state : "empty" | "filled" | "highlight"
38
+ color : string
39
+ }
40
+ type AlgorithmCanvasFramesItem = {
41
+ label : string!
42
+ detail : string
43
+ state : "active" | "returning" | "done"
44
+ color : string
45
+ }
46
+ type AlgorithmCanvasBucketsItem = {
47
+ index : number!
48
+ entries : [AlgorithmCanvasBucketsItemEntriesItem]!
49
+ }
50
+ type AlgorithmCanvasBucketsItemEntriesItem = {
51
+ label : string!
52
+ state : "default" | "highlight" | "probing"
53
+ color : string
54
+ }
55
+ type AlgorithmCanvasAuxBarsItem = {
56
+ value : number!
57
+ color : string
58
+ label : string
59
+ }
60
+ type AlgorithmCanvasRowLabelsItem = {
61
+ index : number!
62
+ text : string!
63
+ color : string
64
+ }
65
+ type AlgorithmCanvasColLabelsItem = {
66
+ index : number!
67
+ text : string!
68
+ color : string
69
+ }
21
70
  type AlgorithmCanvasShapesItem = {
22
- type : "line" | "arrow" | "circle" | "rect" | "polygon" | "path" | "text" | "axis" | "grid"!
71
+ type : "line" | "arrow" | "circle" | "ellipse" | "rect" | "polygon" | "path" | "text" | "axis" | "grid" | "venn-region"!
23
72
  id : string
24
73
  x : number
25
74
  y : number
@@ -44,6 +93,11 @@ orbital AlgorithmCanvasOrbital {
44
93
  fill : string
45
94
  lineWidth : number
46
95
  opacity : number
96
+ startAngle : number
97
+ endAngle : number
98
+ dash : "dashed" | "dotted"
99
+ inside : [string]
100
+ outside : [string]
47
101
  }
48
102
  type AlgorithmCanvasShapesItemPointsItem = {
49
103
  x : number!
@@ -79,6 +133,14 @@ orbital AlgorithmCanvasOrbital {
79
133
  bars: @config.bars
80
134
  cells: @config.cells
81
135
  pointers: @config.pointers
136
+ ranges: @config.ranges
137
+ slots: @config.slots
138
+ slotOrientation: @config.slotOrientation
139
+ frames: @config.frames
140
+ buckets: @config.buckets
141
+ auxBars: @config.auxBars
142
+ rowLabels: @config.rowLabels
143
+ colLabels: @config.colLabels
82
144
  shapes: @config.shapes
83
145
  interactive: @config.interactive
84
146
  animate: @config.animate
@@ -97,6 +159,14 @@ orbital AlgorithmCanvasOrbital {
97
159
  bars: @payload.bars
98
160
  cells: @payload.cells
99
161
  pointers: @payload.pointers
162
+ ranges: @payload.ranges
163
+ slots: @payload.slots
164
+ slotOrientation: @config.slotOrientation
165
+ frames: @payload.frames
166
+ buckets: @payload.buckets
167
+ auxBars: @payload.auxBars
168
+ rowLabels: @payload.rowLabels
169
+ colLabels: @payload.colLabels
100
170
  shapes: @payload.shapes
101
171
  interactive: @config.interactive
102
172
  animate: @config.animate
@@ -120,6 +190,13 @@ orbital AlgorithmCanvasOrbital {
120
190
  bars : [AlgorithmCanvasBarsItem]
121
191
  cells : [AlgorithmCanvasCellsItem]
122
192
  pointers : [AlgorithmCanvasPointersItem]
193
+ ranges : [AlgorithmCanvasRangesItem]
194
+ slots : [AlgorithmCanvasSlotsItem]
195
+ frames : [AlgorithmCanvasFramesItem]
196
+ buckets : [AlgorithmCanvasBucketsItem]
197
+ auxBars : [AlgorithmCanvasAuxBarsItem]
198
+ rowLabels : [AlgorithmCanvasRowLabelsItem]
199
+ colLabels : [AlgorithmCanvasColLabelsItem]
123
200
  shapes : [AlgorithmCanvasShapesItem]
124
201
  }
125
202
  @description "Live scene update; payload carries the current drawable state."
@@ -158,7 +235,39 @@ orbital AlgorithmCanvasOrbital {
158
235
  @tier "presentation"
159
236
  pointers : [AlgorithmCanvasPointersItem] = []
160
237
  @label "Pointers"
161
- @description "Index cursors (i/j/lo/hi/mid); drawn as markers beneath the referenced bar/cell column."
238
+ @description "Index cursors (i/j/lo/hi/mid); drawn as markers beneath the referenced bar/slot column."
239
+ @tier "presentation"
240
+ ranges : [AlgorithmCanvasRangesItem] = []
241
+ @label "Ranges"
242
+ @description "Highlighted index ranges over the bars panel (translucent fill bands or labeled brackets)."
243
+ @tier "presentation"
244
+ slots : [AlgorithmCanvasSlotsItem] = []
245
+ @label "Slots"
246
+ @description "Discrete value slots (registers/variables); laid out in a row or a vertical stack."
247
+ @tier "presentation"
248
+ slotOrientation : "horizontal" | "vertical" = horizontal
249
+ @label "Slot Orientation"
250
+ @description "Slot stack direction; horizontal lays slots left-to-right, vertical stacks bottom-up."
251
+ @tier "presentation"
252
+ frames : [AlgorithmCanvasFramesItem] = []
253
+ @label "Frames"
254
+ @description "Recursion/call-stack frames; laid out bottom-up like a real call stack."
255
+ @tier "presentation"
256
+ buckets : [AlgorithmCanvasBucketsItem] = []
257
+ @label "Buckets"
258
+ @description "Hash-table buckets; each row is an index chip plus its chained entries."
259
+ @tier "presentation"
260
+ auxBars : [AlgorithmCanvasAuxBarsItem] = []
261
+ @label "Aux Bars"
262
+ @description "Secondary bar strip inside the bars panel (e.g. a running total beside the primary values)."
263
+ @tier "presentation"
264
+ rowLabels : [AlgorithmCanvasRowLabelsItem] = []
265
+ @label "Row Labels"
266
+ @description "Row-header labels drawn to the left of the cells grid."
267
+ @tier "presentation"
268
+ colLabels : [AlgorithmCanvasColLabelsItem] = []
269
+ @label "Col Labels"
270
+ @description "Column-header labels drawn above the cells grid."
162
271
  @tier "presentation"
163
272
  shapes : [AlgorithmCanvasShapesItem] = []
164
273
  @label "Shapes"
@@ -5,19 +5,83 @@ orbital BiologyCanvasOrbital {
5
5
  id : string
6
6
  x : number!
7
7
  y : number!
8
+ z : number
8
9
  radius : number
9
10
  color : string
10
11
  label : string
11
12
  kind : "cell" | "organelle" | "molecule" | "organism"
13
+ shape : "box" | "sphere" | "capsule" | "cylinder" | "cone" | "torus" | "plane" | "circle" | "polyhedron"
14
+ opacity : number
15
+ state : "default" | "highlight" | "muted"
12
16
  }
13
17
  type BiologyCanvasEdgesItem = {
14
18
  from : string!
15
19
  to : string!
16
20
  color : string
17
21
  label : string
22
+ directed : boolean
23
+ }
24
+ type BiologyCanvasCompartmentsItem = {
25
+ x : number!
26
+ y : number!
27
+ width : number!
28
+ height : number!
29
+ label : string
30
+ color : string
31
+ fill : string
32
+ dash : "dashed" | "dotted"
33
+ lineWidth : number
34
+ }
35
+ type BiologyCanvasBandsItem = {
36
+ label : string
37
+ color : string
38
+ }
39
+ type BiologyCanvasStagesItem = {
40
+ label : string!
41
+ state : "pending" | "active" | "done"
42
+ color : string
43
+ }
44
+ type BiologyCanvasHelix = {
45
+ x : number
46
+ y : number
47
+ width : number
48
+ height : number
49
+ rungs : [BiologyCanvasHelixRungsItem]!
50
+ fork : number
51
+ colorA : string
52
+ colorB : string
53
+ rungColor : string
54
+ }
55
+ type BiologyCanvasHelixRungsItem = {
56
+ a : string
57
+ b : string
58
+ state : "paired" | "open" | "new"
59
+ color : string
60
+ }
61
+ type BiologyCanvasHelix3d = {
62
+ count : number
63
+ rungs : [BiologyCanvasHelix3dRungsItem]
64
+ radius : number
65
+ rise : number
66
+ twistDeg : number
67
+ strandAColor : string
68
+ strandBColor : string
69
+ backboneRadius : number
70
+ rungRadius : number
71
+ x : number
72
+ y : number
73
+ z : number
74
+ unwoundCount : number
75
+ unwindSpread : number
76
+ }
77
+ type BiologyCanvasHelix3dRungsItem = {
78
+ id : string
79
+ color : string
80
+ radius : number
81
+ label : string
18
82
  }
19
83
  type BiologyCanvasShapesItem = {
20
- type : "line" | "arrow" | "circle" | "rect" | "polygon" | "path" | "text" | "axis" | "grid"!
84
+ type : "line" | "arrow" | "circle" | "ellipse" | "rect" | "polygon" | "path" | "text" | "axis" | "grid" | "venn-region"!
21
85
  id : string
22
86
  x : number
23
87
  y : number
@@ -42,11 +106,42 @@ orbital BiologyCanvasOrbital {
42
106
  fill : string
43
107
  lineWidth : number
44
108
  opacity : number
109
+ startAngle : number
110
+ endAngle : number
111
+ dash : "dashed" | "dotted"
112
+ inside : [string]
113
+ outside : [string]
45
114
  }
46
115
  type BiologyCanvasShapesItemPointsItem = {
47
116
  x : number!
48
117
  y : number!
49
118
  }
119
+ type BiologyCanvasReadoutsItem = {
120
+ label : string!
121
+ value : string!
122
+ color : string
123
+ }
124
+ type BiologyCanvasTracesItem = {
125
+ x : number
126
+ y : number
127
+ width : number
128
+ height : number
129
+ series : [BiologyCanvasTracesItemSeriesItem]!
130
+ xLabel : string
131
+ yLabel : string
132
+ frameColor : string
133
+ backgroundColor : string
134
+ backgroundOpacity : number
135
+ }
136
+ type BiologyCanvasTracesItemSeriesItem = {
137
+ samples : [BiologyCanvasTracesItemSeriesItemSamplesItem]!
138
+ color : string
139
+ label : string
140
+ }
141
+ type BiologyCanvasTracesItemSeriesItemSamplesItem = {
142
+ x : number!
143
+ y : number!
144
+ }
50
145
  type BiologyCanvasError = {
51
146
  message : string!
52
147
  name : string
@@ -74,9 +169,23 @@ orbital BiologyCanvasOrbital {
74
169
  height: @config.height
75
170
  title: @config.title
76
171
  backgroundColor: @config.backgroundColor
172
+ mode: @config.mode
173
+ camera: @config.camera
174
+ lighting: @config.lighting
175
+ post: @config.post
77
176
  nodes: @config.nodes
78
177
  edges: @config.edges
178
+ compartments: @config.compartments
179
+ bands: @config.bands
180
+ stages: @config.stages
181
+ stageStyle: @config.stageStyle
182
+ helix: @config.helix
183
+ helix3d: @config.helix3d
79
184
  shapes: @config.shapes
185
+ readouts: @config.readouts
186
+ traces: @config.traces
187
+ showGrid: @config.showGrid
188
+ shadows: @config.shadows
80
189
  interactive: @config.interactive
81
190
  animate: @config.animate
82
191
  onShapeClick: @config.onShapeClick
@@ -91,9 +200,23 @@ orbital BiologyCanvasOrbital {
91
200
  height: @config.height
92
201
  title: @config.title
93
202
  backgroundColor: @config.backgroundColor
203
+ mode: @config.mode
204
+ camera: @config.camera
205
+ lighting: @config.lighting
206
+ post: @config.post
94
207
  nodes: @payload.nodes
95
208
  edges: @payload.edges
209
+ compartments: @payload.compartments
210
+ bands: @payload.bands
211
+ stages: @payload.stages
212
+ stageStyle: @config.stageStyle
213
+ helix: @config.helix
214
+ helix3d: @config.helix3d
96
215
  shapes: @payload.shapes
216
+ readouts: @payload.readouts
217
+ traces: @payload.traces
218
+ showGrid: @config.showGrid
219
+ shadows: @config.shadows
97
220
  interactive: @config.interactive
98
221
  animate: @config.animate
99
222
  onShapeClick: @config.onShapeClick
@@ -115,7 +238,12 @@ orbital BiologyCanvasOrbital {
115
238
  UPDATE {
116
239
  nodes : [BiologyCanvasNodesItem]
117
240
  edges : [BiologyCanvasEdgesItem]
241
+ compartments : [BiologyCanvasCompartmentsItem]
242
+ bands : [BiologyCanvasBandsItem]
243
+ stages : [BiologyCanvasStagesItem]
118
244
  shapes : [BiologyCanvasShapesItem]
245
+ readouts : [BiologyCanvasReadoutsItem]
246
+ traces : [BiologyCanvasTracesItem]
119
247
  }
120
248
  @description "Live scene update; payload carries the current drawable state."
121
249
  @synonyms "tick, redraw, animate, frame"
@@ -143,6 +271,22 @@ orbital BiologyCanvasOrbital {
143
271
  @label "Background Color"
144
272
  @description "backgroundColor prop"
145
273
  @tier "presentation"
274
+ mode : "2d" | "3d" = "2d"
275
+ @label "Mode"
276
+ @description "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host."
277
+ @tier "presentation"
278
+ camera : json = {}
279
+ @label "Camera"
280
+ @description "3D only: neutral camera pose ({ mode, zoom, fov, azimuth, target })."
281
+ @tier "presentation"
282
+ lighting : json = {}
283
+ @label "Lighting"
284
+ @description "3D only: scene light rig as data."
285
+ @tier "presentation"
286
+ post : json = {}
287
+ @label "Post"
288
+ @description "3D only: post-processing stack (bloom/vignette)."
289
+ @tier "presentation"
146
290
  nodes : [BiologyCanvasNodesItem] = []
147
291
  @label "Nodes"
148
292
  @description "nodes prop"
@@ -151,17 +295,61 @@ orbital BiologyCanvasOrbital {
151
295
  @label "Edges"
152
296
  @description "edges prop"
153
297
  @tier "presentation"
298
+ compartments : [BiologyCanvasCompartmentsItem] = []
299
+ @label "Compartments"
300
+ @description "Organelle/membrane/cell-boundary ellipses (2D only)."
301
+ @synonyms "membrane, organelle region, cell boundary"
302
+ @tier "presentation"
303
+ bands : [BiologyCanvasBandsItem] = []
304
+ @label "Bands"
305
+ @description "Full-width horizontal background stripes, drawn first (2D only)."
306
+ @synonyms "trophic levels, zones, layers"
307
+ @tier "presentation"
308
+ stages : [BiologyCanvasStagesItem] = []
309
+ @label "Stages"
310
+ @description "Phase/step chips (2D only)."
311
+ @synonyms "phases, timeline, cycle"
312
+ @tier "presentation"
313
+ stageStyle : "timeline" | "ring" = timeline
314
+ @label "Stage Style"
315
+ @description "Layout for `stages`: a bottom timeline strip (default) or a radial ring."
316
+ @tier "presentation"
317
+ helix : BiologyCanvasHelix
318
+ @label "Helix"
319
+ @description "A DNA double-helix ladder panel (2D only)."
320
+ @synonyms "DNA ladder, replication fork, base pairs"
321
+ @tier "presentation"
322
+ helix3d : BiologyCanvasHelix3d
323
+ @label "Helix3d"
324
+ @description "A 3D DNA double-helix ladder. 3D only."
325
+ @tier "presentation"
154
326
  shapes : [BiologyCanvasShapesItem] = []
155
327
  @label "Shapes"
156
- @description "Extra declarative shapes in canvas pixel coordinates."
328
+ @description "Extra declarative shapes in canvas pixel coordinates (2D mode only — ignored in 3D)."
329
+ @tier "presentation"
330
+ readouts : [BiologyCanvasReadoutsItem] = []
331
+ @label "Readouts"
332
+ @description "Top-right status chip row, forwarded to LearningCanvas verbatim."
333
+ @tier "presentation"
334
+ traces : [BiologyCanvasTracesItem] = []
335
+ @label "Traces"
336
+ @description "Inset sparkline panels, forwarded to LearningCanvas verbatim."
337
+ @tier "presentation"
338
+ showGrid : boolean
339
+ @label "Show Grid"
340
+ @description "3D only: show the ground grid (default off)."
341
+ @tier "presentation"
342
+ shadows : boolean
343
+ @label "Shadows"
344
+ @description "3D only: enable shadows. Omitted → the host default."
157
345
  @tier "presentation"
158
- interactive : boolean = false
346
+ interactive : boolean
159
347
  @label "Interactive"
160
- @description "interactive prop"
348
+ @description "2D: pointer interaction (click/hover). 3D: orbit camera controls."
161
349
  @tier "presentation"
162
350
  animate : boolean = false
163
351
  @label "Animate"
164
- @description "animate prop"
352
+ @description "2D only: continuous redraw loop. 3D motion is entity-state driven."
165
353
  @tier "presentation"
166
354
  onShapeClick : string = "SHAPE_CLICK"
167
355
  @label "On Shape Click"