aboutsummaryrefslogtreecommitdiff
path: root/js/elements.ml
diff options
context:
space:
mode:
Diffstat (limited to 'js/elements.ml')
-rw-r--r--js/elements.ml35
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 ] ]