@almadar/std 16.174.0 → 16.176.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.
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +4 -9
- package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +132 -22
- package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +428 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +520 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +805 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +31 -2
- package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +186 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +522 -0
- package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +192 -0
- package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +111 -2
- package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +150 -1
- package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +132 -1
- package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +48 -1
- package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +141 -1
- package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +199 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +4 -39
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1288 -197
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +2512 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +3678 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +6539 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +173 -2
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +986 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +3333 -0
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +716 -0
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +506 -1
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +684 -0
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +634 -0
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +256 -0
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +736 -12
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1061 -33
- package/dist/behaviors/exports-reader.js +2448 -2184
- package/dist/behaviors/functions/index.d.ts +800 -13
- package/dist/behaviors/functions/index.js +2431 -2185
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +2449 -2185
- package/dist/behaviors/query.js +2448 -2184
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +318 -294
- package/dist/behaviors-registry.json +4391 -1298
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2449 -2185
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- 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/
|
|
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"
|
|
@@ -12,15 +12,76 @@ orbital BiologyCanvasOrbital {
|
|
|
12
12
|
kind : "cell" | "organelle" | "molecule" | "organism"
|
|
13
13
|
shape : "box" | "sphere" | "capsule" | "cylinder" | "cone" | "torus" | "plane" | "circle" | "polyhedron"
|
|
14
14
|
opacity : number
|
|
15
|
+
state : "default" | "highlight" | "muted"
|
|
15
16
|
}
|
|
16
17
|
type BiologyCanvasEdgesItem = {
|
|
17
18
|
from : string!
|
|
18
19
|
to : string!
|
|
19
20
|
color : string
|
|
20
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
|
|
21
82
|
}
|
|
22
83
|
type BiologyCanvasShapesItem = {
|
|
23
|
-
type : "line" | "arrow" | "circle" | "rect" | "polygon" | "path" | "text" | "axis" | "grid"!
|
|
84
|
+
type : "line" | "arrow" | "circle" | "ellipse" | "rect" | "polygon" | "path" | "text" | "axis" | "grid" | "venn-region"!
|
|
24
85
|
id : string
|
|
25
86
|
x : number
|
|
26
87
|
y : number
|
|
@@ -45,11 +106,42 @@ orbital BiologyCanvasOrbital {
|
|
|
45
106
|
fill : string
|
|
46
107
|
lineWidth : number
|
|
47
108
|
opacity : number
|
|
109
|
+
startAngle : number
|
|
110
|
+
endAngle : number
|
|
111
|
+
dash : "dashed" | "dotted"
|
|
112
|
+
inside : [string]
|
|
113
|
+
outside : [string]
|
|
48
114
|
}
|
|
49
115
|
type BiologyCanvasShapesItemPointsItem = {
|
|
50
116
|
x : number!
|
|
51
117
|
y : number!
|
|
52
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
|
+
}
|
|
53
145
|
type BiologyCanvasError = {
|
|
54
146
|
message : string!
|
|
55
147
|
name : string
|
|
@@ -83,7 +175,15 @@ orbital BiologyCanvasOrbital {
|
|
|
83
175
|
post: @config.post
|
|
84
176
|
nodes: @config.nodes
|
|
85
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
|
|
86
184
|
shapes: @config.shapes
|
|
185
|
+
readouts: @config.readouts
|
|
186
|
+
traces: @config.traces
|
|
87
187
|
showGrid: @config.showGrid
|
|
88
188
|
shadows: @config.shadows
|
|
89
189
|
interactive: @config.interactive
|
|
@@ -106,7 +206,15 @@ orbital BiologyCanvasOrbital {
|
|
|
106
206
|
post: @config.post
|
|
107
207
|
nodes: @payload.nodes
|
|
108
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
|
|
109
215
|
shapes: @payload.shapes
|
|
216
|
+
readouts: @payload.readouts
|
|
217
|
+
traces: @payload.traces
|
|
110
218
|
showGrid: @config.showGrid
|
|
111
219
|
shadows: @config.shadows
|
|
112
220
|
interactive: @config.interactive
|
|
@@ -130,7 +238,12 @@ orbital BiologyCanvasOrbital {
|
|
|
130
238
|
UPDATE {
|
|
131
239
|
nodes : [BiologyCanvasNodesItem]
|
|
132
240
|
edges : [BiologyCanvasEdgesItem]
|
|
241
|
+
compartments : [BiologyCanvasCompartmentsItem]
|
|
242
|
+
bands : [BiologyCanvasBandsItem]
|
|
243
|
+
stages : [BiologyCanvasStagesItem]
|
|
133
244
|
shapes : [BiologyCanvasShapesItem]
|
|
245
|
+
readouts : [BiologyCanvasReadoutsItem]
|
|
246
|
+
traces : [BiologyCanvasTracesItem]
|
|
134
247
|
}
|
|
135
248
|
@description "Live scene update; payload carries the current drawable state."
|
|
136
249
|
@synonyms "tick, redraw, animate, frame"
|
|
@@ -182,10 +295,46 @@ orbital BiologyCanvasOrbital {
|
|
|
182
295
|
@label "Edges"
|
|
183
296
|
@description "edges prop"
|
|
184
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"
|
|
185
326
|
shapes : [BiologyCanvasShapesItem] = []
|
|
186
327
|
@label "Shapes"
|
|
187
328
|
@description "Extra declarative shapes in canvas pixel coordinates (2D mode only — ignored in 3D)."
|
|
188
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"
|
|
189
338
|
showGrid : boolean
|
|
190
339
|
@label "Show Grid"
|
|
191
340
|
@description "3D only: show the ground grid (default off)."
|