Tailwind classes in OCaml
at main 2.5 kB view raw
1(** Form component module *) 2 3(** Form field configuration *) 4type t 5 6(** Input types *) 7type input_type = 8 | Text 9 | Email 10 | Password 11 | Number 12 | Tel 13 | Url 14 | Search 15 | Date 16 | Time 17 | Datetime_local 18 19(** Field validation state *) 20type validation_state = 21 | Valid 22 | Invalid 23 | Warning 24 25(** Create an input field *) 26val input : 27 ?input_type:input_type -> 28 ?label:string -> 29 ?placeholder:string -> 30 ?value:string -> 31 ?name:string -> 32 ?id:string -> 33 ?required:bool -> 34 ?disabled:bool -> 35 ?readonly:bool -> 36 ?validation:validation_state -> 37 ?helper_text:string -> 38 ?error_text:string -> 39 ?classes:Tailwind.t -> 40 ?attributes:(string * string) list -> 41 unit -> t 42 43(** Create a textarea field *) 44val textarea : 45 ?label:string -> 46 ?placeholder:string -> 47 ?value:string -> 48 ?name:string -> 49 ?id:string -> 50 ?rows:int -> 51 ?required:bool -> 52 ?disabled:bool -> 53 ?readonly:bool -> 54 ?validation:validation_state -> 55 ?helper_text:string -> 56 ?error_text:string -> 57 ?classes:Tailwind.t -> 58 ?attributes:(string * string) list -> 59 unit -> t 60 61(** Create a select field *) 62val select : 63 ?label:string -> 64 ?name:string -> 65 ?id:string -> 66 ?required:bool -> 67 ?disabled:bool -> 68 ?validation:validation_state -> 69 ?helper_text:string -> 70 ?error_text:string -> 71 ?classes:Tailwind.t -> 72 ?attributes:(string * string) list -> 73 options:(string * string) list -> (* value, label pairs *) 74 unit -> t 75 76(** Create a checkbox field *) 77val checkbox : 78 ?label:string -> 79 ?name:string -> 80 ?id:string -> 81 ?checked:bool -> 82 ?disabled:bool -> 83 ?classes:Tailwind.t -> 84 ?attributes:(string * string) list -> 85 unit -> t 86 87(** Create a radio button *) 88val radio : 89 ?label:string -> 90 ?name:string -> 91 ?id:string -> 92 ?value:string -> 93 ?checked:bool -> 94 ?disabled:bool -> 95 ?classes:Tailwind.t -> 96 ?attributes:(string * string) list -> 97 unit -> t 98 99(** Create a switch/toggle *) 100val switch : 101 ?label:string -> 102 ?name:string -> 103 ?id:string -> 104 ?checked:bool -> 105 ?disabled:bool -> 106 ?classes:Tailwind.t -> 107 ?attributes:(string * string) list -> 108 unit -> t 109 110(** Convert form field to Htmlit element *) 111val to_html : t -> Htmlit.El.html 112 113(** Create a form group (label + input + helper/error text) *) 114val group : 115 ?classes:Tailwind.t -> 116 fields:t list -> 117 unit -> Htmlit.El.html 118 119(** Create a complete form *) 120val form : 121 ?action:string -> 122 ?method_:[`Get | `Post] -> 123 ?classes:Tailwind.t -> 124 ?attributes:(string * string) list -> 125 fields:t list -> 126 ?submit:Button.t -> 127 unit -> Htmlit.El.html