Every frontend application abstraction needs a todo, so here it is!
Top level component that contains child components.
$update: Subscriber[UpdateEvent] subscriber that captures all update events happening within the Todo components
list$: Observable[Array[TodoItem]] observable that contains the list of todo items
takes the list$ observable and renders a list of todo items. each item has a delete button that emits a delete action on $update subscriber.
list$: Observable[Array[TodoItem]] observable that contains the list of todo items
$update: Subscriber[UpdateEvent] subscriber that captures delete events happening within the TodoList component
contains the input field where todo items can be added. when the user enters a todo entry and presses enter, a insert action is emitted on the $enter subscriber.
$enter: Subscriber[UpdateEvent] subscriber that captures insert events happening within the TodoForm component