Full Name:
@if (userForm.get('name')?.invalid && (userForm.get('name')?.dirty || userForm.get('name')?.touched)) { Name is required and must be at least 3 characters. }
Email:
@if (userForm.get('email')?.invalid && (userForm.get('email')?.dirty || userForm.get('email')?.touched)) { Enter a valid email address. }
Username:
@if (userForm.get('username')?.invalid && (userForm.get('username')?.dirty || userForm.get('username')?.touched)) { Username is required. }
Password:
@if (userForm.get('password')?.invalid && (userForm.get('password')?.dirty || userForm.get('password')?.touched)) { Password must be at least 6 characters long. }
Accessible Libraries:
@if (userForm.get('selectedLibraries')?.invalid && (userForm.get('selectedLibraries')?.dirty || userForm.get('selectedLibraries')?.touched)) { At least one library must be selected. }

Permissions:

Upload Books
Download Books
Edit Metadata
Manage Library
Email Book
Delete Book
Access OPDS
KOReader Sync
Kobo Sync
Admin