aboutsummaryrefslogtreecommitdiff
path: root/src/lustre/element/html.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/lustre/element/html.gleam')
-rw-r--r--src/lustre/element/html.gleam889
1 files changed, 889 insertions, 0 deletions
diff --git a/src/lustre/element/html.gleam b/src/lustre/element/html.gleam
new file mode 100644
index 0000000..a69a5fd
--- /dev/null
+++ b/src/lustre/element/html.gleam
@@ -0,0 +1,889 @@
+//// To read the full documentation for this module, please visit
+//// [https://pkg.hayleigh.dev/lustre/api/lustre/element/html](https://pkg.hayleigh.dev/lustre/api/lustre/element/html)
+
+// IMPORTS ---------------------------------------------------------------------
+
+import lustre/element.{Element, element, namespaced, text}
+import lustre/attribute.{Attribute}
+
+// HTML ELEMENTS: MAIN ROOT ----------------------------------------------------
+
+///
+pub fn html(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("html", attrs, children)
+}
+
+// HTML ELEMENTS: DOCUMENT METADATA --------------------------------------------
+
+///
+pub fn base(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("base", attrs, [])
+}
+
+///
+pub fn head(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("head", attrs, children)
+}
+
+///
+pub fn link(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("link", attrs, [])
+}
+
+///
+pub fn meta(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("meta", attrs, [])
+}
+
+///
+pub fn style(attrs: List(Attribute(msg)), css: String) -> Element(msg) {
+ element("style", attrs, [text(css)])
+}
+
+///
+pub fn title(attrs: List(Attribute(msg)), content: String) -> Element(msg) {
+ element("title", attrs, [text(content)])
+}
+
+// HTML ELEMENTS: SECTIONING ROOT -----------------------------------------------
+
+///
+pub fn body(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("body", attrs, children)
+}
+
+// HTML ELEMENTS: CONTENT SECTIONING -------------------------------------------
+
+///
+pub fn address(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("address", attrs, children)
+}
+
+///
+pub fn article(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("article", attrs, children)
+}
+
+///
+pub fn aside(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("aside", attrs, children)
+}
+
+///
+pub fn footer(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("footer", attrs, children)
+}
+
+///
+pub fn header(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("header", attrs, children)
+}
+
+///
+pub fn h1(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h1", attrs, children)
+}
+
+///
+pub fn h2(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h2", attrs, children)
+}
+
+///
+pub fn h3(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h3", attrs, children)
+}
+
+///
+pub fn h4(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h4", attrs, children)
+}
+
+///
+pub fn h5(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h5", attrs, children)
+}
+
+///
+pub fn h6(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("h6", attrs, children)
+}
+
+///
+pub fn hgroup(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("hgroup", attrs, children)
+}
+
+///
+pub fn main(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("main", attrs, children)
+}
+
+///
+pub fn nav(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("nav", attrs, children)
+}
+
+///
+pub fn section(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("section", attrs, children)
+}
+
+///
+pub fn search(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("search", attrs, children)
+}
+
+// HTML ELEMENTS: TEXT CONTENT -------------------------------------------------
+
+///
+pub fn blockquote(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("blockquote", attrs, children)
+}
+
+///
+pub fn dd(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("dd", attrs, children)
+}
+
+///
+pub fn div(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("div", attrs, children)
+}
+
+///
+pub fn dl(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("dl", attrs, children)
+}
+
+///
+pub fn dt(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("dt", attrs, children)
+}
+
+///
+pub fn figcaption(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("figcaption", attrs, children)
+}
+
+///
+pub fn figure(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("figure", attrs, children)
+}
+
+///
+pub fn hr(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("hr", attrs, [])
+}
+
+///
+pub fn li(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("li", attrs, children)
+}
+
+///
+pub fn menu(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("menu", attrs, children)
+}
+
+///
+pub fn ol(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("ol", attrs, children)
+}
+
+///
+pub fn p(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("p", attrs, children)
+}
+
+///
+pub fn pre(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("pre", attrs, children)
+}
+
+///
+pub fn ul(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("ul", attrs, children)
+}
+
+// HTML ELEMENTS: INLINE TEXT SEMANTICS ----------------------------------------
+
+///
+pub fn a(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("a", attrs, children)
+}
+
+///
+pub fn abbr(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("abbr", attrs, children)
+}
+
+///
+pub fn b(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("b", attrs, children)
+}
+
+///
+pub fn bdi(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("bdi", attrs, children)
+}
+
+///
+pub fn bdo(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("bdo", attrs, children)
+}
+
+///
+pub fn br(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("br", attrs, [])
+}
+
+///
+pub fn cite(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("cite", attrs, children)
+}
+
+///
+pub fn code(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("code", attrs, children)
+}
+
+///
+pub fn data(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("data", attrs, children)
+}
+
+///
+pub fn dfn(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("dfn", attrs, children)
+}
+
+///
+pub fn em(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("em", attrs, children)
+}
+
+///
+pub fn i(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("i", attrs, children)
+}
+
+///
+pub fn kbd(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("kbd", attrs, children)
+}
+
+///
+pub fn mark(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("mark", attrs, children)
+}
+
+///
+pub fn q(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("q", attrs, children)
+}
+
+///
+pub fn rp(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("rp", attrs, children)
+}
+
+///
+pub fn rt(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("rt", attrs, children)
+}
+
+///
+pub fn ruby(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("ruby", attrs, children)
+}
+
+///
+pub fn s(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("s", attrs, children)
+}
+
+///
+pub fn samp(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("samp", attrs, children)
+}
+
+///
+pub fn small(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("small", attrs, children)
+}
+
+///
+pub fn span(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("span", attrs, children)
+}
+
+///
+pub fn strong(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("strong", attrs, children)
+}
+
+///
+pub fn sub(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("sub", attrs, children)
+}
+
+///
+pub fn sup(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("sup", attrs, children)
+}
+
+///
+pub fn time(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("time", attrs, children)
+}
+
+///
+pub fn u(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("u", attrs, children)
+}
+
+///
+pub fn var(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("var", attrs, children)
+}
+
+///
+pub fn wbr(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("wbr", attrs, [])
+}
+
+// HTML ELEMENTS: IMAGE AND MULTIMEDIA -----------------------------------------
+
+///
+pub fn area(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("area", attrs, [])
+}
+
+///
+pub fn audio(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("audio", attrs, children)
+}
+
+///
+pub fn img(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("img", attrs, [])
+}
+
+/// Used with <area> elements to define an image map (a clickable link area).
+///
+pub fn map(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("map", attrs, children)
+}
+
+///
+pub fn track(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("track", attrs, [])
+}
+
+///
+pub fn video(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("video", attrs, children)
+}
+
+// HTML ELEMENTS: EMBEDDED CONTENT ---------------------------------------------
+
+///
+pub fn embed(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("embed", attrs, [])
+}
+
+///
+pub fn iframe(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("iframe", attrs, [])
+}
+
+///
+pub fn object(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("object", attrs, [])
+}
+
+///
+pub fn picture(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("picture", attrs, children)
+}
+
+///
+pub fn portal(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("portal", attrs, [])
+}
+
+///
+pub fn source(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("source", attrs, [])
+}
+
+// HTML ELEMENTS: SVG AND MATHML -----------------------------------------------
+
+///
+pub fn svg(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ namespaced("http://www.w3.org/2000/svg", "svg", attrs, children)
+}
+
+///
+pub fn math(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("math", attrs, children)
+}
+
+// HTML ELEMENTS: SCRIPTING ----------------------------------------------------
+
+///
+pub fn canvas(attrs: List(Attribute(msg))) -> Element(msg) {
+ element("canvas", attrs, [])
+}
+
+///
+pub fn noscript(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element("noscript", attrs, children)
+}
+
+///
+pub fn script(attrs: List(Attribute(msg)), js: String) -> Element(msg) {
+ element("script", attrs, [text(js)])
+}
+
+// HTML ELEMENTS: DEMARCATING EDITS ---------------------------------------------
+
+///
+pub fn del(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("del", attrs, children)
+}
+
+///
+pub fn ins(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("ins", attrs, children)
+}
+
+// HTML ELEMENTS: TABLE CONTENT ------------------------------------------------
+
+///
+pub fn caption(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("caption", attrs, children)
+}
+
+///
+pub fn col(attrs: List(Attribute(msg))) -> Element(msg) {
+ element.element("col", attrs, [])
+}
+
+///
+pub fn colgroup(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("colgroup", attrs, children)
+}
+
+///
+pub fn table(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("table", attrs, children)
+}
+
+///
+pub fn tbody(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("tbody", attrs, children)
+}
+
+///
+pub fn td(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("td", attrs, children)
+}
+
+///
+pub fn tfoot(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("tfoot", attrs, children)
+}
+
+///
+pub fn th(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("th", attrs, children)
+}
+
+///
+pub fn thead(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("thead", attrs, children)
+}
+
+///
+pub fn tr(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("tr", attrs, children)
+}
+
+// HTML ELEMENTS: FORMS --------------------------------------------------------
+
+///
+pub fn button(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("button", attrs, children)
+}
+
+///
+pub fn datalist(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("datalist", attrs, children)
+}
+
+///
+pub fn fieldset(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("fieldset", attrs, children)
+}
+
+///
+pub fn form(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("form", attrs, children)
+}
+
+///
+pub fn input(attrs: List(Attribute(msg))) -> Element(msg) {
+ element.element("input", attrs, [])
+}
+
+///
+pub fn label(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("label", attrs, children)
+}
+
+///
+pub fn legend(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("legend", attrs, children)
+}
+
+///
+pub fn meter(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("meter", attrs, children)
+}
+
+///
+pub fn optgroup(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("optgroup", attrs, children)
+}
+
+///
+pub fn option(attrs: List(Attribute(msg))) -> Element(msg) {
+ element.element("option", attrs, [])
+}
+
+///
+pub fn output(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("output", attrs, children)
+}
+
+///
+pub fn progress(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("progress", attrs, children)
+}
+
+///
+pub fn select(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("select", attrs, children)
+}
+
+///
+pub fn textarea(attrs: List(Attribute(msg))) -> Element(msg) {
+ element.element("textarea", attrs, [])
+}
+
+// HTML ELEMENTS: INTERACTIVE ELEMENTS -----------------------------------------
+
+///
+pub fn details(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("details", attrs, children)
+}
+
+///
+pub fn dialog(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("dialog", attrs, children)
+}
+
+///
+pub fn summary(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("summary", attrs, children)
+}
+
+// HTML ELEMENTS: WEB COMPONENTS -----------------------------------------------
+
+///
+pub fn slot(attrs: List(Attribute(msg))) -> Element(msg) {
+ element.element("slot", attrs, [])
+}
+
+///
+pub fn template(
+ attrs: List(Attribute(msg)),
+ children: List(Element(msg)),
+) -> Element(msg) {
+ element.element("template", attrs, children)
+}