# 0.8.0
* Add custom element generator CustomElement.create or create_element
  * BaseElement now takes id/class_ params because this justifies their existence
* html translator will now output an array if an array is given
* Improve import statement output in translator
* Translator will generate custom elements for elements it does not recognize.
  - One reason this was added is that html_compose has no intention of implementing
    deprecated HTML elements, but it previously breaks when trying to reproduce
    them.
* Fix translator inappropriately stripping leading whitespace
* WatchConds can optionally not reload the server via server_reload param

# 0.7.0
* Improved type hint generation for lists and literals
* Add -n / --noimport <optional module name> to `html-compose convert` which will will output, if --noimport ht is used, `ht.div` instead of importing each class

# 0.6.3
* Minor repo polish

# 0.6.2
* Inject livereload as scriptlet which detects protocol. Support proxy_uri/path for live_server. Lots of hotfixes for livereload. 

# 0.6.1
* Use jsdelivr.net cdn for livereload-js

# 0.6.0
* Add livereload feature: 
    A websocket server to auto-reload the browser
    Automatic include of livereload-js through html_compose.HTML5Document 
    live_server daemon function which will automatically run your script and Python server daemon, as well as any build commands
    cross-platform file watcher based on Rust Notify
* Use numpy style docstring parameters with backticks because parameters with _ were being eaten by pylance. Parameter doc newlines should work in this format.
* Command-line script is a module for further extension as `html-compose` 
* Note in docstring that pretty printing can damage output due to the way HTML whitespace works. Development feature only.

# 0.5.1
* [breaking] Move pretty_print function to module function

# 0.5.0
* [breaking] Attribute hints are now available via i.e. `div.hint.tabindex` / `div._.tabindex`  
  This change cleans up the element namespace.
* HTML translator outputs double newlines

# 0.4.1
* [bugfix] list attribute resolution was rendering improperly and is now functional.
* [bugfix] Correclty pass parent in _resolve_child
* Resolve issues found by pyright
* [feature] Add prettify argument to HTML5Document

# 0.4.0
* [breaking] Changes to BaseElement, name -> tag, adding _ to some internal function names, cleanup. _attrs -> attrs
* Maintainers: Add command-line for generate attributes/elements, rye scripts.
* Remove arrows in "<element>" from docstrings because vscode attempts to render the html element.
* Multiline docstrings fixed with markdown rules - You have to double space the end to register as a newline.
* Add "doctype" function to produce, for example, <!DOCTYPE html>
* Integrate mypy type checking for development

# 0.3.0
* Add HTML5Document function, wrapping some boilerplate.
* Minor fix: Remove trailing space when no attrs are defined in void elements.
* Add equality check override which compares rendered elements
* When FLOATING_PRECISION is 0, convert float to int.
* Add html_compose.notebook.render which displays HTML in a Jupyter notebook
* More tests

# 0.2.1
* [breaking] BaseElement now places keyword arg `class` / `style` after `attrs=` when you include definitions for both 
* [bug] Fix attr resolution breaking for dictionary values
* Add constructor "skip" via __class_getitem__. Where you had to do li()["demo"] you can now li["demo"]
* Docs/readme improvements

# 0.2.0
* Generate descriptions for attrs in elements along with full keyword arguments. We intentionally excluded onclick= and other onX attributes to avoid overloading the language server.
* Element constructor docstring is a little nicer to read
* Add attrs documentation
* [breaking] attrs is now first parameter, allowing `div({"class": "flex"})` syntax
* Prevent re-escaping _HasHtml from our code

# 0.1.2
* [bugfix] Pass children arg in elements
* Sort attr list so generated element code doesn't change arbitrarily

# 0.1.1
* Add element import to module import i.e. from html_compose import div

* Remove callable on attr template which is already non functionable

* [breaking] Move BaseElement children kwarg position ahead of anyone using it

* Code generator no longer translates attr list for html element because the living HTML doc changed. I caught this with an assertion!

* Remove data attr, you can define that on your own or subclass

* Generate elements with attr list in params. I'm intentionally not choosing kwargs to favor explicit over implicit support. For everything else, theres attrs=

* Remove callable references for attr system. I was going to make attrs evaluate callables but i decided the element resolution system is enough and the complexity has burden to also maintain in attrs.

* Add exception when you fail to initialize an element: `div["test"]` raises an error because you forgot `div()`