The API is quite low-level currently. We only map upstream's CSS classes to HTML elements and we wrap the root HTML element to a Component. While this works OK in most cases and gives you lots of freedom about your DOM, it has two issues:
it does not utilize Elm's type system to produce correct code
it does not allow for propagating the component's Model to child HTML elements
Long term, I would like to have a high-level wrapper for the current low-level API, overcoming both issues.
Short term, I will only implement the following changes to the current API, so that a release is possible in the near future.
I will drop current view functions and what is called Simple TEA architecture in README.md. I will only support render, and probably rename that function to view. The Simple TEA architecture is not feasible because of event dispatching which is used in the core of this library.
Short-term roadmap:
[x] Rename render to view
[x] Refactor JavaScript assets
[x] Add nativeControl Properties
[x] Update event handlers in Options to match elm-lang/html
[x] Use Dispatch on all components and nativeControls
[x] Refactor internal exports from components
[x] Remove Store from public API
[x] Remove doc annotation from internal modules
[x] Revise internal module's file structure
[x] Move internal types to Model rather than Implementation
The API is quite low-level currently. We only map upstream's CSS classes to HTML elements and we wrap the root HTML element to a Component. While this works OK in most cases and gives you lots of freedom about your DOM, it has two issues:
Long term, I would like to have a high-level wrapper for the current low-level API, overcoming both issues.
Short term, I will only implement the following changes to the current API, so that a release is possible in the near future.
view
functions and what is called Simple TEA architecture in README.md. I will only supportrender
, and probably rename that function toview
. The Simple TEA architecture is not feasible because of event dispatching which is used in the core of this library.Short-term roadmap:
render
toview
nativeControl
PropertiesOptions
to matchelm-lang/html