@classytic/labs 0.3.0 → 0.4.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 (2479) hide show
  1. package/README.md +63 -22
  2. package/dist/_virtual/_rolldown/runtime.mjs +19 -1
  3. package/dist/algorithms/GraphAlgorithmLab.d.mts +1 -9
  4. package/dist/algorithms/GraphAlgorithmLab.mjs +2 -2
  5. package/dist/algorithms/GraphView.d.mts +1 -10
  6. package/dist/algorithms/GridPathLab.d.mts +1 -6
  7. package/dist/algorithms/GrowthLab.d.mts +1 -7
  8. package/dist/algorithms/GrowthLab.mjs +1 -1
  9. package/dist/algorithms/HashLab.d.mts +1 -9
  10. package/dist/algorithms/HashLab.mjs +3 -2
  11. package/dist/algorithms/HeapDualView.d.mts +1 -7
  12. package/dist/algorithms/HeapQuestLab.d.mts +1 -10
  13. package/dist/algorithms/HeapQuestLab.mjs +1 -1
  14. package/dist/algorithms/ListLab.d.mts +1 -9
  15. package/dist/algorithms/ListLab.mjs +1 -1
  16. package/dist/algorithms/SearchLab.d.mts +1 -7
  17. package/dist/algorithms/SearchLab.mjs +1 -1
  18. package/dist/algorithms/SortingLab.d.mts +1 -9
  19. package/dist/algorithms/SortingLab.mjs +1 -1
  20. package/dist/algorithms/TraceTransport.d.mts +1 -8
  21. package/dist/algorithms/TraceTransport.mjs +0 -1
  22. package/dist/algorithms/TreeQuestLab.d.mts +1 -12
  23. package/dist/algorithms/TreeQuestLab.mjs +3 -3
  24. package/dist/algorithms/TreeScene.d.mts +1 -7
  25. package/dist/algorithms/TreeScene.mjs +8 -4
  26. package/dist/algorithms/core/index.d.mts +6 -1
  27. package/dist/algorithms/core/index.mjs +9 -4
  28. package/dist/algorithms/cost-derivation/core.d.mts +1 -1
  29. package/dist/algorithms/cost-derivation/core.mjs +1 -1
  30. package/dist/algorithms/cost-derivation/index.d.mts +2 -1
  31. package/dist/algorithms/cost-derivation/preset.d.mts +1 -7
  32. package/dist/algorithms/cost-derivation/preset.mjs +1 -1
  33. package/dist/algorithms/dp.d.mts +0 -1
  34. package/dist/algorithms/graph.d.mts +0 -1
  35. package/dist/algorithms/graph.mjs +1 -1
  36. package/dist/algorithms/heap.d.mts +0 -1
  37. package/dist/algorithms/index.d.mts +6 -5
  38. package/dist/algorithms/index.mjs +12 -12
  39. package/dist/algorithms/normalize.d.mts +0 -1
  40. package/dist/algorithms/presets.d.mts +0 -1
  41. package/dist/algorithms/search.d.mts +0 -1
  42. package/dist/algorithms/sorting.d.mts +0 -1
  43. package/dist/algorithms/tree/index.mjs +1 -1
  44. package/dist/algorithms/tree-builder.d.mts +0 -1
  45. package/dist/algorithms/tree-layout.d.mts +0 -1
  46. package/dist/algorithms/tree-presets.d.mts +0 -1
  47. package/dist/algorithms/tree.d.mts +0 -1
  48. package/dist/authoring/evidence.mjs +68 -0
  49. package/dist/authoring/index.d.mts +2 -3
  50. package/dist/authoring/index.mjs +2 -2
  51. package/dist/authoring/quality.d.mts +4 -3
  52. package/dist/authoring/quality.mjs +28 -1
  53. package/dist/authoring/report.d.mts +9 -1
  54. package/dist/authoring/report.mjs +12 -1
  55. package/dist/biology/cell-division/activity.d.mts +1 -1
  56. package/dist/biology/cell-division/core.mjs +2 -1
  57. package/dist/biology/cell-division/index.d.mts +4 -1
  58. package/dist/biology/cell-division/meiosis-activity.d.mts +1 -1
  59. package/dist/biology/cell-division/meiosis-preset.d.mts +2 -12
  60. package/dist/biology/cell-division/meiosis-preset.mjs +1 -1
  61. package/dist/biology/cell-division/meiosis-scene.d.mts +1 -7
  62. package/dist/biology/cell-division/preset.d.mts +2 -13
  63. package/dist/biology/cell-division/preset.mjs +6 -4
  64. package/dist/biology/cell-energy/activity.d.mts +1 -1
  65. package/dist/biology/cell-energy/core.d.mts +1 -6
  66. package/dist/biology/cell-energy/index.d.mts +3 -1
  67. package/dist/biology/cell-energy/preset.d.mts +2 -15
  68. package/dist/biology/cell-sample-investigator/core.d.mts +18 -0
  69. package/dist/biology/cell-sample-investigator/core.mjs +56 -0
  70. package/dist/biology/cell-sample-investigator.d.mts +17 -0
  71. package/dist/biology/cell-sample-investigator.mjs +446 -0
  72. package/dist/biology/cell-system/activity.d.mts +1 -1
  73. package/dist/biology/cell-system/index.d.mts +3 -1
  74. package/dist/biology/cell-system/preset.d.mts +2 -13
  75. package/dist/biology/cell-system/preset.mjs +5 -5
  76. package/dist/biology/enzyme-rate/index.d.mts +2 -1
  77. package/dist/biology/enzyme-rate/preset.d.mts +1 -11
  78. package/dist/biology/enzyme-rate/preset.mjs +2 -1
  79. package/dist/biology/genetic-cross/core.mjs +1 -1
  80. package/dist/biology/genetic-cross/grid.mjs +3 -2
  81. package/dist/biology/genetic-cross/index.d.mts +2 -1
  82. package/dist/biology/genetic-cross/preset.d.mts +1 -12
  83. package/dist/biology/genetic-cross/sex-linked.d.mts +1 -12
  84. package/dist/biology/index.d.mts +13 -1
  85. package/dist/biology/index.mjs +3 -1
  86. package/dist/biology/membrane-transport/activity.d.mts +1 -1
  87. package/dist/biology/membrane-transport/core.d.mts +1 -7
  88. package/dist/biology/membrane-transport/index.d.mts +3 -1
  89. package/dist/biology/membrane-transport/preset.d.mts +2 -18
  90. package/dist/biology/photosynthesis-factors/index.d.mts +2 -1
  91. package/dist/biology/photosynthesis-factors/preset.d.mts +1 -11
  92. package/dist/biology/punnett-cross/index.d.mts +2 -1
  93. package/dist/biology/punnett-cross/preset.d.mts +1 -12
  94. package/dist/biology/respiration/index.d.mts +2 -1
  95. package/dist/biology/respiration/preset.d.mts +1 -7
  96. package/dist/biology/respiration/preset.mjs +2 -2
  97. package/dist/biology/sequence/central-dogma.d.mts +1 -7
  98. package/dist/biology/sequence/central-dogma.mjs +1 -1
  99. package/dist/biology/sequence/index.d.mts +2 -1
  100. package/dist/biology/sequence/preset.d.mts +1 -8
  101. package/dist/blocks/authoring.d.mts +0 -1
  102. package/dist/blocks/authoring.mjs +1 -1
  103. package/dist/blocks/catalog.d.mts +1 -1
  104. package/dist/blocks/domains.d.mts +2 -3
  105. package/dist/blocks/domains.mjs +3 -4
  106. package/dist/blocks/index.d.mts +0 -1
  107. package/dist/blocks/lab-block.mjs +14 -1
  108. package/dist/blocks/lab-config.d.mts +1 -8
  109. package/dist/blocks/lab-config.mjs +1 -1
  110. package/dist/blocks/lazy-resolve.d.mts +1 -5
  111. package/dist/blocks/lazy.d.mts +1 -3
  112. package/dist/blocks/lazy.mjs +1 -2
  113. package/dist/blocks/lesson.d.mts +1 -7
  114. package/dist/blocks/lesson.mjs +11 -10
  115. package/dist/blocks/resolve.d.mts +2 -0
  116. package/dist/blocks/resolve.mjs +5 -0
  117. package/dist/build/CircuitEditor.d.mts +1 -5
  118. package/dist/build/CircuitEditor.mjs +3 -2
  119. package/dist/build/CircuitPlayer.d.mts +1 -7
  120. package/dist/build/CircuitScene.d.mts +1 -11
  121. package/dist/build/contract.d.mts +1 -2
  122. package/dist/build/editor-ops.d.mts +0 -1
  123. package/dist/build/editor-ops.mjs +3 -2
  124. package/dist/build/flow.d.mts +0 -1
  125. package/dist/build/parts/ammeter.d.mts +1 -1
  126. package/dist/build/parts/bulb.d.mts +1 -1
  127. package/dist/build/parts/capacitor.d.mts +1 -1
  128. package/dist/build/parts/cell.d.mts +1 -1
  129. package/dist/build/parts/diode.d.mts +1 -1
  130. package/dist/build/parts/index.d.mts +10 -0
  131. package/dist/build/parts/index.mjs +1 -1
  132. package/dist/build/parts/mosfet.d.mts +1 -1
  133. package/dist/build/parts/mosfet.mjs +2 -1
  134. package/dist/build/parts/node.d.mts +1 -1
  135. package/dist/build/parts/resistor.d.mts +1 -1
  136. package/dist/build/parts/switch.d.mts +1 -1
  137. package/dist/build/registry.d.mts +0 -1
  138. package/dist/build/solve.d.mts +0 -1
  139. package/dist/build/solve.mjs +0 -0
  140. package/dist/build/viewport.mjs +3 -3
  141. package/dist/catalog/registry.d.mts +1 -2
  142. package/dist/chem/applied-chemistry-lab.d.mts +10 -0
  143. package/dist/chem/applied-chemistry-lab.mjs +341 -0
  144. package/dist/chem/battery.d.mts +1 -7
  145. package/dist/chem/battery.mjs +22 -17
  146. package/dist/chem/bohr-atom.d.mts +1 -7
  147. package/dist/chem/bohr-atom.mjs +2 -3
  148. package/dist/chem/crystal-lattice/activity.d.mts +0 -1
  149. package/dist/chem/crystal-lattice/index.d.mts +2 -1
  150. package/dist/chem/crystal-lattice/preset.d.mts +2 -18
  151. package/dist/chem/diffusion/index.d.mts +2 -1
  152. package/dist/chem/diffusion/preset.d.mts +1 -7
  153. package/dist/chem/diffusion/preset.mjs +2 -1
  154. package/dist/chem/electrochem/index.d.mts +3 -1
  155. package/dist/chem/electrochem/preset.d.mts +1 -11
  156. package/dist/chem/electrochem/preset.mjs +19 -327
  157. package/dist/chem/electrochem/scene.d.mts +2 -0
  158. package/dist/chem/electrochem/scene.mjs +370 -0
  159. package/dist/chem/equation-conservation-desk.d.mts +22 -0
  160. package/dist/chem/equation-conservation-desk.mjs +250 -0
  161. package/dist/chem/equilibrium/index.d.mts +2 -1
  162. package/dist/chem/equilibrium/preset.d.mts +1 -14
  163. package/dist/chem/equilibrium/preset.mjs +25 -16
  164. package/dist/chem/evidence-scenes.mjs +460 -0
  165. package/dist/chem/formula-forge.d.mts +11 -0
  166. package/dist/chem/formula-forge.mjs +347 -0
  167. package/dist/chem/gas-box/index.d.mts +2 -1
  168. package/dist/chem/gas-box/preset.d.mts +1 -13
  169. package/dist/chem/gas-box/preset.mjs +34 -25
  170. package/dist/chem/index.d.mts +33 -1
  171. package/dist/chem/index.mjs +17 -1
  172. package/dist/chem/industrial-process-lab.d.mts +10 -0
  173. package/dist/chem/industrial-process-lab.mjs +197 -0
  174. package/dist/chem/kinetics/index.d.mts +2 -1
  175. package/dist/chem/kinetics/preset.d.mts +1 -12
  176. package/dist/chem/kinetics/preset.mjs +27 -23
  177. package/dist/chem/mole-factory.d.mts +11 -0
  178. package/dist/chem/mole-factory.mjs +351 -0
  179. package/dist/chem/molecular-geometry/activity.d.mts +0 -1
  180. package/dist/chem/molecular-geometry/index.d.mts +2 -1
  181. package/dist/chem/molecular-geometry/preset.d.mts +1 -15
  182. package/dist/chem/molecular-geometry/preset.mjs +6 -5
  183. package/dist/chem/o-level-concepts.d.mts +32 -0
  184. package/dist/chem/o-level-concepts.mjs +700 -0
  185. package/dist/chem/orbital-overlap/activity.d.mts +0 -1
  186. package/dist/chem/orbital-overlap/index.d.mts +2 -1
  187. package/dist/chem/orbital-overlap/preset.d.mts +2 -16
  188. package/dist/chem/orbitals/activity.d.mts +0 -1
  189. package/dist/chem/orbitals/index.d.mts +2 -1
  190. package/dist/chem/orbitals/preset.d.mts +2 -20
  191. package/dist/chem/particle-theatre.d.mts +11 -0
  192. package/dist/chem/particle-theatre.mjs +362 -0
  193. package/dist/chem/periodic-trends/index.d.mts +2 -1
  194. package/dist/chem/periodic-trends/preset.d.mts +1 -9
  195. package/dist/chem/periodic-trends/preset.mjs +109 -593
  196. package/dist/chem/ratio-normalizer/core.d.mts +37 -0
  197. package/dist/chem/ratio-normalizer/core.mjs +84 -0
  198. package/dist/chem/ratio-normalizer/index.d.mts +3 -0
  199. package/dist/chem/ratio-normalizer/preset.d.mts +14 -0
  200. package/dist/chem/ratio-normalizer/preset.mjs +241 -0
  201. package/dist/chem/reaction-lab.d.mts +1 -8
  202. package/dist/chem/reaction-lab.mjs +133 -82
  203. package/dist/chem/reaction-profile.d.mts +1 -9
  204. package/dist/chem/solubility-kitchen.d.mts +11 -0
  205. package/dist/chem/solubility-kitchen.mjs +267 -0
  206. package/dist/chem/solution/dilution.d.mts +1 -13
  207. package/dist/chem/solution/dilution.mjs +6 -5
  208. package/dist/chem/solution/field.d.mts +1 -12
  209. package/dist/chem/solution/index.d.mts +2 -1
  210. package/dist/chem/solution/solution-box.d.mts +1 -13
  211. package/dist/chem/solution/solution-box.mjs +6 -5
  212. package/dist/chem/solution-mixer.d.mts +11 -0
  213. package/dist/chem/solution-mixer.mjs +268 -0
  214. package/dist/chem/species-workshop.d.mts +11 -0
  215. package/dist/chem/species-workshop.mjs +274 -0
  216. package/dist/chem/stereochemistry/activity.d.mts +0 -1
  217. package/dist/chem/stereochemistry/core.mjs +66 -67
  218. package/dist/chem/stereochemistry/index.d.mts +2 -1
  219. package/dist/chem/stereochemistry/preset.d.mts +1 -14
  220. package/dist/chem/stoichiometry/index.d.mts +2 -1
  221. package/dist/chem/stoichiometry/preset.d.mts +1 -11
  222. package/dist/chem/stoichiometry/preset.mjs +10 -6
  223. package/dist/chem/structure-detective.d.mts +12 -0
  224. package/dist/chem/structure-detective.mjs +496 -0
  225. package/dist/chem/titration/index.d.mts +2 -1
  226. package/dist/chem/titration/preset.d.mts +1 -13
  227. package/dist/chem/titration/preset.mjs +10 -8
  228. package/dist/circuits/ac-dc/index.d.mts +2 -1
  229. package/dist/circuits/ac-dc/preset.d.mts +3 -11
  230. package/dist/circuits/ac-dc/preset.mjs +214 -52
  231. package/dist/circuits/ac-response/activity.mjs +121 -0
  232. package/dist/circuits/ac-response/preset.mjs +474 -0
  233. package/dist/circuits/brownout/index.d.mts +2 -1
  234. package/dist/circuits/brownout/preset.d.mts +1 -9
  235. package/dist/circuits/brownout/preset.mjs +22 -21
  236. package/dist/circuits/capacitor-leak/index.d.mts +2 -1
  237. package/dist/circuits/capacitor-leak/preset.d.mts +4 -14
  238. package/dist/circuits/capacitor-leak/preset.mjs +396 -228
  239. package/dist/circuits/cell-combination/activity.mjs +119 -0
  240. package/dist/circuits/cell-combination/core.mjs +115 -0
  241. package/dist/circuits/cell-combination/preset.mjs +265 -0
  242. package/dist/circuits/circuit/activity-plan.mjs +6 -6
  243. package/dist/circuits/circuit/asset.d.mts +0 -1
  244. package/dist/circuits/circuit/asset.mjs +1 -2
  245. package/dist/circuits/circuit/index.d.mts +2 -1
  246. package/dist/circuits/circuit/preset.d.mts +1 -8
  247. package/dist/circuits/circuit/preset.mjs +25 -36
  248. package/dist/circuits/circuit-builder.d.mts +1 -10
  249. package/dist/circuits/circuit-lab.d.mts +1 -11
  250. package/dist/circuits/circuit-lab.mjs +82 -92
  251. package/dist/circuits/cmos-gate/index.d.mts +3 -1
  252. package/dist/circuits/cmos-gate/inverter.d.mts +1 -10
  253. package/dist/circuits/cmos-gate/inverter.mjs +23 -18
  254. package/dist/circuits/cmos-gate/nand.d.mts +1 -9
  255. package/dist/circuits/cmos-gate/nand.mjs +6 -5
  256. package/dist/circuits/cmos-gate/nor.d.mts +1 -9
  257. package/dist/circuits/cmos-gate/nor.mjs +7 -6
  258. package/dist/circuits/cmos-gate/preset.d.mts +2 -1
  259. package/dist/circuits/cmos-gate/rnmos-not.d.mts +1 -10
  260. package/dist/circuits/cmos-gate/rnmos-not.mjs +9 -8
  261. package/dist/circuits/diode/index.d.mts +2 -1
  262. package/dist/circuits/diode/preset.d.mts +2 -11
  263. package/dist/circuits/diode/preset.mjs +251 -77
  264. package/dist/circuits/energy-cost/activity.mjs +120 -0
  265. package/dist/circuits/energy-cost/core.mjs +93 -0
  266. package/dist/circuits/energy-cost/preset.mjs +278 -0
  267. package/dist/circuits/index.d.mts +16 -1
  268. package/dist/circuits/index.mjs +5 -1
  269. package/dist/circuits/kirchhoff/core.d.mts +70 -0
  270. package/dist/circuits/kirchhoff/core.mjs +187 -0
  271. package/dist/circuits/kirchhoff/index.d.mts +3 -0
  272. package/dist/circuits/kirchhoff/preset.d.mts +37 -0
  273. package/dist/circuits/kirchhoff/preset.mjs +929 -0
  274. package/dist/circuits/meter-conversion/activity.mjs +119 -0
  275. package/dist/circuits/meter-conversion/core.mjs +114 -0
  276. package/dist/circuits/meter-conversion/preset.mjs +311 -0
  277. package/dist/circuits/network-reduction/activity.mjs +140 -0
  278. package/dist/circuits/network-reduction/preset.mjs +424 -0
  279. package/dist/circuits/network-reduction/presets.mjs +239 -0
  280. package/dist/circuits/null-balance/activity.mjs +96 -0
  281. package/dist/circuits/null-balance/core.mjs +145 -0
  282. package/dist/circuits/null-balance/preset.mjs +375 -0
  283. package/dist/circuits/potential-divider/core.d.mts +42 -0
  284. package/dist/circuits/potential-divider/core.mjs +80 -0
  285. package/dist/circuits/potential-divider/index.d.mts +3 -0
  286. package/dist/circuits/potential-divider/preset.d.mts +35 -0
  287. package/dist/circuits/potential-divider/preset.mjs +686 -0
  288. package/dist/circuits/rc-charging/index.d.mts +2 -1
  289. package/dist/circuits/rc-charging/preset.d.mts +2 -12
  290. package/dist/circuits/rc-charging/preset.mjs +318 -101
  291. package/dist/circuits/semiconductor/bjt-inside.d.mts +1 -9
  292. package/dist/circuits/semiconductor/bjt-inside.mjs +13 -13
  293. package/dist/circuits/semiconductor/conduction.d.mts +1 -7
  294. package/dist/circuits/semiconductor/conduction.mjs +12 -14
  295. package/dist/circuits/semiconductor/hall-effect.d.mts +1 -7
  296. package/dist/circuits/semiconductor/hall-effect.mjs +13 -13
  297. package/dist/circuits/semiconductor/index.d.mts +3 -1
  298. package/dist/circuits/semiconductor/mosfet-inside.d.mts +1 -10
  299. package/dist/circuits/semiconductor/mosfet-inside.mjs +50 -43
  300. package/dist/circuits/semiconductor/pn-junction.d.mts +1 -9
  301. package/dist/circuits/semiconductor/pn-junction.mjs +26 -23
  302. package/dist/circuits/semiconductor/preset.d.mts +2 -1
  303. package/dist/circuits/semiconductor/silicon-lattice.d.mts +1 -11
  304. package/dist/circuits/semiconductor/silicon-lattice.mjs +12 -12
  305. package/dist/circuits/transistor/index.d.mts +2 -1
  306. package/dist/circuits/transistor/preset.d.mts +2 -12
  307. package/dist/circuits/transistor/preset.mjs +220 -68
  308. package/dist/commerce/accounting/core.d.mts +3 -18
  309. package/dist/commerce/accounting/core.mjs +4 -26
  310. package/dist/commerce/accounting/equation-balance.d.mts +1 -11
  311. package/dist/commerce/accounting/equation-balance.mjs +31 -27
  312. package/dist/commerce/accounting/index.d.mts +2 -1
  313. package/dist/commerce/accounting/journal-poster.d.mts +1 -9
  314. package/dist/commerce/accounting/journal-poster.mjs +103 -81
  315. package/dist/commerce/accounting/statement-sorter.d.mts +1 -9
  316. package/dist/commerce/accounting/statement-sorter.mjs +34 -33
  317. package/dist/commerce/activity.d.mts +5 -23
  318. package/dist/commerce/economics/demand-shift-vs-move.d.mts +1 -13
  319. package/dist/commerce/economics/elasticity-revenue.d.mts +1 -11
  320. package/dist/commerce/economics/index.d.mts +2 -1
  321. package/dist/commerce/economics/market-equilibrium.d.mts +1 -13
  322. package/dist/commerce/economics/market-equilibrium.mjs +1 -1
  323. package/dist/commerce/finance/apportion.d.mts +1 -14
  324. package/dist/commerce/finance/apportion.mjs +36 -34
  325. package/dist/commerce/finance/break-even.d.mts +1 -12
  326. package/dist/commerce/finance/break-even.mjs +37 -63
  327. package/dist/commerce/finance/business-lesson.d.mts +3 -11
  328. package/dist/commerce/finance/business-lesson.mjs +57 -55
  329. package/dist/commerce/finance/club-subscriptions/preset.mjs +420 -0
  330. package/dist/commerce/finance/compound-interest.d.mts +1 -13
  331. package/dist/commerce/finance/compound-interest.mjs +55 -61
  332. package/dist/commerce/finance/depreciation.d.mts +1 -13
  333. package/dist/commerce/finance/depreciation.mjs +112 -95
  334. package/dist/commerce/finance/eoq.d.mts +1 -12
  335. package/dist/commerce/finance/incomplete-records/core.mjs +69 -0
  336. package/dist/commerce/finance/incomplete-records/preset.mjs +212 -0
  337. package/dist/commerce/finance/index.d.mts +2 -1
  338. package/dist/commerce/finance/inventory-policy.d.mts +1 -8
  339. package/dist/commerce/finance/limited-company.d.mts +1 -11
  340. package/dist/commerce/finance/limited-company.mjs +141 -145
  341. package/dist/commerce/finance/manufacturing-flow/preset.mjs +134 -0
  342. package/dist/commerce/finance/manufacturing-flow/scene.mjs +257 -0
  343. package/dist/commerce/finance/partnership-split/preset.mjs +218 -0
  344. package/dist/commerce/finance/ratio-lab.d.mts +2 -17
  345. package/dist/commerce/finance/ratio-lab.mjs +142 -61
  346. package/dist/commerce/finance/statement-builder.d.mts +2 -17
  347. package/dist/commerce/finance/statement-builder.mjs +64 -54
  348. package/dist/commerce/finance/supply-chain.d.mts +1 -15
  349. package/dist/commerce/finance/supply-chain.mjs +12 -3
  350. package/dist/commerce/finance/warehouse-allocation.d.mts +1 -10
  351. package/dist/commerce/index.d.mts +3 -0
  352. package/dist/core/embedding.d.mts +14 -0
  353. package/dist/{domains/ml/embedding-space → core}/embedding.mjs +5 -19
  354. package/dist/core/index.d.mts +2 -2
  355. package/dist/core/index.mjs +2 -2
  356. package/dist/core/next-token.d.mts +9 -0
  357. package/dist/{domains/ml/next-token/model.mjs → core/next-token.mjs} +9 -33
  358. package/dist/core/numeric.d.mts +1 -8
  359. package/dist/core/numeric.mjs +1 -15
  360. package/dist/core/tex.d.mts +1 -6
  361. package/dist/core/timeline.d.mts +0 -1
  362. package/dist/core/timeline.mjs +13 -10
  363. package/dist/core/util.d.mts +0 -1
  364. package/dist/data/core/evaluation-leakage.d.mts +16 -0
  365. package/dist/data/core/evaluation-leakage.mjs +24 -0
  366. package/dist/data/core/record-model.d.mts +29 -0
  367. package/dist/data/core/record-model.mjs +39 -0
  368. package/dist/data/foundation/design-records.d.mts +8 -0
  369. package/dist/data/foundation/design-records.mjs +60 -0
  370. package/dist/data/foundation/dirty-data.d.mts +8 -0
  371. package/dist/data/foundation/dirty-data.mjs +119 -0
  372. package/dist/data/index.d.mts +7 -0
  373. package/dist/data/index.mjs +8 -0
  374. package/dist/data/visuals/leakage-board.d.mts +10 -0
  375. package/dist/data/visuals/leakage-board.mjs +87 -0
  376. package/dist/data/visuals/record-model-board.d.mts +11 -0
  377. package/dist/data/visuals/record-model-board.mjs +188 -0
  378. package/dist/databases/core/access-path.d.mts +21 -0
  379. package/dist/databases/core/access-path.mjs +72 -0
  380. package/dist/databases/core/b-plus-tree.d.mts +21 -0
  381. package/dist/databases/core/b-plus-tree.mjs +54 -0
  382. package/dist/databases/core/query-plan.d.mts +32 -0
  383. package/dist/databases/core/query-plan.mjs +54 -0
  384. package/dist/databases/foundation/b-plus-range.d.mts +8 -0
  385. package/dist/databases/foundation/b-plus-range.mjs +81 -0
  386. package/dist/databases/foundation/index-detective.d.mts +8 -0
  387. package/dist/databases/foundation/index-detective.mjs +113 -0
  388. package/dist/databases/foundation/query-plan.d.mts +8 -0
  389. package/dist/databases/foundation/query-plan.mjs +90 -0
  390. package/dist/databases/foundation/range-query.d.mts +8 -0
  391. package/dist/databases/foundation/range-query.mjs +113 -0
  392. package/dist/databases/index.d.mts +14 -0
  393. package/dist/databases/index.mjs +15 -0
  394. package/dist/databases/visuals/access-path-primitives.d.mts +43 -0
  395. package/dist/databases/visuals/access-path-primitives.mjs +151 -0
  396. package/dist/databases/visuals/b-plus-tree-board.d.mts +9 -0
  397. package/dist/databases/visuals/b-plus-tree-board.mjs +96 -0
  398. package/dist/databases/visuals/index-detective-board.d.mts +12 -0
  399. package/dist/databases/visuals/index-detective-board.mjs +187 -0
  400. package/dist/databases/visuals/query-plan-board.d.mts +11 -0
  401. package/dist/databases/visuals/query-plan-board.mjs +118 -0
  402. package/dist/databases/visuals/query-plan-primitives.d.mts +17 -0
  403. package/dist/databases/visuals/query-plan-primitives.mjs +92 -0
  404. package/dist/databases/visuals/range-query-board.d.mts +11 -0
  405. package/dist/databases/visuals/range-query-board.mjs +97 -0
  406. package/dist/deep-learning/core/attention.d.mts +24 -0
  407. package/dist/deep-learning/core/attention.mjs +123 -0
  408. package/dist/deep-learning/core/causal-mask.d.mts +18 -0
  409. package/dist/deep-learning/core/causal-mask.mjs +35 -0
  410. package/dist/deep-learning/core/context-window.d.mts +15 -0
  411. package/dist/deep-learning/core/context-window.mjs +31 -0
  412. package/dist/deep-learning/core/convolution.d.mts +22 -0
  413. package/dist/deep-learning/core/convolution.mjs +91 -0
  414. package/dist/deep-learning/core/dense-layer.d.mts +49 -0
  415. package/dist/deep-learning/core/dense-layer.mjs +108 -0
  416. package/dist/deep-learning/core/embedding-neighborhood.d.mts +10 -0
  417. package/dist/deep-learning/core/embedding-neighborhood.mjs +92 -0
  418. package/dist/deep-learning/core/encoder-decoder.d.mts +17 -0
  419. package/dist/deep-learning/core/encoder-decoder.mjs +39 -0
  420. package/dist/deep-learning/core/feed-forward-network.d.mts +13 -0
  421. package/dist/deep-learning/core/feed-forward-network.mjs +27 -0
  422. package/dist/deep-learning/core/gradient-run.d.mts +12 -0
  423. package/dist/deep-learning/core/gradient-run.mjs +20 -0
  424. package/dist/deep-learning/core/gradient-step.d.mts +24 -0
  425. package/dist/deep-learning/core/gradient-step.mjs +34 -0
  426. package/dist/deep-learning/core/layer-normalization.d.mts +16 -0
  427. package/dist/deep-learning/core/layer-normalization.mjs +28 -0
  428. package/dist/deep-learning/core/learning-loop.d.mts +20 -0
  429. package/dist/deep-learning/core/learning-loop.mjs +36 -0
  430. package/dist/deep-learning/core/linear-algebra.d.mts +10 -0
  431. package/dist/deep-learning/core/linear-algebra.mjs +16 -0
  432. package/dist/deep-learning/core/linear-fit.d.mts +20 -0
  433. package/dist/deep-learning/core/linear-fit.mjs +31 -0
  434. package/dist/deep-learning/core/loss.d.mts +11 -0
  435. package/dist/deep-learning/core/loss.mjs +15 -0
  436. package/dist/deep-learning/core/memory-relay.d.mts +15 -0
  437. package/dist/deep-learning/core/memory-relay.mjs +31 -0
  438. package/dist/deep-learning/core/multi-head-attention.d.mts +17 -0
  439. package/dist/deep-learning/core/multi-head-attention.mjs +103 -0
  440. package/dist/deep-learning/core/multimodal-alignment.d.mts +18 -0
  441. package/dist/deep-learning/core/multimodal-alignment.mjs +70 -0
  442. package/dist/deep-learning/core/neural-trace.d.mts +20 -0
  443. package/dist/deep-learning/core/neural-trace.mjs +29 -0
  444. package/dist/deep-learning/core/position.d.mts +17 -0
  445. package/dist/deep-learning/core/position.mjs +64 -0
  446. package/dist/deep-learning/core/query-key-value.d.mts +31 -0
  447. package/dist/deep-learning/core/query-key-value.mjs +37 -0
  448. package/dist/deep-learning/core/residual-stream.d.mts +12 -0
  449. package/dist/deep-learning/core/residual-stream.mjs +16 -0
  450. package/dist/deep-learning/core/scaled-dot-product-attention.d.mts +24 -0
  451. package/dist/deep-learning/core/scaled-dot-product-attention.mjs +41 -0
  452. package/dist/deep-learning/core/token-generation.d.mts +14 -0
  453. package/dist/deep-learning/core/token-generation.mjs +23 -0
  454. package/dist/deep-learning/core/transformer-block.d.mts +23 -0
  455. package/dist/deep-learning/core/transformer-block.mjs +25 -0
  456. package/dist/deep-learning/core/unembedding.d.mts +25 -0
  457. package/dist/deep-learning/core/unembedding.mjs +23 -0
  458. package/dist/deep-learning/foundation/activation-gates.d.mts +12 -0
  459. package/dist/deep-learning/foundation/activation-gates.mjs +63 -0
  460. package/dist/deep-learning/foundation/affine-neuron.d.mts +14 -0
  461. package/dist/deep-learning/foundation/affine-neuron.mjs +75 -0
  462. package/dist/deep-learning/foundation/anomaly-detector.d.mts +8 -0
  463. package/dist/deep-learning/foundation/anomaly-detector.mjs +79 -0
  464. package/dist/deep-learning/foundation/attention-routing.d.mts +8 -0
  465. package/dist/deep-learning/foundation/attention-routing.mjs +41 -0
  466. package/dist/deep-learning/foundation/autoencoder.d.mts +8 -0
  467. package/dist/deep-learning/foundation/autoencoder.mjs +74 -0
  468. package/dist/deep-learning/foundation/causal-mask.d.mts +8 -0
  469. package/dist/deep-learning/foundation/causal-mask.mjs +44 -0
  470. package/dist/deep-learning/foundation/context-window.d.mts +8 -0
  471. package/dist/deep-learning/foundation/context-window.mjs +39 -0
  472. package/dist/deep-learning/foundation/denoising.d.mts +8 -0
  473. package/dist/deep-learning/foundation/denoising.mjs +78 -0
  474. package/dist/deep-learning/foundation/embedding-neighborhood.d.mts +8 -0
  475. package/dist/deep-learning/foundation/embedding-neighborhood.mjs +41 -0
  476. package/dist/deep-learning/foundation/encoder-decoder.d.mts +8 -0
  477. package/dist/deep-learning/foundation/encoder-decoder.mjs +48 -0
  478. package/dist/deep-learning/foundation/feature-map.d.mts +10 -0
  479. package/dist/deep-learning/foundation/feature-map.mjs +105 -0
  480. package/dist/deep-learning/foundation/feed-forward-network.d.mts +12 -0
  481. package/dist/deep-learning/foundation/feed-forward-network.mjs +70 -0
  482. package/dist/deep-learning/foundation/fit-evidence.d.mts +14 -0
  483. package/dist/deep-learning/foundation/fit-evidence.mjs +96 -0
  484. package/dist/deep-learning/foundation/gradient-step.d.mts +14 -0
  485. package/dist/deep-learning/foundation/gradient-step.mjs +78 -0
  486. package/dist/deep-learning/foundation/latent-space.d.mts +8 -0
  487. package/dist/deep-learning/foundation/latent-space.mjs +41 -0
  488. package/dist/deep-learning/foundation/layer-normalization.d.mts +14 -0
  489. package/dist/deep-learning/foundation/layer-normalization.mjs +65 -0
  490. package/dist/deep-learning/foundation/learning-loop.d.mts +14 -0
  491. package/dist/deep-learning/foundation/learning-loop.mjs +55 -0
  492. package/dist/deep-learning/foundation/loss-error.d.mts +11 -0
  493. package/dist/deep-learning/foundation/loss-error.mjs +50 -0
  494. package/dist/deep-learning/foundation/matrix-vector.d.mts +11 -0
  495. package/dist/deep-learning/foundation/matrix-vector.mjs +61 -0
  496. package/dist/deep-learning/foundation/memory-relay.d.mts +8 -0
  497. package/dist/deep-learning/foundation/memory-relay.mjs +48 -0
  498. package/dist/deep-learning/foundation/multi-head-attention.d.mts +8 -0
  499. package/dist/deep-learning/foundation/multi-head-attention.mjs +59 -0
  500. package/dist/deep-learning/foundation/multimodal-alignment.d.mts +8 -0
  501. package/dist/deep-learning/foundation/multimodal-alignment.mjs +63 -0
  502. package/dist/deep-learning/foundation/pixel-filter.d.mts +8 -0
  503. package/dist/deep-learning/foundation/pixel-filter.mjs +52 -0
  504. package/dist/deep-learning/foundation/position.d.mts +8 -0
  505. package/dist/deep-learning/foundation/position.mjs +40 -0
  506. package/dist/deep-learning/foundation/query-key-value.d.mts +8 -0
  507. package/dist/deep-learning/foundation/query-key-value.mjs +51 -0
  508. package/dist/deep-learning/foundation/residual-stream.d.mts +13 -0
  509. package/dist/deep-learning/foundation/residual-stream.mjs +44 -0
  510. package/dist/deep-learning/foundation/scaled-dot-product-attention.d.mts +10 -0
  511. package/dist/deep-learning/foundation/scaled-dot-product-attention.mjs +122 -0
  512. package/dist/deep-learning/foundation/tiny-network.d.mts +9 -0
  513. package/dist/deep-learning/foundation/tiny-network.mjs +48 -0
  514. package/dist/deep-learning/foundation/token-generation.d.mts +8 -0
  515. package/dist/deep-learning/foundation/token-generation.mjs +45 -0
  516. package/dist/deep-learning/foundation/training-loop.d.mts +14 -0
  517. package/dist/deep-learning/foundation/training-loop.mjs +83 -0
  518. package/dist/deep-learning/foundation/transformer-block.d.mts +13 -0
  519. package/dist/deep-learning/foundation/transformer-block.mjs +74 -0
  520. package/dist/deep-learning/foundation/unembedding.d.mts +14 -0
  521. package/dist/deep-learning/foundation/unembedding.mjs +113 -0
  522. package/dist/deep-learning/index.d.mts +91 -0
  523. package/dist/deep-learning/index.mjs +92 -0
  524. package/dist/deep-learning/visuals/activation-diagram.d.mts +10 -0
  525. package/dist/deep-learning/visuals/activation-diagram.mjs +153 -0
  526. package/dist/deep-learning/visuals/anomaly-diagram.d.mts +11 -0
  527. package/dist/deep-learning/visuals/anomaly-diagram.mjs +175 -0
  528. package/dist/deep-learning/visuals/attention-routing-diagram.d.mts +9 -0
  529. package/dist/deep-learning/visuals/attention-routing-diagram.mjs +160 -0
  530. package/dist/deep-learning/visuals/autoencoder-diagram.d.mts +12 -0
  531. package/dist/deep-learning/visuals/autoencoder-diagram.mjs +161 -0
  532. package/dist/deep-learning/visuals/causal-mask-diagram.d.mts +10 -0
  533. package/dist/deep-learning/visuals/causal-mask-diagram.mjs +183 -0
  534. package/dist/deep-learning/visuals/context-window-diagram.d.mts +9 -0
  535. package/dist/deep-learning/visuals/context-window-diagram.mjs +200 -0
  536. package/dist/deep-learning/visuals/convolution-diagram.d.mts +10 -0
  537. package/dist/deep-learning/visuals/convolution-diagram.mjs +139 -0
  538. package/dist/deep-learning/visuals/denoising-diagram.d.mts +10 -0
  539. package/dist/deep-learning/visuals/denoising-diagram.mjs +103 -0
  540. package/dist/deep-learning/visuals/embedding-neighborhood-diagram.d.mts +9 -0
  541. package/dist/deep-learning/visuals/embedding-neighborhood-diagram.mjs +162 -0
  542. package/dist/deep-learning/visuals/encoder-decoder-diagram.d.mts +10 -0
  543. package/dist/deep-learning/visuals/encoder-decoder-diagram.mjs +229 -0
  544. package/dist/deep-learning/visuals/feature-map-diagram.d.mts +13 -0
  545. package/dist/deep-learning/visuals/feature-map-diagram.mjs +168 -0
  546. package/dist/deep-learning/visuals/feed-forward-workshop-diagram.d.mts +11 -0
  547. package/dist/deep-learning/visuals/feed-forward-workshop-diagram.mjs +131 -0
  548. package/dist/deep-learning/visuals/gradient-step-diagram.d.mts +9 -0
  549. package/dist/deep-learning/visuals/gradient-step-diagram.mjs +126 -0
  550. package/dist/deep-learning/visuals/latent-space-diagram.d.mts +9 -0
  551. package/dist/deep-learning/visuals/latent-space-diagram.mjs +140 -0
  552. package/dist/deep-learning/visuals/layer-normalization-diagram.d.mts +11 -0
  553. package/dist/deep-learning/visuals/layer-normalization-diagram.mjs +191 -0
  554. package/dist/deep-learning/visuals/learning-loop-diagram.d.mts +9 -0
  555. package/dist/deep-learning/visuals/learning-loop-diagram.mjs +148 -0
  556. package/dist/deep-learning/visuals/linear-fit-diagram.d.mts +11 -0
  557. package/dist/deep-learning/visuals/linear-fit-diagram.mjs +113 -0
  558. package/dist/deep-learning/visuals/loss-diagram.d.mts +8 -0
  559. package/dist/deep-learning/visuals/loss-diagram.mjs +173 -0
  560. package/dist/deep-learning/visuals/matrix-vector-diagram.d.mts +12 -0
  561. package/dist/deep-learning/visuals/matrix-vector-diagram.mjs +165 -0
  562. package/dist/deep-learning/visuals/memory-relay-diagram.d.mts +10 -0
  563. package/dist/deep-learning/visuals/memory-relay-diagram.mjs +242 -0
  564. package/dist/deep-learning/visuals/multi-head-attention-diagram.d.mts +10 -0
  565. package/dist/deep-learning/visuals/multi-head-attention-diagram.mjs +170 -0
  566. package/dist/deep-learning/visuals/multimodal-alignment-diagram.d.mts +13 -0
  567. package/dist/deep-learning/visuals/multimodal-alignment-diagram.mjs +138 -0
  568. package/dist/deep-learning/visuals/neuron-diagram.d.mts +12 -0
  569. package/dist/deep-learning/visuals/neuron-diagram.mjs +231 -0
  570. package/dist/deep-learning/visuals/position-diagram.d.mts +10 -0
  571. package/dist/deep-learning/visuals/position-diagram.mjs +157 -0
  572. package/dist/deep-learning/visuals/query-key-value-diagram.d.mts +12 -0
  573. package/dist/deep-learning/visuals/query-key-value-diagram.mjs +247 -0
  574. package/dist/deep-learning/visuals/residual-stream-diagram.d.mts +9 -0
  575. package/dist/deep-learning/visuals/residual-stream-diagram.mjs +221 -0
  576. package/dist/deep-learning/visuals/scaled-attention-mixer.d.mts +15 -0
  577. package/dist/deep-learning/visuals/scaled-attention-mixer.mjs +244 -0
  578. package/dist/deep-learning/visuals/tiny-network-diagram.d.mts +9 -0
  579. package/dist/deep-learning/visuals/tiny-network-diagram.mjs +136 -0
  580. package/dist/deep-learning/visuals/token-generation-diagram.d.mts +10 -0
  581. package/dist/deep-learning/visuals/token-generation-diagram.mjs +199 -0
  582. package/dist/deep-learning/visuals/training-trail-diagram.d.mts +9 -0
  583. package/dist/deep-learning/visuals/training-trail-diagram.mjs +109 -0
  584. package/dist/deep-learning/visuals/transformer-block-diagram.d.mts +11 -0
  585. package/dist/deep-learning/visuals/transformer-block-diagram.mjs +273 -0
  586. package/dist/deep-learning/visuals/unembedding-diagram.d.mts +12 -0
  587. package/dist/deep-learning/visuals/unembedding-diagram.mjs +195 -0
  588. package/dist/discrete/arrangements/preset.d.mts +1 -10
  589. package/dist/discrete/bayes/preset.d.mts +1 -15
  590. package/dist/discrete/binomial/preset.d.mts +1 -11
  591. package/dist/discrete/binomial/preset.mjs +9 -4
  592. package/dist/discrete/combination-studio/figure.d.mts +0 -1
  593. package/dist/discrete/combination-studio/index.d.mts +2 -1
  594. package/dist/discrete/combination-studio/preset.d.mts +1 -12
  595. package/dist/discrete/combination-studio/preset.mjs +4 -2
  596. package/dist/discrete/core/inclusionExclusion.d.mts +0 -1
  597. package/dist/discrete/counting-slots/preset.d.mts +1 -13
  598. package/dist/discrete/counting-tree/index.d.mts +2 -1
  599. package/dist/discrete/counting-tree/preset.d.mts +1 -15
  600. package/dist/discrete/counting-tree/preset.mjs +10 -8
  601. package/dist/discrete/expected-value/preset.d.mts +1 -10
  602. package/dist/discrete/hypergeometric/preset.d.mts +1 -11
  603. package/dist/discrete/hypergeometric/preset.mjs +13 -8
  604. package/dist/discrete/index.d.mts +16 -0
  605. package/dist/discrete/induction/index.d.mts +2 -1
  606. package/dist/discrete/induction/preset.d.mts +1 -7
  607. package/dist/discrete/invariant/index.d.mts +2 -1
  608. package/dist/discrete/invariant/preset.d.mts +1 -9
  609. package/dist/discrete/karnaugh/index.d.mts +2 -1
  610. package/dist/discrete/karnaugh/preset.d.mts +1 -13
  611. package/dist/discrete/karnaugh/preset.mjs +6 -4
  612. package/dist/discrete/lln/index.d.mts +2 -1
  613. package/dist/discrete/lln/preset.d.mts +1 -7
  614. package/dist/discrete/modular-clock/index.d.mts +2 -1
  615. package/dist/discrete/modular-clock/preset.d.mts +1 -9
  616. package/dist/discrete/monte-carlo/index.d.mts +2 -1
  617. package/dist/discrete/monte-carlo/preset.d.mts +1 -15
  618. package/dist/discrete/monte-carlo/preset.mjs +1 -1
  619. package/dist/discrete/monty-hall/index.d.mts +2 -1
  620. package/dist/discrete/monty-hall/preset.d.mts +1 -10
  621. package/dist/discrete/monty-hall/preset.mjs +5 -2
  622. package/dist/discrete/outcome-builder/preset.d.mts +1 -10
  623. package/dist/discrete/outcome-builder/preset.mjs +2 -1
  624. package/dist/discrete/pascal/preset.d.mts +1 -10
  625. package/dist/discrete/pascal/preset.mjs +12 -6
  626. package/dist/discrete/pigeonhole/index.d.mts +2 -1
  627. package/dist/discrete/pigeonhole/preset.d.mts +1 -8
  628. package/dist/discrete/proof/core.d.mts +1 -1
  629. package/dist/discrete/proof-builder/index.d.mts +2 -1
  630. package/dist/discrete/proof-builder/preset.d.mts +1 -7
  631. package/dist/discrete/proof-builder/preset.mjs +2 -1
  632. package/dist/discrete/recurrence/index.d.mts +2 -1
  633. package/dist/discrete/recurrence/preset.d.mts +1 -8
  634. package/dist/discrete/rules.d.mts +1 -2
  635. package/dist/discrete/rules.mjs +1 -1
  636. package/dist/discrete/sample-space/index.d.mts +2 -1
  637. package/dist/discrete/sample-space/preset.d.mts +1 -15
  638. package/dist/discrete/sample-space/preset.mjs +2 -1
  639. package/dist/discrete/selection/preset.d.mts +1 -12
  640. package/dist/discrete/statement-logic/index.d.mts +2 -1
  641. package/dist/discrete/statement-logic/preset.d.mts +1 -8
  642. package/dist/discrete/truth-table/index.d.mts +2 -1
  643. package/dist/discrete/truth-table/preset.d.mts +1 -12
  644. package/dist/discrete/truth-table/preset.mjs +4 -2
  645. package/dist/discrete/venn/index.d.mts +2 -1
  646. package/dist/discrete/venn/preset.d.mts +1 -11
  647. package/dist/discrete/venn/preset.mjs +2 -1
  648. package/dist/discrete/visuals/reasoning-scenes.mjs +1 -1
  649. package/dist/distributed-systems/core/sharding.d.mts +19 -0
  650. package/dist/distributed-systems/core/sharding.mjs +24 -0
  651. package/dist/distributed-systems/foundation/shard-key.d.mts +8 -0
  652. package/dist/distributed-systems/foundation/shard-key.mjs +103 -0
  653. package/dist/distributed-systems/index.d.mts +4 -0
  654. package/dist/distributed-systems/index.mjs +5 -0
  655. package/dist/distributed-systems/visuals/shard-key-board.d.mts +20 -0
  656. package/dist/distributed-systems/visuals/shard-key-board.mjs +126 -0
  657. package/dist/domains/accounting/bank-reconciliation/activity.mjs +96 -0
  658. package/dist/domains/accounting/bank-reconciliation/manifest.mjs +75 -0
  659. package/dist/domains/accounting/bank-reconciliation/runtime.mjs +171 -0
  660. package/dist/domains/accounting/bank-reconciliation/scene.mjs +251 -0
  661. package/dist/domains/accounting/business-day-mission/activity.mjs +114 -0
  662. package/dist/domains/accounting/business-day-mission/manifest.mjs +58 -0
  663. package/dist/domains/accounting/business-day-mission/runtime.mjs +191 -0
  664. package/dist/domains/accounting/business-day-mission/scene.mjs +184 -0
  665. package/dist/domains/accounting/business-lesson/schema.mjs +3 -6
  666. package/dist/domains/accounting/cash-budget-runway/activity.mjs +119 -0
  667. package/dist/domains/accounting/cash-budget-runway/manifest.mjs +74 -0
  668. package/dist/domains/accounting/cash-budget-runway/runtime.mjs +142 -0
  669. package/dist/domains/accounting/club-subscriptions/manifest.mjs +67 -0
  670. package/dist/domains/accounting/club-subscriptions/runtime.mjs +5 -0
  671. package/dist/domains/accounting/company-statement-builder/activity.mjs +114 -0
  672. package/dist/domains/accounting/company-statement-builder/manifest.mjs +68 -0
  673. package/dist/domains/accounting/company-statement-builder/runtime.mjs +110 -0
  674. package/dist/domains/accounting/control-account-builder/activity.mjs +96 -0
  675. package/dist/domains/accounting/control-account-builder/manifest.mjs +66 -0
  676. package/dist/domains/accounting/control-account-builder/runtime.mjs +151 -0
  677. package/dist/domains/accounting/control-account-builder/scene.mjs +119 -0
  678. package/dist/domains/accounting/costing-profit-bridge/activity.mjs +119 -0
  679. package/dist/domains/accounting/costing-profit-bridge/manifest.mjs +73 -0
  680. package/dist/domains/accounting/costing-profit-bridge/runtime.mjs +203 -0
  681. package/dist/domains/accounting/factory-expansion-case/activity.mjs +118 -0
  682. package/dist/domains/accounting/factory-expansion-case/manifest.mjs +59 -0
  683. package/dist/domains/accounting/factory-expansion-case/runtime.mjs +245 -0
  684. package/dist/domains/accounting/incomplete-records/manifest.mjs +71 -0
  685. package/dist/domains/accounting/incomplete-records/runtime.mjs +5 -0
  686. package/dist/domains/accounting/integrated-budget-mission/activity.mjs +115 -0
  687. package/dist/domains/accounting/integrated-budget-mission/manifest.mjs +76 -0
  688. package/dist/domains/accounting/integrated-budget-mission/runtime.mjs +169 -0
  689. package/dist/domains/accounting/integrated-budget-mission/scene.mjs +229 -0
  690. package/dist/domains/accounting/inventory-costing/activity.mjs +119 -0
  691. package/dist/domains/accounting/inventory-costing/manifest.mjs +73 -0
  692. package/dist/domains/accounting/inventory-costing/runtime.mjs +166 -0
  693. package/dist/domains/accounting/inventory-costing/scene.mjs +257 -0
  694. package/dist/domains/accounting/investment-appraisal/activity.mjs +119 -0
  695. package/dist/domains/accounting/investment-appraisal/manifest.mjs +72 -0
  696. package/dist/domains/accounting/investment-appraisal/runtime.mjs +177 -0
  697. package/dist/domains/accounting/limiting-factor-mix/activity.mjs +119 -0
  698. package/dist/domains/accounting/limiting-factor-mix/manifest.mjs +65 -0
  699. package/dist/domains/accounting/limiting-factor-mix/runtime.mjs +140 -0
  700. package/dist/domains/accounting/management-scenes.mjs +582 -0
  701. package/dist/domains/accounting/manufacturing-flow/manifest.mjs +75 -0
  702. package/dist/domains/accounting/manufacturing-flow/runtime.mjs +5 -0
  703. package/dist/domains/accounting/operating-budget-chain/activity.mjs +119 -0
  704. package/dist/domains/accounting/operating-budget-chain/manifest.mjs +75 -0
  705. package/dist/domains/accounting/operating-budget-chain/runtime.mjs +167 -0
  706. package/dist/domains/accounting/partnership-split/manifest.mjs +69 -0
  707. package/dist/domains/accounting/partnership-split/runtime.mjs +5 -0
  708. package/dist/domains/accounting/period-adjustment-workbench/activity.mjs +77 -0
  709. package/dist/domains/accounting/period-adjustment-workbench/manifest.mjs +120 -0
  710. package/dist/domains/accounting/period-adjustment-workbench/runtime.mjs +142 -0
  711. package/dist/domains/accounting/period-close-mission/activity.mjs +118 -0
  712. package/dist/domains/accounting/period-close-mission/manifest.mjs +63 -0
  713. package/dist/domains/accounting/period-close-mission/runtime.mjs +327 -0
  714. package/dist/domains/accounting/period-close-mission/scene.mjs +265 -0
  715. package/dist/domains/accounting/process-loss/activity.mjs +119 -0
  716. package/dist/domains/accounting/process-loss/manifest.mjs +60 -0
  717. package/dist/domains/accounting/process-loss/runtime.mjs +136 -0
  718. package/dist/domains/accounting/statement-builder/manifest.mjs +2 -1
  719. package/dist/domains/accounting/suspense-reconstruction/activity.mjs +84 -0
  720. package/dist/domains/accounting/suspense-reconstruction/manifest.mjs +75 -0
  721. package/dist/domains/accounting/suspense-reconstruction/runtime.mjs +138 -0
  722. package/dist/domains/accounting/suspense-reconstruction/scene.mjs +176 -0
  723. package/dist/domains/accounting/variance-detective/activity.mjs +119 -0
  724. package/dist/domains/accounting/variance-detective/manifest.mjs +57 -0
  725. package/dist/domains/accounting/variance-detective/runtime.mjs +144 -0
  726. package/dist/domains/activity-map.d.mts +0 -1
  727. package/dist/domains/activity-map.mjs +129 -0
  728. package/dist/domains/biology/cell-sample-investigator/activity.mjs +53 -0
  729. package/dist/domains/biology/cell-sample-investigator/manifest.mjs +72 -0
  730. package/dist/domains/biology/cell-sample-investigator/runtime.mjs +6 -0
  731. package/dist/domains/biology/genetic-cross/runtime.mjs +2 -1
  732. package/dist/domains/biology/punnett-cross/manifest.mjs +1 -1
  733. package/dist/domains/biology/sequence/runtime.mjs +2 -1
  734. package/dist/domains/biology/sex-linked-cross/manifest.mjs +1 -1
  735. package/dist/domains/block-loaders.mjs +3 -0
  736. package/dist/domains/block-sets/accounting.mjs +56 -14
  737. package/dist/domains/block-sets/biology.mjs +15 -13
  738. package/dist/domains/block-sets/chem.mjs +131 -19
  739. package/dist/domains/block-sets/circuits.mjs +38 -20
  740. package/dist/domains/block-sets/data.mjs +10 -0
  741. package/dist/domains/block-sets/databases.mjs +17 -0
  742. package/dist/domains/block-sets/distributed-systems.mjs +9 -0
  743. package/dist/domains/block-sets/math.mjs +71 -53
  744. package/dist/domains/block-sets/ml.mjs +72 -8
  745. package/dist/domains/block-sets/networking.mjs +109 -9
  746. package/dist/domains/block-sets/physics.mjs +137 -71
  747. package/dist/domains/blocks.mjs +1 -1
  748. package/dist/domains/catalog-map.mjs +9411 -2599
  749. package/dist/domains/chem/air-composition/manifest.mjs +45 -0
  750. package/dist/domains/chem/air-composition/runtime.mjs +5 -0
  751. package/dist/domains/chem/alkene-geometry/activity.mjs +73 -0
  752. package/dist/domains/chem/alkene-geometry/manifest.mjs +58 -0
  753. package/dist/domains/chem/alkene-geometry/model.mjs +204 -0
  754. package/dist/domains/chem/alkene-geometry/runtime.mjs +122 -0
  755. package/dist/domains/chem/alkene-geometry/scene.mjs +170 -0
  756. package/dist/domains/chem/apparatus-choice/manifest.mjs +51 -0
  757. package/dist/domains/chem/apparatus-choice/runtime.mjs +5 -0
  758. package/dist/domains/chem/applied-chemistry/manifest.mjs +62 -0
  759. package/dist/domains/chem/applied-chemistry/runtime.mjs +5 -0
  760. package/dist/domains/chem/arene-evidence/activity.mjs +86 -0
  761. package/dist/domains/chem/arene-evidence/manifest.mjs +51 -0
  762. package/dist/domains/chem/arene-evidence/model.d.mts +71 -0
  763. package/dist/domains/chem/arene-evidence/model.mjs +116 -0
  764. package/dist/domains/chem/arene-evidence/runtime.mjs +138 -0
  765. package/dist/domains/chem/arene-evidence/scene.d.mts +8 -0
  766. package/dist/domains/chem/arene-evidence/scene.mjs +208 -0
  767. package/dist/domains/chem/battery/manifest.mjs +1 -0
  768. package/dist/domains/chem/bohr-atom/manifest.mjs +1 -0
  769. package/dist/domains/chem/catalytic-cycle/activity.mjs +36 -0
  770. package/dist/domains/chem/catalytic-cycle/manifest.mjs +44 -0
  771. package/dist/domains/chem/catalytic-cycle/model.mjs +61 -0
  772. package/dist/domains/chem/catalytic-cycle/runtime.mjs +61 -0
  773. package/dist/domains/chem/catalytic-cycle/scene.mjs +27 -0
  774. package/dist/domains/chem/change-detective/activity.mjs +81 -0
  775. package/dist/domains/chem/change-detective/manifest.mjs +46 -0
  776. package/dist/domains/chem/change-detective/model.mjs +65 -0
  777. package/dist/domains/chem/change-detective/runtime.mjs +73 -0
  778. package/dist/domains/chem/change-detective/scene.mjs +415 -0
  779. package/dist/domains/chem/chem-qualitative-analysis/activity.mjs +95 -0
  780. package/dist/domains/chem/chem-qualitative-analysis/manifest.mjs +68 -0
  781. package/dist/domains/chem/chem-qualitative-analysis/runtime.mjs +303 -0
  782. package/dist/domains/chem/chromatography-plate/activity.mjs +87 -0
  783. package/dist/domains/chem/chromatography-plate/manifest.mjs +59 -0
  784. package/dist/domains/chem/chromatography-plate/model.mjs +180 -0
  785. package/dist/domains/chem/chromatography-plate/runtime.mjs +200 -0
  786. package/dist/domains/chem/chromatography-plate/scene.mjs +292 -0
  787. package/dist/domains/chem/complex-colour/activity.mjs +94 -0
  788. package/dist/domains/chem/complex-colour/manifest.mjs +53 -0
  789. package/dist/domains/chem/complex-colour/model.mjs +243 -0
  790. package/dist/domains/chem/complex-colour/runtime.mjs +168 -0
  791. package/dist/domains/chem/complex-colour/scene.mjs +283 -0
  792. package/dist/domains/chem/complex-shape/activity.mjs +86 -0
  793. package/dist/domains/chem/complex-shape/manifest.mjs +52 -0
  794. package/dist/domains/chem/complex-shape/model.mjs +182 -0
  795. package/dist/domains/chem/complex-shape/runtime.mjs +162 -0
  796. package/dist/domains/chem/complex-shape/scene.mjs +270 -0
  797. package/dist/domains/chem/composition-evidence/activity.mjs +94 -0
  798. package/dist/domains/chem/composition-evidence/manifest.mjs +71 -0
  799. package/dist/domains/chem/composition-evidence/model.mjs +60 -0
  800. package/dist/domains/chem/composition-evidence/runtime.mjs +127 -0
  801. package/dist/domains/chem/composition-evidence/scene.mjs +308 -0
  802. package/dist/domains/chem/conductivity-bench/activity.mjs +71 -0
  803. package/dist/domains/chem/conductivity-bench/manifest.mjs +58 -0
  804. package/dist/domains/chem/conductivity-bench/model.mjs +257 -0
  805. package/dist/domains/chem/conductivity-bench/runtime.mjs +136 -0
  806. package/dist/domains/chem/conductivity-bench/scene.mjs +305 -0
  807. package/dist/domains/chem/contact-process-control/activity.mjs +75 -0
  808. package/dist/domains/chem/contact-process-control/manifest.mjs +48 -0
  809. package/dist/domains/chem/contact-process-control/model.mjs +106 -0
  810. package/dist/domains/chem/contact-process-control/runtime.mjs +65 -0
  811. package/dist/domains/chem/contact-process-control/scene.mjs +694 -0
  812. package/dist/domains/chem/electrolysis-bench/activity.mjs +72 -0
  813. package/dist/domains/chem/electrolysis-bench/manifest.mjs +71 -0
  814. package/dist/domains/chem/electrolysis-bench/model.mjs +174 -0
  815. package/dist/domains/chem/electrolysis-bench/runtime.mjs +169 -0
  816. package/dist/domains/chem/electrolysis-bench/scene.mjs +291 -0
  817. package/dist/domains/chem/energy-cycle/activity.mjs +86 -0
  818. package/dist/domains/chem/energy-cycle/manifest.mjs +52 -0
  819. package/dist/domains/chem/energy-cycle/model.mjs +249 -0
  820. package/dist/domains/chem/energy-cycle/runtime.mjs +181 -0
  821. package/dist/domains/chem/energy-cycle/scene.mjs +277 -0
  822. package/dist/domains/chem/equation-conservation-desk/activity.mjs +55 -0
  823. package/dist/domains/chem/equation-conservation-desk/manifest.mjs +61 -0
  824. package/dist/domains/chem/equation-conservation-desk/runtime.mjs +6 -0
  825. package/dist/domains/chem/faraday-bench/activity.mjs +51 -0
  826. package/dist/domains/chem/faraday-bench/manifest.mjs +65 -0
  827. package/dist/domains/chem/faraday-bench/model.mjs +193 -0
  828. package/dist/domains/chem/faraday-bench/runtime.mjs +99 -0
  829. package/dist/domains/chem/faraday-bench/scene.mjs +254 -0
  830. package/dist/domains/chem/flame-test/activity.mjs +66 -0
  831. package/dist/domains/chem/flame-test/manifest.mjs +66 -0
  832. package/dist/domains/chem/flame-test/model.mjs +149 -0
  833. package/dist/domains/chem/flame-test/runtime.mjs +120 -0
  834. package/dist/domains/chem/flame-test/scene.mjs +172 -0
  835. package/dist/domains/chem/formula-forge/activity.mjs +55 -0
  836. package/dist/domains/chem/formula-forge/manifest.mjs +66 -0
  837. package/dist/domains/chem/formula-forge/runtime.mjs +6 -0
  838. package/dist/domains/chem/formula-workbench/activity.mjs +92 -0
  839. package/dist/domains/chem/formula-workbench/manifest.mjs +73 -0
  840. package/dist/domains/chem/formula-workbench/model.mjs +89 -0
  841. package/dist/domains/chem/formula-workbench/runtime.mjs +135 -0
  842. package/dist/domains/chem/formula-workbench/scene.mjs +275 -0
  843. package/dist/domains/chem/fuel-cell-flow/activity.mjs +81 -0
  844. package/dist/domains/chem/fuel-cell-flow/manifest.mjs +49 -0
  845. package/dist/domains/chem/fuel-cell-flow/model.mjs +63 -0
  846. package/dist/domains/chem/fuel-cell-flow/runtime.mjs +134 -0
  847. package/dist/domains/chem/fuel-cell-flow/scene.mjs +245 -0
  848. package/dist/domains/chem/functional-group-lens/activity.mjs +86 -0
  849. package/dist/domains/chem/functional-group-lens/manifest.mjs +54 -0
  850. package/dist/domains/chem/functional-group-lens/model.d.mts +128 -0
  851. package/dist/domains/chem/functional-group-lens/model.mjs +250 -0
  852. package/dist/domains/chem/functional-group-lens/runtime.d.mts +16 -0
  853. package/dist/domains/chem/functional-group-lens/runtime.mjs +135 -0
  854. package/dist/domains/chem/functional-group-lens/scene.d.mts +8 -0
  855. package/dist/domains/chem/functional-group-lens/scene.mjs +389 -0
  856. package/dist/domains/chem/gas-box/manifest.mjs +18 -3
  857. package/dist/domains/chem/hydrate-cycle/activity.mjs +78 -0
  858. package/dist/domains/chem/hydrate-cycle/manifest.mjs +47 -0
  859. package/dist/domains/chem/hydrate-cycle/model.mjs +66 -0
  860. package/dist/domains/chem/hydrate-cycle/runtime.mjs +72 -0
  861. package/dist/domains/chem/hydrate-cycle/scene.mjs +187 -0
  862. package/dist/domains/chem/industrial-process/manifest.mjs +51 -0
  863. package/dist/domains/chem/industrial-process/runtime.mjs +5 -0
  864. package/dist/domains/chem/ionic-bond-builder/manifest.mjs +47 -0
  865. package/dist/domains/chem/ionic-bond-builder/runtime.mjs +5 -0
  866. package/dist/domains/chem/isomer-builder/activity.mjs +86 -0
  867. package/dist/domains/chem/isomer-builder/manifest.mjs +52 -0
  868. package/dist/domains/chem/isomer-builder/model.mjs +345 -0
  869. package/dist/domains/chem/isomer-builder/runtime.mjs +174 -0
  870. package/dist/domains/chem/isomer-builder/scene.mjs +216 -0
  871. package/dist/domains/chem/mechanism-walk/activity.mjs +53 -0
  872. package/dist/domains/chem/mechanism-walk/manifest.mjs +53 -0
  873. package/dist/domains/chem/mechanism-walk/model.mjs +429 -0
  874. package/dist/domains/chem/mechanism-walk/runtime.mjs +76 -0
  875. package/dist/domains/chem/mechanism-walk/scene.mjs +36 -0
  876. package/dist/domains/chem/mole-factory/activity.mjs +55 -0
  877. package/dist/domains/chem/mole-factory/manifest.mjs +62 -0
  878. package/dist/domains/chem/mole-factory/runtime.mjs +6 -0
  879. package/dist/domains/chem/nmr-reader/activity.mjs +88 -0
  880. package/dist/domains/chem/nmr-reader/manifest.mjs +59 -0
  881. package/dist/domains/chem/nmr-reader/model.mjs +200 -0
  882. package/dist/domains/chem/nmr-reader/runtime.mjs +167 -0
  883. package/dist/domains/chem/nmr-reader/scene.mjs +30 -0
  884. package/dist/domains/chem/orbital-diagram/activity.mjs +74 -0
  885. package/dist/domains/chem/orbital-diagram/manifest.mjs +58 -0
  886. package/dist/domains/chem/orbital-diagram/model.mjs +182 -0
  887. package/dist/domains/chem/orbital-diagram/runtime.mjs +98 -0
  888. package/dist/domains/chem/orbital-diagram/scene.mjs +289 -0
  889. package/dist/domains/chem/organic-formula-studio/activity.mjs +128 -0
  890. package/dist/domains/chem/organic-formula-studio/manifest.mjs +67 -0
  891. package/dist/domains/chem/organic-formula-studio/model.mjs +47 -0
  892. package/dist/domains/chem/organic-formula-studio/pattern-scene.mjs +344 -0
  893. package/dist/domains/chem/organic-formula-studio/runtime.mjs +221 -0
  894. package/dist/domains/chem/organic-formula-studio/scene.mjs +354 -0
  895. package/dist/domains/chem/organic-formula-studio/topics.mjs +186 -0
  896. package/dist/domains/chem/organic-reaction-map/manifest.mjs +67 -0
  897. package/dist/domains/chem/organic-reaction-map/runtime.mjs +5 -0
  898. package/dist/domains/chem/particle-theatre/manifest.mjs +66 -0
  899. package/dist/domains/chem/particle-theatre/runtime.mjs +5 -0
  900. package/dist/domains/chem/percent-lens/activity.mjs +119 -0
  901. package/dist/domains/chem/percent-lens/manifest.mjs +65 -0
  902. package/dist/domains/chem/percent-lens/model.mjs +84 -0
  903. package/dist/domains/chem/percent-lens/runtime.mjs +114 -0
  904. package/dist/domains/chem/percent-lens/scene.mjs +278 -0
  905. package/dist/domains/chem/percentage-purity-lab/activity.mjs +85 -0
  906. package/dist/domains/chem/percentage-purity-lab/manifest.mjs +51 -0
  907. package/dist/domains/chem/percentage-purity-lab/model.mjs +101 -0
  908. package/dist/domains/chem/percentage-purity-lab/runtime.mjs +146 -0
  909. package/dist/domains/chem/percentage-purity-lab/scene.mjs +309 -0
  910. package/dist/domains/chem/percentage-yield-lab/activity.mjs +54 -0
  911. package/dist/domains/chem/percentage-yield-lab/manifest.mjs +60 -0
  912. package/dist/domains/chem/percentage-yield-lab/model.mjs +96 -0
  913. package/dist/domains/chem/percentage-yield-lab/runtime.mjs +124 -0
  914. package/dist/domains/chem/percentage-yield-lab/scene.mjs +152 -0
  915. package/dist/domains/chem/polymer-builder/activity.mjs +88 -0
  916. package/dist/domains/chem/polymer-builder/manifest.mjs +63 -0
  917. package/dist/domains/chem/polymer-builder/model.mjs +200 -0
  918. package/dist/domains/chem/polymer-builder/runtime.mjs +175 -0
  919. package/dist/domains/chem/polymer-builder/scene.mjs +170 -0
  920. package/dist/domains/chem/practical-observation/activity.mjs +66 -0
  921. package/dist/domains/chem/practical-observation/manifest.mjs +50 -0
  922. package/dist/domains/chem/practical-observation/model.mjs +487 -0
  923. package/dist/domains/chem/practical-observation/runtime.mjs +113 -0
  924. package/dist/domains/chem/practical-observation/scene.mjs +662 -0
  925. package/dist/domains/chem/precipitation-bench/activity.mjs +65 -0
  926. package/dist/domains/chem/precipitation-bench/manifest.mjs +61 -0
  927. package/dist/domains/chem/precipitation-bench/model.mjs +119 -0
  928. package/dist/domains/chem/precipitation-bench/runtime.mjs +90 -0
  929. package/dist/domains/chem/precipitation-bench/scene.mjs +215 -0
  930. package/dist/domains/chem/quantity-route/manifest.mjs +133 -0
  931. package/dist/domains/chem/quantity-route/runtime.mjs +5 -0
  932. package/dist/domains/chem/ratio-normalizer/manifest.mjs +61 -0
  933. package/dist/domains/chem/ratio-normalizer/runtime.mjs +5 -0
  934. package/dist/domains/chem/reaction-evidence/manifest.mjs +51 -0
  935. package/dist/domains/chem/reaction-evidence/runtime.mjs +5 -0
  936. package/dist/domains/chem/reaction-lab/manifest.mjs +2 -1
  937. package/dist/domains/chem/reaction-profile/manifest.mjs +1 -0
  938. package/dist/domains/chem/reagent-ladder/activity.mjs +85 -0
  939. package/dist/domains/chem/reagent-ladder/manifest.mjs +58 -0
  940. package/dist/domains/chem/reagent-ladder/model.mjs +120 -0
  941. package/dist/domains/chem/reagent-ladder/runtime.mjs +107 -0
  942. package/dist/domains/chem/reagent-ladder/scene.mjs +174 -0
  943. package/dist/domains/chem/redox-balancer/activity.mjs +86 -0
  944. package/dist/domains/chem/redox-balancer/manifest.mjs +52 -0
  945. package/dist/domains/chem/redox-balancer/model.mjs +191 -0
  946. package/dist/domains/chem/redox-balancer/runtime.mjs +175 -0
  947. package/dist/domains/chem/redox-balancer/scene.mjs +159 -0
  948. package/dist/domains/chem/relation-origin/activity.mjs +42 -0
  949. package/dist/domains/chem/relation-origin/manifest.mjs +61 -0
  950. package/dist/domains/chem/relation-origin/model.mjs +172 -0
  951. package/dist/domains/chem/relation-origin/runtime.mjs +114 -0
  952. package/dist/domains/chem/relation-origin/scene.mjs +195 -0
  953. package/dist/domains/chem/solubility-kitchen/activity.mjs +54 -0
  954. package/dist/domains/chem/solubility-kitchen/manifest.mjs +66 -0
  955. package/dist/domains/chem/solubility-kitchen/runtime.mjs +6 -0
  956. package/dist/domains/chem/soluble-salt-workshop/activity.mjs +115 -0
  957. package/dist/domains/chem/soluble-salt-workshop/manifest.mjs +50 -0
  958. package/dist/domains/chem/soluble-salt-workshop/model.mjs +187 -0
  959. package/dist/domains/chem/soluble-salt-workshop/runtime.mjs +118 -0
  960. package/dist/domains/chem/soluble-salt-workshop/scene.mjs +700 -0
  961. package/dist/domains/chem/solution-mixer/activity.mjs +54 -0
  962. package/dist/domains/chem/solution-mixer/manifest.mjs +58 -0
  963. package/dist/domains/chem/solution-mixer/runtime.mjs +6 -0
  964. package/dist/domains/chem/species-workshop/activity.mjs +55 -0
  965. package/dist/domains/chem/species-workshop/manifest.mjs +66 -0
  966. package/dist/domains/chem/species-workshop/runtime.mjs +6 -0
  967. package/dist/domains/chem/specimen-row/activity.mjs +70 -0
  968. package/dist/domains/chem/specimen-row/manifest.mjs +57 -0
  969. package/dist/domains/chem/specimen-row/model.mjs +122 -0
  970. package/dist/domains/chem/specimen-row/runtime.mjs +105 -0
  971. package/dist/domains/chem/specimen-row/scene.mjs +230 -0
  972. package/dist/domains/chem/spectrum-reader/activity.mjs +36 -0
  973. package/dist/domains/chem/spectrum-reader/manifest.mjs +47 -0
  974. package/dist/domains/chem/spectrum-reader/model.mjs +244 -0
  975. package/dist/domains/chem/spectrum-reader/runtime.mjs +62 -0
  976. package/dist/domains/chem/spectrum-reader/scene.mjs +37 -0
  977. package/dist/domains/chem/structure-detective/activity.mjs +67 -0
  978. package/dist/domains/chem/structure-detective/manifest.mjs +59 -0
  979. package/dist/domains/chem/structure-detective/runtime.mjs +6 -0
  980. package/dist/domains/chem/synthesis-route/activity.mjs +36 -0
  981. package/dist/domains/chem/synthesis-route/manifest.mjs +45 -0
  982. package/dist/domains/chem/synthesis-route/model.mjs +165 -0
  983. package/dist/domains/chem/synthesis-route/runtime.mjs +67 -0
  984. package/dist/domains/chem/synthesis-route/scene.mjs +152 -0
  985. package/dist/domains/chem/titration/manifest.mjs +2 -0
  986. package/dist/domains/chem/titration-run/activity.mjs +54 -0
  987. package/dist/domains/chem/titration-run/manifest.mjs +61 -0
  988. package/dist/domains/chem/titration-run/model.mjs +174 -0
  989. package/dist/domains/chem/titration-run/runtime.mjs +113 -0
  990. package/dist/domains/chem/titration-run/scene.mjs +166 -0
  991. package/dist/domains/chem/trend-axis/activity.mjs +52 -0
  992. package/dist/domains/chem/trend-axis/manifest.mjs +57 -0
  993. package/dist/domains/chem/trend-axis/model.mjs +487 -0
  994. package/dist/domains/chem/trend-axis/runtime.mjs +87 -0
  995. package/dist/domains/chem/trend-axis/scene.mjs +246 -0
  996. package/dist/domains/circuits/ac-dc/manifest.mjs +65 -0
  997. package/dist/domains/circuits/ac-dc/runtime.mjs +5 -0
  998. package/dist/domains/circuits/ac-response/activity.mjs +3 -0
  999. package/dist/domains/circuits/ac-response/manifest.mjs +70 -0
  1000. package/dist/domains/circuits/ac-response/runtime.mjs +3 -0
  1001. package/dist/domains/circuits/cell-combination/activity.mjs +3 -0
  1002. package/dist/domains/circuits/cell-combination/manifest.mjs +69 -0
  1003. package/dist/domains/circuits/cell-combination/runtime.mjs +3 -0
  1004. package/dist/domains/circuits/circuit/runtime.mjs +11 -10
  1005. package/dist/domains/circuits/circuit-scene/manifest.mjs +1 -0
  1006. package/dist/domains/circuits/energy-cost/activity.mjs +3 -0
  1007. package/dist/domains/circuits/energy-cost/manifest.mjs +79 -0
  1008. package/dist/domains/circuits/energy-cost/runtime.mjs +3 -0
  1009. package/dist/domains/circuits/kirchhoff-laws/manifest.mjs +64 -0
  1010. package/dist/domains/circuits/kirchhoff-laws/runtime.mjs +5 -0
  1011. package/dist/domains/circuits/meter-conversion/activity.mjs +3 -0
  1012. package/dist/domains/circuits/meter-conversion/manifest.mjs +69 -0
  1013. package/dist/domains/circuits/meter-conversion/runtime.mjs +3 -0
  1014. package/dist/domains/circuits/network-reduction/activity.mjs +3 -0
  1015. package/dist/domains/circuits/network-reduction/manifest.mjs +85 -0
  1016. package/dist/domains/circuits/network-reduction/runtime.mjs +3 -0
  1017. package/dist/domains/circuits/null-balance/activity.mjs +3 -0
  1018. package/dist/domains/circuits/null-balance/manifest.mjs +69 -0
  1019. package/dist/domains/circuits/null-balance/runtime.mjs +3 -0
  1020. package/dist/domains/circuits/potential-divider/manifest.mjs +69 -0
  1021. package/dist/domains/circuits/potential-divider/runtime.mjs +5 -0
  1022. package/dist/domains/data/design-records/manifest.mjs +54 -0
  1023. package/dist/domains/data/design-records/runtime.mjs +3 -0
  1024. package/dist/domains/data/dirty-data/manifest.mjs +53 -0
  1025. package/dist/domains/data/dirty-data/runtime.mjs +3 -0
  1026. package/dist/domains/databases/b-plus-range/manifest.mjs +48 -0
  1027. package/dist/domains/databases/b-plus-range/runtime.mjs +3 -0
  1028. package/dist/domains/databases/index-detective/manifest.mjs +54 -0
  1029. package/dist/domains/databases/index-detective/runtime.mjs +3 -0
  1030. package/dist/domains/databases/query-plan/manifest.mjs +49 -0
  1031. package/dist/domains/databases/query-plan/runtime.mjs +3 -0
  1032. package/dist/domains/databases/range-query/manifest.mjs +53 -0
  1033. package/dist/domains/databases/range-query/runtime.mjs +3 -0
  1034. package/dist/domains/discrete/arrangements/manifest.mjs +2 -0
  1035. package/dist/domains/discrete/combination-studio/manifest.mjs +2 -0
  1036. package/dist/domains/discrete/counting-tree/manifest.mjs +2 -0
  1037. package/dist/domains/discrete/rule-card/builtins.mjs +1 -1
  1038. package/dist/domains/discrete/rule-card/manifest.mjs +2 -0
  1039. package/dist/domains/discrete/rule-card/runtime.mjs +14 -12
  1040. package/dist/domains/discrete/selection/manifest.mjs +2 -0
  1041. package/dist/domains/distributed-systems/shard-key/manifest.mjs +50 -0
  1042. package/dist/domains/distributed-systems/shard-key/runtime.mjs +3 -0
  1043. package/dist/domains/domain-map.mjs +1008 -0
  1044. package/dist/domains/exam/exam-question/manifest.mjs +3 -12
  1045. package/dist/domains/geometry/geometry-board/scene.mjs +1 -1
  1046. package/dist/domains/geometry/intersecting-circles/manifest.mjs +1 -0
  1047. package/dist/domains/ict/binary-counter/runtime.mjs +5 -5
  1048. package/dist/domains/ict/graph-algorithm/authoring.mjs +1 -1
  1049. package/dist/domains/ict/logic-circuit/runtime.mjs +7 -6
  1050. package/dist/domains/ict/sequence-detector/runtime.mjs +1 -1
  1051. package/dist/domains/ict/tree-quest/authoring.mjs +1 -1
  1052. package/dist/domains/language/agreement/authoring.mjs +2 -1
  1053. package/dist/domains/language/article-lens/authoring.mjs +2 -1
  1054. package/dist/domains/language/cloze/authoring.mjs +2 -1
  1055. package/dist/domains/language/error-correct/authoring.mjs +2 -1
  1056. package/dist/domains/language/preposition/authoring.mjs +2 -1
  1057. package/dist/domains/manifests.mjs +719 -283
  1058. package/dist/domains/math/area-model/manifest.mjs +2 -0
  1059. package/dist/domains/math/balance-algebra/manifest.mjs +2 -0
  1060. package/dist/domains/math/balance-algebra/runtime.mjs +2 -0
  1061. package/dist/domains/math/bounds-window/manifest.mjs +64 -0
  1062. package/dist/domains/math/bounds-window/runtime.mjs +29 -0
  1063. package/dist/domains/math/cone-frustum/manifest.mjs +69 -0
  1064. package/dist/domains/math/cone-frustum/runtime.mjs +20 -0
  1065. package/dist/domains/math/custom-scene/manifest.mjs +2 -0
  1066. package/dist/domains/math/derivation/manifest.mjs +1 -0
  1067. package/dist/domains/math/derivative-explorer/manifest.mjs +1 -0
  1068. package/dist/domains/math/derivative-explorer/runtime.mjs +4 -2
  1069. package/dist/domains/math/differential-equation/manifest.mjs +1 -0
  1070. package/dist/domains/math/differential-equation/runtime.mjs +2 -1
  1071. package/dist/domains/math/exact-triangle/manifest.mjs +62 -0
  1072. package/dist/domains/math/exact-triangle/runtime.mjs +19 -0
  1073. package/dist/domains/math/function-machine/manifest.mjs +1 -0
  1074. package/dist/domains/math/fundamental-theorem/manifest.mjs +1 -0
  1075. package/dist/domains/math/fundamental-theorem/runtime.mjs +4 -2
  1076. package/dist/domains/math/geometry-transform/runtime.mjs +25 -24
  1077. package/dist/domains/math/gradient-descent/manifest.mjs +1 -0
  1078. package/dist/domains/math/gradient-descent/runtime.mjs +4 -2
  1079. package/dist/domains/math/graph/manifest.mjs +1 -0
  1080. package/dist/domains/math/growing-pattern/manifest.mjs +2 -0
  1081. package/dist/domains/math/growing-pattern/runtime.mjs +2 -0
  1082. package/dist/domains/math/integral-explorer/manifest.mjs +1 -0
  1083. package/dist/domains/math/integral-explorer/runtime.mjs +4 -2
  1084. package/dist/domains/math/limit-explorer/manifest.mjs +1 -0
  1085. package/dist/domains/math/limit-explorer/runtime.mjs +4 -2
  1086. package/dist/domains/math/linear-system/manifest.mjs +2 -0
  1087. package/dist/domains/math/linearisation/activity.mjs +94 -0
  1088. package/dist/domains/math/linearisation/manifest.mjs +51 -0
  1089. package/dist/domains/math/linearisation/runtime.mjs +110 -0
  1090. package/dist/domains/math/log-law-workbench/activity.mjs +112 -0
  1091. package/dist/domains/math/log-law-workbench/manifest.mjs +51 -0
  1092. package/dist/domains/math/log-law-workbench/runtime.mjs +133 -0
  1093. package/dist/domains/math/modulus-cases/activity.mjs +94 -0
  1094. package/dist/domains/math/modulus-cases/manifest.mjs +52 -0
  1095. package/dist/domains/math/modulus-cases/runtime.mjs +105 -0
  1096. package/dist/domains/math/mystery-bucket/manifest.mjs +3 -1
  1097. package/dist/domains/math/mystery-bucket/runtime.mjs +3 -1
  1098. package/dist/domains/math/newton-method/manifest.mjs +1 -0
  1099. package/dist/domains/math/newton-method/runtime.mjs +2 -1
  1100. package/dist/domains/math/number-line/manifest.mjs +3 -1
  1101. package/dist/domains/math/number-line/runtime.mjs +3 -1
  1102. package/dist/domains/math/phase-portrait/manifest.mjs +1 -0
  1103. package/dist/domains/math/solid-slice/manifest.mjs +67 -0
  1104. package/dist/domains/math/solid-slice/runtime.mjs +24 -0
  1105. package/dist/domains/math/tank-design/manifest.mjs +69 -0
  1106. package/dist/domains/math/tank-design/runtime.mjs +20 -0
  1107. package/dist/domains/math/taylor-series/manifest.mjs +1 -0
  1108. package/dist/domains/math/taylor-series/runtime.mjs +2 -1
  1109. package/dist/domains/math/trig-explorer/manifest.mjs +2 -0
  1110. package/dist/domains/math/vector-geometry-two-d/activity.mjs +94 -0
  1111. package/dist/domains/math/vector-geometry-two-d/manifest.mjs +52 -0
  1112. package/dist/domains/math/vector-geometry-two-d/runtime.mjs +110 -0
  1113. package/dist/domains/math/vertex-parabola/manifest.mjs +5 -1
  1114. package/dist/domains/ml/activation-gates/manifest.mjs +60 -0
  1115. package/dist/domains/ml/activation-gates/runtime.mjs +3 -0
  1116. package/dist/domains/ml/activity.mjs +24 -20
  1117. package/dist/domains/ml/affine-neuron/manifest.mjs +62 -0
  1118. package/dist/domains/ml/affine-neuron/runtime.mjs +3 -0
  1119. package/dist/domains/ml/anomaly-detector/manifest.mjs +52 -0
  1120. package/dist/domains/ml/anomaly-detector/runtime.mjs +3 -0
  1121. package/dist/domains/ml/attention-routing/manifest.mjs +52 -0
  1122. package/dist/domains/ml/attention-routing/runtime.mjs +3 -0
  1123. package/dist/domains/ml/autoencoder/manifest.mjs +52 -0
  1124. package/dist/domains/ml/autoencoder/runtime.mjs +3 -0
  1125. package/dist/domains/ml/causal-mask/manifest.mjs +52 -0
  1126. package/dist/domains/ml/causal-mask/runtime.mjs +3 -0
  1127. package/dist/domains/ml/classifier-threshold/runtime.d.mts +2 -12
  1128. package/dist/domains/ml/context-window/manifest.mjs +53 -0
  1129. package/dist/domains/ml/context-window/runtime.mjs +3 -0
  1130. package/dist/domains/ml/decision-boundary/runtime.d.mts +2 -11
  1131. package/dist/domains/ml/decision-boundary/runtime.mjs +2 -1
  1132. package/dist/domains/ml/denoising/manifest.mjs +52 -0
  1133. package/dist/domains/ml/denoising/runtime.mjs +3 -0
  1134. package/dist/domains/ml/embedding-neighborhood/manifest.mjs +52 -0
  1135. package/dist/domains/ml/embedding-neighborhood/runtime.mjs +3 -0
  1136. package/dist/domains/ml/embedding-space/runtime.mjs +3 -4
  1137. package/dist/domains/ml/encoder-decoder/manifest.mjs +53 -0
  1138. package/dist/domains/ml/encoder-decoder/runtime.mjs +3 -0
  1139. package/dist/domains/ml/feature-map/manifest.mjs +61 -0
  1140. package/dist/domains/ml/feature-map/runtime.mjs +3 -0
  1141. package/dist/domains/ml/feed-forward-network/manifest.mjs +61 -0
  1142. package/dist/domains/ml/feed-forward-network/runtime.mjs +3 -0
  1143. package/dist/domains/ml/fit-evidence/manifest.mjs +62 -0
  1144. package/dist/domains/ml/fit-evidence/runtime.mjs +3 -0
  1145. package/dist/domains/ml/gradient-step/manifest.mjs +58 -0
  1146. package/dist/domains/ml/gradient-step/runtime.mjs +3 -0
  1147. package/dist/domains/ml/kmeans/runtime.d.mts +2 -13
  1148. package/dist/domains/ml/kmeans/runtime.mjs +2 -1
  1149. package/dist/domains/ml/knn/runtime.d.mts +2 -13
  1150. package/dist/domains/ml/knn/runtime.mjs +3 -1
  1151. package/dist/domains/ml/latent-space/manifest.mjs +52 -0
  1152. package/dist/domains/ml/latent-space/runtime.mjs +3 -0
  1153. package/dist/domains/ml/layer-normalization/manifest.mjs +79 -0
  1154. package/dist/domains/ml/layer-normalization/runtime.mjs +3 -0
  1155. package/dist/domains/ml/learning-loop/manifest.mjs +55 -0
  1156. package/dist/domains/ml/learning-loop/runtime.mjs +3 -0
  1157. package/dist/domains/ml/loss-error/manifest.mjs +57 -0
  1158. package/dist/domains/ml/loss-error/runtime.mjs +3 -0
  1159. package/dist/domains/ml/matrix-vector/manifest.mjs +57 -0
  1160. package/dist/domains/ml/matrix-vector/runtime.mjs +3 -0
  1161. package/dist/domains/ml/memory-relay/manifest.mjs +53 -0
  1162. package/dist/domains/ml/memory-relay/runtime.mjs +3 -0
  1163. package/dist/domains/ml/multi-head-attention/manifest.mjs +52 -0
  1164. package/dist/domains/ml/multi-head-attention/runtime.mjs +3 -0
  1165. package/dist/domains/ml/multimodal-alignment/manifest.mjs +52 -0
  1166. package/dist/domains/ml/multimodal-alignment/runtime.mjs +3 -0
  1167. package/dist/domains/ml/next-token/runtime.mjs +1 -1
  1168. package/dist/domains/ml/pixel-filter/manifest.mjs +48 -0
  1169. package/dist/domains/ml/pixel-filter/runtime.mjs +3 -0
  1170. package/dist/domains/ml/position-signals/manifest.mjs +52 -0
  1171. package/dist/domains/ml/position-signals/runtime.mjs +3 -0
  1172. package/dist/domains/ml/query-key-value/manifest.mjs +54 -0
  1173. package/dist/domains/ml/query-key-value/runtime.mjs +3 -0
  1174. package/dist/domains/ml/regression/runtime.d.mts +2 -14
  1175. package/dist/domains/ml/residual-stream/manifest.mjs +59 -0
  1176. package/dist/domains/ml/residual-stream/runtime.mjs +3 -0
  1177. package/dist/domains/ml/scaled-dot-product-attention/manifest.mjs +60 -0
  1178. package/dist/domains/ml/scaled-dot-product-attention/runtime.mjs +3 -0
  1179. package/dist/domains/ml/tiny-network/manifest.mjs +56 -0
  1180. package/dist/domains/ml/tiny-network/runtime.mjs +3 -0
  1181. package/dist/domains/ml/token-generation/manifest.mjs +53 -0
  1182. package/dist/domains/ml/token-generation/runtime.mjs +3 -0
  1183. package/dist/domains/ml/training-loop/manifest.mjs +58 -0
  1184. package/dist/domains/ml/training-loop/runtime.mjs +3 -0
  1185. package/dist/domains/ml/transformer-block/manifest.mjs +67 -0
  1186. package/dist/domains/ml/transformer-block/runtime.mjs +3 -0
  1187. package/dist/domains/ml/unembedding/manifest.mjs +61 -0
  1188. package/dist/domains/ml/unembedding/runtime.mjs +3 -0
  1189. package/dist/domains/networking/_shared/decision-scene.mjs +91 -0
  1190. package/dist/domains/networking/adaptive-video-call/activity.mjs +57 -0
  1191. package/dist/domains/networking/adaptive-video-call/manifest.mjs +69 -0
  1192. package/dist/domains/networking/adaptive-video-call/runtime.mjs +132 -0
  1193. package/dist/domains/networking/adaptive-video-call/scene.mjs +194 -0
  1194. package/dist/domains/networking/bottleneck-queue/activity.mjs +33 -0
  1195. package/dist/domains/networking/bottleneck-queue/manifest.mjs +68 -0
  1196. package/dist/domains/networking/bottleneck-queue/runtime.mjs +137 -0
  1197. package/dist/domains/networking/bottleneck-queue/scene.mjs +162 -0
  1198. package/dist/domains/networking/broadcast-delivery/activity.mjs +71 -0
  1199. package/dist/domains/networking/broadcast-delivery/manifest.mjs +76 -0
  1200. package/dist/domains/networking/broadcast-delivery/runtime.mjs +100 -0
  1201. package/dist/domains/networking/broadcast-delivery/scene.mjs +99 -0
  1202. package/dist/domains/networking/cafe-privacy/manifest.mjs +84 -0
  1203. package/dist/domains/networking/cafe-privacy/runtime.mjs +259 -0
  1204. package/dist/domains/networking/cell-size/manifest.mjs +78 -0
  1205. package/dist/domains/networking/cell-size/runtime.mjs +166 -0
  1206. package/dist/domains/networking/cloud-storage-design/activity.mjs +58 -0
  1207. package/dist/domains/networking/cloud-storage-design/manifest.mjs +81 -0
  1208. package/dist/domains/networking/cloud-storage-design/runtime.mjs +108 -0
  1209. package/dist/domains/networking/cloud-storage-design/scene.mjs +134 -0
  1210. package/dist/domains/networking/container-deployment/activity.mjs +58 -0
  1211. package/dist/domains/networking/container-deployment/manifest.mjs +79 -0
  1212. package/dist/domains/networking/container-deployment/runtime.mjs +124 -0
  1213. package/dist/domains/networking/container-deployment/scene.mjs +243 -0
  1214. package/dist/domains/networking/data-recovery-planner/activity.mjs +58 -0
  1215. package/dist/domains/networking/data-recovery-planner/manifest.mjs +74 -0
  1216. package/dist/domains/networking/data-recovery-planner/runtime.mjs +111 -0
  1217. package/dist/domains/networking/data-recovery-planner/scene.mjs +139 -0
  1218. package/dist/domains/networking/dhcp-lease/manifest.mjs +64 -0
  1219. package/dist/domains/networking/dhcp-lease/runtime.mjs +108 -0
  1220. package/dist/domains/networking/distributed-inference-topology/activity.mjs +58 -0
  1221. package/dist/domains/networking/distributed-inference-topology/manifest.mjs +82 -0
  1222. package/dist/domains/networking/distributed-inference-topology/runtime.mjs +142 -0
  1223. package/dist/domains/networking/distributed-inference-topology/scene.mjs +179 -0
  1224. package/dist/domains/networking/dns-resolution/activity.mjs +33 -0
  1225. package/dist/domains/networking/dns-resolution/manifest.mjs +71 -0
  1226. package/dist/domains/networking/dns-resolution/runtime.mjs +80 -0
  1227. package/dist/domains/networking/dns-resolution/scene.mjs +129 -0
  1228. package/dist/domains/networking/edge-cache-delivery/activity.mjs +58 -0
  1229. package/dist/domains/networking/edge-cache-delivery/manifest.mjs +74 -0
  1230. package/dist/domains/networking/edge-cache-delivery/runtime.mjs +111 -0
  1231. package/dist/domains/networking/edge-cache-delivery/scene.mjs +130 -0
  1232. package/dist/domains/networking/ethernet-pinout/runtime.mjs +1 -1
  1233. package/dist/domains/networking/failure-domain-planner/activity.mjs +58 -0
  1234. package/dist/domains/networking/failure-domain-planner/manifest.mjs +82 -0
  1235. package/dist/domains/networking/failure-domain-planner/runtime.mjs +119 -0
  1236. package/dist/domains/networking/failure-domain-planner/scene.mjs +120 -0
  1237. package/dist/domains/networking/generation-capability/manifest.mjs +73 -0
  1238. package/dist/domains/networking/generation-capability/runtime.mjs +156 -0
  1239. package/dist/domains/networking/geo-market-routing/activity.mjs +58 -0
  1240. package/dist/domains/networking/geo-market-routing/manifest.mjs +79 -0
  1241. package/dist/domains/networking/geo-market-routing/runtime.mjs +122 -0
  1242. package/dist/domains/networking/geo-market-routing/scene.mjs +129 -0
  1243. package/dist/domains/networking/group-message-sync/activity.mjs +33 -0
  1244. package/dist/domains/networking/group-message-sync/manifest.mjs +73 -0
  1245. package/dist/domains/networking/group-message-sync/runtime.mjs +118 -0
  1246. package/dist/domains/networking/group-message-sync/scene.mjs +132 -0
  1247. package/dist/domains/networking/handover-margin/manifest.mjs +81 -0
  1248. package/dist/domains/networking/handover-margin/runtime.mjs +224 -0
  1249. package/dist/domains/networking/home-broadband-journey/activity.mjs +44 -0
  1250. package/dist/domains/networking/home-broadband-journey/manifest.mjs +79 -0
  1251. package/dist/domains/networking/home-broadband-journey/runtime.mjs +108 -0
  1252. package/dist/domains/networking/home-broadband-journey/scene.mjs +133 -0
  1253. package/dist/domains/networking/inference-capacity-planner/activity.mjs +58 -0
  1254. package/dist/domains/networking/inference-capacity-planner/manifest.mjs +82 -0
  1255. package/dist/domains/networking/inference-capacity-planner/runtime.mjs +163 -0
  1256. package/dist/domains/networking/inference-capacity-planner/scene.mjs +138 -0
  1257. package/dist/domains/networking/inference-degradation-planner/activity.mjs +58 -0
  1258. package/dist/domains/networking/inference-degradation-planner/manifest.mjs +81 -0
  1259. package/dist/domains/networking/inference-degradation-planner/runtime.mjs +143 -0
  1260. package/dist/domains/networking/inference-degradation-planner/scene.mjs +130 -0
  1261. package/dist/domains/networking/inference-request-pipeline/activity.mjs +58 -0
  1262. package/dist/domains/networking/inference-request-pipeline/manifest.mjs +86 -0
  1263. package/dist/domains/networking/inference-request-pipeline/runtime.mjs +141 -0
  1264. package/dist/domains/networking/inference-request-pipeline/scene.mjs +137 -0
  1265. package/dist/domains/networking/infrastructure-drift-planner/activity.mjs +58 -0
  1266. package/dist/domains/networking/infrastructure-drift-planner/manifest.mjs +87 -0
  1267. package/dist/domains/networking/infrastructure-drift-planner/runtime.mjs +141 -0
  1268. package/dist/domains/networking/infrastructure-drift-planner/scene.mjs +36 -0
  1269. package/dist/domains/networking/ipv6-neighbor/manifest.mjs +61 -0
  1270. package/dist/domains/networking/ipv6-neighbor/runtime.mjs +124 -0
  1271. package/dist/domains/networking/layer-encapsulation/runtime.mjs +1 -1
  1272. package/dist/domains/networking/live-stream-pipeline/activity.mjs +72 -0
  1273. package/dist/domains/networking/live-stream-pipeline/manifest.mjs +67 -0
  1274. package/dist/domains/networking/live-stream-pipeline/runtime.mjs +98 -0
  1275. package/dist/domains/networking/live-stream-pipeline/scene.mjs +122 -0
  1276. package/dist/domains/networking/media-encoding/activity.mjs +33 -0
  1277. package/dist/domains/networking/media-encoding/manifest.mjs +72 -0
  1278. package/dist/domains/networking/media-encoding/runtime.mjs +111 -0
  1279. package/dist/domains/networking/media-encoding/scene.mjs +155 -0
  1280. package/dist/domains/networking/message-journey/activity.mjs +51 -0
  1281. package/dist/domains/networking/message-journey/manifest.mjs +80 -0
  1282. package/dist/domains/networking/message-journey/runtime.mjs +170 -0
  1283. package/dist/domains/networking/message-journey/scene.mjs +388 -0
  1284. package/dist/domains/networking/mobile-call-journey/activity.mjs +51 -0
  1285. package/dist/domains/networking/mobile-call-journey/manifest.mjs +81 -0
  1286. package/dist/domains/networking/mobile-call-journey/runtime.mjs +164 -0
  1287. package/dist/domains/networking/mobile-call-journey/scene.mjs +390 -0
  1288. package/dist/domains/networking/model-routing-economics/activity.mjs +58 -0
  1289. package/dist/domains/networking/model-routing-economics/manifest.mjs +79 -0
  1290. package/dist/domains/networking/model-routing-economics/runtime.mjs +124 -0
  1291. package/dist/domains/networking/model-routing-economics/scene.mjs +165 -0
  1292. package/dist/domains/networking/modem-modulation/activity.mjs +33 -0
  1293. package/dist/domains/networking/modem-modulation/manifest.mjs +71 -0
  1294. package/dist/domains/networking/modem-modulation/runtime.mjs +98 -0
  1295. package/dist/domains/networking/modem-modulation/scene.mjs +150 -0
  1296. package/dist/domains/networking/nat-traversal/manifest.mjs +70 -0
  1297. package/dist/domains/networking/nat-traversal/runtime.mjs +115 -0
  1298. package/dist/domains/networking/network-media/runtime.mjs +2 -2
  1299. package/dist/domains/networking/orbit-latency/manifest.mjs +83 -0
  1300. package/dist/domains/networking/orbit-latency/runtime.mjs +222 -0
  1301. package/dist/domains/networking/orchestration-reconciler/activity.mjs +58 -0
  1302. package/dist/domains/networking/orchestration-reconciler/manifest.mjs +76 -0
  1303. package/dist/domains/networking/orchestration-reconciler/runtime.mjs +129 -0
  1304. package/dist/domains/networking/orchestration-reconciler/scene.mjs +162 -0
  1305. package/dist/domains/networking/packet-journey/runtime.d.mts +3 -12
  1306. package/dist/domains/networking/packet-journey/runtime.mjs +1 -2
  1307. package/dist/domains/networking/prefix-cache-planner/activity.mjs +58 -0
  1308. package/dist/domains/networking/prefix-cache-planner/manifest.mjs +79 -0
  1309. package/dist/domains/networking/prefix-cache-planner/runtime.mjs +145 -0
  1310. package/dist/domains/networking/prefix-cache-planner/scene.mjs +120 -0
  1311. package/dist/domains/networking/release-strategy-planner/activity.mjs +56 -0
  1312. package/dist/domains/networking/release-strategy-planner/manifest.mjs +83 -0
  1313. package/dist/domains/networking/release-strategy-planner/runtime.mjs +142 -0
  1314. package/dist/domains/networking/release-strategy-planner/scene.mjs +68 -0
  1315. package/dist/domains/networking/route-learning/manifest.mjs +57 -0
  1316. package/dist/domains/networking/route-learning/runtime.mjs +130 -0
  1317. package/dist/domains/networking/secret-rotation-planner/activity.mjs +57 -0
  1318. package/dist/domains/networking/secret-rotation-planner/manifest.mjs +80 -0
  1319. package/dist/domains/networking/secret-rotation-planner/runtime.mjs +136 -0
  1320. package/dist/domains/networking/secret-rotation-planner/scene.mjs +70 -0
  1321. package/dist/domains/networking/server-deployment/activity.mjs +58 -0
  1322. package/dist/domains/networking/server-deployment/manifest.mjs +89 -0
  1323. package/dist/domains/networking/server-deployment/runtime.mjs +150 -0
  1324. package/dist/domains/networking/server-deployment/scene.mjs +231 -0
  1325. package/dist/domains/networking/service-scaling/activity.mjs +58 -0
  1326. package/dist/domains/networking/service-scaling/manifest.mjs +74 -0
  1327. package/dist/domains/networking/service-scaling/runtime.mjs +120 -0
  1328. package/dist/domains/networking/service-scaling/scene.mjs +134 -0
  1329. package/dist/domains/networking/shared-airtime/manifest.mjs +80 -0
  1330. package/dist/domains/networking/shared-airtime/runtime.mjs +238 -0
  1331. package/dist/domains/networking/signal-through-walls/manifest.mjs +77 -0
  1332. package/dist/domains/networking/signal-through-walls/runtime.mjs +160 -0
  1333. package/dist/domains/networking/slo-incident-console/activity.mjs +58 -0
  1334. package/dist/domains/networking/slo-incident-console/manifest.mjs +83 -0
  1335. package/dist/domains/networking/slo-incident-console/runtime.mjs +128 -0
  1336. package/dist/domains/networking/slo-incident-console/scene.mjs +143 -0
  1337. package/dist/domains/networking/spectrum-map/manifest.mjs +64 -0
  1338. package/dist/domains/networking/spectrum-map/runtime.mjs +149 -0
  1339. package/dist/domains/networking/subnet-builder/runtime.mjs +1 -1
  1340. package/dist/domains/networking/switch-learning/runtime.mjs +1 -1
  1341. package/dist/domains/networking/tcp-handshake/manifest.mjs +81 -0
  1342. package/dist/domains/networking/tcp-handshake/runtime.mjs +257 -0
  1343. package/dist/domains/networking/tcp-sender/manifest.mjs +63 -0
  1344. package/dist/domains/networking/tcp-sender/runtime.mjs +151 -0
  1345. package/dist/domains/networking/tls-connection/activity.mjs +33 -0
  1346. package/dist/domains/networking/tls-connection/manifest.mjs +70 -0
  1347. package/dist/domains/networking/tls-connection/runtime.mjs +94 -0
  1348. package/dist/domains/networking/tls-connection/scene.mjs +96 -0
  1349. package/dist/domains/networking/vlan-designer/runtime.mjs +5 -3
  1350. package/dist/domains/networking/vpc-route-planner/activity.mjs +58 -0
  1351. package/dist/domains/networking/vpc-route-planner/manifest.mjs +80 -0
  1352. package/dist/domains/networking/vpc-route-planner/runtime.mjs +107 -0
  1353. package/dist/domains/networking/vpc-route-planner/scene.mjs +145 -0
  1354. package/dist/domains/networking/vpn-tunnel/runtime.mjs +2 -2
  1355. package/dist/domains/networking/wave-size/manifest.mjs +69 -0
  1356. package/dist/domains/networking/wave-size/runtime.mjs +149 -0
  1357. package/dist/domains/networking/wifi-contention/activity.mjs +33 -0
  1358. package/dist/domains/networking/wifi-contention/manifest.mjs +62 -0
  1359. package/dist/domains/networking/wifi-contention/runtime.mjs +93 -0
  1360. package/dist/domains/networking/wifi-contention/scene.mjs +92 -0
  1361. package/dist/domains/networking/wifi-coverage/manifest.mjs +82 -0
  1362. package/dist/domains/networking/wifi-coverage/runtime.mjs +253 -0
  1363. package/dist/domains/networking/workload-identity-planner/activity.mjs +58 -0
  1364. package/dist/domains/networking/workload-identity-planner/manifest.mjs +82 -0
  1365. package/dist/domains/networking/workload-identity-planner/runtime.mjs +120 -0
  1366. package/dist/domains/networking/workload-identity-planner/scene.mjs +71 -0
  1367. package/dist/domains/physics/ac-generator/manifest.mjs +64 -0
  1368. package/dist/domains/physics/ac-generator/runtime.mjs +5 -0
  1369. package/dist/domains/physics/car-suspension/manifest.mjs +59 -0
  1370. package/dist/domains/physics/car-suspension/runtime.mjs +5 -0
  1371. package/dist/domains/physics/circuit-fault-detective/activity.mjs +59 -0
  1372. package/dist/domains/physics/circuit-fault-detective/manifest.mjs +59 -0
  1373. package/dist/domains/physics/circuit-fault-detective/runtime.mjs +157 -0
  1374. package/dist/domains/physics/circuit-iv-investigation/activity.mjs +127 -0
  1375. package/dist/domains/physics/circuit-iv-investigation/manifest.mjs +78 -0
  1376. package/dist/domains/physics/circuit-iv-investigation/runtime.mjs +329 -0
  1377. package/dist/domains/physics/circular-motion/manifest.mjs +0 -2
  1378. package/dist/domains/physics/coil-torque/activity.mjs +3 -0
  1379. package/dist/domains/physics/coil-torque/manifest.mjs +69 -0
  1380. package/dist/domains/physics/coil-torque/runtime.mjs +3 -0
  1381. package/dist/domains/physics/collision-track/manifest.mjs +15 -5
  1382. package/dist/domains/physics/cooling-insulation-investigation/activity.mjs +128 -0
  1383. package/dist/domains/physics/cooling-insulation-investigation/manifest.mjs +78 -0
  1384. package/dist/domains/physics/cooling-insulation-investigation/runtime.mjs +273 -0
  1385. package/dist/domains/physics/coulomb-superposition/activity.mjs +3 -0
  1386. package/dist/domains/physics/coulomb-superposition/manifest.mjs +75 -0
  1387. package/dist/domains/physics/coulomb-superposition/runtime.mjs +3 -0
  1388. package/dist/domains/physics/dc-motor/manifest.mjs +58 -0
  1389. package/dist/domains/physics/dc-motor/runtime.mjs +5 -0
  1390. package/dist/domains/physics/density-displacement/activity.mjs +128 -0
  1391. package/dist/domains/physics/density-displacement/manifest.mjs +75 -0
  1392. package/dist/domains/physics/density-displacement/runtime.mjs +197 -0
  1393. package/dist/domains/physics/earth-field/activity.mjs +3 -0
  1394. package/dist/domains/physics/earth-field/manifest.mjs +77 -0
  1395. package/dist/domains/physics/earth-field/runtime.mjs +3 -0
  1396. package/dist/domains/physics/energy-resource-grid/activity.mjs +169 -0
  1397. package/dist/domains/physics/energy-resource-grid/manifest.mjs +89 -0
  1398. package/dist/domains/physics/energy-resource-grid/palette.mjs +69 -0
  1399. package/dist/domains/physics/energy-resource-grid/runtime.mjs +1483 -0
  1400. package/dist/domains/physics/energy-skate/manifest.mjs +0 -2
  1401. package/dist/domains/physics/generator-grid-mission/activity.mjs +153 -0
  1402. package/dist/domains/physics/generator-grid-mission/manifest.mjs +81 -0
  1403. package/dist/domains/physics/generator-grid-mission/palette.mjs +30 -0
  1404. package/dist/domains/physics/generator-grid-mission/runtime.mjs +466 -0
  1405. package/dist/domains/physics/glass-block-refraction/activity.mjs +128 -0
  1406. package/dist/domains/physics/glass-block-refraction/manifest.mjs +77 -0
  1407. package/dist/domains/physics/glass-block-refraction/runtime.mjs +327 -0
  1408. package/dist/domains/physics/gravitation/manifest.mjs +8 -5
  1409. package/dist/domains/physics/gravity-profile/manifest.mjs +62 -0
  1410. package/dist/domains/physics/gravity-profile/runtime.mjs +5 -0
  1411. package/dist/domains/physics/guitar-string/manifest.mjs +69 -0
  1412. package/dist/domains/physics/guitar-string/runtime.mjs +5 -0
  1413. package/dist/domains/physics/heat-transfer/manifest.mjs +0 -2
  1414. package/dist/domains/physics/kepler/manifest.mjs +0 -2
  1415. package/dist/domains/physics/lens-focal-investigation/activity.mjs +128 -0
  1416. package/dist/domains/physics/lens-focal-investigation/manifest.mjs +78 -0
  1417. package/dist/domains/physics/lens-focal-investigation/runtime.mjs +329 -0
  1418. package/dist/domains/physics/lift-weight/manifest.mjs +55 -0
  1419. package/dist/domains/physics/lift-weight/runtime.mjs +5 -0
  1420. package/dist/domains/physics/lifting-work/manifest.mjs +62 -0
  1421. package/dist/domains/physics/lifting-work/runtime.mjs +5 -0
  1422. package/dist/domains/physics/magnetic-field/activity.mjs +3 -0
  1423. package/dist/domains/physics/magnetic-field/manifest.mjs +80 -0
  1424. package/dist/domains/physics/magnetic-field/runtime.mjs +3 -0
  1425. package/dist/domains/physics/magnetic-field-mission/activity.mjs +120 -0
  1426. package/dist/domains/physics/magnetic-field-mission/manifest.mjs +73 -0
  1427. package/dist/domains/physics/magnetic-field-mission/palette.mjs +40 -0
  1428. package/dist/domains/physics/magnetic-field-mission/runtime.mjs +547 -0
  1429. package/dist/domains/physics/orbit-lab/manifest.mjs +0 -2
  1430. package/dist/domains/physics/paper5-analysis-lab/activity.mjs +144 -0
  1431. package/dist/domains/physics/paper5-analysis-lab/manifest.mjs +67 -0
  1432. package/dist/domains/physics/paper5-analysis-lab/runtime.mjs +706 -0
  1433. package/dist/domains/physics/pendulum-worlds/manifest.mjs +55 -0
  1434. package/dist/domains/physics/pendulum-worlds/runtime.mjs +5 -0
  1435. package/dist/domains/physics/pet-scan/activity.mjs +3 -0
  1436. package/dist/domains/physics/pet-scan/manifest.mjs +73 -0
  1437. package/dist/domains/physics/pet-scan/runtime.mjs +3 -0
  1438. package/dist/domains/physics/physics-practical-studio/activity.mjs +96 -0
  1439. package/dist/domains/physics/physics-practical-studio/core.mjs +75 -0
  1440. package/dist/domains/physics/physics-practical-studio/manifest.mjs +53 -0
  1441. package/dist/domains/physics/physics-practical-studio/runtime.mjs +207 -0
  1442. package/dist/domains/physics/plug-safety-inspector/activity.mjs +97 -0
  1443. package/dist/domains/physics/plug-safety-inspector/manifest.mjs +54 -0
  1444. package/dist/domains/physics/plug-safety-inspector/palette.mjs +44 -0
  1445. package/dist/domains/physics/plug-safety-inspector/runtime.mjs +414 -0
  1446. package/dist/domains/physics/precision-measurement-lab/activity.mjs +148 -0
  1447. package/dist/domains/physics/precision-measurement-lab/manifest.mjs +81 -0
  1448. package/dist/domains/physics/precision-measurement-lab/palette.mjs +41 -0
  1449. package/dist/domains/physics/precision-measurement-lab/runtime.mjs +641 -0
  1450. package/dist/domains/physics/projectile-lab/core/formulas.mjs +1 -1
  1451. package/dist/domains/physics/projectile-lab/manifest.mjs +2 -0
  1452. package/dist/domains/physics/projectile-lab/runtime/index.mjs +4 -2
  1453. package/dist/domains/physics/radiation-half-life-investigation/activity.mjs +154 -0
  1454. package/dist/domains/physics/radiation-half-life-investigation/manifest.mjs +88 -0
  1455. package/dist/domains/physics/radiation-half-life-investigation/palette.mjs +47 -0
  1456. package/dist/domains/physics/radiation-half-life-investigation/runtime.mjs +1036 -0
  1457. package/dist/domains/physics/shm/manifest.mjs +0 -2
  1458. package/dist/domains/physics/shm-energy/manifest.mjs +58 -0
  1459. package/dist/domains/physics/shm-energy/runtime.mjs +5 -0
  1460. package/dist/domains/physics/shm-graphs/manifest.mjs +56 -0
  1461. package/dist/domains/physics/shm-graphs/runtime.mjs +5 -0
  1462. package/dist/domains/physics/space-evidence-mission/activity.mjs +148 -0
  1463. package/dist/domains/physics/space-evidence-mission/manifest.mjs +88 -0
  1464. package/dist/domains/physics/space-evidence-mission/runtime.mjs +624 -0
  1465. package/dist/domains/physics/spin-studio/manifest.mjs +58 -0
  1466. package/dist/domains/physics/spin-studio/runtime.mjs +5 -0
  1467. package/dist/domains/physics/spring-combinations/manifest.mjs +52 -0
  1468. package/dist/domains/physics/spring-combinations/runtime.mjs +5 -0
  1469. package/dist/domains/physics/terminal-velocity/manifest.mjs +0 -2
  1470. package/dist/domains/physics/thermal-expansion/manifest.mjs +0 -2
  1471. package/dist/domains/physics/trolley-acceleration-investigation/activity.mjs +158 -0
  1472. package/dist/domains/physics/trolley-acceleration-investigation/manifest.mjs +78 -0
  1473. package/dist/domains/physics/trolley-acceleration-investigation/runtime.mjs +390 -0
  1474. package/dist/domains/physics/vector-board/manifest.mjs +1 -0
  1475. package/dist/domains/physics/vector-board/runtime.mjs +1 -0
  1476. package/dist/domains/render-map.mjs +437 -1
  1477. package/dist/domains/render.d.mts +0 -1
  1478. package/dist/exam/exam-question/core.d.mts +11 -6
  1479. package/dist/exam/exam-question/core.mjs +37 -4
  1480. package/dist/exam/exam-question/default-question.d.mts +0 -1
  1481. package/dist/exam/exam-question/index.d.mts +2 -1
  1482. package/dist/exam/exam-question/preset.d.mts +3 -8
  1483. package/dist/exam/exam-question/preset.mjs +61 -26
  1484. package/dist/exam/index.d.mts +1 -0
  1485. package/dist/geography/cycle-lab/index.d.mts +2 -1
  1486. package/dist/geography/cycle-lab/preset.d.mts +1 -10
  1487. package/dist/geography/cycle-lab/preset.mjs +3 -2
  1488. package/dist/geography/cycles.d.mts +0 -1
  1489. package/dist/geography/index.d.mts +1 -0
  1490. package/dist/geometry/board/index.d.mts +2 -1
  1491. package/dist/geometry/board/preset.d.mts +1 -8
  1492. package/dist/geometry/builder.d.mts +2 -7
  1493. package/dist/geometry/builder.mjs +1 -1
  1494. package/dist/geometry/index.d.mts +1 -0
  1495. package/dist/geometry/intersecting-circles.d.mts +1 -7
  1496. package/dist/geometry/intersecting-circles.mjs +76 -75
  1497. package/dist/ict/index.d.mts +1 -0
  1498. package/dist/ict/number-systems/base-odometer.d.mts +1 -13
  1499. package/dist/ict/number-systems/bit-grouper.d.mts +1 -11
  1500. package/dist/ict/number-systems/index.d.mts +2 -1
  1501. package/dist/ict/number-systems/place-value-dial.d.mts +1 -11
  1502. package/dist/ict/number-systems/wheel.d.mts +4 -25
  1503. package/dist/ict/number-systems/wheel.mjs +12 -11
  1504. package/dist/index.d.mts +2 -2
  1505. package/dist/index.mjs +2 -2
  1506. package/dist/kit/activity-authoring.d.mts +14 -3
  1507. package/dist/kit/activity-authoring.mjs +8 -1
  1508. package/dist/kit/activity.d.mts +69 -70
  1509. package/dist/kit/activity.mjs +135 -12
  1510. package/dist/kit/anim.d.mts +22 -0
  1511. package/dist/kit/annotate.mjs +8 -4
  1512. package/dist/kit/ask.d.mts +1 -2
  1513. package/dist/kit/ask.mjs +1 -1
  1514. package/dist/kit/assets.d.mts +30 -0
  1515. package/dist/kit/assets.mjs +31 -0
  1516. package/dist/kit/authored-activity-runtime.d.mts +9 -31
  1517. package/dist/kit/authored-activity-runtime.mjs +78 -66
  1518. package/dist/kit/authored-response.d.mts +1 -5
  1519. package/dist/kit/authored-response.mjs +17 -2
  1520. package/dist/kit/celebrate.d.mts +2 -7
  1521. package/dist/kit/celebrate.mjs +3 -2
  1522. package/dist/kit/chemistry/composition-evidence.d.mts +45 -0
  1523. package/dist/kit/chemistry/composition-evidence.mjs +164 -0
  1524. package/dist/kit/chemistry/cycle.mjs +147 -0
  1525. package/dist/kit/chemistry/electrode.d.mts +103 -0
  1526. package/dist/kit/chemistry/electrode.mjs +155 -0
  1527. package/dist/kit/chemistry/equation-model.d.mts +35 -0
  1528. package/dist/kit/chemistry/equation-model.mjs +84 -0
  1529. package/dist/kit/chemistry/flame.d.mts +38 -0
  1530. package/dist/kit/chemistry/flame.mjs +129 -0
  1531. package/dist/kit/chemistry/formula-model.d.mts +38 -0
  1532. package/dist/kit/chemistry/formula-model.mjs +221 -0
  1533. package/dist/kit/chemistry/formula.d.mts +18 -0
  1534. package/dist/kit/chemistry/formula.mjs +94 -0
  1535. package/dist/kit/chemistry/glassware.d.mts +114 -0
  1536. package/dist/kit/chemistry/glassware.mjs +697 -0
  1537. package/dist/kit/chemistry/groups.d.mts +104 -0
  1538. package/dist/kit/chemistry/groups.mjs +317 -0
  1539. package/dist/kit/chemistry/index.d.mts +18 -0
  1540. package/dist/kit/chemistry/mechanism.mjs +248 -0
  1541. package/dist/kit/chemistry/molecule.d.mts +246 -0
  1542. package/dist/kit/chemistry/molecule.mjs +441 -0
  1543. package/dist/kit/chemistry/nmr-figure.d.mts +15 -0
  1544. package/dist/kit/chemistry/nmr-figure.mjs +207 -0
  1545. package/dist/kit/chemistry/observation.d.mts +68 -0
  1546. package/dist/kit/chemistry/observation.mjs +86 -0
  1547. package/dist/kit/chemistry/percent-lens.d.mts +35 -0
  1548. package/dist/kit/chemistry/percent-lens.mjs +44 -0
  1549. package/dist/kit/chemistry/process.d.mts +31 -0
  1550. package/dist/kit/chemistry/process.mjs +234 -0
  1551. package/dist/kit/chemistry/quantity-route-figure.d.mts +25 -0
  1552. package/dist/kit/chemistry/quantity-route-figure.mjs +198 -0
  1553. package/dist/kit/chemistry/quantity-route.d.mts +78 -0
  1554. package/dist/kit/chemistry/quantity-route.mjs +117 -0
  1555. package/dist/kit/chemistry/reaction.mjs +293 -0
  1556. package/dist/kit/chemistry/safety.d.mts +25 -0
  1557. package/dist/kit/chemistry/safety.mjs +77 -0
  1558. package/dist/kit/chemistry/species.mjs +1078 -0
  1559. package/dist/kit/chemistry/spectrum.mjs +252 -0
  1560. package/dist/kit/chemistry/structure-figure.d.mts +38 -0
  1561. package/dist/kit/chemistry/structure-figure.mjs +161 -0
  1562. package/dist/kit/clue-scene.d.mts +7 -38
  1563. package/dist/kit/clue-scene.mjs +15 -12
  1564. package/dist/kit/cluster.d.mts +1 -11
  1565. package/dist/kit/commerce/glyphs.d.mts +144 -0
  1566. package/dist/kit/commerce/glyphs.mjs +569 -0
  1567. package/dist/kit/commerce/index.d.mts +3 -0
  1568. package/dist/kit/commerce/ledger.d.mts +64 -0
  1569. package/dist/kit/commerce/ledger.mjs +224 -0
  1570. package/dist/kit/controls.mjs +27 -13
  1571. package/dist/kit/coords.d.mts +3 -21
  1572. package/dist/kit/coords.mjs +1 -1
  1573. package/dist/kit/cycle.d.mts +2 -12
  1574. package/dist/kit/cycle.mjs +2 -3
  1575. package/dist/kit/data-scene.d.mts +0 -1
  1576. package/dist/kit/diagram/circuit-box.mjs +2 -1
  1577. package/dist/kit/electronics/_shared.mjs +2 -1
  1578. package/dist/kit/electronics/basics.mjs +274 -7
  1579. package/dist/kit/electronics/meter.mjs +137 -2
  1580. package/dist/kit/electronics/wire.mjs +1 -1
  1581. package/dist/kit/embed.mjs +29 -6
  1582. package/dist/kit/figure/action.d.mts +11 -0
  1583. package/dist/kit/figure/action.mjs +27 -0
  1584. package/dist/kit/figure/beam.d.mts +6 -42
  1585. package/dist/kit/figure/beam.mjs +2 -1
  1586. package/dist/kit/figure/body.d.mts +5 -33
  1587. package/dist/kit/figure/body.mjs +3 -3
  1588. package/dist/kit/figure/container.d.mts +3 -32
  1589. package/dist/kit/figure/container.mjs +10 -0
  1590. package/dist/kit/figure/digits.d.mts +39 -0
  1591. package/dist/kit/figure/digits.mjs +30 -0
  1592. package/dist/kit/figure/figure.d.mts +79 -13
  1593. package/dist/kit/figure/figure.mjs +81 -5
  1594. package/dist/kit/figure/gauge.d.mts +54 -0
  1595. package/dist/kit/figure/gauge.mjs +54 -0
  1596. package/dist/kit/figure/illustration.d.mts +1 -10
  1597. package/dist/kit/figure/index.d.mts +9 -3
  1598. package/dist/kit/figure/legend.d.mts +27 -0
  1599. package/dist/kit/figure/legend.mjs +71 -0
  1600. package/dist/kit/figure/plot.d.mts +7 -44
  1601. package/dist/kit/figure/plot.mjs +52 -29
  1602. package/dist/kit/figure/system.d.mts +59 -0
  1603. package/dist/kit/figure/system.mjs +205 -0
  1604. package/dist/kit/figure/text.d.mts +77 -25
  1605. package/dist/kit/figure/text.mjs +65 -3
  1606. package/dist/kit/finance-viz/apportion-bar.d.mts +1 -9
  1607. package/dist/kit/finance-viz/apportion-bar.mjs +51 -42
  1608. package/dist/kit/finance-viz/index.d.mts +2 -1
  1609. package/dist/kit/finance-viz/plot-chart.d.mts +1 -13
  1610. package/dist/kit/finance-viz/plot-chart.mjs +46 -115
  1611. package/dist/kit/finance-viz/stock-timeline.d.mts +1 -10
  1612. package/dist/kit/finance-viz/stock-timeline.mjs +61 -85
  1613. package/dist/kit/finance-viz/tradeoff-curve.d.mts +1 -14
  1614. package/dist/kit/finance-viz/tradeoff-curve.mjs +136 -189
  1615. package/dist/kit/frame.d.mts +10 -24
  1616. package/dist/kit/frame.mjs +25 -5
  1617. package/dist/kit/freq-tree.mjs +2 -2
  1618. package/dist/kit/gravitation/index.d.mts +2 -0
  1619. package/dist/kit/gravitation/section.d.mts +60 -0
  1620. package/dist/kit/gravitation/section.mjs +128 -0
  1621. package/dist/kit/guide.d.mts +1 -4
  1622. package/dist/kit/index.d.mts +54 -7
  1623. package/dist/kit/index.mjs +48 -9
  1624. package/dist/kit/instruments-palette.mjs +14 -0
  1625. package/dist/kit/instruments.mjs +679 -0
  1626. package/dist/kit/learning-sequence.d.mts +5 -5
  1627. package/dist/kit/learning-sequence.mjs +7 -6
  1628. package/dist/kit/logic-gates/display.mjs +1 -1
  1629. package/dist/kit/logic-gates/gate.d.mts +0 -1
  1630. package/dist/kit/logic-gates/gate.mjs +1 -1
  1631. package/dist/kit/magnetism/glyphs.d.mts +179 -0
  1632. package/dist/kit/magnetism/glyphs.mjs +445 -0
  1633. package/dist/kit/magnetism/index.d.mts +2 -0
  1634. package/dist/kit/mechanics/energy.d.mts +221 -0
  1635. package/dist/kit/mechanics/energy.mjs +578 -0
  1636. package/dist/kit/mechanics/index.d.mts +3 -0
  1637. package/dist/kit/mechanics/palette.mjs +27 -0
  1638. package/dist/kit/mechanics/primitives.d.mts +298 -0
  1639. package/dist/kit/mechanics/primitives.mjs +887 -0
  1640. package/dist/kit/networking/access-glyphs.d.mts +2 -0
  1641. package/dist/kit/networking/access-glyphs.mjs +123 -0
  1642. package/dist/kit/networking/glyphs.d.mts +13 -0
  1643. package/dist/kit/networking/glyphs.mjs +1 -11
  1644. package/dist/kit/networking/index.d.mts +7 -0
  1645. package/dist/kit/networking/infrastructure-glyphs.d.mts +2 -0
  1646. package/dist/kit/networking/infrastructure-glyphs.mjs +149 -0
  1647. package/dist/kit/networking/layout.mjs +15 -0
  1648. package/dist/kit/networking/primitives.d.mts +69 -0
  1649. package/dist/kit/networking/primitives.mjs +798 -0
  1650. package/dist/kit/networking/release-glyphs.d.mts +2 -0
  1651. package/dist/kit/networking/release-glyphs.mjs +128 -0
  1652. package/dist/kit/networking/secret-glyphs.d.mts +2 -0
  1653. package/dist/kit/networking/secret-glyphs.mjs +148 -0
  1654. package/dist/kit/palette.mjs +49 -1
  1655. package/dist/kit/pedagogy.d.mts +15 -34
  1656. package/dist/kit/pedagogy.mjs +1 -1
  1657. package/dist/kit/play.d.mts +1 -5
  1658. package/dist/kit/predict-gate.d.mts +1 -9
  1659. package/dist/kit/predict.d.mts +1 -19
  1660. package/dist/kit/probability.d.mts +3 -21
  1661. package/dist/kit/proportion.mjs +1 -1
  1662. package/dist/kit/receipt.d.mts +1 -9
  1663. package/dist/kit/rich.d.mts +1 -4
  1664. package/dist/kit/rich.mjs +41 -1
  1665. package/dist/kit/rule.d.mts +7 -22
  1666. package/dist/kit/scale.mjs +49 -20
  1667. package/dist/kit/scene-library.d.mts +1 -4
  1668. package/dist/kit/scene-studio.d.mts +1 -5
  1669. package/dist/kit/scenes.d.mts +0 -1
  1670. package/dist/kit/scenes.mjs +4 -4
  1671. package/dist/kit/simulation/adapter.d.mts +9 -0
  1672. package/dist/kit/simulation/adapter.mjs +11 -0
  1673. package/dist/kit/simulation/behavior.d.mts +15 -0
  1674. package/dist/kit/simulation/behavior.mjs +24 -0
  1675. package/dist/kit/simulation/clock.d.mts +65 -0
  1676. package/dist/kit/simulation/clock.mjs +155 -0
  1677. package/dist/kit/simulation/model.d.mts +133 -0
  1678. package/dist/kit/simulation/model.mjs +79 -0
  1679. package/dist/kit/simulation/rig.d.mts +11 -0
  1680. package/dist/kit/simulation/rig.mjs +11 -0
  1681. package/dist/kit/simulation/use-simulation.d.mts +60 -0
  1682. package/dist/kit/simulation/use-simulation.mjs +92 -0
  1683. package/dist/kit/slot-fill.d.mts +3 -16
  1684. package/dist/kit/space/backdrop.d.mts +39 -0
  1685. package/dist/kit/space/backdrop.mjs +174 -0
  1686. package/dist/kit/space/bodies.d.mts +66 -0
  1687. package/dist/kit/space/bodies.mjs +464 -0
  1688. package/dist/kit/space/index.d.mts +4 -0
  1689. package/dist/kit/space/palette.d.mts +144 -0
  1690. package/dist/kit/space/palette.mjs +165 -0
  1691. package/dist/kit/space-glyphs.mjs +63 -0
  1692. package/dist/kit/steps.d.mts +1 -6
  1693. package/dist/kit/thermal-palette.mjs +38 -0
  1694. package/dist/kit/thermal.mjs +140 -25
  1695. package/dist/kit/vessel.d.mts +2 -27
  1696. package/dist/lab-def/define-lab.d.mts +29 -3
  1697. package/dist/lab-def/lab-runtime.mjs +21 -1
  1698. package/dist/lab-def/to-block.mjs +3 -2
  1699. package/dist/language/activity.d.mts +1 -12
  1700. package/dist/language/agreement/index.d.mts +2 -1
  1701. package/dist/language/agreement/preset.d.mts +1 -9
  1702. package/dist/language/article-lens/index.d.mts +2 -1
  1703. package/dist/language/article-lens/preset.d.mts +1 -9
  1704. package/dist/language/cloze/index.d.mts +2 -1
  1705. package/dist/language/cloze/preset.d.mts +1 -9
  1706. package/dist/language/cloze/preset.mjs +4 -2
  1707. package/dist/language/deck.d.mts +0 -1
  1708. package/dist/language/dictation/index.d.mts +2 -1
  1709. package/dist/language/dictation/preset.d.mts +1 -8
  1710. package/dist/language/error-correct/index.d.mts +2 -1
  1711. package/dist/language/error-correct/preset.d.mts +1 -8
  1712. package/dist/language/icon.d.mts +2 -9
  1713. package/dist/language/index.d.mts +11 -0
  1714. package/dist/language/listening/index.d.mts +2 -1
  1715. package/dist/language/listening/preset.d.mts +1 -9
  1716. package/dist/language/listening/preset.mjs +2 -1
  1717. package/dist/language/preposition-scene/index.d.mts +2 -1
  1718. package/dist/language/preposition-scene/preset.d.mts +1 -9
  1719. package/dist/language/preposition-scene/preset.mjs +2 -1
  1720. package/dist/language/reading/index.d.mts +2 -1
  1721. package/dist/language/reading/preset.d.mts +1 -10
  1722. package/dist/language/reading/preset.mjs +2 -1
  1723. package/dist/language/sentence-builder/index.d.mts +2 -1
  1724. package/dist/language/sentence-builder/preset.d.mts +1 -12
  1725. package/dist/language/sentence-builder/preset.mjs +2 -1
  1726. package/dist/language/transform/index.d.mts +2 -1
  1727. package/dist/language/transform/preset.d.mts +1 -12
  1728. package/dist/language/transform/preset.mjs +2 -1
  1729. package/dist/language/ui.d.mts +4 -26
  1730. package/dist/language/ui.mjs +2 -1
  1731. package/dist/language/word-match/index.d.mts +2 -1
  1732. package/dist/language/word-match/preset.d.mts +1 -10
  1733. package/dist/logic/ChipScene.d.mts +1 -11
  1734. package/dist/logic/ChipScene.mjs +6 -5
  1735. package/dist/logic/CounterScene.d.mts +1 -7
  1736. package/dist/logic/CounterScene.mjs +1 -1
  1737. package/dist/logic/DetectorScene.d.mts +1 -8
  1738. package/dist/logic/DetectorScene.mjs +4 -5
  1739. package/dist/logic/LatchScene.d.mts +1 -8
  1740. package/dist/logic/LatchScene.mjs +7 -7
  1741. package/dist/logic/LogicBuildLab.d.mts +1 -8
  1742. package/dist/logic/LogicEditScene.d.mts +1 -13
  1743. package/dist/logic/LogicEditScene.mjs +1 -1
  1744. package/dist/logic/LogicEditor.d.mts +1 -8
  1745. package/dist/logic/LogicScene.d.mts +1 -11
  1746. package/dist/logic/LogicScene.mjs +13 -5
  1747. package/dist/logic/SequentialLogicLab.d.mts +1 -9
  1748. package/dist/logic/ShiftScene.d.mts +1 -6
  1749. package/dist/logic/ShiftScene.mjs +9 -8
  1750. package/dist/logic/TimingScene.d.mts +1 -12
  1751. package/dist/logic/TimingScene.mjs +2 -3
  1752. package/dist/logic/TwosScene.d.mts +1 -13
  1753. package/dist/logic/TwosScene.mjs +16 -16
  1754. package/dist/logic/WaveScene.d.mts +1 -10
  1755. package/dist/logic/WaveScene.mjs +3 -4
  1756. package/dist/logic/contract.d.mts +1 -2
  1757. package/dist/logic/counter.d.mts +0 -1
  1758. package/dist/logic/display.d.mts +1 -9
  1759. package/dist/logic/display.mjs +2 -2
  1760. package/dist/logic/edit-ops.d.mts +0 -1
  1761. package/dist/logic/evaluate.d.mts +1 -2
  1762. package/dist/logic/ic.d.mts +1 -1
  1763. package/dist/logic/lab.d.mts +1 -12
  1764. package/dist/logic/lab.mjs +2 -1
  1765. package/dist/logic/latch.d.mts +2 -11
  1766. package/dist/logic/netlist.d.mts +0 -1
  1767. package/dist/logic/presets.d.mts +0 -1
  1768. package/dist/logic/registry.d.mts +0 -1
  1769. package/dist/logic/sequential-presets.d.mts +0 -1
  1770. package/dist/logic/sequential.d.mts +0 -1
  1771. package/dist/logic/sequential.mjs +8 -7
  1772. package/dist/logic/timing.mjs +6 -4
  1773. package/dist/logic/twos.d.mts +1 -1
  1774. package/dist/logic/twos.mjs +7 -5
  1775. package/dist/math/area-model/asset.d.mts +0 -1
  1776. package/dist/math/area-model/index.d.mts +2 -1
  1777. package/dist/math/area-model/preset.d.mts +2 -15
  1778. package/dist/math/area-model/preset.mjs +8 -6
  1779. package/dist/math/area-rearrange/index.d.mts +2 -1
  1780. package/dist/math/area-rearrange/preset.d.mts +1 -12
  1781. package/dist/math/area-rearrange/preset.mjs +4 -5
  1782. package/dist/math/balance-algebra/asset.d.mts +0 -1
  1783. package/dist/math/balance-algebra/index.d.mts +2 -1
  1784. package/dist/math/balance-algebra/preset.d.mts +3 -9
  1785. package/dist/math/balance-algebra/preset.mjs +10 -8
  1786. package/dist/math/bearings/core.mjs +3 -2
  1787. package/dist/math/bearings/index.d.mts +2 -1
  1788. package/dist/math/bearings/preset.d.mts +1 -12
  1789. package/dist/math/bearings/preset.mjs +15 -13
  1790. package/dist/math/bounds-window/preset.mjs +239 -0
  1791. package/dist/math/broken-tree/index.d.mts +2 -1
  1792. package/dist/math/broken-tree/preset.d.mts +1 -10
  1793. package/dist/math/circle/index.d.mts +2 -1
  1794. package/dist/math/circle/preset.d.mts +1 -15
  1795. package/dist/math/complex/index.d.mts +3 -2
  1796. package/dist/math/complex/index.mjs +5 -0
  1797. package/dist/math/complex/preset.d.mts +0 -1
  1798. package/dist/math/complex/preset.mjs +18 -18
  1799. package/dist/math/complex/rule-figures.mjs +3 -3
  1800. package/dist/math/complex/rules.d.mts +1 -2
  1801. package/dist/math/complex/rules.mjs +4 -4
  1802. package/dist/math/cone-frustum/core.mjs +34 -0
  1803. package/dist/math/cone-frustum/preset.mjs +342 -0
  1804. package/dist/math/conic/index.d.mts +2 -1
  1805. package/dist/math/conic/preset.d.mts +0 -1
  1806. package/dist/math/conic/preset.mjs +2 -1
  1807. package/dist/math/derivation.d.mts +2 -9
  1808. package/dist/math/derivation.mjs +20 -27
  1809. package/dist/math/derivative-explorer/preset.d.mts +1 -8
  1810. package/dist/math/derivative-explorer/preset.mjs +2 -1
  1811. package/dist/math/differential-equation/preset.d.mts +1 -11
  1812. package/dist/math/differential-equation/preset.mjs +5 -3
  1813. package/dist/math/division-workbench/index.d.mts +2 -1
  1814. package/dist/math/division-workbench/preset.d.mts +1 -10
  1815. package/dist/math/division-workbench/visuals.mjs +2 -1
  1816. package/dist/math/domain-range/index.d.mts +2 -1
  1817. package/dist/math/domain-range/preset.d.mts +1 -13
  1818. package/dist/math/domain-range/preset.mjs +33 -3
  1819. package/dist/math/exact-triangle/preset.mjs +409 -0
  1820. package/dist/math/expression-order/core.d.mts +9 -0
  1821. package/dist/math/expression-order/core.mjs +22 -11
  1822. package/dist/math/expression-order/index.d.mts +2 -1
  1823. package/dist/math/expression-order/preset.d.mts +3 -8
  1824. package/dist/math/expression-order/preset.mjs +2 -1
  1825. package/dist/math/fraction-bar/index.d.mts +2 -1
  1826. package/dist/math/fraction-bar/preset.d.mts +0 -1
  1827. package/dist/math/function-machine/index.d.mts +2 -1
  1828. package/dist/math/function-machine/preset.d.mts +2 -9
  1829. package/dist/math/function-machine/preset.mjs +2 -2
  1830. package/dist/math/fundamental-theorem/preset.d.mts +1 -9
  1831. package/dist/math/fundamental-theorem/preset.mjs +2 -1
  1832. package/dist/math/geometry-foundations/activity.d.mts +1 -1
  1833. package/dist/math/geometry-foundations/index.d.mts +3 -1
  1834. package/dist/math/geometry-foundations/preset.d.mts +1 -12
  1835. package/dist/math/geometry-foundations/preset.mjs +7 -6
  1836. package/dist/math/gradient-descent.d.mts +1 -9
  1837. package/dist/math/gradient-descent.mjs +2 -2
  1838. package/dist/math/grapher/index.d.mts +2 -1
  1839. package/dist/math/grapher/preset.d.mts +1 -12
  1840. package/dist/math/grapher/preset.mjs +4 -2
  1841. package/dist/math/harmonic-form/index.d.mts +2 -1
  1842. package/dist/math/harmonic-form/preset.d.mts +1 -8
  1843. package/dist/math/identity-proof/default-proof.d.mts +0 -1
  1844. package/dist/math/identity-proof/index.d.mts +2 -1
  1845. package/dist/math/identity-proof/preset.d.mts +1 -8
  1846. package/dist/math/index.d.mts +55 -7
  1847. package/dist/math/index.mjs +5 -7
  1848. package/dist/math/integral-explorer/preset.d.mts +1 -10
  1849. package/dist/math/integral-explorer/preset.mjs +4 -4
  1850. package/dist/math/interactive/index.d.mts +2 -1
  1851. package/dist/math/interactive/preset.d.mts +2 -14
  1852. package/dist/math/interactive/preset.mjs +2 -3
  1853. package/dist/math/iteration/index.d.mts +2 -1
  1854. package/dist/math/iteration/preset.d.mts +1 -11
  1855. package/dist/math/iteration/preset.mjs +2 -1
  1856. package/dist/math/limit-explorer/preset.d.mts +1 -8
  1857. package/dist/math/limit-explorer/preset.mjs +2 -1
  1858. package/dist/math/linear-model/index.d.mts +2 -1
  1859. package/dist/math/linear-model/preset.d.mts +0 -1
  1860. package/dist/math/linear-model/preset.mjs +23 -22
  1861. package/dist/math/linear-system/index.d.mts +2 -1
  1862. package/dist/math/linear-system/preset.d.mts +1 -9
  1863. package/dist/math/lines-in-space/core.mjs +1 -1
  1864. package/dist/math/lines-in-space/index.d.mts +2 -1
  1865. package/dist/math/lines-in-space/preset.d.mts +1 -17
  1866. package/dist/math/lines-in-space/preset.mjs +4 -2
  1867. package/dist/math/measurement/activity.d.mts +1 -1
  1868. package/dist/math/measurement/index.d.mts +3 -1
  1869. package/dist/math/measurement/preset.d.mts +1 -17
  1870. package/dist/math/measurement/preset.mjs +4 -3
  1871. package/dist/math/mystery-bucket/asset.d.mts +0 -1
  1872. package/dist/math/mystery-bucket/asset.mjs +2 -1
  1873. package/dist/math/mystery-bucket/index.d.mts +2 -1
  1874. package/dist/math/mystery-bucket/preset.d.mts +2 -11
  1875. package/dist/math/mystery-bucket/preset.mjs +1 -1
  1876. package/dist/math/newton-method/preset.d.mts +1 -9
  1877. package/dist/math/newton-method/preset.mjs +4 -2
  1878. package/dist/math/number-line/index.d.mts +2 -1
  1879. package/dist/math/number-line/preset.d.mts +1 -10
  1880. package/dist/math/number-structure/core.mjs +1 -1
  1881. package/dist/math/number-structure/index.d.mts +2 -1
  1882. package/dist/math/number-structure/preset.d.mts +1 -12
  1883. package/dist/math/number-structure/preset.mjs +1 -1
  1884. package/dist/math/number-structure/visuals.mjs +2 -1
  1885. package/dist/math/oblique-triangle/index.d.mts +2 -1
  1886. package/dist/math/oblique-triangle/preset.d.mts +1 -8
  1887. package/dist/math/ode/system.d.mts +0 -1
  1888. package/dist/math/parabola/index.d.mts +2 -1
  1889. package/dist/math/parabola/preset.d.mts +1 -5
  1890. package/dist/math/partial-fractions/core.d.mts +1 -2
  1891. package/dist/math/partial-fractions/core.mjs +3 -2
  1892. package/dist/math/partial-fractions/index.d.mts +2 -1
  1893. package/dist/math/partial-fractions/preset.d.mts +2 -11
  1894. package/dist/math/partial-fractions/preset.mjs +1 -1
  1895. package/dist/math/pattern/asset.d.mts +0 -1
  1896. package/dist/math/pattern/asset.mjs +2 -1
  1897. package/dist/math/pattern/index.d.mts +2 -1
  1898. package/dist/math/pattern/preset.d.mts +3 -16
  1899. package/dist/math/pattern/preset.mjs +9 -7
  1900. package/dist/math/percent-bar/index.d.mts +2 -1
  1901. package/dist/math/percent-bar/preset.d.mts +0 -1
  1902. package/dist/math/percent-bar/preset.mjs +4 -4
  1903. package/dist/math/phase-portrait/preset.d.mts +1 -12
  1904. package/dist/math/phase-portrait/preset.mjs +3 -2
  1905. package/dist/math/poly/index.d.mts +3 -2
  1906. package/dist/math/poly/index.mjs +5 -0
  1907. package/dist/math/poly/preset.d.mts +1 -8
  1908. package/dist/math/poly/preset.mjs +6 -7
  1909. package/dist/math/poly/steps.d.mts +2 -3
  1910. package/dist/math/poly/steps.mjs +6 -6
  1911. package/dist/math/radian-wrap/core.d.mts +1 -1
  1912. package/dist/math/radian-wrap/index.d.mts +2 -1
  1913. package/dist/math/radian-wrap/preset.d.mts +1 -7
  1914. package/dist/math/rate-machine/index.d.mts +2 -1
  1915. package/dist/math/rate-machine/preset.d.mts +0 -1
  1916. package/dist/math/rate-machine/preset.mjs +21 -20
  1917. package/dist/math/ratio-share/index.d.mts +2 -1
  1918. package/dist/math/ratio-share/preset.d.mts +0 -1
  1919. package/dist/math/receipt/index.d.mts +2 -1
  1920. package/dist/math/receipt/preset.d.mts +0 -1
  1921. package/dist/math/receipt/preset.mjs +7 -5
  1922. package/dist/math/sequence-predict/index.d.mts +2 -1
  1923. package/dist/math/sequence-predict/preset.d.mts +0 -1
  1924. package/dist/math/sequence-predict/preset.mjs +3 -2
  1925. package/dist/math/slide-rule/index.d.mts +2 -1
  1926. package/dist/math/slide-rule/preset.d.mts +1 -9
  1927. package/dist/math/slide-rule/preset.mjs +6 -7
  1928. package/dist/math/solid-net/core.d.mts +1 -1
  1929. package/dist/math/solid-net/index.d.mts +2 -1
  1930. package/dist/math/solid-net/preset.d.mts +1 -12
  1931. package/dist/math/solid-net/preset.mjs +15 -15
  1932. package/dist/math/solid-slice/core.mjs +189 -0
  1933. package/dist/math/solid-slice/preset.mjs +278 -0
  1934. package/dist/math/straight-line/index.d.mts +2 -1
  1935. package/dist/math/straight-line/preset.d.mts +0 -1
  1936. package/dist/math/system-solve/index.d.mts +2 -1
  1937. package/dist/math/system-solve/preset.d.mts +0 -1
  1938. package/dist/math/tank-design/core.mjs +40 -0
  1939. package/dist/math/tank-design/preset.mjs +465 -0
  1940. package/dist/math/taylor-series/preset.d.mts +1 -10
  1941. package/dist/math/taylor-series/preset.mjs +2 -1
  1942. package/dist/math/transform/index.d.mts +2 -1
  1943. package/dist/math/transform/preset.d.mts +5 -11
  1944. package/dist/math/transform/preset.mjs +5 -4
  1945. package/dist/math/triangle-trig/index.d.mts +2 -1
  1946. package/dist/math/triangle-trig/preset.d.mts +2 -17
  1947. package/dist/math/triangle-trig/preset.mjs +1 -1
  1948. package/dist/math/trig/core.d.mts +1 -3
  1949. package/dist/math/trig/core.mjs +3 -2
  1950. package/dist/math/trig/diagrams.mjs +2 -2
  1951. package/dist/math/trig/index.d.mts +3 -1
  1952. package/dist/math/trig/preset.d.mts +1 -10
  1953. package/dist/math/trig/rules.d.mts +1 -1
  1954. package/dist/math/trig/rules.mjs +2 -2
  1955. package/dist/math/trig-explorer.d.mts +1 -5
  1956. package/dist/networking/AirtimeScene.d.mts +10 -0
  1957. package/dist/networking/AirtimeScene.mjs +212 -0
  1958. package/dist/networking/CellularScene.d.mts +36 -0
  1959. package/dist/networking/CellularScene.mjs +406 -0
  1960. package/dist/networking/EncapScene.mjs +22 -37
  1961. package/dist/networking/HandoverScene.d.mts +15 -0
  1962. package/dist/networking/HandoverScene.mjs +196 -0
  1963. package/dist/networking/HandshakeScene.d.mts +11 -0
  1964. package/dist/networking/HandshakeScene.mjs +270 -0
  1965. package/dist/networking/MediaScene.mjs +2 -2
  1966. package/dist/networking/NetworkScene.d.mts +2 -10
  1967. package/dist/networking/NetworkScene.mjs +5 -1
  1968. package/dist/networking/NetworkingPrimitiveScene.d.mts +8 -0
  1969. package/dist/networking/NetworkingPrimitiveScene.mjs +183 -0
  1970. package/dist/networking/PacketInspector.d.mts +2 -5
  1971. package/dist/networking/PlugScene.mjs +5 -5
  1972. package/dist/networking/PrivacyScene.d.mts +13 -0
  1973. package/dist/networking/PrivacyScene.mjs +307 -0
  1974. package/dist/networking/SatelliteScene.d.mts +10 -0
  1975. package/dist/networking/SatelliteScene.mjs +240 -0
  1976. package/dist/networking/SpectrumScene.d.mts +15 -0
  1977. package/dist/networking/SpectrumScene.mjs +444 -0
  1978. package/dist/networking/SubnetScene.mjs +4 -4
  1979. package/dist/networking/SwitchScene.mjs +2 -2
  1980. package/dist/networking/VlanScene.mjs +2 -2
  1981. package/dist/networking/VpnScene.mjs +1 -1
  1982. package/dist/networking/WifiScene.d.mts +19 -0
  1983. package/dist/networking/WifiScene.mjs +702 -0
  1984. package/dist/networking/index.d.mts +13 -5
  1985. package/dist/networking/index.mjs +12 -4
  1986. package/dist/pathways/biology.d.mts +0 -1
  1987. package/dist/pathways/calculus.d.mts +0 -1
  1988. package/dist/pathways/chemistry.d.mts +0 -1
  1989. package/dist/pathways/cloud-infrastructure.d.mts +6 -0
  1990. package/dist/pathways/cloud-infrastructure.mjs +211 -0
  1991. package/dist/pathways/digital-logic.d.mts +0 -1
  1992. package/dist/pathways/electronic-circuits.d.mts +0 -1
  1993. package/dist/pathways/electronic-circuits.mjs +9 -3
  1994. package/dist/pathways/electronic-devices.d.mts +0 -1
  1995. package/dist/pathways/index.d.mts +4 -2
  1996. package/dist/pathways/index.mjs +4 -2
  1997. package/dist/pathways/network-communication.d.mts +6 -0
  1998. package/dist/pathways/network-communication.mjs +172 -0
  1999. package/dist/pathways/quantum.d.mts +0 -1
  2000. package/dist/pathways/relativity.d.mts +0 -1
  2001. package/dist/pathways/types.d.mts +3 -5
  2002. package/dist/pathways/types.mjs +10 -5
  2003. package/dist/physics/alternating-current/index.d.mts +3 -2
  2004. package/dist/physics/alternating-current/index.mjs +4 -0
  2005. package/dist/physics/alternating-current/preset.d.mts +4 -21
  2006. package/dist/physics/alternating-current/preset.mjs +873 -684
  2007. package/dist/physics/astronomy/core.d.mts +111 -0
  2008. package/dist/physics/astronomy/core.mjs +147 -0
  2009. package/dist/physics/attenuation/core.d.mts +106 -0
  2010. package/dist/physics/attenuation/core.mjs +112 -0
  2011. package/dist/physics/atwood/index.d.mts +2 -1
  2012. package/dist/physics/atwood/preset.d.mts +2 -10
  2013. package/dist/physics/atwood/preset.mjs +228 -283
  2014. package/dist/physics/biot-savart/activity.mjs +61 -0
  2015. package/dist/physics/biot-savart/preset.mjs +337 -0
  2016. package/dist/physics/biot-savart/presets.mjs +149 -0
  2017. package/dist/physics/biot-savart/torque-activity.mjs +57 -0
  2018. package/dist/physics/biot-savart/torque-preset.mjs +334 -0
  2019. package/dist/physics/bullet-walls/index.d.mts +2 -1
  2020. package/dist/physics/bullet-walls/model.mjs +81 -0
  2021. package/dist/physics/bullet-walls/preset.d.mts +1 -12
  2022. package/dist/physics/bullet-walls/preset.mjs +27 -49
  2023. package/dist/physics/carnot/index.d.mts +2 -1
  2024. package/dist/physics/carnot/preset.d.mts +1 -11
  2025. package/dist/physics/carnot/preset.mjs +25 -27
  2026. package/dist/physics/circular-motion/index.d.mts +2 -1
  2027. package/dist/physics/circular-motion/model.mjs +46 -0
  2028. package/dist/physics/circular-motion/preset.d.mts +1 -11
  2029. package/dist/physics/circular-motion/preset.mjs +30 -47
  2030. package/dist/physics/collision-track/index.d.mts +2 -1
  2031. package/dist/physics/collision-track/model.mjs +62 -0
  2032. package/dist/physics/collision-track/preset.d.mts +1 -13
  2033. package/dist/physics/collision-track/preset.mjs +87 -70
  2034. package/dist/physics/constants.d.mts +125 -0
  2035. package/dist/physics/constants.mjs +128 -0
  2036. package/dist/physics/couple-torque/index.d.mts +2 -1
  2037. package/dist/physics/couple-torque/preset.d.mts +1 -11
  2038. package/dist/physics/couple-torque/preset.mjs +18 -7
  2039. package/dist/physics/efficiency/index.d.mts +2 -1
  2040. package/dist/physics/efficiency/preset.d.mts +1 -12
  2041. package/dist/physics/efficiency/preset.mjs +22 -25
  2042. package/dist/physics/electric-field/index.d.mts +2 -1
  2043. package/dist/physics/electric-field/preset.d.mts +2 -8
  2044. package/dist/physics/electric-field/preset.mjs +14 -15
  2045. package/dist/physics/electric-flux/index.d.mts +2 -1
  2046. package/dist/physics/electric-flux/preset.d.mts +1 -12
  2047. package/dist/physics/electricity/engine.d.mts +54 -0
  2048. package/dist/physics/electricity/engine.mjs +126 -0
  2049. package/dist/physics/electricity/faults.d.mts +31 -0
  2050. package/dist/physics/electricity/faults.mjs +65 -0
  2051. package/dist/physics/electrostatics/coulomb-activity.mjs +119 -0
  2052. package/dist/physics/electrostatics/coulomb-preset.mjs +331 -0
  2053. package/dist/physics/electrostatics/coulomb-presets.mjs +60 -0
  2054. package/dist/physics/energy/core.d.mts +199 -0
  2055. package/dist/physics/energy/core.mjs +265 -0
  2056. package/dist/physics/energy-skate/index.d.mts +2 -1
  2057. package/dist/physics/energy-skate/model.mjs +92 -0
  2058. package/dist/physics/energy-skate/preset.d.mts +1 -11
  2059. package/dist/physics/energy-skate/preset.mjs +24 -49
  2060. package/dist/physics/entropy/index.d.mts +2 -1
  2061. package/dist/physics/entropy/preset.d.mts +1 -8
  2062. package/dist/physics/entropy/preset.mjs +11 -6
  2063. package/dist/physics/expansion/index.d.mts +2 -1
  2064. package/dist/physics/expansion/preset.d.mts +1 -9
  2065. package/dist/physics/expansion/preset.mjs +26 -19
  2066. package/dist/physics/exponential/asset.mjs +2 -2
  2067. package/dist/physics/exponential/index.d.mts +2 -1
  2068. package/dist/physics/exponential/preset.d.mts +1 -7
  2069. package/dist/physics/fields/activity.d.mts +23 -1
  2070. package/dist/physics/fields/activity.mjs +29 -2
  2071. package/dist/physics/fields/index.d.mts +9 -2
  2072. package/dist/physics/fields/index.mjs +19 -0
  2073. package/dist/physics/fields/spatial-activity.d.mts +0 -1
  2074. package/dist/physics/fields/spatial-preset.d.mts +4 -15
  2075. package/dist/physics/fields/spatial-preset.mjs +1 -3
  2076. package/dist/physics/fluid-pressure/index.d.mts +2 -1
  2077. package/dist/physics/fluid-pressure/preset.d.mts +1 -11
  2078. package/dist/physics/fluid-pressure/preset.mjs +3 -3
  2079. package/dist/physics/force-pairs/index.d.mts +2 -1
  2080. package/dist/physics/force-pairs/preset.d.mts +1 -11
  2081. package/dist/physics/force-pairs/preset.mjs +90 -87
  2082. package/dist/physics/gas-process/index.d.mts +2 -1
  2083. package/dist/physics/gas-process/preset.d.mts +1 -12
  2084. package/dist/physics/gas-process/preset.mjs +15 -12
  2085. package/dist/physics/gauss-law/index.d.mts +2 -1
  2086. package/dist/physics/gauss-law/preset.d.mts +1 -9
  2087. package/dist/physics/geomagnetism/activity.mjs +60 -0
  2088. package/dist/physics/geomagnetism/preset.mjs +300 -0
  2089. package/dist/physics/geomagnetism/presets.mjs +68 -0
  2090. package/dist/physics/gravitation/index.d.mts +2 -1
  2091. package/dist/physics/gravitation/preset.d.mts +8 -15
  2092. package/dist/physics/gravitation/preset.mjs +94 -46
  2093. package/dist/physics/gravity-drop.d.mts +1 -8
  2094. package/dist/physics/gravity-drop.mjs +9 -7
  2095. package/dist/physics/gravity-profile/index.d.mts +2 -0
  2096. package/dist/physics/gravity-profile/preset.d.mts +39 -0
  2097. package/dist/physics/gravity-profile/preset.mjs +508 -0
  2098. package/dist/physics/heat-transfer/index.d.mts +2 -1
  2099. package/dist/physics/heat-transfer/preset.d.mts +1 -9
  2100. package/dist/physics/heat-transfer/preset.mjs +52 -43
  2101. package/dist/physics/impulse/index.d.mts +2 -1
  2102. package/dist/physics/impulse/preset.d.mts +1 -12
  2103. package/dist/physics/impulse/preset.mjs +37 -35
  2104. package/dist/physics/index.d.mts +90 -7
  2105. package/dist/physics/index.mjs +38 -7
  2106. package/dist/physics/intercept/index.d.mts +2 -1
  2107. package/dist/physics/intercept/preset.d.mts +1 -14
  2108. package/dist/physics/intercept/preset.mjs +2 -2
  2109. package/dist/physics/investigation/circuit.d.mts +41 -0
  2110. package/dist/physics/investigation/circuit.mjs +174 -0
  2111. package/dist/physics/investigation/cooling.d.mts +44 -0
  2112. package/dist/physics/investigation/cooling.mjs +195 -0
  2113. package/dist/physics/investigation/density.d.mts +28 -0
  2114. package/dist/physics/investigation/density.mjs +136 -0
  2115. package/dist/physics/investigation/energy-resource.mjs +453 -0
  2116. package/dist/physics/investigation/engine.d.mts +106 -0
  2117. package/dist/physics/investigation/engine.mjs +126 -0
  2118. package/dist/physics/investigation/measurement.mjs +182 -0
  2119. package/dist/physics/investigation/optics.d.mts +38 -0
  2120. package/dist/physics/investigation/optics.mjs +155 -0
  2121. package/dist/physics/investigation/paper5.mjs +359 -0
  2122. package/dist/physics/investigation/radiation.mjs +304 -0
  2123. package/dist/physics/investigation/refraction.d.mts +40 -0
  2124. package/dist/physics/investigation/refraction.mjs +161 -0
  2125. package/dist/physics/investigation/space.mjs +191 -0
  2126. package/dist/physics/investigation/trolley.d.mts +43 -0
  2127. package/dist/physics/investigation/trolley.mjs +194 -0
  2128. package/dist/physics/investigation-activity.d.mts +25 -0
  2129. package/dist/physics/investigation-activity.mjs +86 -0
  2130. package/dist/physics/kepler/index.d.mts +2 -1
  2131. package/dist/physics/kepler/preset.d.mts +1 -11
  2132. package/dist/physics/kepler/preset.mjs +20 -21
  2133. package/dist/physics/lever/asset.d.mts +0 -1
  2134. package/dist/physics/lever/index.d.mts +2 -1
  2135. package/dist/physics/lever/preset.d.mts +2 -17
  2136. package/dist/physics/lever/preset.mjs +7 -5
  2137. package/dist/physics/lift-weight/index.d.mts +2 -0
  2138. package/dist/physics/lift-weight/preset.d.mts +23 -0
  2139. package/dist/physics/lift-weight/preset.mjs +362 -0
  2140. package/dist/physics/lifting-work/preset.mjs +411 -0
  2141. package/dist/physics/linear-pursuit/preset.d.mts +1 -12
  2142. package/dist/physics/lorentz/index.d.mts +2 -1
  2143. package/dist/physics/lorentz/model.mjs +16 -0
  2144. package/dist/physics/lorentz/preset.d.mts +1 -14
  2145. package/dist/physics/lorentz/preset.mjs +162 -93
  2146. package/dist/physics/machines/ac-generator/core.d.mts +41 -0
  2147. package/dist/physics/machines/ac-generator/core.mjs +63 -0
  2148. package/dist/physics/machines/ac-generator/index.d.mts +3 -0
  2149. package/dist/physics/machines/ac-generator/model.mjs +14 -0
  2150. package/dist/physics/machines/ac-generator/preset.d.mts +30 -0
  2151. package/dist/physics/machines/ac-generator/preset.mjs +684 -0
  2152. package/dist/physics/machines/dc-motor/core.d.mts +28 -0
  2153. package/dist/physics/machines/dc-motor/core.mjs +69 -0
  2154. package/dist/physics/machines/dc-motor/index.d.mts +3 -0
  2155. package/dist/physics/machines/dc-motor/preset.d.mts +30 -0
  2156. package/dist/physics/machines/dc-motor/preset.mjs +689 -0
  2157. package/dist/physics/magnetism/formula-core.d.mts +1 -0
  2158. package/dist/physics/magnetism/formula-core.mjs +30 -0
  2159. package/dist/physics/magnetism/index.d.mts +4 -1
  2160. package/dist/physics/magnetism/preset.d.mts +2 -8
  2161. package/dist/physics/magnetism/preset.mjs +73 -37
  2162. package/dist/physics/mechanics/activity.mjs +8 -21
  2163. package/dist/physics/mechanics/core.d.mts +59 -23
  2164. package/dist/physics/mechanics/core.mjs +90 -55
  2165. package/dist/physics/mechanics/presentation.mjs +3 -98
  2166. package/dist/physics/modern/imaging/activity.d.mts +0 -1
  2167. package/dist/physics/modern/imaging/index.d.mts +7 -2
  2168. package/dist/physics/modern/imaging/pet-activity.d.mts +5 -0
  2169. package/dist/physics/modern/imaging/pet-activity.mjs +115 -0
  2170. package/dist/physics/modern/imaging/pet-core.d.mts +296 -0
  2171. package/dist/physics/modern/imaging/pet-core.mjs +389 -0
  2172. package/dist/physics/modern/imaging/pet-preset.d.mts +26 -0
  2173. package/dist/physics/modern/imaging/pet-preset.mjs +167 -0
  2174. package/dist/physics/modern/imaging/pet-scene.d.mts +21 -0
  2175. package/dist/physics/modern/imaging/pet-scene.mjs +245 -0
  2176. package/dist/physics/modern/imaging/preset.d.mts +1 -10
  2177. package/dist/physics/modern/imaging/spectrum-activity.d.mts +0 -1
  2178. package/dist/physics/modern/imaging/spectrum-preset.d.mts +1 -10
  2179. package/dist/physics/modern/imaging/spectrum-preset.mjs +5 -4
  2180. package/dist/physics/modern/imaging/spectrum-scene.d.mts +1 -5
  2181. package/dist/physics/modern/imaging/spectrum-scene.mjs +3 -1
  2182. package/dist/physics/modern/imaging/xray-core.d.mts +20 -1
  2183. package/dist/physics/modern/imaging/xray-core.mjs +26 -1
  2184. package/dist/physics/modern/imaging/xray-scene.mjs +2 -2
  2185. package/dist/physics/modern/index.d.mts +14 -5
  2186. package/dist/physics/modern/index.mjs +9 -5
  2187. package/dist/physics/modern/nuclear/activity.d.mts +0 -1
  2188. package/dist/physics/modern/nuclear/core.d.mts +2 -3
  2189. package/dist/physics/modern/nuclear/core.mjs +2 -1
  2190. package/dist/physics/modern/nuclear/fission-activity.d.mts +0 -1
  2191. package/dist/physics/modern/nuclear/fission-core.d.mts +1 -9
  2192. package/dist/physics/modern/nuclear/fission-preset.d.mts +1 -10
  2193. package/dist/physics/modern/nuclear/fission-scene.mjs +4 -5
  2194. package/dist/physics/modern/nuclear/index.d.mts +4 -2
  2195. package/dist/physics/modern/nuclear/preset.d.mts +1 -8
  2196. package/dist/physics/modern/quantum/activity.d.mts +0 -1
  2197. package/dist/physics/modern/quantum/bloch-activity.d.mts +0 -1
  2198. package/dist/physics/modern/quantum/bloch-preset.d.mts +2 -13
  2199. package/dist/physics/modern/quantum/bloch-preset.mjs +9 -9
  2200. package/dist/physics/modern/quantum/double-slit-activity.d.mts +0 -1
  2201. package/dist/physics/modern/quantum/double-slit-core.d.mts +32 -1
  2202. package/dist/physics/modern/quantum/double-slit-core.mjs +43 -5
  2203. package/dist/physics/modern/quantum/double-slit-preset.d.mts +2 -11
  2204. package/dist/physics/modern/quantum/double-slit-preset.mjs +187 -126
  2205. package/dist/physics/modern/quantum/gates-activity.d.mts +0 -1
  2206. package/dist/physics/modern/quantum/gates-core.d.mts +0 -1
  2207. package/dist/physics/modern/quantum/gates-core.mjs +6 -3
  2208. package/dist/physics/modern/quantum/gates-preset.d.mts +1 -8
  2209. package/dist/physics/modern/quantum/index.d.mts +4 -2
  2210. package/dist/physics/modern/quantum/photoelectric-core.d.mts +2 -2
  2211. package/dist/physics/modern/quantum/photoelectric-core.mjs +3 -2
  2212. package/dist/physics/modern/quantum/preset.d.mts +1 -10
  2213. package/dist/physics/modern/quantum/preset.mjs +1 -1
  2214. package/dist/physics/modern/quantum/uncertainty-activity.d.mts +0 -1
  2215. package/dist/physics/modern/quantum/uncertainty-preset.d.mts +1 -8
  2216. package/dist/physics/modern/relativity/activity.d.mts +0 -1
  2217. package/dist/physics/modern/relativity/explorer-activity.d.mts +0 -1
  2218. package/dist/physics/modern/relativity/explorer-core.d.mts +0 -1
  2219. package/dist/physics/modern/relativity/explorer-preset.d.mts +1 -8
  2220. package/dist/physics/modern/relativity/index.d.mts +2 -1
  2221. package/dist/physics/modern/relativity/length-activity.d.mts +0 -1
  2222. package/dist/physics/modern/relativity/length-core.d.mts +0 -1
  2223. package/dist/physics/modern/relativity/length-core.mjs +1 -1
  2224. package/dist/physics/modern/relativity/length-preset.d.mts +1 -8
  2225. package/dist/physics/modern/relativity/length-preset.mjs +2 -2
  2226. package/dist/physics/modern/relativity/light-clock.d.mts +1 -4
  2227. package/dist/physics/modern/relativity/light-clock.mjs +3 -3
  2228. package/dist/physics/modern/relativity/muon-activity.d.mts +0 -1
  2229. package/dist/physics/modern/relativity/muon-core.mjs +1 -1
  2230. package/dist/physics/modern/relativity/muon-preset.d.mts +1 -10
  2231. package/dist/physics/modern/relativity/muon-scene.d.mts +1 -6
  2232. package/dist/physics/modern/relativity/muon-scene.mjs +3 -3
  2233. package/dist/physics/modern/relativity/preset.d.mts +1 -12
  2234. package/dist/physics/modern/relativity/simultaneity-activity.d.mts +0 -1
  2235. package/dist/physics/modern/relativity/simultaneity-core.d.mts +0 -1
  2236. package/dist/physics/modern/relativity/simultaneity-core.mjs +1 -1
  2237. package/dist/physics/modern/relativity/simultaneity-preset.d.mts +1 -8
  2238. package/dist/physics/modern/relativity/simultaneity-preset.mjs +1 -1
  2239. package/dist/physics/modern/relativity/spacetime.d.mts +1 -4
  2240. package/dist/physics/modern/shared/experiment-transport.d.mts +2 -12
  2241. package/dist/physics/modern/shared/experiment-transport.mjs +28 -23
  2242. package/dist/physics/modern/shared/index.d.mts +2 -1
  2243. package/dist/physics/optics/asset.d.mts +0 -1
  2244. package/dist/physics/optics/index.d.mts +2 -2
  2245. package/dist/physics/optics/lens.d.mts +1 -12
  2246. package/dist/physics/optics/lens.mjs +235 -226
  2247. package/dist/physics/optics/mirror.d.mts +1 -12
  2248. package/dist/physics/optics/mirror.mjs +237 -227
  2249. package/dist/physics/optics/preset.d.mts +1 -8
  2250. package/dist/physics/optics/preset.mjs +1 -1
  2251. package/dist/physics/optics/refraction.d.mts +1 -12
  2252. package/dist/physics/optics/refraction.mjs +8 -5
  2253. package/dist/physics/orbit-lab.d.mts +2 -10
  2254. package/dist/physics/orbit-lab.mjs +153 -156
  2255. package/dist/physics/orbital/core.d.mts +57 -14
  2256. package/dist/physics/orbital/core.mjs +60 -38
  2257. package/dist/physics/orbital/model.d.mts +50 -0
  2258. package/dist/physics/orbital/model.mjs +66 -0
  2259. package/dist/physics/power/index.d.mts +2 -1
  2260. package/dist/physics/power/preset.d.mts +1 -13
  2261. package/dist/physics/power/preset.mjs +12 -11
  2262. package/dist/physics/projectiles/core.d.mts +1 -0
  2263. package/dist/physics/projectiles/core.mjs +32 -4
  2264. package/dist/physics/projectiles/falling-target.d.mts +1 -12
  2265. package/dist/physics/projectiles/falling-target.mjs +4 -3
  2266. package/dist/physics/projectiles/index.d.mts +3 -1
  2267. package/dist/physics/projectiles/moving-launcher.d.mts +1 -15
  2268. package/dist/physics/projectiles/moving-launcher.mjs +4 -4
  2269. package/dist/physics/rain-relative/index.d.mts +2 -1
  2270. package/dist/physics/rain-relative/model.mjs +14 -0
  2271. package/dist/physics/rain-relative/preset.d.mts +1 -10
  2272. package/dist/physics/rain-relative/preset.mjs +14 -10
  2273. package/dist/physics/ramp-forces/index.d.mts +2 -1
  2274. package/dist/physics/ramp-forces/preset.d.mts +1 -15
  2275. package/dist/physics/ramp-forces/preset.mjs +63 -44
  2276. package/dist/physics/river-boat.d.mts +1 -12
  2277. package/dist/physics/river-crossing.mjs +1 -1
  2278. package/dist/physics/shm/core.mjs +51 -17
  2279. package/dist/physics/shm/energy.d.mts +24 -0
  2280. package/dist/physics/shm/energy.mjs +654 -0
  2281. package/dist/physics/shm/graphs.d.mts +20 -0
  2282. package/dist/physics/shm/graphs.mjs +483 -0
  2283. package/dist/physics/shm/index.d.mts +6 -1
  2284. package/dist/physics/shm/pendulum-worlds.d.mts +18 -0
  2285. package/dist/physics/shm/pendulum-worlds.mjs +356 -0
  2286. package/dist/physics/shm/preset.d.mts +2 -14
  2287. package/dist/physics/shm/preset.mjs +107 -33
  2288. package/dist/physics/shm/springs.d.mts +23 -0
  2289. package/dist/physics/shm/springs.mjs +404 -0
  2290. package/dist/physics/spin-studio/index.d.mts +2 -0
  2291. package/dist/physics/spin-studio/preset.d.mts +20 -0
  2292. package/dist/physics/spin-studio/preset.mjs +395 -0
  2293. package/dist/physics/stopping-distance/index.d.mts +2 -1
  2294. package/dist/physics/stopping-distance/preset.d.mts +1 -14
  2295. package/dist/physics/stopping-distance/preset.mjs +58 -52
  2296. package/dist/physics/stress-strain/core.d.mts +1 -6
  2297. package/dist/physics/stress-strain/core.mjs +1 -1
  2298. package/dist/physics/stress-strain/index.d.mts +2 -1
  2299. package/dist/physics/stress-strain/preset.d.mts +2 -15
  2300. package/dist/physics/stress-strain/preset.mjs +285 -89
  2301. package/dist/physics/suspension/index.d.mts +2 -0
  2302. package/dist/physics/suspension/preset.d.mts +26 -0
  2303. package/dist/physics/suspension/preset.mjs +887 -0
  2304. package/dist/physics/temperature-scales/index.d.mts +2 -1
  2305. package/dist/physics/temperature-scales/preset.d.mts +1 -9
  2306. package/dist/physics/temperature-scales/preset.mjs +24 -17
  2307. package/dist/physics/terminal-velocity/index.d.mts +2 -1
  2308. package/dist/physics/terminal-velocity/model.mjs +54 -0
  2309. package/dist/physics/terminal-velocity/preset.d.mts +1 -11
  2310. package/dist/physics/terminal-velocity/preset.mjs +25 -59
  2311. package/dist/physics/thermal/activity.d.mts +3 -39
  2312. package/dist/physics/thermal/activity.mjs +8 -21
  2313. package/dist/physics/thermal/index.d.mts +2 -1
  2314. package/dist/physics/thermal/model.mjs +46 -0
  2315. package/dist/physics/thermal/preset.d.mts +1 -17
  2316. package/dist/physics/thermal/preset.mjs +45 -44
  2317. package/dist/physics/ultrasound/core.d.mts +221 -0
  2318. package/dist/physics/ultrasound/core.mjs +235 -0
  2319. package/dist/physics/vector-board/index.d.mts +2 -1
  2320. package/dist/physics/vector-board/preset.d.mts +1 -17
  2321. package/dist/physics/vector-board/preset.mjs +93 -39
  2322. package/dist/physics/vector-types/index.d.mts +2 -1
  2323. package/dist/physics/vector-types/preset.d.mts +1 -8
  2324. package/dist/physics/venturi/core.mjs +1 -1
  2325. package/dist/physics/venturi/index.d.mts +2 -1
  2326. package/dist/physics/venturi/preset.d.mts +1 -10
  2327. package/dist/physics/venturi/preset.mjs +2 -1
  2328. package/dist/physics/water-density/index.d.mts +2 -1
  2329. package/dist/physics/water-density/preset.d.mts +1 -8
  2330. package/dist/physics/water-density/preset.mjs +34 -38
  2331. package/dist/physics/waves/doppler-core.d.mts +106 -0
  2332. package/dist/physics/waves/doppler-core.mjs +157 -0
  2333. package/dist/physics/waves/doppler-model.mjs +90 -0
  2334. package/dist/physics/waves/doppler.d.mts +1 -11
  2335. package/dist/physics/waves/doppler.mjs +32 -52
  2336. package/dist/physics/waves/guitar.d.mts +22 -0
  2337. package/dist/physics/waves/guitar.mjs +807 -0
  2338. package/dist/physics/waves/index.d.mts +3 -1
  2339. package/dist/physics/waves/interference-core.d.mts +157 -0
  2340. package/dist/physics/waves/interference-core.mjs +207 -0
  2341. package/dist/physics/waves/preset.d.mts +2 -15
  2342. package/dist/physics/waves/preset.mjs +24 -20
  2343. package/dist/physics/waves/ripple.d.mts +2 -13
  2344. package/dist/physics/waves/ripple.mjs +25 -12
  2345. package/dist/physics/waves/string.d.mts +2 -14
  2346. package/dist/physics/waves/string.mjs +43 -19
  2347. package/dist/physics/waves/wave-activity.mjs +53 -3
  2348. package/dist/physics/work-energy/index.d.mts +2 -1
  2349. package/dist/physics/work-energy/preset.d.mts +1 -8
  2350. package/dist/physics/work-energy/preset.mjs +11 -10
  2351. package/dist/physics/work-potential/index.d.mts +2 -1
  2352. package/dist/physics/work-potential/preset.d.mts +1 -16
  2353. package/dist/physics/work-potential/preset.mjs +18 -17
  2354. package/dist/schemas/activity-authoring.d.mts +2 -3
  2355. package/dist/schemas/index.d.mts +2 -3
  2356. package/dist/shared/fields.mjs +1 -1
  2357. package/dist/statistics/center-spread/preset.d.mts +1 -14
  2358. package/dist/statistics/center-spread/preset.mjs +11 -8
  2359. package/dist/statistics/frequency-density/index.d.mts +2 -1
  2360. package/dist/statistics/frequency-density/preset.d.mts +1 -10
  2361. package/dist/statistics/frequency-density/preset.mjs +1 -1
  2362. package/dist/statistics/galton/preset.d.mts +1 -12
  2363. package/dist/statistics/galton/preset.mjs +7 -6
  2364. package/dist/statistics/histogram/preset.d.mts +1 -12
  2365. package/dist/statistics/histogram/preset.mjs +12 -8
  2366. package/dist/statistics/index.d.mts +2 -0
  2367. package/dist/statistics/normal/preset.d.mts +1 -13
  2368. package/dist/statistics/normal/preset.mjs +7 -3
  2369. package/dist/statistics/ogive/index.d.mts +2 -1
  2370. package/dist/statistics/ogive/preset.d.mts +1 -8
  2371. package/dist/statistics/sampling/preset.d.mts +1 -14
  2372. package/dist/statistics/sequence/preset.d.mts +1 -12
  2373. package/dist/statistics/sequence/preset.mjs +8 -5
  2374. package/dist/statistics/z-table/preset.d.mts +1 -12
  2375. package/dist/statistics/z-table/preset.mjs +9 -7
  2376. package/dist/tex/index.d.mts +2 -0
  2377. package/dist/tex/index.mjs +3 -0
  2378. package/dist/three/biology/cell-energy.d.mts +2 -8
  2379. package/dist/three/biology/cell-system.d.mts +3 -10
  2380. package/dist/three/biology/cell-world.d.mts +5 -33
  2381. package/dist/three/biology/cell-world.mjs +173 -171
  2382. package/dist/three/biology/meiosis-explorer.d.mts +2 -7
  2383. package/dist/three/biology/membrane-transport.d.mts +2 -7
  2384. package/dist/three/biology/membrane-transport.mjs +3 -2
  2385. package/dist/three/biology/mitosis-explorer.d.mts +2 -8
  2386. package/dist/three/biology/mitosis-explorer.mjs +11 -10
  2387. package/dist/three/biology/organelles.d.mts +1 -11
  2388. package/dist/three/chemistry/atomic-orbital.d.mts +1 -1
  2389. package/dist/three/chemistry/atomic-orbital.mjs +4 -2
  2390. package/dist/three/chemistry/crystal-lattice.d.mts +1 -1
  2391. package/dist/three/chemistry/crystal-lattice.mjs +38 -37
  2392. package/dist/three/chemistry/molecular-geometry.d.mts +1 -1
  2393. package/dist/three/chemistry/molecular-geometry.mjs +12 -8
  2394. package/dist/three/chemistry/orbital-overlap.d.mts +1 -1
  2395. package/dist/three/chemistry/stereochemistry.d.mts +1 -1
  2396. package/dist/three/index.d.mts +3 -0
  2397. package/dist/three/model-asset.d.mts +1 -7
  2398. package/dist/three/palette.d.mts +0 -1
  2399. package/dist/three/palette.mjs +1 -1
  2400. package/dist/three/physics/bloch-sphere.d.mts +0 -1
  2401. package/dist/three/physics/spatial-lorentz.d.mts +1 -1
  2402. package/dist/three/physics/spatial-lorentz.mjs +2 -2
  2403. package/dist/three/primitives.d.mts +7 -48
  2404. package/dist/three/primitives.mjs +3 -3
  2405. package/dist/three/surface.d.mts +1 -14
  2406. package/package.json +44 -8
  2407. package/styles/core.css +753 -661
  2408. package/styles/domains/algorithms.css +3 -3
  2409. package/styles/domains/biology.css +2 -3
  2410. package/styles/domains/chemistry.css +2 -3
  2411. package/styles/domains/circuits.css +2 -3
  2412. package/styles/domains/discrete.css +2 -3
  2413. package/styles/domains/editor.css +2 -3
  2414. package/styles/domains/ict.css +2 -3
  2415. package/styles/domains/logic.css +2 -3
  2416. package/styles/domains/math.css +2 -3
  2417. package/styles/domains/ml.css +2 -3
  2418. package/styles/domains/networking.css +4 -0
  2419. package/styles/domains/parts/algorithms-0.css +441 -0
  2420. package/styles/domains/parts/algorithms-3.css +1 -1
  2421. package/styles/domains/parts/biology.css +91 -0
  2422. package/styles/domains/parts/chemistry.css +1452 -28
  2423. package/styles/domains/parts/circuits.css +1 -1
  2424. package/styles/domains/parts/discrete-2.css +12 -3
  2425. package/styles/domains/parts/discrete-6.css +38 -13
  2426. package/styles/domains/parts/editor.css +23 -0
  2427. package/styles/domains/parts/logic-2.css +1 -1
  2428. package/styles/domains/parts/math-1.css +33 -3
  2429. package/styles/domains/parts/math-2.css +9 -0
  2430. package/styles/domains/parts/math-6.css +107 -20
  2431. package/styles/domains/parts/networking.css +212 -0
  2432. package/styles/domains/parts/physics-1.css +92 -10
  2433. package/styles/domains/parts/physics-2.css +25 -3
  2434. package/styles/domains/parts/physics-3.css +52 -11
  2435. package/styles/domains/physics.css +2 -3
  2436. package/styles/domains/probability.css +2 -3
  2437. package/styles/domains/statistics.css +2 -3
  2438. package/styles/domains.css +2 -2
  2439. package/styles/figure.css +130 -4
  2440. package/dist/kit/answer-check.d.mts +0 -38
  2441. package/dist/kit/answer-check.mjs +0 -93
  2442. package/dist/kit/calc.d.mts +0 -33
  2443. package/dist/kit/calc.mjs +0 -27
  2444. package/dist/kit/expr-analysis.d.mts +0 -49
  2445. package/dist/kit/expr-analysis.mjs +0 -166
  2446. package/dist/kit/solve.d.mts +0 -21
  2447. package/dist/kit/solve.mjs +0 -75
  2448. package/dist/kit/space.mjs +0 -326
  2449. package/dist/math/complex/core.d.mts +0 -93
  2450. package/dist/math/complex/core.mjs +0 -239
  2451. package/dist/math/poly/core.d.mts +0 -50
  2452. package/dist/math/poly/core.mjs +0 -268
  2453. package/dist/networking/contract.d.mts +0 -136
  2454. package/dist/networking/encapsulation.mjs +0 -130
  2455. package/dist/networking/ip.d.mts +0 -12
  2456. package/dist/networking/ip.mjs +0 -30
  2457. package/dist/networking/media.mjs +0 -183
  2458. package/dist/networking/presets.d.mts +0 -7
  2459. package/dist/networking/presets.mjs +0 -302
  2460. package/dist/networking/simulation.d.mts +0 -8
  2461. package/dist/networking/simulation.mjs +0 -148
  2462. package/dist/networking/subnet.mjs +0 -84
  2463. package/dist/networking/switch.mjs +0 -155
  2464. package/dist/networking/vlan.mjs +0 -100
  2465. package/dist/networking/vpn.mjs +0 -118
  2466. package/dist/physics/alternating-current/core.d.mts +0 -162
  2467. package/dist/physics/alternating-current/core.mjs +0 -155
  2468. package/dist/physics/fields/spatial-core.d.mts +0 -16
  2469. package/dist/physics/fields/spatial-core.mjs +0 -72
  2470. package/dist/physics/modern/constants.d.mts +0 -5
  2471. package/dist/physics/modern/constants.mjs +0 -6
  2472. package/dist/physics/optics/core.d.mts +0 -37
  2473. package/dist/physics/optics/core.mjs +0 -67
  2474. package/dist/physics/vector-scene.d.mts +0 -41
  2475. package/dist/physics/vector-scene.mjs +0 -235
  2476. package/dist/physics/waves/core.mjs +0 -33
  2477. package/styles/domains/parts/shared-1.css +0 -142
  2478. package/styles/domains/parts/shared-2.css +0 -60
  2479. package/styles/domains/shared.css +0 -3
