Audited every className token in the repo by compiling them against the shared
tailwind config and diffing generated selectors. The following dead tokens were
replaced with the intended, existing ones:
- text-sbase -> text-base (document invite email button, botched sm->base edit)
- text-primary-forground -> text-foreground (admin license card; the literal
spelling fix would render 10% lightness text on the dark card, the inherited
foreground colour is the intended look)
- tracking-tigh -> tracking-tight (signing waiting page heading)
- font-sm -> text-sm (4 delete-confirmation dialogs)
- dark:text-muted-background -> dark:text-muted (field drag ghost in 4 flows;
restores the dark mode readability fix intended by #1242)
- placeholder:text-foreground-muted -> placeholder:text-muted-foreground
(command palette input)
- text-medium -> font-medium (org create dialog free plan, matches paid plans)
- text-md -> text-base (envelope drop zone hint)
- justify-left -> justify-start (member invite remove button, no visual change)
- removed stray "gradie" fragment and text-dark (no dark colour exists)
No visual change except where the dead class silently disabled intended
styling (email button size, drag ghost dark mode text, dialog confirm text
size).
Adds a CANCELLED envelope status that privileged members (owner or team
admin/manager) can move a pending document into. Sending recipient
notifications via a background job while retaining the document in the
dashboard as proof of distribution.
Includes a dedicated Cancelled tab, single and bulk cancel actions,
the ENVELOPE_CANCELLED mutability guard, and e2e coverage for
permissions
and visibility.
Add parentId query param support to documents/templates folder index
pages so View All correctly shows subfolders. Fix search not filtering
unpinned folders on documents page and broken mt- Tailwind class on
templates page.
## Description
Replace the PDF renderer with an custom image renderer.
This allows us to remove the "react-pdf" dependency and allows us to use
a virtual list to improve performance.
API users were inadvertently sending documents without signature fields,
causing confusion for recipients and breaking their signing flows.
- Add getRecipientsWithMissingFields helper in recipients.ts
- Add server-side validation in sendDocument to block distribution
- Fix v1 API to return 400 instead of 500 for validation errors
- Consolidate UI signature field checks to use isSignatureFieldType
- Add E2E tests for both v1 and v2 APIs
Generate certificates and audit logs using Konva instead of browserless.
This should:
- Reduce the changes of generations failing
- Improve sealing speed
When using an API key created in a team context, the
documents/templates’ owner always defaults to the team API token
creator, rather than the actual uploader.
For example, John creates the API key for the team "Lawyers". Tom and
Maria use the API key to upload documents. All the uploaded documents
are attributed to John.
This makes it impossible to see who actually uploaded a document.
The new feature allows users to enable document ownership delegation
from the organization/team settings.
This PR is handles the changes required to support envelopes. The new
envelope editor/signing page will be hidden during release.
The core changes here is to migrate the documents and templates model to
a centralized envelopes model.
Even though Documents and Templates are removed, from the user
perspective they will still exist as we remap envelopes to documents and
templates.
The checkboxes were difficult to see and the "Send reminder" button
wasn't disabled when no recipients were selected. This PR disables the
sending button when there's no selected recipient and improves the
checkboxes visibility.
## Description
General fixes to the email domain features
Changes made:
- Add "email" validation for "Reply-To email" fields
- Fix issue where you can't remove the "Reply-To" email after it's set
- Fix issue where setting the "Sender email" back to Documenso would
still send using the org/team pref