components.js split to sidepane.js and tabcontainer.js