Add automatic unlock prompt for encrypted PDFs (#4912)

## Summary
- propagate an `isEncrypted` flag from thumbnail generation into
processed file metadata so uploads know when a password is still present
- add queueing logic inside `FileContext` that detects encrypted
uploads, prompts the user via a new modal, and automatically runs the
Remove Password endpoint to replace the file and preserve history
- introduce a dedicated `EncryptedPdfUnlockModal` component that mirrors
existing styling and messaging for unlocking PDFs

## Testing
- npm run typecheck:core


------
[Codex
Task](https://chatgpt.com/codex/tasks/task_b_6919a0a418bc8328b886ec76a28170b7)
This commit is contained in:
Anthony Stirling
2025-11-20 14:54:41 +00:00
committed by GitHub
parent 6c8d2c89fe
commit c87da6d5cc
11 changed files with 382 additions and 14 deletions
@@ -5557,6 +5557,24 @@
"starting": "Backend starting up...",
"wait": "Please wait for the backend to finish launching and try again."
},
"encryptedPdfUnlock": {
"unlockPrompt": "Unlock PDF to continue",
"title": "Remove password to continue",
"description": "This PDF is password protected. Enter the password so you can continue working with it.",
"password": {
"label": "PDF password",
"placeholder": "Enter the PDF password"
},
"skip": "Skip for now",
"unlock": "Unlock & Continue",
"incorrectPassword": "Incorrect password",
"missingFile": "The selected file is no longer available.",
"emptyResponse": "Password removal did not produce a file.",
"required": "Enter the password to continue.",
"successTitle": "Password removed",
"successBodyWithName": "Password removed from {{fileName}}",
"successBody": "Password removed successfully."
},
"setup": {
"welcome": "Welcome to Stirling PDF",
"description": "Get started by choosing how you want to use Stirling PDF",