import { Button, PinInput } from "@wrnexus/ui"

component VerifyPhone {
  props {
    kind = "phone"
    action = "/api/auth/verify/phone"
    schema = "auth-verification-token"
    token = ""
    identifier = ""
    title = "Verify your phone"
    description = "Enter the verification token sent to your phone."
    submitLabel = "Verify phone"
    resendAction = "/api/auth/verification/request"
    resendSchema = "auth-verification-request"
    successMessage = "Your phone number has been verified."
    color = "primary"
    size = "md"
    class = ""
  }
  view {
    <section {...attrs} data-wrnexus-runtime="auth" class='w-full max-w-md rounded-[var(--wrn-radius-lg)] border border-[var(--wrn-color-border)] bg-[var(--wrn-color-surface)] p-6 text-[var(--wrn-color-text)] shadow-[var(--wrn-shadow-2)] {class}'>
      <h1 class="m-0 text-2xl font-semibold">{title}</h1>
      <p class="mt-2 text-sm text-[var(--wrn-color-muted)]">{description}</p>
      <form method="post" action='{action}' data-schema='{schema}' novalidate class="mt-6 space-y-4">
        <PinInput label="Verification token" name="token" value="{token}" length="6" inputMode="numeric" autocomplete="one-time-code" color="{color}" size="{size}" />
        <p data-error="_form" role="alert" class="m-0 hidden rounded-[var(--wrn-radius-sm)] bg-[color-mix(in_srgb,var(--wrn-color-danger)_10%,transparent)] p-3 text-sm text-[var(--wrn-color-danger)]"></p>
        <p data-success='{successMessage}' role="status" hidden class="m-0 rounded-[var(--wrn-radius-sm)] bg-[color-mix(in_srgb,var(--wrn-color-success)_10%,transparent)] p-3 text-sm text-[var(--wrn-color-success)]">{successMessage}</p>
        <Button type="submit" label="{submitLabel}" variant="solid" color="{color}" size="{size}" fullWidth="true" />
      </form>
      <form method="post" action='{resendAction}' data-schema='{resendSchema}' novalidate class="mt-3">
        <input type="hidden" name="type" value='{kind}' />
        <input type="hidden" name="identifier" value='{identifier}' />
        <p data-error="type" class="m-0 min-h-4 text-xs text-[var(--wrn-color-danger)]"></p>
        <p data-error="_form" role="alert" class="m-0 hidden text-xs text-[var(--wrn-color-danger)]"></p>
        <Button type="submit" label="Send a new code" variant="ghost" color="{color}" size="sm" />
      </form>
    </section>
  }
}
