Metadata-Version: 2.4
Name: django-clearable-widget
Version: 1.1.0
Summary: Custom widget to add a (x) clear button to your input fields
Author-email: Basil Shubin <basil.shubin@gmail.com>
License-Expression: BSD-3-Clause
Project-URL: download, https://github.com/bashu/django-clearable-widget/zipball/master
Project-URL: homepage, https://github.com/bashu/django-clearable-widget/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.2
Classifier: Framework :: Django :: 6.0
Classifier: Framework :: Django :: 6.1
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
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
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: django>=5.2
Dynamic: license-file

django-clearable-widget
=======================

.. image:: https://badge.fury.io/py/django-clearable-widget.svg
    :target: https://badge.fury.io/py/django-clearable-widget

.. image:: https://img.shields.io/pypi/pyversions/django-clearable-widget.svg
    :target: https://pypi.python.org/pypi/django-clearable-widget/

.. image:: https://img.shields.io/pypi/djversions/django-clearable-widget.svg
    :target: https://pypi.python.org/pypi/django-clearable-widget/

.. image:: https://github.com/bashu/django-clearable-widget/actions/workflows/test.yml/badge.svg
    :target: https://github.com/bashu/django-clearable-widget/actions/workflows/test.yml

django-clearable-widget is a custom widget that adds a input clearing
button on any input fields that are using it. It clears the value, and
returns focus to that field.

.. image:: https://raw.githubusercontent.com/bashu/django-clearable-widget/develop/showcase.gif
   :target: https://raw.githubusercontent.com/bashu/django-clearable-widget/develop/showcase.gif
   :align: center
   :width: 600px

Installation
------------

.. code-block:: bash

    pip install django-clearable-widget

External dependencies
~~~~~~~~~~~~~~~~~~~~~

* jQuery - this is not included in the package since it is expected
  that in most scenarios this would already be available.

Setup
-----

Add ``clearable_widget`` to  ``INSTALLED_APPS``:

.. code-block:: python

    INSTALLED_APPS += (
        'clearable_widget',
    )

and just include ``clearable_widget`` templates

.. code-block:: html+django

    {% include "clearable_widget/clearable_widget_css.html" %} {# Before the closing head tag #}
    {% include "clearable_widget/clearable_widget_js.html" %} {# Before the closing body tag #}

When deploying on production server, don't forget to run:

.. code-block:: shell

    python manage.py collectstatic

Usage
-----

All you need now is to import ``ClearableInput`` class and override
field's widget, for example:

.. code-block:: python

    from clearable_widget import ClearableInput

    class Form(forms.Form):

        field = forms.CharField(widget=ClearableInput)

Please see ``example`` application. This application is used to
manually test the functionalities of this package. This also serves as
a good example.

You need only Django 1.4 or above to run that. It might run on older
versions but that is not tested.

License
-------

``django-clearable-widget`` is released under the BSD license.

Changes
-------

1.1.0 (2026-08-14)
~~~~~~~~~~~~~~~~~~

* Dropped Python <3.10 / Django <5.2 support; added Django 6.0 / 6.1 support.
* Moved the Jinja2 template into ``clearable_widget/jinja2/`` so it's genuinely
  served by the Jinja2 backend instead of silently falling through to DjangoTemplates.
* Fixed the clear button staying hidden on pre-filled fields until the first keystroke.
* Fixed a dead ``if (form)`` check in ``clearable.js`` that never actually guarded anything.

1.0.0 (2021-11-30)
~~~~~~~~~~~~~~~~~~

* Added Django 3+ support.
* Dropped Python 2.7 support.
* Dropped Django 1.10 / 1.11 support.
