import Button from "../button/button.marko";
import type { ButtonVariants } from "../button/variants.ts";
import { inputGroupButtonVariants, type InputGroupButtonVariants } from "./variants.ts";
import { cn } from "#lib/utils.ts";

export interface Input
  extends Omit<Marko.Input<"button">, "size">,
    Pick<ButtonVariants, "variant">,
    InputGroupButtonVariants {}

<const/{ variant, size = "xs", class: className, content, ...rest }=input/>

<Button
  type=input.type ?? "button"
  data-size=size
  variant=variant ?? "ghost"
  ...rest
  class=cn(inputGroupButtonVariants({ size }), className)
>
  <${content}/>
</Button>
