from .core.element import HTMLElement
from .tags.form import (
    Textarea,
    Select,
    Option,
    Button,
    Fieldset,
    Form,
    Input,
    Label,
    Optgroup,
)
from .tags.html import (
    HTML,
    Head,
    Body,
    Title,
    Meta,
    Link as HtmlLink,
    Script,
    Style,
    IFrame,
)
from .tags.layout import Div, Section, Header, Nav, Footer, HorizontalRule, Main
from .tags.lists import (
    UnorderedList,
    OrderedList,
    ListItem,
    Datalist,
    DescriptionDetails,
    DescriptionList,
    DescriptionTerm,
)
from .tags.media import Image, Video, Audio, Source, Picture, Figure, Figcaption, Canvas
from .tags.table import (
    Table,
    TableFooter,
    TableHeaderCell,
    TableHeader,
    TableBody,
    TableDataCell,
    TableRow,
)
from .tags.text import (
    H1,
    H2,
    H3,
    H4,
    H5,
    H6,
    Paragraph,
    Blockquote,
    Pre,
    Quote,
    Cite,
    Em,
    Italic,
    Span,
    Strong,
    Abbr,
    Link,
    Small,
    Superscript,
    Subscript,
    Time,
    Code,
)

__all__ = [
    "HTMLElement",
    # form
    "Textarea",
    "Select",
    "Option",
    "Button",
    "Fieldset",
    "Form",
    "Input",
    "Label",
    "Optgroup",
    # html
    "HTML",
    "Head",
    "Body",
    "Title",
    "Meta",
    "HtmlLink",
    "Script",
    "Style",
    "IFrame",
    # layout
    "Div",
    "Section",
    "Header",
    "Nav",
    "Footer",
    "HorizontalRule",
    "Main",
    # lists
    "UnorderedList",
    "OrderedList",
    "ListItem",
    "Datalist",
    "DescriptionDetails",
    "DescriptionList",
    "DescriptionTerm",
    # media
    "Image",
    "Video",
    "Audio",
    "Source",
    "Picture",
    "Figure",
    "Figcaption",
    "Canvas",
    # table
    "Table",
    "TableFooter",
    "TableHeaderCell",
    "TableHeader",
    "TableBody",
    "TableDataCell",
    "TableRow",
    # text
    "H1",
    "H2",
    "H3",
    "H4",
    "H5",
    "H6",
    "Paragraph",
    "Blockquote",
    "Pre",
    "Quote",
    "Cite",
    "Em",
    "Italic",
    "Span",
    "Strong",
    "Abbr",
    "Link",
    "Small",
    "Superscript",
    "Subscript",
    "Time",
    "Code",
]
