Metadata-Version: 2.5
Name: treibstoff
Version: 2.0.0
Summary: Javascript tools for writing browser based applications.
Project-URL: Documentation, https://treibstoff.readthedocs.io/
Project-URL: ChangeLog, https://github.com/conestack/treibstoff/blob/master/CHANGES.rst
Project-URL: Issue Tracker, https://github.com/conestack/treibstoff/issues
Project-URL: Source Code, https://github.com/conestack/treibstoff
Author-email: Conestack Contributors <dev@conestack.org>
License: Simplified BSD
License-File: LICENSE.rst
Keywords: ajax,cone,javascript,web
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.10
Requires-Dist: webresource>1.2.99
Provides-Extra: docs
Requires-Dist: jinja2<3.0; extra == 'docs'
Requires-Dist: markupsafe<2.1.0; extra == 'docs'
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: sphinx-conestack-theme; extra == 'docs'
Requires-Dist: sphinx-js; extra == 'docs'
Description-Content-Type: text/x-rst

Treibstoff
==========

.. image:: https://img.shields.io/pypi/v/treibstoff.svg
    :target: https://pypi.python.org/pypi/treibstoff
    :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/dm/treibstoff.svg
    :target: https://pypi.python.org/pypi/treibstoff
    :alt: Number of PyPI downloads

.. image:: https://github.com/conestack/treibstoff/actions/workflows/test.yml/badge.svg
    :target: https://github.com/conestack/treibstoff/actions/workflows/test.yml
    :alt: Test treibstoff

Treibstoff contains a set of useful javascript tools for writing browser based
applications (or parts of it).


Detailed Documentation
----------------------

The detailed ``treibstoff`` documentation is available
`here <https://treibstoff.readthedocs.io>`_.


Source Code
-----------

The sources are in a GIT DVCS with its main branches at
`github <http://github.com/conestack/treibstoff>`_.


Copyright
---------

- Copyright (c) 2021-2025 Cone Contributors


Contributors
------------

- Robert Niederreiter (Author)
- Leopold Auersperg-Castell


Changes
=======

2.0.0 (2026-10-24)
------------------

- Complete package metadata: description, keywords, project urls and
  development status, audience and license classifiers. pyroma rated the
  package 0/10 without them.
  [rnix]

- Re create the hidden form iframe on submit in ``AjaxForm``. It is shared by
  every bound form and gets removed on a successful submit, so a form that was
  bound before that and has not been re rendered since pointed at a frame name
  the browser could no longer resolve - and submitting it opened a new tab
  instead of posting in place.
  [rnix]

- Import node payloads owned by a foreign document in ``AjaxHandle.update``
  instead of adopting them. Ajax form responses pass a live node from the
  response iframe, and Firefox never opens native ``<select>`` popups on
  adopted nodes.
  [rnix]

- Split ``ajax.js`` into ``ssr`` js module.
  [lenadax]

- Rework ``Spinner`` class to prevent persisting detached elements.
  [lenadax]

- Unbind events on Motion ``reset_state`` method.
  [lenadax]

- Unbind events on ``destroy`` method in ``create_listener`` subclass factory.
  [lenadax]

- Move ``AjaxDestroy`` to ``ajaxdestroy`` module to prevent circular import dependency.
  [lenadax]

- Fix widgets not being fully destroyed if rendered within an ``Overlay`` inside body.
  [lenadax]

- Modify ``AjaxDestroy`` parse method to prevent DOM memory leaks.
  [lenadax]

- Replace svg spinner with Bootstrap5 spinner.
  [lenadax]


1.0.0 (2026-02-03)
------------------

- Refactor package layout to use ``pyproject.toml``.
  [rnix]


0.4.0 (2024-02-12)
------------------

- Use web test runner instead of deprecated karma.
  [rnix]

- Deprecate usage of ``ts.ajax.request``. ``ts.http_request`` shall be used
  instead.
  [rnix]

- Rename ``AjaxSpinner`` to ``LoadingSpinner`` and move it to ``spinner`` module.
  [rnix]

- Rename ``AjaxRequest`` to ``HTTPRequest`` and move it to ``request`` module.
  [rnix]

- Introduce ``clock`` module.
  [rnix]

- ``Events.trigger`` accepts arbitrary number of arguments passed to subscribers.
  [rnix]


0.3.0 (2023-05-18)
------------------

- Fix instant binder function not to be called twice on page load if treibstoff
  document ready handler gets called after ajax.register.
  [rnix]


0.2.0 (2023-05-16)
------------------

- Add ``object_by_path`` utility function.
  [rnix]

- Add ``Ajax.attach``.
  [rnix]

- Add ``Visibility``, ``Collapsible`` and ``Button`` widgets.
  [rnix]

- Add ``query_elem``, ``get_elem`` and ``set_visible`` utility functions.
  [rnix]

- Add ``form`` module.
  [rnix]

- Add ``listener`` module.
  [rnix]

- Add ``websocket`` module.
  [rnix]

0.1.0 (2021-12-13)
------------------

- Initial Release.
  [rnix]


License
=======

Copyright (c) 2021-2025, Conestack Contributors

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
