diff options
Diffstat (limited to 'js/elements.ml')
-rw-r--r-- | js/elements.ml | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/js/elements.ml b/js/elements.ml new file mode 100644 index 0000000..b3c07a2 --- /dev/null +++ b/js/elements.ml @@ -0,0 +1,35 @@ +let input_field : + ?name:Jstr.t -> + ?id':Jstr.t -> + ?value':Jstr.t -> + label:Jstr.t -> + unit -> + Brr.El.t = + fun ?name ?id' ?(value' = Jstr.empty) ~label () -> + let name' = name in + let input = + Brr.El.input + ~at: + Brr.At. + [ + if_some (Option.map Brr.At.id id'); + if_some (Option.map Brr.At.name name'); + class' (Jstr.v "input"); + type' (Jstr.v "text"); + value value'; + ] + () + and label = + Brr.El.label + ~at: + Brr.At. + [ + if_some (Option.map Brr.At.for' id'); + class' (Jstr.v "field-label is-normal"); + ] + [ Brr.El.txt label ] + in + + Brr.El.div + ~at:Brr.At.[ class' (Jstr.v "field is-horizontal") ] + [ label; Brr.El.div ~at:Brr.At.[ class' (Jstr.v "field-body") ] [ input ] ] |