<?php

/**
 * @var mixed|null $error
 * @var mixed|null $firstName
 * @var mixed|null $lastName
 * @var mixed|null $email
 * @var mixed|null $password
 * @var mixed|null $password2
 */

use MintyPHP\Buffer;
use MintyPHP\Session;

Buffer::set('title', t('Register'));
$passwordMinLength = (int) ($passwordMinLength ?? 0);
$passwordHints = is_array($passwordHints ?? null) ? $passwordHints : [];
$errorNoticeId = !empty($error) ? 'auth-register-error-notice' : '';
$passwordHintId = 'auth-register-password-hints';
$authHelpContext = [
    'show_back_to_login' => true,
];
?>
<article class="login-card">
    <header>
        <hgroup>
            <h1><?php e(t('Register')); ?></h1>
            <p><?php e(t('Create your account')); ?></p>
        </hgroup>
    </header>
    <form method="post">
        <label for="first_name">
            <span><?php e(t('First name')); ?></span>
            <input required type="text" name="first_name" id="first_name" <?php if ($errorNoticeId !== ''): ?>aria-invalid="true" aria-describedby="<?php e($errorNoticeId); ?>"<?php endif; ?> />
        </label>
        <label for="last_name">
            <span><?php e(t('Last name')); ?></span>
            <input required type="text" name="last_name" id="last_name" <?php if ($errorNoticeId !== ''): ?>aria-invalid="true" aria-describedby="<?php e($errorNoticeId); ?>"<?php endif; ?> />
        </label>
        <label for="email">
            <span><?php e(t('Email')); ?></span>
            <input required type="email" name="email" id="email" autocomplete="email" <?php if ($errorNoticeId !== ''): ?>aria-invalid="true" aria-describedby="<?php e($errorNoticeId); ?>"<?php endif; ?> />
        </label>
        <fieldset>
            <legend>
                <small>
                    <?php e(t('Password')); ?>
                </small>
            </legend>
            <label for="password">
                <span><?php e(t('Password')); ?></span>
                <input required type="password" name="password" id="password"
                    minlength="<?php e($passwordMinLength); ?>" autocomplete="new-password"
                    aria-describedby="<?php e(trim($passwordHintId . ' ' . $errorNoticeId)); ?>" <?php if ($errorNoticeId !== ''): ?>aria-invalid="true"<?php endif; ?> />
            </label>
            <label for="password2">
                <span><?php e(t('Password (again)')); ?></span>
                <input required type="password" name="password2" id="password2"
                    minlength="<?php e($passwordMinLength); ?>" autocomplete="new-password"
                    aria-describedby="<?php e(trim($passwordHintId . ' ' . $errorNoticeId)); ?>" <?php if ($errorNoticeId !== ''): ?>aria-invalid="true"<?php endif; ?> />
            </label>
            <div id="<?php e($passwordHintId); ?>" class="form-hint" data-password-hints data-password-input="#password" data-confirm-input="#password2"
                data-email-input="#email" data-min-length="<?php e($passwordMinLength); ?>">
                <strong><?php e(t('Password requirements')); ?></strong>
                <ul class="form-hint-list">
                    <?php foreach ($passwordHints as $hint): ?>
                        <li data-rule="<?php e($hint['rule']); ?>"><?php e($hint['text']); ?></li>
                    <?php endforeach; ?>
                    <li data-rule="match"><?php e(t('Passwords must match')); ?></li>
                </ul>
            </div>
        </fieldset>
        <button type="submit"><?php e(t('Register')); ?></button>
        <?php if (!empty($error)): ?>
            <div id="<?php e($errorNoticeId); ?>" class="notice" data-variant="error" role="alert" aria-live="assertive" tabindex="-1"><?php e($error); ?></div>
        <?php endif; ?>
        <?php Session::getCsrfInput(); ?>
    </form>
    <?php require templatePath('partials/auth-help-links.phtml'); ?>
</article>
