Hullo DOM is a package that like React, Vue and Angular etc, provides a declarative way of working with DOM. The workflow that it allows is however significantly different than those mentioned. This is also the reason for why this framework is (depending on how static the DOM structure is) up to few times faster than those mentioned.
An application written with Hullo DOM will have components, but those will be just functions executed not by framework, but directly from within other components. Therefore components are completely transparent for Hullo DOM. What Hullo DOM will get is a complex stream DOM element description that will likely also consist of streams providing precise informations of how the app should look like.
See this example above - the code in particular.
The application starts with mount function call that is provided a stream returned by
ProgressBar. In both literal and conceptual sense, the
ProgressBar is a component, however mount function or any other Hullo 👋 function does not get the function, but only the result of its execution.
ProgressBar then returns a single node with a recipe for how the elements attributes should look (
html.div first argument) like and the set of children (
html.div second argument). Each child is a result of function like