%
header_title @invitation ? t(".join_family_title", family: @invitation.family.name) : t(".title")
%>
<% if self_hosted_first_login? %>
<%= t(".welcome_title", product_name: product_name) %>
<%= t(".welcome_body") %>
<% elsif @invitation %>
<%= t(".invitation_message",
inviter: @invitation.inviter.display_name,
role: t(".role_#{@invitation.role}")) %>
<% end %>
<% if @user.errors.present? %>
<%= icon("circle-alert") %>
<%= @user.errors.full_messages.to_sentence %>
<% end %>
<%= styled_form_with model: @user, url: registration_path, class: "space-y-4" do |form| %>
<%= form.email_field :email,
autofocus: false,
autocomplete: "email",
required: "required",
placeholder: "you@example.com",
label: true,
disabled: @invitation.present? %>
<% if invite_code_required? && !@invitation %>
<%= form.text_field :invite_code, required: "required", label: true, value: params[:invite] %>
<% end %>
<%= form.hidden_field :invitation, value: @invitation&.token %>
<%= form.password_field :password,
autocomplete: "new-password",
required: "required",
placeholder: t(".password_placeholder"),
label: true,
maxlength: 72,
data: {
password_validator_target: "input",
password_visibility_target: "input",
action: "input->password-validator#validate"
} %>
<%= icon("check", size: "sm") %>
Minimum 8 characters
<%= icon("check", size: "sm") %>
Upper and lowercase letters
<%= icon("check", size: "sm") %>
A number (0-9)
<%= icon("check", size: "sm") %>
A special character (!, @, #, $, %, etc)
<%= form.submit t(".submit") %>
<% end %>