h = require 'maquette' .h module.exports = { box: (args, children) -> h \div.box args, children title: (level, args, label) -> if not label label = args args = {} h "div.title.is-#{level}", args, [label] label: (args, label) -> if not label label = args args = {} h \label.label args, [label] input: (args, children) -> h \input.input args, children textarea: (args, children) -> h \textarea.textarea args, children control: (selector, args, children) -> if typeof(selector) == "object" children = args args = selector selector = "" h (\div.control + selector), args, children button: (selector, args, children) -> if typeof(selector) == "object" children = args args = selector selector = "" h (\div.button + selector), args, children tag: (selector, args, children) -> if typeof(selector) == "object" children = args args = selector selector = "" h (\div.tag + selector), args, children select: (selector, args, children) -> if typeof(selector) == "object" children = args args = selector selector = "" h (\div.select + selector), { } [ h \select { onchange: args.onchange || -> } children ] # FIXME: Use only args and add args.label and args.input? # Or maybe args.name and args.type could be used directly? field: (selector, args, children) -> if typeof(selector) == "object" children = args args = selector selector = "" h (\div.field + selector), args, children form: (method, url, content) -> h \form.form { action: url method: method }, content media: (args) -> h \div.media [ if args.left h \div.media-left args.left if args.content h \div.media-content args.content if args.right h \div.media-right args.right ] level: (args) -> h \div.level [ if args.left h \div.level-left args.left if args.right h \div.level-right args.right ] }