(** Button component module *) (** Button configuration *) type t (** Button variants *) type variant = [ `Primary | `Secondary | `Outline | `Ghost | `Link ] (** Button sizes *) type size = [ `Sm | `Default | `Lg | `Icon ] (** Button states *) type state = [ `Default | `Loading | `Disabled ] (** Create a button *) val make : ?variant:variant -> ?size:size -> ?state:state -> ?icon:Htmlit.El.html -> ?icon_position:[`Left | `Right] -> ?classes:Tailwind.t -> ?attributes:(string * string) list -> children:Htmlit.El.html list -> unit -> t (** Convert button to Htmlit element *) val to_html : t -> Htmlit.El.html (** Create a primary button (shorthand) *) val primary : ?size:size -> ?state:state -> ?icon:Htmlit.El.html -> ?classes:Tailwind.t -> children:Htmlit.El.html list -> unit -> Htmlit.El.html (** Create a secondary button (shorthand) *) val secondary : ?size:size -> ?state:state -> ?icon:Htmlit.El.html -> ?classes:Tailwind.t -> children:Htmlit.El.html list -> unit -> Htmlit.El.html (** Create an outline button (shorthand) *) val outline : ?size:size -> ?state:state -> ?icon:Htmlit.El.html -> ?classes:Tailwind.t -> children:Htmlit.El.html list -> unit -> Htmlit.El.html (** Create a ghost button (shorthand) *) val ghost : ?size:size -> ?state:state -> ?icon:Htmlit.El.html -> ?classes:Tailwind.t -> children:Htmlit.El.html list -> unit -> Htmlit.El.html (** Create a link button (shorthand) *) val link : ?size:size -> ?state:state -> ?classes:Tailwind.t -> children:Htmlit.El.html list -> unit -> Htmlit.El.html