package/styles/core.css CHANGED
@@ -48,6 +48,10 @@
48
48
  --lab-t-lg: 18px;
49
49
  --lab-t-title: 20px;
50
50
  --lab-t-hero: 24px;
51
+ /* The one editorial size, for ONE thing per lab: the title. A scale stopping at 24px spans 2.4x
52
+ and reads as a control panel, because nothing is allowed to behave like a heading. Pair it
53
+ with --lab-lh-title and --lab-ls-tight. */
54
+ --lab-t-display: 32px;
51
55
 
52
56
  /* ── type roles: weight, leading, tracking ───────────────────────────────────
53
57
  Four weights, four leadings, two trackings. A size on its own does not make
@@ -62,15 +66,15 @@
62
66
  --lab-lh-ui: 1.45; /* everything a learner acts on */
63
67
  --lab-lh-prose: 1.55; /* explanations, observe text */
64
68
  --lab-ls-caps: 0.06em; /* small uppercase labels only */
65
- --lab-ls-tight: -0.015em; /* large numerals only */
69
+ --lab-ls-tight: -0.015em; /* large numerals and display type */
66
70
 
67
71
  /* ── targets ─────────────────────────────────────────────────────────────────
68
72
  44px for anything the learner commits with (answers, primary actions,
69
- transport, sliders' hit area). 36px for dense secondary controls inside a
70
- dock (chips, segments, icon buttons), still above the WCAG 2.2 AA minimum
71
- of 24px and spaced at least 8px apart. */
73
+ transport, sliders' hit area). Compact secondary controls use the same 44px
74
+ hit target; their visual glyph may remain smaller, but the tappable area does
75
+ not require precision and adjacent controls stay at least 8px apart. */
72
76
  --lab-target: 44px;
