<PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper
  flash={@flash}
  phoenix_kit_current_scope={assigns[:phoenix_kit_current_scope]}
  page_title={@page_title}
  current_path={assigns[:url_path] || "/users/register"}
>
  <h1 class="text-2xl font-bold text-center mb-2">{gettext("Complete Your Registration")}</h1>
  <p class="text-center text-base-content/60 text-sm mb-6">
    {gettext("Email:")} <strong>{@email}</strong>
  </p>

  <.form
    for={@form}
    id="registration_completion_form"
    phx-submit="save"
    phx-change="validate"
    phx-trigger-action={@trigger_submit}
    action={Routes.path("/users/log-in?_action=registered")}
    method="post"
  >
    <%!-- Hidden email field for session controller --%>
    <input type="hidden" name="user[email]" value={@email} />

    <fieldset class="fieldset min-w-0">
      <legend class="fieldset-legend sr-only">{gettext("Account Information")}</legend>

      <%!-- Username Field --%>
      <div phx-feedback-for="user[username]">
        <label class="label" for="user_username">
          <span class="label-text flex items-center">
            <PhoenixKitWeb.Components.Core.Icons.icon_user_profile class="w-4 h-4 mr-2" />
            {gettext("Username")}
          </span>
        </label>
        <.input
          field={@form[:username]}
          type="text"
          placeholder={gettext("Choose a unique username")}
          autocomplete="username"
          class="transition-colors focus:input-primary"
        />
      </div>

      <%!-- Password Field --%>
      <div phx-feedback-for="user[password]">
        <label class="label" for="user_password">
          <span class="label-text flex items-center">
            <PhoenixKitWeb.Components.Core.Icons.icon_lock class="w-4 h-4 mr-2" /> {gettext(
              "Password"
            )}
          </span>
        </label>
        <.input
          field={@form[:password]}
          type="password"
          placeholder={gettext("Choose a secure password")}
          autocomplete="new-password"
          class="transition-colors focus:input-primary"
          required
        />
      </div>

      <%!-- First Name Field (optional) --%>
      <div phx-feedback-for="user[first_name]">
        <label class="label" for="user_first_name">
          <span class="label-text">{gettext("First Name")}</span>
        </label>
        <.input
          field={@form[:first_name]}
          type="text"
          placeholder={gettext("Your first name (optional)")}
          autocomplete="given-name"
          class="transition-colors focus:input-primary"
        />
      </div>

      <%!-- Last Name Field (optional) --%>
      <div phx-feedback-for="user[last_name]">
        <label class="label" for="user_last_name">
          <span class="label-text">{gettext("Last Name")}</span>
        </label>
        <.input
          field={@form[:last_name]}
          type="text"
          placeholder={gettext("Your last name (optional)")}
          autocomplete="family-name"
          class="transition-colors focus:input-primary"
        />
      </div>

      <%!-- Referral Code Field --%>
      <%= if @referral_codes_enabled do %>
        <div phx-feedback-for="referral_code">
          <.label for="referral_code">
            {gettext("Referral Code")}
            <%= if @referral_codes_required do %>
              *
            <% end %>
          </.label>
          <input
            id="referral_code"
            name="referral_code"
            type="text"
            class={[
              "input w-full",
              (@referral_code_error ||
                 (@check_errors && @referral_codes_required &&
                    (is_nil(@referral_code) || @referral_code == ""))) && "input-error"
            ]}
            placeholder={gettext("Enter your referral code")}
            value={@referral_code || ""}
            required={@referral_codes_required}
          />
          <%= if @referral_code_error do %>
            <.error>{@referral_code_error}</.error>
          <% end %>
        </div>
      <% end %>

      <button
        type="submit"
        class="btn btn-primary w-full mt-4 transition-all hover:scale-[1.02] active:scale-[0.98]"
      >
        <PhoenixKitWeb.Components.Core.Icons.icon_user_add class="w-5 h-5 mr-2" />
        {gettext("Complete Registration")} <span aria-hidden="true">→</span>
      </button>
    </fieldset>
  </.form>
</PhoenixKitWeb.Components.AuthPageWrapper.auth_page_wrapper>
