Additionally implifies CLI output - unfortunately Rich
tables are too clunky for the simple things we need.
An __author__ attribute is also added to the root
module for use in constructing the name of the user
data directory that will be used.
- 0.6.0 version bump
- Update mypy
- Sanic is installed as an extra
- Remove ability to eval JSX via importSource
- doc fixes (#123, #93, #122)
- remove duped license (#130)
Event handler API mirrors JS
Event handlers now accept an event dictionary as a single positional
argument. The event contains all the information listed in React's
documentation about Synthetic events.
Event handlers may also be passed to VDOM models as attributes.
The Layout object will inspect the model, extract all callable
attributes and turn them intro EventHandler objects.
On the JS side we include code to serialize all event types
documented by React.
* Add HTML parser
The parser converts HTML to VDOM models.
* Unify language around VDOM
Before we called them "DOM models" however this is redundant since
DOM stands for Document Object Model. Thus we were calling the
Document Object Model models. We should instead use the term
"Virtual DOM" or VDOM.
This makes it easier to access the current value of the input
element because you can access the `Input.value` attribute
instead of creating a `Var` and assigning the value to it via
an event handler.
To accomplish this the `Events` object needed to be refactored
because only one callback could be registered to a particular
event type. The `EventHandler` class now stores one or more
callback functions and triggers each when the event occurs.
* Refactor server code
The server code has been refactored in order to make it reusable
by other async capable HTTP/Websocket server besides Sanic. For
example:
- aiohttp
- responder
- tornado
* more doc updates + minor fixes
* fix import
* change base url
- Emphasize the "Try it Now" section of the README
- Include link to github repo in intro notebook
- Make the matplotlib example an animation in intro notebook
* Add an Image helper
In order to accomplish this we did some refactoring to create an
AbstractElement class which can be subclasses in order to create
arbitrary element-like objects that can be rendered by a Layout.
* Create table of contents for all examples.
* Add extras_require and example improvement via hotswap
* add support for binder
* try custom websocket patch
* Get binder working + docs
Binder was not working due to a websocket problem with the
Jupyter proxy server. See the patch here:
https://github.com/jupyterhub/jupyter-server-proxy/pull/119
Also added documentation for the examples and added links to
binder from the README and docs.
* be sure users click the image
* update lock file