73
- --lab-target-compact: 36px;
77
+ --lab-target-compact: 44px;
74
78
 
75
79
  /* ── state tints ─────────────────────────────────────────────────────────────
76
80
  Every surface that reacts uses the SAME four steps, so "picked" looks like
@@ -148,6 +152,11 @@
148
152
  has to (SVG geometry with no box to outline); it never restates them. */
149
153
 
150
154
  /* Focus: one ring for every keyboard focus under a lab root. */
155
+ :is(.lab-activity, .lab-scene-studio) button {
156
+ min-block-size: var(--lab-target);
157
+ min-inline-size: var(--lab-target);
158
+ }
159
+
151
160
  :is(.lab-activity, .lab-scene-studio)
152
161
  :is(
153
162
  button,
@@ -168,42 +177,30 @@
168
177
  outline-offset: var(--lab-focus-offset);
169
178
  }
170
179
 
171
- /* Reduced motion: honoured at the root, not per animation. Everything collapses
172
- to a single frame; confetti is removed outright because a still burst is
173
- noise. A scene that must move to teach keeps a static state that still shows
174
- the fact (see the lab-design rulebook). */
180
+ /* Reduced motion: honoured at the root, not per animation. Drop the MOVEMENT, keep the feedback.
181
+ The preference is about vestibular discomfort from things travelling and scaling, not about
182
+ colour. Collapsing transition-duration to nothing also killed the tint that says an answer was
183
+ accepted and the fade that says a panel changed, so a learner who asks for less motion lost the
184
+ signals telling them the lab had responded at all. Transform and movement snap; colour, border
185
+ and opacity still cross-fade, quickly. Confetti goes outright: a still burst is just noise. */
175
186
  @media (prefers-reduced-motion: reduce) {
176
187
  :is(.lab-activity, .lab-scene-studio) :is(*, *::before, *::after) {
177
188
  animation-duration: 0.01ms !important;
178
189
  animation-iteration-count: 1 !important;
179
- transition-duration: 0.01ms !important;
190
+ transition-property: color, background-color, border-color, fill, stroke, opacity !important;
191
+ transition-duration: var(--lab-dur-fast) !important;
180
192
  scroll-behavior: auto !important;
181
193
  }
182
194
  .lab-activity .lab-confetti {
183
195
  display: none;
184
196
  }
185
- }
186
-
187
- /* Tree Quest: causal motion, recursion memory, and prediction—not decoration. */
188
- .tree-scene {
189
- position: relative;
190
- overflow: hidden;
191
- min-height: 17rem;
192
- border: 1px solid var(--border, var(--stage-grid));
193
- border-radius: var(--lab-r-md);
194
- background:
195
- radial-gradient(
196
- circle at 1px 1px,
197
- color-mix(in oklab, currentColor 9%, transparent) 1px,
198
- transparent 0
199
- )
200
- 0 0 / 20px 20px,
201
- var(--card, var(--stage-bg));
202
- }
203
- .tree-fit-button {
204
- position: absolute;
205
- top: var(--lab-sp-8);
206
- right: var(--lab-sp-8);
197
+ /* A figure's entrance becomes a fade rather than a scale: an opacity change is safe under this
198
+ query where a transform is not. It is stated HERE, with the rest of the policy, because a
199
+ sheet may not keep its own copy of this media query, and because a figure rendered outside
200
+ `.lab-activity` is not reached by the blanket rule above. */
201
+ :is(.lab-figure-arrive, .lab-figure-activate) {
202
+ animation-name: lab-figure-fade;
203
+ }
207
204
  }
