# Source code for wtforms.fields.html5

    """
    Fields to support various HTML5 input types.
    """
    from ..widgets import html5 as widgets
    from . import core

    __all__ = (
        'DateField', 'DateTimeField', 'DateTimeLocalField', 'DecimalField',
        'DecimalRangeField', 'EmailField', 'IntegerField', 'IntegerRangeField',
        'SearchField', 'TelField', 'TimeField', 'URLField',
    )

    class SearchField(core.StringField):
        """
        Represents an ``<input type="search">``.
        """
        widget = widgets.SearchInput()

    class TelField(core.StringField):
        """
        Represents an ``<input type="tel">``.
        """
        widget = widgets.TelInput()

    class URLField(core.StringField):
        """
        Represents an ``<input type="url">``.
        """
        widget = widgets.URLInput()

    class EmailField(core.StringField):
        """
        Represents an ``<input type="email">``.
        """
        widget = widgets.EmailInput()

    class DateTimeField(core.DateTimeField):
        """
        Represents an ``<input type="datetime">``.
        """
        widget = widgets.DateTimeInput()

    class DateField(core.DateField):
        """
        Represents an ``<input type="date">``.
        """
        widget = widgets.DateInput()

    class TimeField(core.TimeField):
        """
        Represents an ``<input type="time">``.
        """
        widget = widgets.TimeInput()

    class DateTimeLocalField(core.DateTimeField):
        """
        Represents an ``<input type="datetime-local">``.
        """
        widget = widgets.DateTimeLocalInput()

    class IntegerField(core.IntegerField):
        """
        Represents an ``<input type="number">``.
        """
        widget = widgets.NumberInput()

    class DecimalField(core.DecimalField):
        """
        Represents an ``<input type="number">``.
        """
        widget = widgets.NumberInput(step='any')

    class IntegerRangeField(core.IntegerField):
        """
        Represents an ``<input type="range">``.
        """
        widget = widgets.RangeInput()

    class DecimalRangeField(core.DecimalField):
        """
        Represents an ``<input type="range">``.
        """
        widget = widgets.RangeInput(step='any')