Implements a bulk send feature allowing users to upload a CSV file to
create multiple documents from a template. Includes CSV template
generation, background processing, and email notifications.
Adds the ability to align text to the left, center or right for relevant
fields.
Previously text was always centered which can be less desirable.
See attached debug document which has left, center and right text
alignments set for fields.
<img width="614" alt="image"
src="https://github.com/user-attachments/assets/361a030e-813d-458b-9c7a-ff4c9fa5e33c"
/>
N/A
- Added text align option
- Update the insert in pdf method to support different alignments
- Added a debug mode to field insertion
- Ran manual tests using the debug mode
When authenticating using OIDC some IDPs send additional fields in their
authorization response.
This leads to an error because these fields can't be persisted to the DB
through the auth.js prisma adapter.
This PR solves this by deleting all unrecognized fields from the
authorization response before persisting.
This behaviour is also compliant to
[RFC6749 Section 4.1.2](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2)
Adds the ability to upload a custom document when using a template.
This is useful when you have a given fixed template with placeholder
values that you want to decorate with Documenso fields but will then
create a final specialised document when sending it out to a given
recipient.
Improves the display of the recipients status when
distribution method is set to none.
Previously we had a ton of checks for sendStatus = SENT
which will never trigger when distributing manually causing
some confusion.
Checkboxes were previously styled super wonky due to
the usage of checkboxClassName which styled the checkbox
trigger.
This change reverts all that and leaves it with sensible defaults
across dark and light mode.
Passes the timezone of the user uploading the document/template via the
UI to the server.
If the user uploads a document/template via the API and doesn't set a
timezone, it defaults to `Etc/UTC`.