Resolves conflict in document-signing-field-container.tsx (kept HEAD's
required-field-color logic) and applies biome formatting to the
auto-merged envelope-signer-page-renderer.tsx.
Platform-plan organisations and teams can now customise non-embed
signing pages with six brand colour tokens, a border-radius, and
a free-text custom CSS block (up to 256 KB).
- Stored on OrganisationGlobalSettings / TeamGlobalSettings;
teams inherit from the org via brandingEnabled === null.
- CSS is sanitised on save (PostCSS) so we can inline it at SSR
with no per-render parsing.
- Rendered via a nonce'd <style> scoped under .documenso-branded,
using native CSS nesting so user selectors don't need scoping.
- Gated on the existing embedSigningWhiteLabel claim (or
self-hosted) — reuses the embed white-label decision.
- Add --recipient-red HSL var and expose as recipient.red in tailwind config
- required entry delegates to generateStyles('red'), matching the pattern
used by every other recipient color (hover/active/combobox states, shared
ring shadow layers)
- Gate recipient ring on !isValidating in FieldRootContainer so the
validation ring is the sole source of truth when active
- Extend RECIPIENT_DYNAMIC_CLASS safelist via CSS_VAR_RECIPIENT_COLORS
Add a 'required' key to TRecipientColor with a red ring and translucent
hover fill, mirroring the recipient color shape.
Both the signing DOM container and the envelope canvas renderer now
route unsigned required fields to 'required', falling back to the
default green once a field is inserted.
On the envelope canvas, orange is now reserved for the single 'next'
field the tooltip points at (recipientFieldsRemaining[0]). Other
unsigned required fields stay red when the pending-field tooltip
is active.