Custom Elements
Essentially a rewrite of Waterbear (keeping some things that work well, like the event system). This will make the whole thing more flexible and easier to maintain, explain, work on, introduce to new developers, and localize. There are two main parts: converting blocks to custom elements and converting the IDE UI to custom elements. Other bits work in hol…
Essentially a rewrite of Waterbear (keeping some things that work well, like the event system). This will make the whole thing more flexible and easier to maintain, explain, work on, introduce to new developers, and localize. There are two main parts: converting blocks to custom elements and converting the IDE UI to custom elements. Other bits work in holistically: namespaced events allow us to ditch the iframe, which radically simplifies how we run scripts. Block elements make it easier to create new types of blocks, like expression contexts. Drag and drop can be cleaned up and simplified. Block definitions become simple HTML in the page, so cloning them is trival (and no UUIDs are needed anywhere). All JavaScript is moved out of block definitions into (wait for it) JavaScript files, where it becomes testable. The build step becomes: there is no build step.
It's a glorious vision, and already in progress on branch #842-custom-elements.