208
205
 
209
206
  /* One geometry contract for renderer-swappable learning scenes. The selected
@@ -260,239 +257,6 @@
260
257
  .lab-scene-viewport[data-overflow="scroll"]:focus-visible {
261
258
  outline-offset: calc(-1 * var(--lab-focus-offset));
262
259
  }
263
-
264
- .tree-scene svg {
265
- display: block;
266
- width: 100%;
267
- height: clamp(17rem, 36cqw, 27rem);
268
- }
269
- .tree-edge {
270
- fill: none;
271
- stroke: var(--border, var(--stage-grid));
272
- stroke-width: 2;
273
- vector-effect: non-scaling-stroke;
274
- transition:
275
- stroke var(--lab-dur-base) var(--lab-ease),
276
- stroke-width var(--lab-dur-base) var(--lab-ease);
277
- }
278
- .tree-edge[data-active] {
279
- stroke: var(--primary, var(--stage-accent));
280
- stroke-width: 4;
281
- stroke-dasharray: 8 6;
282
- animation: tree-edge-flow 0.75s linear infinite;
283
- }
284
- .tree-node {
285
- outline: none;
286
- cursor: default;
287
- transition: transform var(--lab-dur-slow) var(--lab-ease);
288
- }
289
- .tree-node[tabindex] {
290
- cursor: pointer;
291
- }
292
- .tree-node-face {
293
- fill: var(--card, var(--stage-bg));
294
- stroke: var(--border, var(--stage-grid));
295
- stroke-width: 1.5;
296
- vector-effect: non-scaling-stroke;
297
- transition:
298
- fill var(--lab-dur-base) var(--lab-ease),
299
- stroke var(--lab-dur-base) var(--lab-ease);
300
- }
301
- .tree-node-halo {
302
- fill: transparent;
303
- stroke: transparent;
304
- stroke-width: 1.5;
305
- vector-effect: non-scaling-stroke;
306
- }
307
- .tree-node text {
308
- fill: var(--foreground, var(--stage-fg));
309
- font-size: var(--lab-t-sm);
310
- font-weight: var(--lab-w-bold);
311
- pointer-events: none;
312
- }
313
- .tree-node[data-visited] .tree-node-face {
314
- fill: color-mix(in oklab, var(--stage-success, #16a34a) 16%, var(--card, var(--stage-bg)));
315
- stroke: var(--stage-success, #16a34a);
316
- }
317
- .tree-node[data-current] .tree-node-face {
318
- fill: color-mix(in oklab, var(--primary, var(--stage-accent)) 14%, var(--card, var(--stage-bg)));
319
- stroke: var(--primary, var(--stage-accent));
320
- stroke-width: 3;
321
- }
322
- .tree-node[data-current] .tree-node-halo {
323
- stroke: color-mix(in oklab, var(--primary, var(--stage-accent)) 38%, transparent);
324
- animation: tree-node-pulse 1.25s var(--lab-ease) infinite;
325
- }
326
- .tree-node:focus-visible .tree-node-halo {
327
- stroke: var(--ring, var(--stage-accent));
328
- stroke-width: 2.5;
329
- }
330
- .tree-prediction {
331
- display: flex;
332
- flex-wrap: wrap;
333
- align-items: center;
334
- justify-content: center;
335
- gap: var(--lab-sp-10);
336
- padding: var(--lab-sp-10);
337
- border: 1px solid
338
- color-mix(in oklab, var(--primary, var(--stage-accent)) 25%, var(--border, var(--stage-grid)));
339
- border-radius: var(--lab-r-md);
340
- background: color-mix(
341
- in oklab,
342
- var(--primary, var(--stage-accent)) 6%,
343
- var(--card, var(--stage-bg))
344
- );
345
- }
346
- .tree-prediction > span {
347
- font-size: var(--lab-t-eyebrow);
348
- font-weight: var(--lab-w-bold);
349
- }
350
- .tree-prediction > div {
351
- display: flex;
352
- flex-wrap: wrap;
353
- justify-content: center;
354
- gap: var(--lab-sp-6);
355
- }
356
- .tree-prediction small {
357
- display: inline-flex;
358
- align-items: center;
359
- gap: var(--lab-sp-4);
360
- flex-basis: 100%;
361
- justify-content: center;
362
- color: var(--muted-foreground, var(--stage-muted));
363
- text-align: center;
364
- }
365
- .tree-prediction small svg {
366
- width: 0.9rem;
367
- height: 0.9rem;
368
- }
369
-
370
- .list-structure-label {
371
- margin: 2px 0 var(--lab-sp-4);
372
- color: var(--muted-foreground, var(--stage-muted));
373
- font-size: var(--lab-t-eyebrow);
374
- }
375
-
376
- .list-structure-label[data-spaced] {
377
- margin-top: var(--lab-sp-14);
378
- }
379
-
380
- .list-prediction-feedback {
381
- display: flex;
382
- align-items: center;
383
- justify-content: center;
384
- gap: var(--lab-sp-4);
385
- margin-top: var(--lab-sp-10);
386
- color: var(--muted-foreground, var(--stage-muted));
387
- }
388
-
389
- .tree-complexity ul {
390
- list-style: none;
391
- margin: 0;
392
- padding: 0;
393
- display: grid;
394
- gap: var(--lab-sp-4);
395
- }
396
- .tree-complexity li {
397
- display: flex;
398
- align-items: center;
399
- justify-content: space-between;
400
- gap: var(--lab-sp-8);
401
- padding: var(--lab-sp-6) var(--lab-sp-8);
402
- border: 1px solid var(--border, var(--stage-grid));
403
- border-radius: var(--lab-r-sm);
404
- font-size: var(--lab-t-eyebrow);
405
- font-variant-numeric: tabular-nums;
406
- }
407
- .tree-complexity li[data-here] {
408
- border-color: var(--primary, var(--stage-accent));
409
- background: color-mix(
410
- in oklab,
411
- var(--primary, var(--stage-accent)) 9%,
412
- var(--card, var(--stage-bg))
413
- );
414
- font-weight: var(--lab-w-semibold);
415
- }
416
- .tree-complexity code {
417
- padding: 0 var(--lab-sp-4);
418
- border-radius: var(--lab-r-xs);
419
- background: var(--muted, color-mix(in oklab, currentColor 6%, transparent));
420
- font-size: 0.95em;
421
- }
422
- .tree-inspector {
423
- display: grid;
424
- gap: 1px;
425
- background: var(--border, var(--stage-grid));
426
- }
427
- .tree-inspector section {
428
- display: grid;
429
- gap: var(--lab-sp-8);
430
- padding: var(--lab-sp-12);
431
- background: var(--card, var(--stage-bg));
432
- }
433
- .tree-inspector h4,
434
- .tree-inspector p {
435
- margin: 0;
436
- font-size: var(--lab-t-eyebrow);
437
- }
438
- .tree-stack {
439
- display: grid;
440
- gap: var(--lab-sp-4);
441
- }
442
- .tree-stack span {
443
- padding: var(--lab-sp-6) var(--lab-sp-8);
444
- border: 1px solid var(--border, var(--stage-grid));
445
- border-radius: var(--lab-r-sm);
446
- background: var(--muted, color-mix(in oklab, currentColor 5%, transparent));
447
- font:
448
- 650 0.68rem ui-monospace,
449
- SFMono-Regular,
450
- Menlo,
451
- monospace;
452
- }
453
- .tree-stack span[data-top] {
454
- border-color: var(--primary, var(--stage-accent));
455
- color: var(--primary, var(--stage-accent));
456
- }
457
- .tree-stack em,
458
- .tree-output em {
459
- color: var(--muted-foreground, var(--stage-muted));
460
- font-size: var(--lab-t-micro);
461
- }
462
- .tree-output {
463
- display: flex;
464
- flex-wrap: wrap;
465
- gap: var(--lab-sp-6);
466
- min-height: 2rem;
467
- }
468
- .tree-output span {
469
- display: grid;
470
- width: 2rem;
471
- height: 2rem;
472
- place-items: center;
473
- border-radius: var(--lab-r-sm);
474
- background: color-mix(in oklab, var(--stage-success, #16a34a) 14%, transparent);
475
- color: var(--foreground, var(--stage-fg));
476
- font-size: var(--lab-t-eyebrow);
477
- font-weight: var(--lab-w-bold);
478
- animation: tree-output-land var(--lab-dur-slow) var(--lab-ease);
479
- }
480
- .tree-invariant p {
481
- color: var(--muted-foreground, var(--stage-muted));
482
- line-height: var(--lab-lh-ui);
483
- }
484
- .tree-balance strong {
485
- color: var(--primary, var(--stage-accent));
486
- font:
487
- 800 1.1rem ui-monospace,
488
- SFMono-Regular,
489
- Menlo,
490
- monospace;
491
- }
492
- .tree-balance small {
493
- color: var(--muted-foreground, var(--stage-muted));
494
- font-size: var(--lab-t-micro);
495
- }
496
260
  .tree-rotation-prediction .lab-chip {
497
261
  min-width: 6.8rem;
498
262
  justify-content: center;
@@ -756,179 +520,11 @@
756
520
  border-inline-start: 1px solid var(--border, var(--stage-grid));
757
521
  }
758
522
  }
759
-
760
- /* Heap Quest: synchronized tree and array with stable item identity. */
761
- .heap-dual-view {
762
- display: grid;
763
- gap: var(--lab-sp-10);
764
- min-width: 0;
765
- }
766
- .heap-tree {
767
- overflow: hidden;
768
- min-height: 18rem;
769
- border: 1px solid var(--border, var(--stage-grid));
770
- border-radius: var(--lab-r-md);
771
- background:
772
- radial-gradient(
773
- circle at 1px 1px,
774
- color-mix(in oklab, currentColor 9%, transparent) 1px,
775
- transparent 0
776
- )
777
- 0 0 / 20px 20px,
778
- var(--card, var(--stage-bg));
779
- }
780
- .heap-tree svg {
781
- display: block;
782
- width: 100%;
783
- height: clamp(18rem, 38cqw, 29rem);
784
- }
785
- .heap-tree line {
786
- stroke: var(--border, var(--stage-grid));
787
- stroke-width: 2;
788
- vector-effect: non-scaling-stroke;
789
- transition: stroke var(--lab-dur-base) var(--lab-ease);
790
- }
791
- .heap-tree line[data-active] {
792
- stroke: var(--primary, var(--stage-accent));
793
- stroke-width: 4;
794
- }
795
- .heap-node {
796
- outline: none;
797
- cursor: pointer;
798
- transition: transform 0.5s var(--lab-ease);
799
- }
800
- .heap-node circle {
801
- fill: var(--card, var(--stage-bg));
802
- stroke: var(--border, var(--stage-grid));
803
- stroke-width: 1.5;
804
- vector-effect: non-scaling-stroke;
805
- transition:
806
- fill var(--lab-dur-base) var(--lab-ease),
807
- stroke var(--lab-dur-base) var(--lab-ease);
808
- }
809
- .heap-node > text:not(.heap-node-index) {
810
- fill: var(--foreground, var(--stage-fg));
811
- font-size: var(--lab-t-micro);
812
- font-weight: var(--lab-w-bold);
813
- }
814
- .heap-node-index {
815
- fill: var(--muted-foreground, var(--stage-muted));
816
- font-size: var(--lab-t-micro);
817
- font-weight: var(--lab-w-semibold);
818
- }
819
- .heap-node[data-active] circle {
820
- fill: color-mix(in oklab, var(--primary, var(--stage-accent)) 13%, var(--card, var(--stage-bg)));
821
- stroke: var(--primary, var(--stage-accent));
822
- stroke-width: 3;
823
- }
824
- .heap-node[data-selected] circle,
825
- .heap-node:focus-visible circle {
826
- stroke: var(--ring, var(--stage-accent));
827
- stroke-width: 3;
828
- stroke-dasharray: 4 2;
829
- }
830
- .heap-array {
831
- display: flex;
832
- gap: var(--lab-sp-6);
833
- overflow-x: auto;
834
- padding: var(--lab-sp-4) 2px var(--lab-sp-8);
835
- scroll-snap-type: x proximity;
836
- }
837
- .heap-array button {
838
- display: grid;
839
- flex: 0 0 3rem;
840
- min-height: 3.25rem;
841
- place-items: center;
842
- scroll-snap-align: center;
843
- border: 1px solid var(--border, var(--stage-grid));
844
- border-radius: var(--lab-r-sm);
845
- background: var(--card, var(--stage-bg));
846
- color: var(--foreground, var(--stage-fg));
847
- cursor: pointer;
848
- }
849
- .heap-array button small {
850
- color: var(--muted-foreground, var(--stage-muted));
851
- font-size: var(--lab-t-micro);
852
- }
853
- .heap-array button strong {
854
- font-size: var(--lab-t-eyebrow);
855
- }
856
- .heap-array button[data-active] {
857
- border-color: var(--primary, var(--stage-accent));
858
- background: color-mix(
859
- in oklab,
860
- var(--primary, var(--stage-accent)) 10%,
861
- var(--card, var(--stage-bg))
862
- );
863
- }
864
- .heap-array button[data-selected],
865
- .heap-relation {
866
- display: flex;
867
- align-items: center;
868
- justify-content: space-between;
869
- gap: var(--lab-sp-12);
870
- min-height: 2.3rem;
871
- padding: var(--lab-sp-8) var(--lab-sp-10);
872
- border-radius: var(--lab-r-sm);
873
- background: var(--muted, color-mix(in oklab, currentColor 5%, transparent));
874
- color: var(--muted-foreground, var(--stage-muted));
875
- font:
876
- 0.67rem ui-monospace,
877
- SFMono-Regular,
878
- Menlo,
879
- monospace;
880
- }
881
- .heap-relation b {
882
- flex: none;
883
- color: var(--primary, var(--stage-accent));
884
- }
885
523
  .heap-prediction .lab-chip {
886
524
  min-width: 3.5rem;
887
525
  justify-content: center;
888
526
  text-transform: capitalize;
889
527
  }
