(** Button component module *) (** Button configuration *) type t (** Button variants *) type variant = | Primary | Secondary | Outline | Ghost | Link | Danger | Success (** Button sizes *) type size = | Xs | Sm | Md | Lg | Xl (** Create a button *) val make : ?variant:variant -> ?size:size -> ?disabled:bool -> ?loading:bool -> ?full_width:bool -> ?icon_left:Htmlit.El.html -> ?icon_right:Htmlit.El.html -> ?classes:Tailwind.t -> ?attributes:(string * string) list -> ?onclick:string -> children:Htmlit.El.html list -> unit -> t (** Convert button to Htmlit element *) val to_html : t -> Htmlit.El.html (** Create button group *) val group : ?classes:Tailwind.t -> ?vertical:bool -> buttons:t list -> unit -> Htmlit.El.html (** Icon button (button with just an icon) *) val icon : ?variant:variant -> ?size:size -> ?disabled:bool -> ?classes:Tailwind.t -> ?attributes:(string * string) list -> ?aria_label:string -> icon:Htmlit.El.html -> unit -> Htmlit.El.html (** Link styled as button *) val link : ?variant:variant -> ?size:size -> ?classes:Tailwind.t -> ?attributes:(string * string) list -> href:string -> children:Htmlit.El.html list -> unit -> Htmlit.El.html