"""Form to save your CSS editor work."""

from flask_wtf import FlaskForm
from flask_wtf.file import FileAllowed, FileField, FileSize
from wtforms import (
    BooleanField,
    StringField,
    SubmitField,
    TextAreaField,
    validators,
)
from wtforms.validators import Length


class EditorForm(FlaskForm):
    """Css editor form class."""

    cssname = StringField(
        "fill in a name for your css style:",
        validators=[validators.InputRequired(), Length(5, 200)],
    )
    cssfile = FileField(
        "(Optional) upload your own css file:",
        validators=[
            FileAllowed(["css"], "css files only!"),
            FileSize(
                max_size=10485760,
                message="css file size must be smaller than 10MB",
            ),
        ],
    )
    css = TextAreaField()
    public = BooleanField("Make your CSS public so others can use it")

    submit = SubmitField("Save")