890
- .heap-inspector {
891
- display: grid;
892
- gap: 1px;
893
- background: var(--border, var(--stage-grid));
894
- }
895
- .heap-inspector section {
896
- display: grid;
897
- gap: var(--lab-sp-8);
898
- padding: var(--lab-sp-12);
899
- background: var(--card, var(--stage-bg));
900
- }
901
- .heap-inspector h4,
902
- .heap-inspector p,
903
- .heap-inspector dl {
904
- margin: 0;
905
- font-size: var(--lab-t-eyebrow);
906
- }
907
- .heap-inspector p {
908
- color: var(--muted-foreground, var(--stage-muted));
909
- line-height: var(--lab-lh-ui);
910
- }
911
- .heap-inspector code {
912
- padding: var(--lab-sp-6) var(--lab-sp-8);
913
- border-radius: var(--lab-r-sm);
914
- background: var(--muted, color-mix(in oklab, currentColor 5%, transparent));
915
- font-size: var(--lab-t-micro);
916
- }
917
- .heap-inspector dl {
918
- display: grid;
919
- gap: var(--lab-sp-6);
920
- }
921
- .heap-inspector dl div {
922
- display: flex;
923
- justify-content: space-between;
924
- }
925
- .heap-inspector dd {
926
- margin: 0;
927
- font-weight: var(--lab-w-bold);
928
- }
929
- .heap-authoring-preview {
930
- min-width: 0;
931
- }
932
528
  @media (min-width: 56rem) {
933
529
  .heap-authoring {
934
530
  grid-template-columns: minmax(25rem, 1.2fr) minmax(20rem, 0.8fr);
@@ -1232,13 +828,19 @@
1232
828
  box-shadow var(--lab-dur-fast),
1233
829
  transform var(--lab-dur-fast);
1234
830
  }
1235
- .lab-option:hover:not(:disabled),
1236
- .lab-choice:hover:not(:disabled),
1237
- .lang-choice:hover:not(:disabled),
1238
- .lang-match-cell:hover:not(:disabled) {
1239
- border-color: var(--lab-accent-edge);
1240
- background: var(--lab-accent-faint);
1241
- box-shadow: var(--lab-shadow-md);
831
+ /* Gated on a real pointer. A touch device keeps :hover on the last thing tapped, and this hover is
832
+ an accent border over an accent-faint fill, which is precisely what PICKED looks like: a learner
833
+ on a phone tapped A, moved to B, and left A still looking chosen. Most of these learners are on
834
+ a phone, so the sticky state was the common case, not the edge case. */
835
+ @media (hover: hover) and (pointer: fine) {
836
+ .lab-option:hover:not(:disabled),
837
+ .lab-choice:hover:not(:disabled),
838
+ .lang-choice:hover:not(:disabled),
839
+ .lang-match-cell:hover:not(:disabled) {
840
+ border-color: var(--lab-accent-edge);
841
+ background: var(--lab-accent-faint);
842
+ box-shadow: var(--lab-shadow-md);
843
+ }
1242
844
  }
1243
845
  .lab-option:active:not(:disabled),
1244
846
  .lab-choice:active:not(:disabled),
@@ -1247,6 +849,29 @@
1247
849
  transform: translateY(1px);
1248
850
  box-shadow: none;
1249
851
  }
852
+ .lab-btn {
853
+ min-block-size: var(--lab-target);
854
+ border-color: var(--lab-accent);
855
+ background: var(--lab-accent);
856
+ color: var(--lab-accent-fg);
857
+ }
858
+ .lab-btn.lab-btn-ghost {
859
+ border-color: var(--lab-border);
860
+ background: transparent;
861
+ color: var(--lab-fg);
862
+ }
863
+ @media (hover: hover) and (pointer: fine) {
864
+ .lab-btn:hover:not(:disabled) {
865
+ border-color: var(--lab-accent);
866
+ background: color-mix(in oklab, var(--lab-accent) 88%, var(--lab-fg));
867
+ color: var(--lab-accent-fg);
868
+ }
869
+ .lab-btn.lab-btn-ghost:hover:not(:disabled) {
870
+ border-color: var(--lab-border-strong);
871
+ background: color-mix(in oklab, var(--lab-fg) 5%, transparent);
872
+ color: var(--lab-fg);
873
+ }
874
+ }
1250
875
  /* selected (accent) — unify the different data-attrs the components emit */
1251
876
  .lab-option[data-picked],
1252
877
  .lab-option[data-sel="true"],
@@ -1433,9 +1058,11 @@
1433
1058
  border-color var(--lab-dur-fast),
1434
1059
  color var(--lab-dur-fast);
1435
1060
  }
