0 | module Text.HTML.Tag
  1 |
  2 | %default total
  3 |
  4 | ||| HTML Element Tags linking tag names with an enumeration.
  5 | |||
  6 | ||| Some deprecated tags have been left out, some others might
  7 | ||| still be missing.
  8 | public export
  9 | data HTMLTag : (tag : String) -> Type where
 10 |   A          : HTMLTag "a"
 11 |   Address    : HTMLTag "address"
 12 |   Area       : HTMLTag "area"
 13 |   Article    : HTMLTag "article"
 14 |   Aside      : HTMLTag "aside"
 15 |   Audio      : HTMLTag "audio"
 16 |   Base       : HTMLTag "base"
 17 |   Blockquote : HTMLTag "blockquote"
 18 |   Body       : HTMLTag "body"
 19 |   Br         : HTMLTag "br"
 20 |   Button     : HTMLTag "button"
 21 |   Canvas     : HTMLTag "canvas"
 22 |   Caption    : HTMLTag "caption"
 23 |   Col        : HTMLTag "col"
 24 |   Colgroup   : HTMLTag "colgroup"
 25 |   Data       : HTMLTag "data"
 26 |   Datalist   : HTMLTag "datalist"
 27 |   Del        : HTMLTag "del"
 28 |   Details    : HTMLTag "details"
 29 |   Dialog     : HTMLTag "dialog"
 30 |   Div        : HTMLTag "div"
 31 |   Dl         : HTMLTag "dl"
 32 |   Embed      : HTMLTag "embed"
 33 |   FieldSet   : HTMLTag "fieldset"
 34 |   Footer     : HTMLTag "footer"
 35 |   Form       : HTMLTag "form"
 36 |   H1         : HTMLTag "h1"
 37 |   H2         : HTMLTag "h2"
 38 |   H3         : HTMLTag "h3"
 39 |   H4         : HTMLTag "h4"
 40 |   H5         : HTMLTag "h5"
 41 |   H6         : HTMLTag "h6"
 42 |   HR         : HTMLTag "hr"
 43 |   Header     : HTMLTag "header"
 44 |   Html       : HTMLTag "html"
 45 |   IFrame     : HTMLTag "iframe"
 46 |   Img        : HTMLTag "img"
 47 |   Input      : HTMLTag "input"
 48 |   Ins        : HTMLTag "ins"
 49 |   Label      : HTMLTag "label"
 50 |   Legend     : HTMLTag "legend"
 51 |   Li         : HTMLTag "li"
 52 |   Link       : HTMLTag "link"
 53 |   Map        : HTMLTag "map"
 54 |   Menu       : HTMLTag "menu"
 55 |   Meta       : HTMLTag "meta"
 56 |   Meter      : HTMLTag "meter"
 57 |   Object     : HTMLTag "object"
 58 |   Ol         : HTMLTag "ol"
 59 |   OptGroup   : HTMLTag "optgroup"
 60 |   Option     : HTMLTag "option"
 61 |   Output     : HTMLTag "output"
 62 |   P          : HTMLTag "p"
 63 |   Param      : HTMLTag "param"
 64 |   Picture    : HTMLTag "picture"
 65 |   Pre        : HTMLTag "pre"
 66 |   Progress   : HTMLTag "progress"
 67 |   Q          : HTMLTag "q"
 68 |   Script     : HTMLTag "script"
 69 |   Section    : HTMLTag "section"
 70 |   Select     : HTMLTag "select"
 71 |   Slot       : HTMLTag "slot"
 72 |   Source     : HTMLTag "source"
 73 |   Span       : HTMLTag "span"
 74 |   Style      : HTMLTag "style"
 75 |   Svg        : HTMLTag "svg"
 76 |   Table      : HTMLTag "table"
 77 |   Tbody      : HTMLTag "tbody"
 78 |   Td         : HTMLTag "td"
 79 |   Template   : HTMLTag "template"
 80 |   TextArea   : HTMLTag "textarea"
 81 |   Tfoot      : HTMLTag "tfoot"
 82 |   Th         : HTMLTag "th"
 83 |   Thead      : HTMLTag "thead"
 84 |   Time       : HTMLTag "time"
 85 |   Title      : HTMLTag "title"
 86 |   Tr         : HTMLTag "tr"
 87 |   Track      : HTMLTag "track"
 88 |   Ul         : HTMLTag "ul"
 89 |   Video      : HTMLTag "video"
 90 |
 91 | ||| Proof that we can set a custom validity message to
 92 | ||| a HTML object with this tag.
 93 | public export
 94 | data ValidityTag : (t : HTMLTag s) -> Type where
 95 |   SVButton   : ValidityTag Button
 96 |   SVFieldSet : ValidityTag FieldSet
 97 |   SVInput    : ValidityTag Input
 98 |   SVObject   : ValidityTag Object
 99 |   SVOutput   : ValidityTag Output
100 |   SVSelect   : ValidityTag Select
101 |   SVTextArea : ValidityTag TextArea
102 |
103 | ||| Proof that we can set a string value to
104 | ||| a HTML object with this tag.
105 | public export
106 | data ValueTag : (t : HTMLTag s) -> Type where
107 |   VButton   : ValueTag Button
108 |   VData     : ValueTag Data
109 |   VInput    : ValueTag Input
110 |   VOption   : ValueTag Option
111 |   VOutput   : ValueTag Output
112 |   VParam    : ValueTag Param
113 |   VSelect   : ValueTag Select
114 |   VTextArea : ValueTag TextArea
115 |