@almadar/std 16.239.0 → 16.242.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/behaviors-registry.json +4814 -553
- package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +38 -1
- package/behaviors/lolo/agent/atoms/std-agent-session.lolo +1074 -47
- package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +8 -7
- package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +56 -37
- package/behaviors/lolo/infra/atoms/std-page-open.lolo +59 -0
- package/behaviors/lolo/infra/atoms/std-page-search.lolo +134 -0
- package/behaviors/lolo/infra/atoms/std-page-treat.lolo +59 -0
- package/behaviors/lolo/infra/atoms/std-page-watch.lolo +86 -0
- package/behaviors/lolo/ui/core/atoms/std-board.lolo +53 -6
- package/behaviors/lolo/ui/core/atoms/std-book-reader.lolo +25 -1
- package/behaviors/lolo/ui/core/atoms/std-card-grid.lolo +9 -0
- package/behaviors/lolo/ui/core/atoms/std-doc-page.lolo +153 -0
- package/behaviors/lolo/ui/core/atoms/std-site-header.lolo +15 -3
- package/behaviors/lolo/ui/core/atoms/std-tag-strip.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +7 -7
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-header.lolo +5 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-arrangement.lolo +124 -92
- package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +114 -55
- package/behaviors/lolo/ui/learning/atoms/std-learn-compare.lolo +40 -14
- package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +363 -123
- package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +93 -48
- package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +60 -28
- package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +193 -96
- package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +75 -32
- package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +142 -86
- package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +266 -98
- package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +103 -65
- package/behaviors/lolo/ui/learning/atoms/std-learn-live-sim.lolo +223 -109
- package/behaviors/lolo/ui/learning/atoms/std-learn-measure.lolo +232 -64
- package/behaviors/lolo/ui/learning/atoms/std-learn-param-explorer.lolo +69 -29
- package/behaviors/lolo/ui/learning/atoms/std-learn-perturb.lolo +363 -123
- package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +73 -41
- package/behaviors/lolo/ui/learning/atoms/std-learn-sample-accumulator.lolo +96 -38
- package/behaviors/lolo/ui/learning/atoms/std-learn-sandbox.lolo +65 -45
- package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +243 -117
- package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +76 -28
- package/behaviors/lolo/ui/learning/atoms/std-learn-sim-3d.lolo +228 -109
- package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +95 -44
- package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +199 -125
- package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +92 -48
- package/behaviors/lolo/ui/learning/atoms/std-learn-trace-player.lolo +239 -78
- package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +147 -38
- package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +123 -58
- package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +22 -0
- package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +26 -0
- package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +26 -0
- package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +27 -1
- package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +27 -1
- package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +29 -9
- package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +26 -0
- package/behaviors/lolo-behavior-contracts.json +1 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +372 -2
- package/behaviors/registry/agent/atoms/std-agent-session.orb +4752 -348
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +54 -42
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +356 -122
- package/behaviors/registry/factory-signatures.json +1 -1
- package/behaviors/registry/infra/atoms/std-page-open.orb +435 -0
- package/behaviors/registry/infra/atoms/std-page-search.orb +867 -0
- package/behaviors/registry/infra/atoms/std-page-treat.orb +494 -0
- package/behaviors/registry/infra/atoms/std-page-watch.orb +554 -0
- package/behaviors/registry/ui/core/atoms/std-board.orb +110 -14
- package/behaviors/registry/ui/core/atoms/std-book-reader.orb +119 -0
- package/behaviors/registry/ui/core/atoms/std-card-grid.orb +61 -0
- package/behaviors/registry/ui/core/atoms/std-doc-page.orb +594 -0
- package/behaviors/registry/ui/core/atoms/std-site-header.orb +40 -2
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +2 -0
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +24 -0
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +8 -1
- package/behaviors/registry/ui/core/molecules/ui-header.orb +7 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +903 -369
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1002 -232
- package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +253 -74
- package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +3624 -921
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +685 -144
- package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +404 -52
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1787 -210
- package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +699 -71
- package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1102 -578
- package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +2760 -872
- package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +689 -152
- package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1431 -633
- package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +2485 -512
- package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +501 -197
- package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +3642 -928
- package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +705 -125
- package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +624 -114
- package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +405 -153
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1911 -611
- package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +436 -128
- package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +2482 -485
- package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +896 -192
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +2001 -759
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +734 -228
- package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +2501 -764
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1591 -173
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +883 -122
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +176 -0
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +211 -0
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +211 -0
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +212 -1
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +212 -1
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +203 -9
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +211 -0
- package/behaviors/signatures.lolo +325 -655
- package/canonical-operators.json +35 -1
- package/dist/behaviors/exports-reader.js +41980 -35508
- package/dist/behaviors/functions/index.d.ts +1063 -140
- package/dist/behaviors/functions/index.js +41951 -35506
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +41981 -35509
- package/dist/behaviors/query.js +41980 -35508
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +47 -27
- package/dist/behaviors-registry.json +4814 -553
- package/dist/index.d.ts +4 -4
- package/dist/index.js +42019 -35509
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +623 -263
- package/dist/modules/anim.d.ts +1 -1
- package/dist/modules/array.d.ts +1 -1
- package/dist/modules/async.d.ts +1 -1
- package/dist/modules/behavior.d.ts +1 -1
- package/dist/modules/browser.d.ts +1 -1
- package/dist/modules/composition.d.ts +1 -1
- package/dist/modules/contract.d.ts +1 -1
- package/dist/modules/core.d.ts +1 -1
- package/dist/modules/core.js +2 -0
- package/dist/modules/data.d.ts +1 -1
- package/dist/modules/ease.d.ts +1 -1
- package/dist/modules/format.d.ts +1 -1
- package/dist/modules/geo.d.ts +1 -1
- package/dist/modules/graph.d.ts +1 -1
- package/dist/modules/grid.d.ts +1 -1
- package/dist/modules/i18n.d.ts +17 -0
- package/dist/modules/i18n.js +22 -0
- package/dist/modules/index.d.ts +2 -1
- package/dist/modules/index.js +24 -1
- package/dist/modules/integration.d.ts +1 -1
- package/dist/modules/json.d.ts +1 -1
- package/dist/modules/llm.d.ts +1 -1
- package/dist/modules/math.d.ts +1 -1
- package/dist/modules/memory.d.ts +1 -1
- package/dist/modules/nn.d.ts +1 -1
- package/dist/modules/noise.d.ts +1 -1
- package/dist/modules/object.d.ts +1 -1
- package/dist/modules/os.d.ts +1 -1
- package/dist/modules/path.d.ts +1 -1
- package/dist/modules/prob.d.ts +1 -1
- package/dist/modules/session.d.ts +1 -1
- package/dist/modules/str.d.ts +1 -1
- package/dist/modules/tensor.d.ts +1 -1
- package/dist/modules/time.d.ts +1 -1
- package/dist/modules/trace.d.ts +1 -1
- package/dist/modules/train.d.ts +1 -1
- package/dist/modules/validate.d.ts +1 -1
- package/dist/modules/vector.d.ts +1 -1
- package/dist/modules/workspace.d.ts +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/dist/registry.d.ts +10 -3
- package/dist/registry.js +31 -1
- package/dist/{types-DLx38UFZ.d.ts → types-Cdb321uM.d.ts} +9 -3
- package/i18n/ar.json +1 -0
- package/i18n/en.json +1 -0
- package/i18n/sl.json +1 -0
- package/package.json +3 -3
|
@@ -90,12 +90,19 @@ orbital LearnTour3DOrbital {
|
|
|
90
90
|
padding: md
|
|
91
91
|
children: [
|
|
92
92
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
93
|
-
{ type:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
94
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
95
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
96
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
97
|
+
] },
|
|
98
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
99
|
+
] },
|
|
100
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
101
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
102
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
103
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
97
104
|
] },
|
|
98
|
-
{ type: biology-canvas, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
105
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
99
106
|
mode: "3d",
|
|
100
107
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
101
108
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -106,13 +113,16 @@ orbital LearnTour3DOrbital {
|
|
|
106
113
|
interactive: true,
|
|
107
114
|
onShapeClick: "SELECT_STATION"
|
|
108
115
|
},
|
|
109
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
110
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
116
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
111
117
|
] }
|
|
112
118
|
]
|
|
113
119
|
})
|
|
114
120
|
(emit TOUR_3D_UPDATED { id: @entity.selectedId, name: (object/get (array/nth @entity.stations 0) name), caption: (object/get (array/nth @entity.stations 0) caption), visited: (array/len @entity.visitedIds), total: (array/len @entity.stations), tourComplete: false })
|
|
115
121
|
|
|
122
|
+
MODE_SELECTED -> idle when (and (not (== @config.matchMode "")) (not (== ?mode @config.matchMode)))
|
|
123
|
+
(set @entity.active false)
|
|
124
|
+
(render-ui main null)
|
|
125
|
+
|
|
116
126
|
MODE_SELECTED -> idle when (== ?mode @config.matchMode)
|
|
117
127
|
(set @entity.active true)
|
|
118
128
|
(set @entity.title @config.title)
|
|
@@ -129,12 +139,19 @@ orbital LearnTour3DOrbital {
|
|
|
129
139
|
padding: md
|
|
130
140
|
children: [
|
|
131
141
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
132
|
-
{ type:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
142
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
143
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
144
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
145
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
146
|
+
] },
|
|
147
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
136
148
|
] },
|
|
137
|
-
{ type:
|
|
149
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
150
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
151
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
152
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
153
|
+
] },
|
|
154
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
138
155
|
mode: "3d",
|
|
139
156
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
140
157
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -145,8 +162,7 @@ orbital LearnTour3DOrbital {
|
|
|
145
162
|
interactive: true,
|
|
146
163
|
onShapeClick: "SELECT_STATION"
|
|
147
164
|
},
|
|
148
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
149
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
165
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
150
166
|
] }
|
|
151
167
|
]
|
|
152
168
|
})
|
|
@@ -164,12 +180,19 @@ orbital LearnTour3DOrbital {
|
|
|
164
180
|
padding: md
|
|
165
181
|
children: [
|
|
166
182
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
167
|
-
{ type:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
183
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
184
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
185
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
186
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
187
|
+
] },
|
|
188
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
189
|
+
] },
|
|
190
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
191
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
192
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
193
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
171
194
|
] },
|
|
172
|
-
{ type: biology-canvas, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
195
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
173
196
|
mode: "3d",
|
|
174
197
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
175
198
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -180,8 +203,7 @@ orbital LearnTour3DOrbital {
|
|
|
180
203
|
interactive: true,
|
|
181
204
|
onShapeClick: "SELECT_STATION"
|
|
182
205
|
},
|
|
183
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
184
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
206
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
185
207
|
] }
|
|
186
208
|
]
|
|
187
209
|
})
|
|
@@ -205,12 +227,19 @@ orbital LearnTour3DOrbital {
|
|
|
205
227
|
padding: md
|
|
206
228
|
children: [
|
|
207
229
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
208
|
-
{ type:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
230
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
231
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
232
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
233
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
234
|
+
] },
|
|
235
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
212
236
|
] },
|
|
213
|
-
{ type:
|
|
237
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
238
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
239
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
240
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
241
|
+
] },
|
|
242
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
214
243
|
mode: "3d",
|
|
215
244
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
216
245
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -221,8 +250,7 @@ orbital LearnTour3DOrbital {
|
|
|
221
250
|
interactive: true,
|
|
222
251
|
onShapeClick: "SELECT_STATION"
|
|
223
252
|
},
|
|
224
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
225
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
253
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
226
254
|
] }
|
|
227
255
|
]
|
|
228
256
|
})
|
|
@@ -241,12 +269,19 @@ orbital LearnTour3DOrbital {
|
|
|
241
269
|
padding: md
|
|
242
270
|
children: [
|
|
243
271
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
244
|
-
{ type:
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
272
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
273
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
274
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
275
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
276
|
+
] },
|
|
277
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
278
|
+
] },
|
|
279
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
280
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
281
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
282
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
248
283
|
] },
|
|
249
|
-
{ type: biology-canvas, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
284
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
250
285
|
mode: "3d",
|
|
251
286
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
252
287
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -257,8 +292,7 @@ orbital LearnTour3DOrbital {
|
|
|
257
292
|
interactive: true,
|
|
258
293
|
onShapeClick: "SELECT_STATION"
|
|
259
294
|
},
|
|
260
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
261
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
295
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
262
296
|
] }
|
|
263
297
|
]
|
|
264
298
|
})
|
|
@@ -278,12 +312,19 @@ orbital LearnTour3DOrbital {
|
|
|
278
312
|
padding: md
|
|
279
313
|
children: [
|
|
280
314
|
{ type: stack, direction: vertical, gap: md, children: [
|
|
281
|
-
{ type:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
315
|
+
{ type: stack, direction: horizontal, justify: between, align: start, gap: md, children: [
|
|
316
|
+
{ type: stack, direction: vertical, gap: xs, children: [
|
|
317
|
+
{ type: typography, variant: h4, content: @entity.title },
|
|
318
|
+
(if (== @config.summary "") null { type: typography, variant: body2, color: muted, content: @config.summary })
|
|
319
|
+
] },
|
|
320
|
+
{ type: badge, label: (if @entity.tourComplete "Complete" (str/concat "Station " (str/concat "" (+ @entity.selectedIndex 1)) " of " (str/concat "" (array/len @entity.stations)))), variant: (if @entity.tourComplete "success" "neutral") }
|
|
321
|
+
] },
|
|
322
|
+
{ type: stack, direction: horizontal, align: center, gap: sm, wrap: true, children: [
|
|
323
|
+
{ type: button, action: TOUR, label: @config.tourLabel, icon: "chevron-right", variant: primary },
|
|
324
|
+
{ type: button, action: RESET, label: @config.resetLabel, icon: "rotate-ccw", variant: ghost },
|
|
325
|
+
{ type: typography, variant: caption, color: muted, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
285
326
|
] },
|
|
286
|
-
{ type: biology-canvas, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
327
|
+
{ type: biology-canvas, keyMap: { Space: TOUR, ArrowRight: TOUR, KeyR: RESET }, width: @config.width, height: @config.height, backgroundColor: @config.backgroundColor,
|
|
287
328
|
mode: "3d",
|
|
288
329
|
camera: { mode: "perspective", zoom: @config.zoom, fov: @config.fov, azimuth: @config.azimuth,
|
|
289
330
|
target: { x: (object/get (array/nth @entity.stations @entity.selectedIndex) x), y: (object/get (array/nth @entity.stations @entity.selectedIndex) y), z: (object/get (array/nth @entity.stations @entity.selectedIndex) z) } },
|
|
@@ -294,8 +335,7 @@ orbital LearnTour3DOrbital {
|
|
|
294
335
|
interactive: true,
|
|
295
336
|
onShapeClick: "SELECT_STATION"
|
|
296
337
|
},
|
|
297
|
-
{ type: typography, variant: body, content: @entity.narration }
|
|
298
|
-
{ type: typography, variant: caption, content: (str/concat "Explored " (str/concat "" (array/len @entity.visitedIds)) " of " (str/concat "" (array/len @entity.stations)) (if @entity.tourComplete " — tour complete!" "")) }
|
|
338
|
+
{ type: typography, variant: body, content: @entity.narration }
|
|
299
339
|
] }
|
|
300
340
|
]
|
|
301
341
|
})
|
|
@@ -352,10 +392,14 @@ orbital LearnTour3DOrbital {
|
|
|
352
392
|
@label "Title"
|
|
353
393
|
@description "Title shown above the canvas."
|
|
354
394
|
@tier "presentation"
|
|
395
|
+
summary : string = ""
|
|
396
|
+
@label "Concept"
|
|
397
|
+
@description "One line under the title saying what the learner is looking at (keep it under ~65 characters). Empty shows no line."
|
|
398
|
+
@tier "presentation"
|
|
355
399
|
stations : [Learn3DStation] = [
|
|
356
|
-
{ id: "alpha", name: "Station Alpha", caption: "The first stop on the tour — the camera retargets here and the narration reads its caption.", x: 0, y: 0, z: 0, radius: 1, color: "
|
|
357
|
-
{ id: "beta", name: "Station Beta", caption: "The second stop — press Tour again or click a shape to advance the selection.", x: 3, y: 1, z: -1, radius: 0.8, color: "
|
|
358
|
-
{ id: "gamma", name: "Station Gamma", caption: "The final stop — once every station has been visited the tour marks itself complete.", x: -3, y: -1, z: 1, radius: 0.8, color: "
|
|
400
|
+
{ id: "alpha", name: "Station Alpha", caption: "The first stop on the tour — the camera retargets here and the narration reads its caption.", x: 0, y: 0, z: 0, radius: 1, color: "series-1", shape: sphere, opacity: 1 },
|
|
401
|
+
{ id: "beta", name: "Station Beta", caption: "The second stop — press Tour again or click a shape to advance the selection.", x: 3, y: 1, z: -1, radius: 0.8, color: "series-2", shape: sphere, opacity: 1 },
|
|
402
|
+
{ id: "gamma", name: "Station Gamma", caption: "The final stop — once every station has been visited the tour marks itself complete.", x: -3, y: -1, z: 1, radius: 0.8, color: "series-3", shape: sphere, opacity: 1 }
|
|
359
403
|
]
|
|
360
404
|
@label "Stations"
|
|
361
405
|
@description "The station roster in didactic tour order — each with scene position, mesh shape, and a caption. Tour and clicks enlarge the selected station, retarget the camera onto its x/y/z, and narrate its caption."
|
|
@@ -371,7 +415,7 @@ orbital LearnTour3DOrbital {
|
|
|
371
415
|
@description "Non-station scene geometry rendered under the tour stations (painted first, stations on top) — painted but never tour stops and never highlight-selected; SYNC_STATIONS swaps it together with the roster, so a composed preset coordinator can re-skin the whole scene per preset."
|
|
372
416
|
@synonyms "backdrop, scenery, geometry, context nodes, 3d"
|
|
373
417
|
@tier "domain"
|
|
374
|
-
tourLabel : string = "
|
|
418
|
+
tourLabel : string = "Next station"
|
|
375
419
|
@label "Tour Button Label"
|
|
376
420
|
@description "Label text for the button that advances the tour to the next station."
|
|
377
421
|
@tier "presentation"
|
|
@@ -407,9 +451,9 @@ orbital LearnTour3DOrbital {
|
|
|
407
451
|
@label "Height"
|
|
408
452
|
@description "Canvas height in pixels."
|
|
409
453
|
@tier "presentation"
|
|
410
|
-
backgroundColor : string = "
|
|
454
|
+
backgroundColor : string = ""
|
|
411
455
|
@label "Background Color"
|
|
412
|
-
@description "Canvas
|
|
456
|
+
@description "Canvas ground. Empty uses the theme drawing ground."
|
|
413
457
|
@tier "presentation"
|
|
414
458
|
}
|
|
415
459
|
}
|