Tailwind classes in OCaml
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