What's new in PyWebIO 1.3
==========================

2021/6/12
-----------

Highlights
^^^^^^^^^^^
* New module :doc:`pin </pin>` to provide persistent input support.
* Add a remote access service to `start_server()`. See :ref:`server mode - User Guide <server_mode>` for detail.
* Add `input_update() <pywebio.input.input_update>`, add ``onchange`` callback in input functions.
* Add support for FastAPI and Starlette.

Detailed changes
^^^^^^^^^^^^^^^^^

* :doc:`input </input>` module

    * Add `input_update() <pywebio.input.input_update>`, add ``onchange`` callback in input functions.
    * Add `pywebio.input.slider()` to get range input.

* :doc:`output </output>` module

    * Mark `style() <pywebio.output.style>` as deprecated, see :ref:`style - User Guide <style>` for new method.
    * Add `pywebio.output.put_tabs()` to output tabs.
    * `put_html() <pywebio.output.put_html>` adds compatibility with ipython rich output.
    * Add `group` and `outline` parameters in `put_buttons() <pywebio.output.put_buttons>`.

* :doc:`session </session>` module

    * Add promise support in `eval_js() <pywebio.session.eval_js>`.
    * Support config input panel via `set_env() <pywebio.session.set_env>`.

* :doc:`platform </platform>` module

    * Add support for FastAPI and Starlette.
    * Add `wsgi_app()` / `asgi_app()` for Flask/Dgango/FastAPI backend.
    * Add remote access service to `start_server()`
    * Add ``max_file_upload``/``payload_size_limit``/``upload_size_limit``/``max_payload_size`` parameters to `start_server()`.

* So many other improvements.

Bug fix
^^^^^^^^^^^^^^^^^
* Fix table style.
* Fix large file uploading error.
* Fix server start error when enabled ``auto_open_webbrowser``.
* Fix file names overflow in file input.
* Fix `put_image() <pywebio.output.put_image>` raise 'unknown file extension' error when use PIL Image as ``src``.
* Sanitize the returned ``filename`` of `file_upload() <pywebio.input.file_upload>` to avoid interpreting as path accidentally.
* So many other bugs fixed.