# HG changeset patch # User Adam Chlipala # Date 1416166778 18000 # Node ID 6d126af2e1cbf21007841fe1f42a0b1056089f61 # Parent 3cd2bd4b1de0c328e2abc1e5a7eb11524d843071 Some more HTML5 input types diff -r 3cd2bd4b1de0 -r 6d126af2e1cb lib/ur/basis.urs --- a/lib/ur/basis.urs Sun Nov 16 14:16:11 2014 -0500 +++ b/lib/ur/basis.urs Sun Nov 16 14:39:38 2014 -0500 @@ -969,6 +969,17 @@ val search : textWidget val url_ : textWidget val tel : textWidget +val color : textWidget + +val number : formTag float [] ([Value = float, Min = float, Max = float, Step = float, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val range : formTag float [] ([Value = float, Min = float, Max = float, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val date : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val datetime : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val datetime_local : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val month : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val week : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) +val timeInput : formTag string [] ([Value = string, Min = string, Max = string, Size = int, Onchange = transaction unit] ++ boxAttrs ++ inputAttrs) + type file diff -r 3cd2bd4b1de0 -r 6d126af2e1cb src/monoize.sml --- a/src/monoize.sml Sun Nov 16 14:16:11 2014 -0500 +++ b/src/monoize.sml Sun Nov 16 14:39:38 2014 -0500 @@ -3667,6 +3667,15 @@ | "search" => input "search" | "url_" => input "url" | "tel" => input "tel" + | "color" => input "color" + | "number" => input "number" + | "range" => input "range" + | "date" => input "date" + | "datetime" => input "datetime" + | "datetime_local" => input "datetime-local" + | "month" => input "month" + | "week" => input "week" + | "timeInput" => input "time" | "textarea" => (case targs of [_, (L.CName name, _)] => diff -r 3cd2bd4b1de0 -r 6d126af2e1cb src/urweb.grm --- a/src/urweb.grm Sun Nov 16 14:16:11 2014 -0500 +++ b/src/urweb.grm Sun Nov 16 14:39:38 2014 -0500 @@ -222,6 +222,7 @@ case bt of "table" => "tabl" | "url" => "url_" + | "datetime-local" => "datetime_local" | _ => bt datatype prop_kind = Delete | Update diff -r 3cd2bd4b1de0 -r 6d126af2e1cb src/urweb.lex --- a/src/urweb.lex Sun Nov 16 14:16:11 2014 -0500 +++ b/src/urweb.lex Sun Nov 16 14:39:38 2014 -0500 @@ -277,19 +277,19 @@ continue ()) end); - "<" {id} "/>"=>(let + "<" {xmlid} "/>"=>(let val tag = String.substring (yytext, 1, size yytext - 3) in Tokens.XML_BEGIN_END (tag, yypos, yypos + size yytext) end); - "<" {id} ">"=> (let + "<" {xmlid} ">"=> (let val tag = String.substring (yytext, 1, size yytext - 2) in YYBEGIN XML; xmlTag := tag :: (!xmlTag); Tokens.XML_BEGIN (tag, yypos, yypos + size yytext) end); - "" => (let + "" => (let val id = String.substring (yytext, 2, size yytext - 3) in case !xmlTag of @@ -304,7 +304,7 @@ Tokens.END_TAG (id, yypos, yypos + size yytext) end); - "<" {id} => (YYBEGIN XMLTAG; + "<" {xmlid} => (YYBEGIN XMLTAG; Tokens.BEGIN_TAG (String.extract (yytext, 1, NONE), yypos, yypos + size yytext)); diff -r 3cd2bd4b1de0 -r 6d126af2e1cb tests/html5_forms.ur --- a/tests/html5_forms.ur Sun Nov 16 14:16:11 2014 -0500 +++ b/tests/html5_forms.ur Sun Nov 16 14:39:38 2014 -0500 @@ -6,6 +6,15 @@ E: {[r.E]}
F: {[r.F]}
G: {[r.G]}
+ H: {[r.H]}
+ I: {[r.I]}
+ J: {[r.J]}
+ K: {[r.K]}
+ L: {[r.L]}
+ M: {[r.M]}
+ N: {[r.N]}
+ O: {[r.O]}
+ P: {[r.P]}
fun main () = @@ -19,6 +28,18 @@ +
+ + + + + + + + + + +