1436
- .lab-hint-btn:hover {
1437
- border-color: var(--lab-accent);
1438
- color: var(--lab-fg);
1061
+ @media (hover: hover) and (pointer: fine) {
1062
+ .lab-hint-btn:hover {
1063
+ border-color: var(--lab-accent);
1064
+ color: var(--lab-fg);
1065
+ }
1439
1066
  }
1440
1067
  .lab-misconception {
1441
1068
  display: inline-flex;
@@ -1464,9 +1091,11 @@
1464
1091
  border-color var(--lab-dur-fast),
1465
1092
  color var(--lab-dur-fast);
1466
1093
  }
1467
- .lab-reveal-btn:hover {
1468
- border-color: var(--lab-warn);
1469
- color: var(--lab-fg);
1094
+ @media (hover: hover) and (pointer: fine) {
1095
+ .lab-reveal-btn:hover {
1096
+ border-color: var(--lab-warn);
1097
+ color: var(--lab-fg);
1098
+ }
1470
1099
  }
1471
1100
  .lab-solution {
1472
1101
  margin-top: var(--lab-sp-8);
@@ -1536,7 +1165,7 @@
1536
1165
  .lab-challenge-q {
1537
1166
  display: flex;
1538
1167
  flex-direction: column;
1539
- gap: var(--lab-sp-10);
1168
+ gap: var(--lab-sp-8);
1540
1169
  align-items: flex-start;
1541
1170
  min-inline-size: 0;
1542
1171
  width: 100%;
@@ -1631,9 +1260,10 @@
1631
1260
  lesson authors do not hand-tune columns or button widths. */
1632
1261
  .lab-challenge-q[data-response-layout="compact"] .lab-choices {
1633
1262
  display: grid;
1634
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
1635
- max-width: 48rem;
1636
- gap: var(--lab-sp-10);
1263
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 14rem));
1264
+ justify-content: start;
1265
+ max-width: 100%;
1266
+ gap: var(--lab-sp-6);
1637
1267
  }
1638
1268
  .lab-challenge-q[data-response-layout="compact"] .lab-choice {
1639
1269
  height: 100%;
@@ -1645,8 +1275,8 @@
1645
1275
  max-width: 100%;
1646
1276
  min-height: 0;
1647
1277
  justify-content: flex-start;
1648
- gap: var(--lab-sp-10);
1649
- padding: var(--lab-sp-8) var(--lab-sp-10);
1278
+ gap: var(--lab-sp-8);
1279
+ padding: var(--lab-sp-6) var(--lab-sp-8);
1650
1280
  border: 1px solid var(--lab-border);
1651
1281
  border-radius: var(--lab-r-md);
1652
1282
  background: var(--lab-surface);
@@ -1674,8 +1304,16 @@
1674
1304
  cursor: not-allowed;
1675
1305
  opacity: 0.5;
1676
1306
  }
1307
+ /* An answer is not a heading.
1308
+ The shared option rule sets `--lab-t-lg` at semibold, which is larger and heavier than the body
1309
+ text and the step lead, so a row of prose answers came out as the loudest thing on the card and
1310
+ a three-option row read as three buttons shouting. Numeric choices want the presence; a sentence
1311
+ does not. Scoped to the label span, so the bare `.lab-option` keypad keeps its size. */
1677
1312
  .lab-choice-label {
1678
1313
  min-inline-size: 0;
1314
+ font-size: var(--lab-t-sm);
1315
+ font-weight: var(--lab-w-medium);
1316
+ line-height: var(--lab-lh-ui);
1679
1317
  }
1680
1318
  /* The letter is a handle, not decoration: it gives the explanation something to
1681
1319
  point at and keeps every answer's text starting on one vertical line. */
@@ -1697,10 +1335,12 @@
1697
1335
  font-weight: var(--lab-w-medium);
1698
1336
  line-height: var(--lab-lh-tight);
1699
1337
  }
1700
- .lab-challenge-q .lab-choice:hover:not(:disabled) {
1701
- border-color: var(--lab-accent-edge);
1702
- background: var(--lab-accent-faint);
1703
- box-shadow: none;
1338
+ @media (hover: hover) and (pointer: fine) {
1339
+ .lab-challenge-q .lab-choice:hover:not(:disabled) {
1340
+ border-color: var(--lab-accent-edge);
1341
+ background: var(--lab-accent-faint);
1342
+ box-shadow: none;
1343
+ }
1704
1344
  }
1705
1345
  .lab-challenge-q .lab-choice[data-picked] {
1706
1346
  font-weight: var(--lab-w-medium);
@@ -1901,11 +1541,17 @@
1901
1541
  font-size: var(--lab-t-sm);
1902
1542
  font-variant-numeric: tabular-nums;
1903
1543
  }
1544
+ /* Tabular figures, because these numbers CHANGE. In a proportional face a 1 is narrower than a 0,
1545
+ so a value ticking from 1.11 to 2.00 re-measures its own text and everything beside it slides a
1546
+ few pixels, every frame, for as long as the model runs. `.lab-readout` already had this; the
1547
+ stat rows and the status strip did not, and the status strip is the one place a running lab
1548
+ updates continuously in front of the learner. */
1904
1549
  .lab-stat {
1905
1550
  display: flex;
1906
1551
  align-items: baseline;
1907
1552
  justify-content: space-between;
1908
1553
  gap: var(--lab-sp-14);
1554
+ font-variant-numeric: tabular-nums;
1909
1555
  }
1910
1556
  .lab-stat + .lab-stat {
1911
1557
  padding-top: var(--lab-sp-6);
@@ -2254,7 +1900,6 @@
2254
1900
  margin-inline: auto;
2255
1901
  }
2256
1902
  .lang-sentence,
2257
- .lang-choices,
2258
1903
  .lang-listen-play,
2259
1904
  .lang-dictation-foot,
2260
1905
  .lang-bank,
@@ -2375,8 +2020,10 @@
2375
2020
  cursor: pointer;
2376
2021
  transition: background var(--lab-dur-fast);
2377
2022
  }
2378
- .lang-speak:hover {
2379
- background: color-mix(in oklab, var(--lab-accent) 22%, transparent);
2023
+ @media (hover: hover) and (pointer: fine) {
2024
+ .lang-speak:hover {
2025
+ background: color-mix(in oklab, var(--lab-accent) 22%, transparent);
2026
+ }
2380
2027
  }
2381
2028
 
2382
2029
  .lang-match {
@@ -2494,7 +2141,6 @@
2494
2141
  .language-activity-support {
2495
2142
  padding-inline: var(--lab-sp-12);
2496
2143
  }
2497
- .language-activity .lang-choices,
2498
2144
  .language-activity .lang-match {
2499
2145
  gap: var(--lab-sp-8);
2500
2146
  }
@@ -2629,8 +2275,10 @@
2629
2275
  color var(--lab-dur-fast),
2630
2276
  transform var(--lab-dur-fast);
2631
2277
  }
2632
- .lang-word:hover:not(:disabled) {
2633
- background: var(--lab-accent-soft);
2278
+ @media (hover: hover) and (pointer: fine) {
2279
+ .lang-word:hover:not(:disabled) {
2280
+ background: var(--lab-accent-soft);
2281
+ }
2634
2282
  }
2635
2283
  .lang-word[data-state="no"] {
2636
2284
  color: var(--lab-danger);
@@ -2710,11 +2358,6 @@
2710
2358
  color: var(--lab-good);
2711
2359
  font-weight: var(--lab-w-bold);
2712
2360
  }
2713
- .lang-choices {
2714
- display: flex;
2715
- flex-wrap: wrap;
2716
- gap: var(--lab-sp-10);
2717
- }
2718
2361
  .lang-why {
2719
2362
  font-size: var(--lab-t-body);
2720
2363
  font-weight: var(--lab-w-medium);
@@ -2997,8 +2640,11 @@
2997
2640
  align-items: center;
2998
2641
  justify-content: center;
2999
2642
  gap: 2px var(--lab-sp-14);
3000
- min-height: clamp(8rem, 24cqw, 13rem);
3001
- padding: calc(var(--lab-sp-16) + var(--lab-sp-6));
2643
+ /* Sized to the one line it holds. It was 8-13rem of empty dashed panel, which nobody had seen
2644
+ because no lab used PredictGate: on the first adopter it became the largest thing on the
2645
+ opening screen, under the choice it is asking the learner to make. */
2646
+ min-height: clamp(4.5rem, 12cqw, 6.5rem);
2647
+ padding: var(--lab-sp-16);
3002
2648
  border: 1px dashed var(--lab-border-strong);
3003
2649
  border-radius: var(--lab-r-lg);
3004
2650
  color: var(--lab-fg);
@@ -3098,8 +2744,8 @@
3098
2744
  display: flex;
3099
2745
  align-items: flex-start;
3100
2746
  justify-content: space-between;
3101
- gap: var(--lab-sp-16);
3102
- padding: var(--lab-sp-16) var(--lab-sp-16) var(--lab-sp-14);
2747
+ gap: var(--lab-sp-12);
2748
+ padding: var(--lab-sp-12) var(--lab-sp-16) var(--lab-sp-10);
3103
2749
  }
3104
2750
  .lab-activity-heading {
3105
2751
  min-width: 0;
@@ -3113,12 +2759,17 @@
3113
2759
  letter-spacing: var(--lab-ls-caps);
3114
2760
  text-transform: uppercase;
3115
2761
  }
2762
+ /* The one thing allowed to be a heading. Capped at 20px it matched the step lead and the readout
2763
+ values, so a learner met no hierarchy at all. Scales with the column: phone to full width. */
3116
2764
  .lab-activity-heading h3 {
3117
2765
  margin: 0;
3118
- font-size: clamp(1rem, 2.5vw, 1.25rem);
2766
+ font-size: clamp(1.25rem, 2.4cqi, 1.75rem);
2767
+ font-weight: var(--lab-w-bold);
3119
2768
  line-height: var(--lab-lh-title);
2769
+ letter-spacing: var(--lab-ls-tight);
3120
2770
  text-wrap: balance;
3121
2771
  }
2772
+ /* Read, not scanned, so reading size on reading leading. It was 14px: a control-label size. */
3122
2773
  .lab-activity-description {
3123
2774
  margin: var(--lab-sp-4) 0 0;
3124
2775
  max-width: 42rem;
@@ -3133,8 +2784,8 @@
3133
2784
  align-items: center;
3134
2785
  gap: var(--lab-sp-6);
3135
2786
  min-width: var(--lab-target);
3136
- min-height: var(--lab-target);
3137
- padding: var(--lab-sp-6) var(--lab-sp-10);
2787
+ min-height: var(--lab-target-compact);
2788
+ padding: var(--lab-sp-4) var(--lab-sp-8);
3138
2789
  border: 1px solid var(--border, var(--stage-grid));
3139
2790
  border-radius: var(--lab-r-sm);
3140
2791
  background: var(--background, var(--stage-bg));
@@ -3144,8 +2795,10 @@
3144
2795
  font-weight: var(--lab-w-semibold);
3145
2796
  cursor: pointer;
3146
2797
  }
3147
- .lab-activity-focus:hover {
3148
- background: var(--accent, color-mix(in oklab, currentColor 6%, transparent));
2798
+ @media (hover: hover) and (pointer: fine) {
2799
+ .lab-activity-focus:hover {
2800
+ background: var(--accent, color-mix(in oklab, currentColor 6%, transparent));
2801
+ }
3149
2802
  }
3150
2803
  .lab-activity-focus svg {
3151
2804
  width: 1rem;
@@ -3161,6 +2814,7 @@
3161
2814
  align-items: center;
3162
2815
  gap: var(--lab-sp-10);
3163
2816
  min-width: 0;
2817
+ font-variant-numeric: tabular-nums;
3164
2818
  padding: var(--lab-sp-10) var(--lab-sp-16);
3165
2819
  border-block: 1px solid var(--border, var(--stage-grid));
3166
2820
  background: color-mix(
@@ -3174,22 +2828,34 @@
3174
2828
  padding-inline-start: var(--lab-sp-10);
3175
2829
  border-inline-start: 1px solid var(--border, var(--stage-grid));
3176
2830
  }
3177
- .network-route-path {
2831
+ /* The line of readings inside the strip: "Pendulum · x 12 cm · T 2.84 s · f 0.35 Hz".
2832
+
2833
+ WRAPPING IS THE POINT. This was written out as an identical inline style in seven labs, and none
2834
+ of them said what should happen when the readings are wider than the card. A flex item's minimum
2835
+ width is its content, so the line could not shrink: it ran off the right edge of the lab and the
2836
+ card's own `overflow: hidden` cut the last reading in half. Three labs were losing a word each
2837
+ ("Copper", "proportional", "f 0.35 Hz") and the rest were one longer material name away from it.
2838
+
2839
+ A reading is a whole unit, so `wrap` breaks between readings and never inside one. The strip
2840
+ grows a line instead of swallowing a value.
2841
+
2842
+ The copies also set a 13px font size, which is not on the type scale and never was: it was
2843
+ reachable only because an inline style outranks the stylesheet. `.lab-activity-status` already
2844
+ declares the size this strip is meant to be, so the line simply inherits it now. The gap and the
2845
+ weight were on the scale all along and keep their exact values. */
2846
+ .lab-status-line {
2847
+ display: inline-flex;
2848
+ flex-wrap: wrap;
2849
+ align-items: center;
2850
+ gap: var(--lab-sp-8);
3178
2851
  min-width: 0;
3179
- flex: 1;
3180
- overflow: hidden;
3181
- color: var(--muted-foreground, var(--stage-muted));
3182
- text-align: center;
3183
- text-overflow: ellipsis;
3184
- white-space: nowrap;
3185
- }
3186
- .network-delivery {
3187
- flex: none;
3188
- color: var(--destructive, var(--stage-danger));
3189
2852
  font-weight: var(--lab-w-semibold);
3190
2853
  }
3191
- .network-delivery[data-delivered] {
3192
- color: var(--lab-good);
2854
+ /* A measurement the learner has not earned yet. It holds its slot so the strip keeps its shape
2855
+ when the number arrives, and reads as clearly absent rather than as a value of zero. */
2856
+ .lab-activity-measured-pending {
2857
+ color: var(--lab-muted);
2858
+ opacity: 0.55;
3193
2859
  }
3194
2860
  .lab-activity-workspace {
3195
2861
  display: grid;
@@ -3217,79 +2883,6 @@
3217
2883
  .lab-activity-dock {
3218
2884
  min-width: 0;
3219
2885
  }
3220
- .network-scene {
3221
- overflow: hidden;
3222
- border: 1px solid var(--border, var(--stage-grid));
3223
- border-radius: var(--lab-r-md);
3224
- background:
3225
- radial-gradient(
3226
- circle at 1px 1px,
3227
- color-mix(in oklab, currentColor 11%, transparent) 1px,
3228
- transparent 0
3229
- )
3230
- 0 0 / 20px 20px,
3231
- var(--card, var(--stage-bg));
3232
- }
3233
- .network-scene svg {
3234
- display: block;
3235
- width: 100%;
3236
- height: clamp(190px, 30vw, 300px);
3237
- }
3238
- .network-link {
3239
- stroke: var(--border, var(--stage-grid));
3240
- stroke-width: 4;
3241
- stroke-linecap: round;
3242
- transition:
3243
- stroke var(--lab-dur-base) var(--lab-ease),
3244
- stroke-width var(--lab-dur-base) var(--lab-ease);
3245
- }
3246
- .network-link[data-active] {
3247
- stroke: var(--primary, var(--stage-accent));
3248
- stroke-width: 7;
3249
- }
3250
- .network-link[data-down] {
3251
- stroke: var(--destructive, var(--stage-danger));
3252
- stroke-dasharray: 8 7;
3253
- }
3254
- .network-link-label {
3255
- fill: var(--muted-foreground, var(--stage-muted));
3256
- font-size: var(--lab-t-micro);
3257
- font-weight: var(--lab-w-semibold);
3258
- paint-order: stroke;
3259
- stroke: var(--card, var(--stage-bg));
3260
- stroke-width: 4px;
3261
- }
3262
- .network-device {
3263
- color: var(--foreground, var(--stage-fg));
3264
- outline: none;
3265
- }
3266
- .network-device-surface {
3267
- fill: var(--card, var(--stage-bg));
3268
- stroke: var(--border, var(--stage-grid));
3269
- stroke-width: 1.5;
3270
- }
3271
- .network-device-symbol {
3272
- color: var(--muted-foreground, var(--stage-muted));
3273
- }
3274
- .network-device-label {
3275
- fill: var(--foreground, var(--stage-fg));
3276
- font-size: var(--lab-t-micro);
3277
- font-weight: var(--lab-w-semibold);
3278
- }
3279
- .network-device[data-active] .network-device-surface {
3280
- fill: color-mix(in oklab, var(--primary, var(--stage-accent)) 12%, var(--card, var(--stage-bg)));
3281
- stroke: var(--primary, var(--stage-accent));
3282
- stroke-width: 3;
3283
- }
3284
- .network-device[data-active] .network-device-symbol {
3285
- color: var(--primary, var(--stage-accent));
3286
- }
3287
- .network-device:focus-visible .network-device-surface,
3288
- .network-device[data-selected] .network-device-surface {
3289
- stroke: var(--ring, var(--stage-accent));
3290
- stroke-width: 3;
3291
- stroke-dasharray: 5 3;
3292
- }
3293
2886
  .lab-activity-feedback {
3294
2887
  display: grid;
3295
2888
  /* minmax(0, 1fr), not 1fr: a grid track is at least min-content wide by default, so the longest
@@ -3320,8 +2913,8 @@
3320
2913
  text in the foreground colour, not as muted fine print. */
3321
2914
  .lab-authored-task {
3322
2915
  display: grid;
3323
- gap: var(--lab-sp-10);
3324
- padding: var(--lab-sp-14) var(--lab-sp-16);
2916
+ gap: var(--lab-sp-8);
2917
+ padding: var(--lab-sp-10) var(--lab-sp-16);
3325
2918
  border-top: 1px solid var(--border, var(--stage-grid));
3326
2919
  }
3327
2920
  /* An authored question is already a semantic section of Activity. Its challenge
@@ -3343,6 +2936,13 @@
3343
2936
  line-height: var(--lab-lh-ui);
3344
2937
  text-wrap: pretty;
3345
2938
  }
2939
+ /* The instruction standing alone over the model, rather than heading a stack of answer rows. It
2940
+ carries the padding the task section used to give it, and no rule of its own: it reads as a
2941
+ caption on the figure below, not as another band. */
2942
+ .lab-authored-lead-solo {
2943
+ padding: var(--lab-sp-10) var(--lab-sp-16) var(--lab-sp-4);
2944
+ font-size: var(--lab-t-sm);
2945
+ }
3346
2946
  @container lab-activity (max-width: 22rem) {
3347
2947
  .lab-activity-feedback {
3348
2948
  grid-template-columns: minmax(0, 1fr);
@@ -3355,6 +2955,7 @@
3355
2955
  letter-spacing: var(--lab-ls-caps);
3356
2956
  text-transform: uppercase;
3357
2957
  }
2958
+ .lab-activity-feedback > div,
3358
2959
  .lab-activity-feedback p {
3359
2960
  margin: 0;
3360
2961
  font-size: var(--lab-t-sm);
@@ -3388,6 +2989,7 @@
3388
2989
  align-items: end;
3389
2990
  gap: var(--lab-sp-10);
3390
2991
  }
2992
+
3391
2993
  /* Every control gets a real basis. Without one a Field falls back to its content width, and a
3392
2994
  Field holding a Slider has almost no content width (the Slider is a div, not an input), so a
3393
2995
  chip group beside it took the whole row and squeezed the slider to its 60px floor. `:has` also
@@ -3407,6 +3009,38 @@
3407
3009
  min-width: 0;
3408
3010
  }
3409
3011
  }
3012
+ /* ── Bench panel ───────────────────────────────────────────────────────────────
3013
+ Instruments as equipment BESIDE the diagram, never objects inside it (rationale in
3014
+ src/kit/instruments.tsx). Layout ONLY: no border, radius or fill, because rule 1 is one bordered
3015
+ container per lab and the dock hairline already delimits this. The instruments carry their own
3016
+ depth, so they read as objects on the card rather than needing a box drawn round them. */
3017
+ .lab-bench {
3018
+ display: flex;
3019
+ flex-wrap: wrap;
3020
+ align-items: flex-end;
3021
+ gap: var(--lab-sp-20);
3022
+ padding-block: var(--lab-sp-8);
3023
+ }
3024
+ .lab-bench > .lab-field {
3025
+ flex: 0 0 auto;
3026
+ }
3027
+ /* The panel is a BAND: sized to content it wraps its own children onto stray rows. */
3028
+ .lab-activity-fields > .lab-bench {
3029
+ flex: 1 1 100%;
3030
+ }
3031
+ .lab-bench .lab-field-row {
3032
+ align-items: center;
3033
+ gap: var(--lab-sp-8);
3034
+ }
3035
+ .lab-bench .lab-field-val {
3036
+ min-width: 0;
3037
+ }
3038
+ .lab-bench-meter {
3039
+ flex: 0 0 auto;
3040
+ display: flex;
3041
+ align-items: center;
3042
+ }
3043
+
3410
3044
  /* ── Authored lesson shell ──────────────────────────────────────────────────────
3411
3045
  One scene-first container. The model is the hero, its controls form a compact dock,
3412
3046
  and explanatory evidence stays contextual until the learner asks for it. */
@@ -3508,6 +3142,58 @@
3508
3142
  padding-top: var(--lab-sp-12);
3509
3143
  border-top: 1px solid color-mix(in oklab, var(--border, var(--stage-grid)) 70%, transparent);
3510
3144
  }
3145
+
3146
+ /* Mechanic-specific authored shells. They preserve the shared sequence and access behavior while
3147
+ making the scientific object, not repeated chrome, the first phone viewport. Existing labs keep
3148
+ `standard`; new flagships opt into one of these modes deliberately. */
3149
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"]) .lab-activity-status {
3150
+ padding-block: var(--lab-sp-6);
3151
+ background: transparent;
3152
+ border-bottom: 0;
3153
+ }
3154
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3155
+ .lab-authored-lead-solo {
3156
+ padding-block: var(--lab-sp-8) var(--lab-sp-4);
3157
+ font-size: var(--lab-t-sm);
3158
+ }
3159
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3160
+ .lab-activity-heading
3161
+ h3 {
3162
+ font-size: clamp(1.25rem, 5.5cqi, 1.65rem);
3163
+ line-height: var(--lab-lh-title);
3164
+ }
3165
+ .lab-authored-activity[data-presentation="observation"] .lab-activity-workspace {
3166
+ padding-top: var(--lab-sp-6);
3167
+ }
3168
+ .lab-authored-activity[data-presentation="construction"] .lab-activity-dock {
3169
+ position: sticky;
3170
+ bottom: 0;
3171
+ z-index: var(--lab-z-raised);
3172
+ }
3173
+ .lab-authored-activity[data-presentation="investigation"] .lab-activity-inspector,
3174
+ .lab-authored-activity[data-presentation="diagnosis"] .lab-activity-inspector {
3175
+ border-top-style: dashed;
3176
+ }
3177
+ @container lab-activity (max-width: 30rem) {
3178
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3179
+ .lab-activity-header {
3180
+ padding: var(--lab-sp-10) var(--lab-sp-12) var(--lab-sp-6);
3181
+ }
3182
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3183
+ .lab-activity-description {
3184
+ margin-top: 0;
3185
+ font-size: var(--lab-t-sm);
3186
+ line-height: var(--lab-lh-ui);
3187
+ }
3188
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3189
+ .lab-activity-status {
3190
+ padding-inline: var(--lab-sp-12);
3191
+ }
3192
+ .lab-authored-activity[data-presentation]:not([data-presentation="standard"])
3193
+ .lab-authored-lead-solo {
3194
+ padding-inline: var(--lab-sp-12);
3195
+ }
3196
+ }
3511
3197
  /* Segmented control: a labelled row of mutually-exclusive options as ONE compact control (an
3512
3198
  iOS-style track), not a column of full-width buttons. Reusable for any 2–4 option mode toggle. */
3513
3199
  .lab-segmented-field {
@@ -3528,10 +3214,11 @@
3528
3214
  learner cannot choose what they cannot see. Wrapping keeps every mode
3529
3215
  visible; the scroll below is the last resort for one option too wide to fit. */
3530
3216
  flex-wrap: wrap;
3531
- gap: var(--lab-sp-4);
3532
- padding: var(--lab-sp-4);
3533
- border-radius: var(--lab-r-pill, 999px);
3534
- background: color-mix(in oklab, var(--stage-fg) 7%, transparent);
3217
+ gap: var(--lab-sp-2);
3218
+ padding: var(--lab-sp-2);
3219
+ border-radius: var(--lab-r-sm, 6px);
3220
+ background: color-mix(in oklab, var(--stage-fg) 6%, transparent);
3221
+ border: 1px solid color-mix(in oklab, var(--lab-border) 60%, transparent);
3535
3222
  width: fit-content;
3536
3223
  max-width: 100%;
3537
3224
  /* The phone rule above lets a field shrink to avoid scrolling the page, but a segmented track
@@ -3569,99 +3256,39 @@
3569
3256
  .lab-segment {
3570
3257
  flex: 0 0 auto;
3571
3258
  min-height: var(--lab-target-compact);
3572
- padding: var(--lab-sp-4) var(--lab-sp-12);
3259
+ padding: var(--lab-sp-2) var(--lab-sp-10);
3573
3260
  border: 1px solid transparent;
3574
- border-radius: var(--lab-r-pill, 999px);
3261
+ border-radius: calc(var(--lab-r-sm, 6px) - 1px);
3575
3262
  background: transparent;
3576
3263
  box-shadow: none;
3577
3264
  color: var(--lab-muted);
3578
- font-size: var(--lab-t-sm, 0.8125rem);
3579
- font-weight: var(--lab-w-medium);
3265
+ font-size: var(--lab-t-sm);
3266
+ font-weight: var(--lab-w-medium, 500);
3580
3267
  white-space: nowrap;
3268
+ /* Named properties, not `all`. A blanket transition animates layout and paint together, so a
3269
+ width change that should be instant crossfades instead, and it is the reason the motion tokens
3270
+ exist: one duration and one easing for everything that moves. */
3271
+ transition:
3272
+ background var(--lab-dur-fast) var(--lab-ease),
3273
+ color var(--lab-dur-fast) var(--lab-ease),
3274
+ box-shadow var(--lab-dur-fast) var(--lab-ease);
3581
3275
  }
3582
- .lab-segment:hover:not([data-sel="true"]) {
3583
- background: color-mix(in oklab, var(--stage-fg) 6%, transparent);
3584
- color: var(--lab-fg);
3276
+ @media (hover: hover) and (pointer: fine) {
3277
+ .lab-segment:hover:not([data-sel="true"]) {
3278
+ background: color-mix(in oklab, var(--stage-fg) 5%, transparent);
3279
+ color: var(--lab-fg);
3280
+ }
3585
3281
  }
3586
3282
  .lab-segment[data-sel="true"] {
3587
3283
  background: var(--lab-surface);
3588
3284
  color: var(--lab-fg);
3589
- box-shadow: var(--lab-shadow-sm);
3590
- font-weight: var(--lab-w-semibold);
3285
+ box-shadow: 0 1px 2px color-mix(in oklab, currentColor 8%, transparent);
3286
+ font-weight: var(--lab-w-semibold, 600);
3591
3287
  }
3592
3288
  .lab-segment:disabled {
3593
3289
  opacity: 0.45;
3594
3290
  pointer-events: none;
3595
3291
  }
3596
- .network-inspector-heading {
3597
- display: flex;
3598
- align-items: center;
3599
- justify-content: space-between;
3600
- gap: var(--lab-sp-12);
3601
- padding: var(--lab-sp-12) var(--lab-sp-12);
3602
- border-bottom: 1px solid var(--border, var(--stage-grid));
3603
- }
3604
- .network-inspector-heading div {
3605
- display: flex;
3606
- align-items: baseline;
3607
- gap: var(--lab-sp-6);
3608
- }
3609
- .network-inspector-heading span {
3610
- color: var(--muted-foreground, var(--stage-muted));
3611
- font-size: var(--lab-t-micro);
3612
- font-weight: var(--lab-w-semibold);
3613
- letter-spacing: var(--lab-ls-caps);
3614
- text-transform: uppercase;
3615
- }
3616
- .network-inspector-heading strong {
3617
- font-size: var(--lab-t-eyebrow);
3618
- }
3619
- .network-packet {
3620
- overflow: hidden;
3621
- border: 1px solid var(--border, var(--stage-grid));
3622
- border-radius: var(--lab-r-md);
3623
- background: var(--card, var(--stage-bg));
3624
- }
3625
- .network-inspector .network-packet {
3626
- border: 0;
3627
- border-radius: 0;
3628
- }
3629
- .network-packet-head {
3630
- display: flex;
3631
- justify-content: space-between;
3632
- padding: var(--lab-sp-8) var(--lab-sp-12);
3633
- border-bottom: 1px solid var(--border, var(--stage-grid));
3634
- font-size: var(--lab-t-eyebrow);
3635
- }
3636
- .network-packet-head span {
3637
- color: var(--muted-foreground, var(--stage-muted));
3638
- font-variant-numeric: tabular-nums;
3639
- }
3640
- .network-layer-list {
3641
- display: grid;
3642
- gap: 1px;
3643
- margin: 0;
3644
- padding: 0;
3645
- list-style: none;
3646
- background: var(--border, var(--stage-grid));
3647
- }
3648
- .network-layer {
3649
- display: grid;
3650
- grid-template-columns: 4.8rem 3.5rem 1fr;
3651
- gap: var(--lab-sp-6);
3652
- padding: var(--lab-sp-8) var(--lab-sp-10);
3653
- background: var(--card, var(--stage-bg));
3654
- font-size: var(--lab-t-micro);
3655
- line-height: var(--lab-lh-ui);
3656
- }
3657
- .network-layer-name {
3658
- color: var(--muted-foreground, var(--stage-muted));
3659
- text-transform: uppercase;
3660
- letter-spacing: var(--lab-ls-caps);
3661
- }
3662
- .network-layer strong {
3663
- color: var(--primary, var(--stage-accent));
3664
- }
3665
3292
  .lab-activity-transport {
3666
3293
  display: grid;
3667
3294
  /* The middle column must be able to SHRINK: with an 8rem floor the three columns could not fit
@@ -3670,11 +3297,16 @@
3670
3297
  grid-template-columns: auto minmax(0, 18rem) auto;
3671
3298
  align-items: center;
3672
3299
  justify-content: center;
3673
- gap: var(--lab-sp-12);
3674
- padding: var(--lab-sp-12) var(--lab-sp-16);
3300
+ gap: var(--lab-sp-8);
3301
+ padding: var(--lab-sp-6) var(--lab-sp-10);
3675
3302
  border-top: 1px solid var(--border, var(--stage-grid));
3676
3303
  background: var(--card, var(--stage-bg));
3677
3304
  }
3305
+ .lab-icon-button svg {
3306
+ width: 1rem;
3307
+ height: 1rem;
3308
+ stroke-width: 1.8;
3309
+ }
3678
3310
  /* The transport's middle slot. This is shell, not a subject: it lived in the maths sheet, so every
3679
3311
  other subject rendered it unstyled, and a long status word ("Photosynthesising") could not shrink
3680
3312
  inside its flex row and pushed the transport past the card. */
@@ -3689,6 +3321,10 @@
3689
3321
  font-variant-numeric: tabular-nums;
3690
3322
  overflow-wrap: anywhere;
3691
3323
  }
3324
+ .lab-transport-state strong {
3325
+ font-size: var(--lab-t-eyebrow);
3326
+ line-height: var(--lab-lh-ui);
3327
+ }
3692
3328
  .lab-transport-state > * {
3693
3329
  min-width: 0;
3694
3330
  }
@@ -3749,15 +3385,25 @@
3749
3385
  color: var(--foreground, var(--stage-fg));
3750
3386
  }
3751
3387
  .lab-activity-progress progress {
3388
+ /* Same fix as `.physics-efficiency-ledger progress`, for the same two
3389
+ reasons: `appearance:none` so the background actually paints instead of
3390
+ being overridden by Chrome's native track, AND a foreground-derived mix
3391
+ instead of `--muted` (which is deliberately close to the surface tone it
3392
+ sits on - see `.lab-slider [data-slot="slider-track"]`'s comment - so an
3393
+ early step, a small fraction, read as a bare sliver with nothing visible
3394
+ behind it rather than a bar partway along a visible track). */
3395
+ appearance: none;
3396
+ -webkit-appearance: none;
3397
+ -moz-appearance: none;
3752
3398
  width: 100%;
3753
3399
  height: 0.28rem;
3754
3400
  overflow: hidden;
3755
3401
  border: 0;
3756
3402
  border-radius: var(--lab-r-pill);
3757
- background: var(--muted, var(--stage-grid));
3403
+ background: color-mix(in oklab, var(--stage-fg) 15%, transparent);
3758
3404
  }
3759
3405
  .lab-activity-progress progress::-webkit-progress-bar {
3760
- background: var(--muted, var(--stage-grid));
3406
+ background: color-mix(in oklab, var(--stage-fg) 15%, transparent);
3761
3407
  }
3762
3408
  .lab-activity-progress progress::-webkit-progress-value {
3763
3409
  border-radius: var(--lab-r-pill);
@@ -3774,16 +3420,25 @@
3774
3420
  accent-color: var(--primary, var(--stage-accent));
3775
3421
  cursor: pointer;
3776
3422
  }
3423
+ /* The transcript is a text alternative to a moving scene: a screen reader needs it, and a sighted
3424
+ learner is reading the scene instead. It was drawn as a full-width band with its own rule and a
3425
+ semibold heading, which gave a service affordance the same weight as the lesson and put two of
3426
+ these rows between the figure and the Continue button. It stays exactly where it is in the DOM,
3427
+ and recedes. */
3777
3428
  .lab-activity-transcript {
3778
3429
  margin: 0;
3779
- padding: var(--lab-sp-10) var(--lab-sp-16);
3780
- border-top: 1px solid var(--border, var(--stage-grid));
3430
+ padding: var(--lab-sp-8) var(--lab-sp-16);
3431
+ border-top: 1px solid var(--lab-hairline);
3781
3432
  color: var(--muted-foreground, var(--stage-muted));
3782
- font-size: var(--lab-t-sm);
3433
+ font-size: var(--lab-t-eyebrow);
3783
3434
  }
3784
3435
  .lab-activity-transcript summary {
3785
3436
  cursor: pointer;
3786
- font-weight: var(--lab-w-semibold);
3437
+ font-weight: var(--lab-w-medium);
3438
+ opacity: 0.7;
3439
+ }
3440
+ .lab-activity-transcript[open] summary {
3441
+ opacity: 1;
3787
3442
  }
3788
3443
  .lab-activity-transcript ol {
3789
3444
  margin: var(--lab-sp-8) 0 0;
@@ -3852,13 +3507,76 @@
3852
3507
  .lab-activity-inspector[open] > summary {
3853
3508
  border-bottom: 1px solid var(--border, var(--stage-grid));
3854
3509
  }
3510
+
3511
+ /* In a stacked lab, keep the transport at the thumb-friendly bottom edge. */
3512
+ .lab-activity-header {
3513
+ order: 1;
3514
+ }
3515
+ .lab-activity-status {
3516
+ order: 2;
3517
+ }
3518
+ /* A task section (question / response) keeps its DOM position relative to the figure.
3519
+ Without an explicit order it defaulted to 0 and jumped ABOVE the title on every narrow
3520
+ layout. Sharing the workspace's value means ties fall back to source order: a predict
3521
+ task authored before the figure stays before it, an explain task after it stays after. */
3522
+ .lab-authored-task {
3523
+ order: 3;
3524
+ }
3525
+ /* The instruction standing alone above the model shares that value too, and sits before the
3526
+ workspace in source, so it lands between the status strip and the figure. Left unset it takes
3527
+ the default 0 and leads the card, above the eyebrow. */
3528
+ .lab-authored-lead-solo {
3529
+ order: 3;
3530
+ }
3531
+ .lab-activity > .lab-activity-workspace,
3532
+ .lab-activity > .lab-activity-canvas,
3533
+ .lab-activity > .lab-activity-dock,
3534
+ .lab-activity > .lab-activity-inspector {
3535
+ order: 3;
3536
+ }
3537
+ .lab-activity-workspace > .lab-activity-canvas {
3538
+ order: 1;
3539
+ }
3540
+ .lab-activity-workspace > .lab-activity-dock {
3541
+ order: 2;
3542
+ }
3543
+ .lab-activity-workspace > .lab-activity-inspector {
3544
+ order: 3;
3545
+ }
3546
+ .lab-activity-feedback {
3547
+ order: 4;
3548
+ }
3549
+ .lab-activity-transcript {
3550
+ order: 5;
3551
+ }
3552
+ .lab-activity-transport {
3553
+ position: sticky;
3554
+ bottom: 0;
3555
+ z-index: var(--lab-z-overlay);
3556
+ order: 6;
3557
+ padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
3558
+ background: color-mix(in oklab, var(--background, var(--stage-bg)) 88%, transparent);
3559
+ box-shadow: 0 -8px 18px color-mix(in oklab, currentColor 7%, transparent);
3560
+ backdrop-filter: blur(12px);
3561
+ }
3562
+ }
3563
+ .lab-choice-grid {
3564
+ display: grid;
3565
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3566
+ gap: var(--lab-sp-8);
3567
+ }
3568
+
3569
+ .lab-numeric-tertiary {
3570
+ color: var(--stage-muted);
3571
+ font-variant-numeric: tabular-nums;
3855
3572
  }
3856
3573
  @container lab-activity (max-width: 42.5rem) {
3857
3574
  .lab-activity-header {
3858
- padding: var(--lab-sp-12);
3575
+ padding: var(--lab-sp-10) var(--lab-sp-12) var(--lab-sp-8);
3859
3576
  }
3860
3577
  .lab-activity-description {
3861
3578
  font-size: var(--lab-t-sm);
3579
+ line-height: var(--lab-lh-ui);
3862
3580
  }
3863
3581
  .lab-activity-focus {
3864
3582
  font-size: var(--lab-t-sm);
@@ -3868,9 +3586,42 @@
3868
3586
  display: none;
3869
3587
  }
3870
3588
  .lab-activity-status {
3871
- padding-inline: var(--lab-sp-12);
3589
+ gap: var(--lab-sp-8);
3590
+ padding: var(--lab-sp-8) var(--lab-sp-12);
3872
3591
  flex-wrap: wrap;
3873
- row-gap: var(--lab-sp-6);
3592
+ row-gap: var(--lab-sp-4);
3593
+ font-size: var(--lab-t-micro);
3594
+ }
3595
+ .lab-activity-status > * + * {
3596
+ padding-inline-start: var(--lab-sp-8);
3597
+ }
3598
+ .lab-authored-activity .lab-activity-status > strong:first-child {
3599
+ display: none;
3600
+ }
3601
+ .lab-authored-activity .lab-activity-status > strong:first-child + * {
3602
+ padding-inline-start: 0;
3603
+ border-inline-start: 0;
3604
+ }
3605
+ .lab-authored-lead-solo {
3606
+ padding: var(--lab-sp-10) var(--lab-sp-12) var(--lab-sp-4);
3607
+ font-size: var(--lab-t-sm);
3608
+ line-height: var(--lab-lh-ui);
3609
+ }
3610
+ .lab-activity-workspace {
3611
+ gap: var(--lab-sp-8);
3612
+ padding: var(--lab-sp-8);
3613
+ }
3614
+ .lab-activity-feedback {
3615
+ gap: var(--lab-sp-4);
3616
+ margin: 0 var(--lab-sp-8) var(--lab-sp-8);
3617
+ max-width: calc(100% - 2 * var(--lab-sp-8));
3618
+ padding: var(--lab-sp-8) var(--lab-sp-10);
3619
+ }
3620
+ .lab-authored-activity[data-inspector-layout="stacked"]
3621
+ .lab-activity-workspace
3622
+ > .lab-activity-inspector {
3623
+ border-inline: 0;
3624
+ border-radius: 0;
3874
3625
  }
3875
3626
  .network-route-path {
3876
3627
  display: none;
@@ -3923,7 +3674,21 @@
3923
3674
  display: flex;
3924
3675
  align-items: center;
3925
3676
  justify-content: center;
3926
- gap: var(--lab-sp-12);
3677
+ gap: var(--lab-sp-8);
3678
+ }
3679
+ .lab-sequence-actions .lab-btn,
3680
+ .lab-sequence-actions .lab-btn-ghost {
3681
+ display: inline-flex;
3682
+ align-items: center;
3683
+ gap: var(--lab-sp-4);
3684
+ min-block-size: var(--lab-target-compact);
3685
+ padding: var(--lab-sp-4) var(--lab-sp-10);
3686
+ font-size: var(--lab-t-sm);
3687
+ }
3688
+ .lab-sequence-actions .lab-btn svg {
3689
+ width: 0.9rem;
3690
+ height: 0.9rem;
3691
+ stroke-width: 1.8;
3927
3692
  }
3928
3693
  .lab-sequence-gate,
3929
3694
  .lab-sequence-count {
@@ -3980,12 +3745,339 @@
3980
3745
  .lab-activity svg {
3981
3746
  max-width: 100%;
3982
3747
  }
3983
- .network-scene-target[data-interactive="true"] {
3984
- cursor: pointer;
3985
- }
3986
3748
 
3987
3749
  .lab-config-options {
3988
3750
  display: inline-flex;
3989
3751
  flex-wrap: wrap;
3990
3752
  gap: var(--lab-sp-6);
3991
3753
  }
3754
+
3755
+ /* A schematic's labels live inside its viewBox, so they scale with the element: at 350px a
3756
+ 520-wide circuit renders its tags at ~3px. The floor keeps it legible and lets the strip scroll
3757
+ instead, and the edge fade rides the container box so a cut-off circuit reads as scrollable
3758
+ rather than broken.
3759
+
3760
+ There is deliberately NO max-width here. Capping every scene reflowed the labels in the ~40 labs
3761
+ composed against their natural width and put two of them into text-on-text collisions. A short
3762
+ wide diagram stretching into a tall empty box is a per-lab composition problem; it does not get
3763
+ a global rule. */
3764
+ .electronics-scene {
3765
+ display: flex;
3766
+ justify-content: center;
3767
+ overflow-x: auto;
3768
+ overscroll-behavior-x: contain;
3769
+ mask-image: linear-gradient(
3770
+ to right,
3771
+ transparent 0,
3772
+ #000 1.5rem,
3773
+ #000 calc(100% - 1.5rem),
3774
+ transparent 100%
3775
+ );
3776
+ }
3777
+ .electronics-scene > svg {
3778
+ min-width: 22rem;
3779
+ flex: 0 0 auto;
3780
+ }
3781
+
3782
+ /* ── Rules that belong to no single domain ─────────────────────────────────────────────────────
3783
+ These arrived here from styles/domains/parts/shared-{1,2}.css.
3784
+
3785
+ They were never meant to be a domain. scripts/split-domains.mjs routes the `lab` and `stage`
3786
+ prefixes to a sheet it calls "shared" (SHEET, :72-74), and every domain sheet then had to
3787
+ `@import "./shared.css"` to get them: 4.6 KiB charged against all fourteen subjects, which is
3788
+ most of why chemistry could not fit under its ceiling. That was a limitation of the generator,
3789
+ which had no way to put a rule BACK into core.css, not a decision about where the rules belong.
3790
+ Their own generated header said they "belong to no single domain", which is the definition of
3791
+ this layer, and every documented layered-import recipe already requires core.css. So a consumer
3792
+ loading core.css plus one subject gets exactly what it got before.
3793
+ ───────────────────────────────────────────────────────────────────────────────────────────── */
3794
+ .lab-scene-row,
3795
+ .lab-sequence-row {
3796
+ display: flex;
3797
+ flex-wrap: wrap;
3798
+ justify-content: center;
3799
+ gap: var(--lab-sp-16);
3800
+ }
3801
+ .lab-scene-row {
3802
+ align-items: center;
3803
+ }
3804
+ .lab-sequence-row {
3805
+ align-items: flex-end;
3806
+ gap: var(--lab-sp-14);
3807
+ }
3808
+ .lab-clue-scene {
3809
+ display: grid;
3810
+ justify-items: center;
3811
+ gap: var(--lab-sp-4);
3812
+ }
3813
+ .lab-clue-scene > span {
3814
+ color: var(--stage-muted);
3815
+ font-size: var(--lab-t-micro);
3816
+ font-weight: var(--lab-w-semibold);
3817
+ text-transform: uppercase;
3818
+ letter-spacing: var(--lab-ls-caps);
3819
+ }
3820
+ .lab-result-stack {
3821
+ display: grid;
3822
+ justify-items: center;
3823
+ gap: var(--lab-sp-14);
3824
+ margin-top: var(--lab-sp-4);
3825
+ }
3826
+ .lab-answer-row {
3827
+ display: flex;
3828
+ flex-wrap: wrap;
3829
+ justify-content: center;
3830
+ gap: var(--lab-sp-16);
3831
+ font-size: var(--lab-t-body);
3832
+ font-weight: var(--lab-w-semibold);
3833
+ }
3834
+ .lab-inline-answer,
3835
+ .lab-trig-value {
3836
+ display: inline-flex;
3837
+ align-items: center;
3838
+ gap: var(--lab-sp-6);
3839
+ }
3840
+ .lab-solved-message {
3841
+ margin: 0;
3842
+ color: var(--stage-good);
3843
+ font-weight: var(--lab-w-semibold);
3844
+ }
3845
+ .lab-worked-list {
3846
+ display: grid;
3847
+ gap: var(--lab-sp-6);
3848
+ margin: 0;
3849
+ padding-inline-start: var(--lab-sp-16);
3850
+ font-size: var(--lab-t-sm);
3851
+ }
3852
+ .lab-result-copy {
3853
+ font-size: var(--lab-t-eyebrow);
3854
+ }
3855
+ .lab-centered-scene {
3856
+ display: grid;
3857
+ place-items: center;
3858
+ }
3859
+ .lab-fill-prompt {
3860
+ margin: 0;
3861
+ font-size: var(--lab-t-body);
3862
+ font-weight: var(--lab-w-semibold);
3863
+ line-height: 1.9;
3864
+ text-align: center;
3865
+ }
3866
+ .lab-sequence-step {
3867
+ display: grid;
3868
+ justify-items: center;
3869
+ gap: var(--lab-sp-4);
3870
+ padding: var(--lab-sp-6);
3871
+ border: 2px solid transparent;
3872
+ border-radius: var(--lab-r-md);
3873
+ }
3874
+ .lab-sequence-step[data-current="true"] {
3875
+ border-color: var(--stage-accent);
3876
+ background: color-mix(in oklab, var(--stage-accent) 5%, transparent);
3877
+ }
3878
+ .lab-sequence-label {
3879
+ color: var(--stage-fg);
3880
+ font-size: var(--lab-t-eyebrow);
3881
+ font-weight: var(--lab-w-semibold);
3882
+ }
3883
+ .lab-sequence-value {
3884
+ min-width: 2rem;
3885
+ padding: 2px var(--lab-sp-8);
3886
+ border: 1.5px solid color-mix(in oklab, var(--stage-fg) 30%, transparent);
3887
+ border-radius: var(--lab-r-xs);
3888
+ background: var(--stage-bg);
3889
+ font-size: var(--lab-t-sm);
3890
+ font-weight: var(--lab-w-bold);
3891
+ font-variant-numeric: tabular-nums;
3892
+ text-align: center;
3893
+ }
3894
+ .lab-numeric-primary {
3895
+ font-size: var(--lab-t-body);
3896
+ font-weight: var(--lab-w-semibold);
3897
+ font-variant-numeric: tabular-nums;
3898
+ }
3899
+ .lab-numeric-secondary,
3900
+ .lab-numeric-tertiary,
3901
+ .lab-tabular {
3902
+ font-variant-numeric: tabular-nums;
3903
+ }
3904
+ .lab-numeric-secondary {
3905
+ opacity: 0.85;
3906
+ }
3907
+ .lab-numeric-tertiary {
3908
+ opacity: 0.75;
3909
+ }
3910
+ .lab-muted-copy {
3911
+ opacity: 0.8;
3912
+ }
3913
+ .lab-trig-readouts {
3914
+ display: inline-flex;
3915
+ gap: var(--lab-sp-16);
3916
+ margin-inline-start: auto;
3917
+ font-variant-numeric: tabular-nums;
3918
+ }
3919
+ .lab-trig-function[data-function="sin"] {
3920
+ color: var(--stage-good);
3921
+ }
3922
+ .lab-trig-function[data-function="cos"] {
3923
+ color: var(--stage-accent);
3924
+ }
3925
+ .lab-trig-function[data-function="tan"] {
3926
+ color: var(--stage-warn);
3927
+ }
3928
+ @media (max-width: 35rem) {
3929
+ .lab-trig-readouts {
3930
+ width: 100%;
3931
+ margin-inline-start: 0;
3932
+ justify-content: space-between;
3933
+ gap: var(--lab-sp-8);
3934
+ }
3935
+ }
3936
+
3937
+ /* Sizing for an icon inside a chip. This lived in the chemistry domain part, with no `.chem-`
3938
+ ancestor, which meant a chip icon was only sized on pages that happened to load chemistry. It is
3939
+ shared chrome, so it belongs in this layer. */
3940
+ .lab-chip > svg {
3941
+ width: 0.9rem;
3942
+ height: 0.9rem;
3943
+ flex: none;
3944
+ }
3945
+
3946
+ /* ── Simulation HUD & Visual-First Floating Controls ────────────────────────
3947
+ Used across flagship laboratories to replace vertical form stacks with
3948
+ compact glassmorphic toolbars, floating telemetry badges, and collapsible
3949
+ drawers so the physical simulation retains 65-75% of viewport height. */
3950
+ /* ── Simulation HUD & Visual-First Floating Controls ────────────────────────
3951
+ Precision instrument toolbar: clean typography, zero emoji noise,
3952
+ consistent alignment, and subtle micro-contrast. */
3953
+ .lab-hud-toolbar {
3954
+ grid-column: 1 / -1;
3955
+ width: 100%;
3956
+ display: flex;
3957
+ flex-wrap: wrap;
3958
+ align-items: center;
3959
+ justify-content: flex-start;
3960
+ gap: var(--lab-sp-6) var(--lab-sp-10);
3961
+ padding: var(--lab-sp-4) var(--lab-sp-8);
3962
+ border: 1px solid var(--lab-border);
3963
+ border-radius: var(--lab-r-md, 8px);
3964
+ background: color-mix(in oklab, var(--lab-surface) 92%, transparent);
3965
+ backdrop-filter: blur(12px);
3966
+ -webkit-backdrop-filter: blur(12px);
3967
+ box-shadow: 0 1px 3px color-mix(in oklab, currentColor 4%, transparent);
3968
+ }
3969
+ .lab-hud-group {
3970
+ display: inline-flex;
3971
+ align-items: center;
3972
+ gap: var(--lab-sp-4);
3973
+ }
3974
+ .lab-hud-badge {
3975
+ display: inline-flex;
3976
+ align-items: center;
3977
+ gap: var(--lab-sp-4);
3978
+ padding: 0 var(--lab-sp-2);
3979
+ border: 0;
3980
+ border-radius: 0;
3981
+ background: transparent;
3982
+ color: var(--muted-foreground, var(--stage-muted));
3983
+ font-size: var(--lab-t-eyebrow, 0.68rem);
3984
+ font-weight: var(--lab-w-semibold, 600);
3985
+ letter-spacing: var(--lab-ls-caps, 0.05em);
3986
+ text-transform: uppercase;
3987
+ font-variant-numeric: tabular-nums;
3988
+ white-space: nowrap;
3989
+ }
3990
+ .lab-hud-badge strong {
3991
+ color: var(--stage-fg, currentColor);
3992
+ font-weight: var(--lab-w-bold);
3993
+ }
3994
+ .lab-hud-chip-select {
3995
+ display: inline-flex;
3996
+ gap: var(--lab-sp-2);
3997
+ padding: var(--lab-sp-2);
3998
+ background: var(--lab-sunken);
3999
+ border-radius: var(--lab-r-sm, 6px);
4000
+ border: 1px solid var(--lab-hairline);
4001
+ }
4002
+ .lab-hud-chip-btn {
4003
+ padding: var(--lab-sp-2) var(--lab-sp-8);
4004
+ border-radius: calc(var(--lab-r-sm, 6px) - 2px);
4005
+ border: 0;
4006
+ background: transparent;
4007
+ color: var(--lab-muted);
4008
+ font-size: var(--lab-t-eyebrow, 0.68rem);
4009
+ font-weight: var(--lab-w-semibold, 600);
4010
+ cursor: pointer;
4011
+ transition: all var(--lab-dur-fast) var(--lab-ease);
4012
+ white-space: nowrap;
4013
+ }
4014
+ .lab-hud-chip-btn:hover {
4015
+ color: var(--lab-fg);
4016
+ }
4017
+ .lab-hud-chip-btn[data-active="true"],
4018
+ .lab-hud-chip-btn.active {
4019
+ background: var(--lab-surface);
4020
+ color: var(--lab-fg);
4021
+ box-shadow: 0 1px 2px color-mix(in oklab, currentColor 8%, transparent);
4022
+ }
4023
+ .lab-hud-drawer {
4024
+ grid-column: 1 / -1;
4025
+ width: 100%;
4026
+ display: grid;
4027
+ grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
4028
+ gap: var(--lab-sp-8);
4029
+ padding: var(--lab-sp-8) var(--lab-sp-10);
4030
+ margin-top: var(--lab-sp-4);
4031
+ border: 1px solid var(--lab-border);
4032
+ border-radius: var(--lab-r-sm, 6px);
4033
+ background: color-mix(in oklab, var(--lab-sunken) 40%, transparent);
4034
+ }
4035
+ .lab-hud-drawer-toggle,
4036
+ .lab-btn.lab-hud-drawer-toggle {
4037
+ margin-left: auto;
4038
+ display: inline-flex;
4039
+ align-items: center;
4040
+ gap: var(--lab-sp-4);
4041
+ font-size: var(--lab-t-eyebrow);
4042
+ font-weight: var(--lab-w-medium, 500);
4043
+ color: var(--muted-foreground, var(--lab-muted));
4044
+ background: color-mix(in oklab, var(--lab-surface) 50%, transparent);
4045
+ border: 1px solid var(--lab-border);
4046
+ border-radius: var(--lab-r-sm, 6px);
4047
+ min-height: var(--lab-target-compact);
4048
+ padding: var(--lab-sp-2) var(--lab-sp-10);
4049
+ cursor: pointer;
4050
+ transition:
4051
+ background var(--lab-dur-fast) var(--lab-ease),
4052
+ color var(--lab-dur-fast) var(--lab-ease),
4053
+ border-color var(--lab-dur-fast) var(--lab-ease);
4054
+ }
4055
+ /* A hover that PAINTS A SURFACE has to sit behind a real pointer. On a touch device the hover
4056
+ state sticks after a tap, so the last control touched stays lit as though it were selected. */
4057
+ @media (hover: hover) and (pointer: fine) {
4058
+ .lab-hud-drawer-toggle:hover,
4059
+ .lab-btn.lab-hud-drawer-toggle:hover {
4060
+ color: var(--lab-fg);
4061
+ background: var(--lab-sunken);
4062
+ border-color: var(--lab-hairline);
4063
+ }
4064
+ }
4065
+ .lab-direct-drag-hint {
4066
+ display: inline-flex;
4067
+ align-items: center;
4068
+ gap: var(--lab-sp-4);
4069
+ font-size: var(--lab-t-micro);
4070
+ text-transform: uppercase;
4071
+ letter-spacing: var(--lab-ls-caps);
4072
+ color: var(--lab-muted);
4073
+ animation: lab-pulse 2s infinite ease-in-out;
4074
+ }
4075
+ @keyframes lab-pulse {
4076
+ 0%,
4077
+ 100% {
4078
+ opacity: 0.6;
4079
+ }
4080
+ 50% {
4081
+ opacity: 1;
4082
+ }
4083
+ }