Merge branch 'main' into power-signer

This commit is contained in:
Ephraim Duncan
2024-10-16 14:10:55 +00:00
committed by GitHub
30 changed files with 660 additions and 201 deletions

View File

@ -128,7 +128,7 @@ export const SigningFieldContainer = ({
}; };
return ( return (
<div className={cn('[container-type:size]', type === 'Checkbox' ? 'group' : '')}> <div className={cn('[container-type:size]', { group: type === 'Checkbox' })}>
<FieldRootContainer field={field}> <FieldRootContainer field={field}>
{!field.inserted && !loading && !readOnlyField && ( {!field.inserted && !loading && !readOnlyField && (
<button <button

View File

@ -1,15 +1,10 @@
import { checkboxValidationSigns } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants'; import { checkboxValidationSigns } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants';
interface CheckboxFieldMeta { import type { TCheckboxFieldMeta } from '../types/field-meta';
readOnly?: boolean;
required?: boolean;
validationRule?: string;
validationLength?: number;
}
export const validateCheckboxField = ( export const validateCheckboxField = (
values: string[], values: string[],
fieldMeta: CheckboxFieldMeta, fieldMeta: TCheckboxFieldMeta,
isSigningPage: boolean = false, isSigningPage: boolean = false,
): string[] => { ): string[] => {
const errors = []; const errors = [];

View File

@ -1,14 +1,10 @@
interface DropdownFieldMeta { import type { TDropdownFieldMeta as DropdownFieldMeta } from '../types/field-meta';
readOnly?: boolean;
required?: boolean;
values?: { value: string }[];
defaultValue?: string;
}
export const validateDropdownField = ( export const validateDropdownField = (
value: string | undefined, value: string | undefined,
fieldMeta: DropdownFieldMeta, fieldMeta: DropdownFieldMeta,
isSigningPage: boolean = false, isSigningPage: boolean = false,
fontSize?: number,
): string[] => { ): string[] => {
const errors = []; const errors = [];
@ -50,5 +46,9 @@ export const validateDropdownField = (
errors.push('Duplicate values are not allowed'); errors.push('Duplicate values are not allowed');
} }
if (fontSize && (fontSize < 8 || fontSize > 96)) {
errors.push('Font size must be between 8 and 96.');
}
return errors; return errors;
}; };

View File

@ -0,0 +1,19 @@
import type {
TDateFieldMeta as DateFieldMeta,
TEmailFieldMeta as EmailFieldMeta,
TInitialsFieldMeta as InitialsFieldMeta,
TNameFieldMeta as NameFieldMeta,
} from '../types/field-meta';
export const validateFields = (
fieldMeta: DateFieldMeta | EmailFieldMeta | InitialsFieldMeta | NameFieldMeta,
): string[] => {
const errors = [];
const { fontSize } = fieldMeta;
if (fontSize && (fontSize < 8 || fontSize > 96)) {
errors.push('Font size must be between 8 and 96.');
}
return errors;
};

View File

@ -1,12 +1,5 @@
// import { numberFormatValues } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants'; // import { numberFormatValues } from '@documenso/ui/primitives/document-flow/field-items-advanced-settings/constants';
import type { TNumberFieldMeta as NumberFieldMeta } from '../types/field-meta';
interface NumberFieldMeta {
minValue?: number;
maxValue?: number;
readOnly?: boolean;
required?: boolean;
numberFormat?: string;
}
export const validateNumberField = ( export const validateNumberField = (
value: string, value: string,
@ -15,7 +8,7 @@ export const validateNumberField = (
): string[] => { ): string[] => {
const errors = []; const errors = [];
const { minValue, maxValue, readOnly, required, numberFormat } = fieldMeta || {}; const { minValue, maxValue, readOnly, required, numberFormat, fontSize } = fieldMeta || {};
const formatRegex: { [key: string]: RegExp } = { const formatRegex: { [key: string]: RegExp } = {
'123,456,789.00': /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d{1,2})?$/, '123,456,789.00': /^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d{1,2})?$/,
@ -63,5 +56,9 @@ export const validateNumberField = (
errors.push('A field cannot be both read-only and required'); errors.push('A field cannot be both read-only and required');
} }
if (fontSize && (fontSize < 8 || fontSize > 96)) {
errors.push('Font size must be between 8 and 96.');
}
return errors; return errors;
}; };

View File

@ -1,8 +1,4 @@
interface RadioFieldMeta { import type { TRadioFieldMeta as RadioFieldMeta } from '../types/field-meta';
readOnly?: boolean;
required?: boolean;
values?: { checked: boolean; value: string }[];
}
export const validateRadioField = ( export const validateRadioField = (
value: string | undefined, value: string | undefined,

View File

@ -1,8 +1,4 @@
interface TextFieldMeta { import type { TTextFieldMeta as TextFieldMeta } from '../types/field-meta';
characterLimit?: number;
readOnly?: boolean;
required?: boolean;
}
export const validateTextField = ( export const validateTextField = (
value: string, value: string,
@ -11,7 +7,7 @@ export const validateTextField = (
): string[] => { ): string[] => {
const errors = []; const errors = [];
const { characterLimit, readOnly, required } = fieldMeta; const { characterLimit, readOnly, required, fontSize } = fieldMeta;
if (required && !value && isSigningPage) { if (required && !value && isSigningPage) {
errors.push('Value is required'); errors.push('Value is required');
@ -29,5 +25,9 @@ export const validateTextField = (
errors.push('A field cannot be both read-only and required'); errors.push('A field cannot be both read-only and required');
} }
if (fontSize && (fontSize < 8 || fontSize > 96)) {
errors.push('Font size must be between 8 and 96.');
}
return errors; return errors;
}; };

View File

@ -1,6 +1,7 @@
// https://github.com/Hopding/pdf-lib/issues/20#issuecomment-412852821 // https://github.com/Hopding/pdf-lib/issues/20#issuecomment-412852821
import fontkit from '@pdf-lib/fontkit'; import fontkit from '@pdf-lib/fontkit';
import { PDFDocument, RotationTypes, degrees, radiansToDegrees } from 'pdf-lib'; import type { PDFDocument } from 'pdf-lib';
import { RotationTypes, degrees, radiansToDegrees } from 'pdf-lib';
import { P, match } from 'ts-pattern'; import { P, match } from 'ts-pattern';
import { import {
@ -13,7 +14,16 @@ import { FieldType } from '@documenso/prisma/client';
import { isSignatureFieldType } from '@documenso/prisma/guards/is-signature-field'; import { isSignatureFieldType } from '@documenso/prisma/guards/is-signature-field';
import type { FieldWithSignature } from '@documenso/prisma/types/field-with-signature'; import type { FieldWithSignature } from '@documenso/prisma/types/field-with-signature';
import { ZCheckboxFieldMeta, ZRadioFieldMeta } from '../../types/field-meta'; import {
ZCheckboxFieldMeta,
ZDateFieldMeta,
ZEmailFieldMeta,
ZInitialsFieldMeta,
ZNameFieldMeta,
ZNumberFieldMeta,
ZRadioFieldMeta,
ZTextFieldMeta,
} from '../../types/field-meta';
export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignature) => { export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignature) => {
const fontCaveat = await fetch(process.env.FONT_CAVEAT_URI).then(async (res) => const fontCaveat = await fetch(process.env.FONT_CAVEAT_URI).then(async (res) =>
@ -32,7 +42,6 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
const minFontSize = isSignatureField ? MIN_HANDWRITING_FONT_SIZE : MIN_STANDARD_FONT_SIZE; const minFontSize = isSignatureField ? MIN_HANDWRITING_FONT_SIZE : MIN_STANDARD_FONT_SIZE;
const maxFontSize = isSignatureField ? DEFAULT_HANDWRITING_FONT_SIZE : DEFAULT_STANDARD_FONT_SIZE; const maxFontSize = isSignatureField ? DEFAULT_HANDWRITING_FONT_SIZE : DEFAULT_STANDARD_FONT_SIZE;
let fontSize = maxFontSize;
const page = pages.at(field.page - 1); const page = pages.at(field.page - 1);
@ -207,16 +216,33 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
} }
}) })
.otherwise((field) => { .otherwise((field) => {
const fieldMetaParsers = {
[FieldType.TEXT]: ZTextFieldMeta,
[FieldType.NUMBER]: ZNumberFieldMeta,
[FieldType.DATE]: ZDateFieldMeta,
[FieldType.EMAIL]: ZEmailFieldMeta,
[FieldType.NAME]: ZNameFieldMeta,
[FieldType.INITIALS]: ZInitialsFieldMeta,
} as const;
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
const Parser = fieldMetaParsers[field.type as keyof typeof fieldMetaParsers];
const meta = Parser ? Parser.safeParse(field.fieldMeta) : null;
const customFontSize = meta?.success && meta.data.fontSize ? meta.data.fontSize : null;
const longestLineInTextForWidth = field.customText const longestLineInTextForWidth = field.customText
.split('\n') .split('\n')
.sort((a, b) => b.length - a.length)[0]; .sort((a, b) => b.length - a.length)[0];
let fontSize = customFontSize || maxFontSize;
let textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize); let textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize);
const textHeight = font.heightAtSize(fontSize); const textHeight = font.heightAtSize(fontSize);
if (!customFontSize) {
const scalingFactor = Math.min(fieldWidth / textWidth, fieldHeight / textHeight, 1); const scalingFactor = Math.min(fieldWidth / textWidth, fieldHeight / textHeight, 1);
fontSize = Math.max(Math.min(fontSize * scalingFactor, maxFontSize), minFontSize); fontSize = Math.max(Math.min(fontSize * scalingFactor, maxFontSize), minFontSize);
}
textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize); textWidth = font.widthOfTextAtSize(longestLineInTextForWidth, fontSize);
let textX = fieldX + (fieldWidth - textWidth) / 2; let textX = fieldX + (fieldWidth - textWidth) / 2;
@ -250,17 +276,6 @@ export const insertFieldInPDF = async (pdf: PDFDocument, field: FieldWithSignatu
return pdf; return pdf;
}; };
export const insertFieldInPDFBytes = async (
pdf: ArrayBuffer | Uint8Array | string,
field: FieldWithSignature,
) => {
const pdfDoc = await PDFDocument.load(pdf);
await insertFieldInPDF(pdfDoc, field);
return await pdfDoc.save();
};
const adjustPositionForRotation = ( const adjustPositionForRotation = (
pageWidth: number, pageWidth: number,
pageHeight: number, pageHeight: number,

View File

@ -10,6 +10,7 @@ export async function insertTextInPDF(
positionY: number, positionY: number,
page = 0, page = 0,
useHandwritingFont = true, useHandwritingFont = true,
customFontSize?: number,
): Promise<string> { ): Promise<string> {
// Fetch the font file from the public URL. // Fetch the font file from the public URL.
const fontResponse = await fetch(CAVEAT_FONT_PATH()); const fontResponse = await fetch(CAVEAT_FONT_PATH());
@ -24,7 +25,7 @@ export async function insertTextInPDF(
const pages = pdfDoc.getPages(); const pages = pdfDoc.getPages();
const pdfPage = pages[page]; const pdfPage = pages[page];
const textSize = useHandwritingFont ? 50 : 15; const textSize = customFontSize || (useHandwritingFont ? 50 : 15);
const textWidth = font.widthOfTextAtSize(text, textSize); const textWidth = font.widthOfTextAtSize(text, textSize);
const textHeight = font.heightAtSize(textSize); const textHeight = font.heightAtSize(textSize);
const fieldSize = { width: 250, height: 64 }; const fieldSize = { width: 250, height: 64 };

View File

@ -73,11 +73,11 @@ msgstr "Fügen Sie dem Dokument eine externe ID hinzu. Diese kann verwendet werd
msgid "Add an external ID to the template. This can be used to identify in external systems." msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr "Fügen Sie der Vorlage eine externe ID hinzu. Diese kann zur Identifizierung in externen Systemen verwendet werden." msgstr "Fügen Sie der Vorlage eine externe ID hinzu. Diese kann zur Identifizierung in externen Systemen verwendet werden."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
msgid "Add another option" msgid "Add another option"
msgstr "Weitere Option hinzufügen" msgstr "Weitere Option hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
msgid "Add another value" msgid "Add another value"
msgstr "Weiteren Wert hinzufügen" msgstr "Weiteren Wert hinzufügen"
@ -98,11 +98,11 @@ msgstr "Platzhalterempfänger hinzufügen"
msgid "Add Signer" msgid "Add Signer"
msgstr "Unterzeichner hinzufügen" msgstr "Unterzeichner hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
msgid "Add text" msgid "Add text"
msgstr "Text hinzufügen" msgstr "Text hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
msgid "Add text to the field" msgid "Add text to the field"
msgstr "Text zum Feld hinzufügen" msgstr "Text zum Feld hinzufügen"
@ -153,7 +153,7 @@ msgstr "Schwarz"
msgid "Blue" msgid "Blue"
msgstr "Blau" msgstr "Blau"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
@ -179,7 +179,7 @@ msgstr "CC"
msgid "CC'd" msgid "CC'd"
msgstr "CC'd" msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
msgid "Character Limit" msgid "Character Limit"
msgstr "Zeichenbeschränkung" msgstr "Zeichenbeschränkung"
@ -188,7 +188,7 @@ msgstr "Zeichenbeschränkung"
msgid "Checkbox" msgid "Checkbox"
msgstr "Checkbox" msgstr "Checkbox"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
msgid "Checkbox values" msgid "Checkbox values"
msgstr "Checkbox-Werte" msgstr "Checkbox-Werte"
@ -298,7 +298,7 @@ msgstr "Ziehen Sie Ihr PDF hierher."
msgid "Dropdown" msgid "Dropdown"
msgstr "Dropdown" msgstr "Dropdown"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
msgid "Dropdown options" msgid "Dropdown options"
msgstr "Dropdown-Optionen" msgstr "Dropdown-Optionen"
@ -332,7 +332,7 @@ msgstr "Aktiviere die Signaturreihenfolge"
msgid "Enter password" msgid "Enter password"
msgstr "Passwort eingeben" msgstr "Passwort eingeben"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@ -341,26 +341,44 @@ msgstr "Fehler"
msgid "External ID" msgid "External ID"
msgstr "Externe ID" msgstr "Externe ID"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
msgid "Failed to save settings." msgid "Failed to save settings."
msgstr "Einstellungen konnten nicht gespeichert werden." msgstr "Einstellungen konnten nicht gespeichert werden."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
msgid "Field character limit" msgid "Field character limit"
msgstr "Zeichenbeschränkung des Feldes" msgstr "Zeichenbeschränkung des Feldes"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107 #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
msgid "Field font size"
msgstr ""
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
msgid "Field format" msgid "Field format"
msgstr "Feldformat" msgstr "Feldformat"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
msgid "Field label" msgid "Field label"
msgstr "Feldbeschriftung" msgstr "Feldbeschriftung"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
msgid "Field placeholder" msgid "Field placeholder"
msgstr "Feldplatzhalter" msgstr "Feldplatzhalter"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
msgid "Font Size"
msgstr ""
#: packages/ui/components/document/document-global-auth-action-select.tsx:64 #: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication" msgid "Global recipient action authentication"
msgstr "Globale Empfängerauthentifizierung" msgstr "Globale Empfängerauthentifizierung"
@ -402,9 +420,9 @@ msgstr ""
msgid "Inherit authentication method" msgid "Inherit authentication method"
msgstr "Authentifizierungsmethode erben" msgstr "Authentifizierungsmethode erben"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
msgid "Label" msgid "Label"
msgstr "Beschriftung" msgstr "Beschriftung"
@ -412,7 +430,7 @@ msgstr "Beschriftung"
msgid "Manager" msgid "Manager"
msgstr "Manager" msgstr "Manager"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
msgid "Max" msgid "Max"
msgstr "Max" msgstr "Max"
@ -425,7 +443,7 @@ msgstr "Mitglied"
msgid "Message <0>(Optional)</0>" msgid "Message <0>(Optional)</0>"
msgstr "Nachricht <0>(Optional)</0>" msgstr "Nachricht <0>(Optional)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
msgid "Min" msgid "Min"
msgstr "Min" msgstr "Min"
@ -486,7 +504,7 @@ msgstr "Kein Wert gefunden."
msgid "Number" msgid "Number"
msgstr "Nummer" msgstr "Nummer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
msgid "Number format" msgid "Number format"
msgstr "Zahlenformat" msgstr "Zahlenformat"
@ -514,9 +532,9 @@ msgstr ""
msgid "Pick a number" msgid "Pick a number"
msgstr "Wählen Sie eine Zahl" msgstr "Wählen Sie eine Zahl"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
msgid "Placeholder" msgid "Placeholder"
msgstr "Platzhalter" msgstr "Platzhalter"
@ -529,11 +547,11 @@ msgstr "Radio"
msgid "Radio values" msgid "Radio values"
msgstr "Radio-Werte" msgstr "Radio-Werte"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
msgid "Read only" msgid "Read only"
msgstr "Nur lesen" msgstr "Nur lesen"
@ -560,11 +578,11 @@ msgstr "Weiterleitungs-URL"
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
msgid "Required field" msgid "Required field"
msgstr "Pflichtfeld" msgstr "Pflichtfeld"
@ -572,7 +590,7 @@ msgstr "Pflichtfeld"
msgid "Rows per page" msgid "Rows per page"
msgstr "Zeilen pro Seite" msgstr "Zeilen pro Seite"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@ -584,7 +602,7 @@ msgstr "Vorlage speichern"
msgid "Search languages..." msgid "Search languages..."
msgstr "Sprachen suchen..." msgstr "Sprachen suchen..."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
msgid "Select" msgid "Select"
msgstr "Auswählen" msgstr "Auswählen"
@ -592,11 +610,11 @@ msgstr "Auswählen"
msgid "Select an option" msgid "Select an option"
msgstr "Option auswählen" msgstr "Option auswählen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
msgid "Select at least" msgid "Select at least"
msgstr "Wählen Sie mindestens" msgstr "Wählen Sie mindestens"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select default option" msgid "Select default option"
msgstr "Standardoption auswählen" msgstr "Standardoption auswählen"
@ -628,7 +646,6 @@ msgstr "Erweiterte Einstellungen anzeigen"
msgid "Sign" msgid "Sign"
msgstr "Unterschreiben" msgstr "Unterschreiben"
<<<<<<< HEAD
#: packages/ui/components/document/next-inbox-item-button.tsx:70 #: packages/ui/components/document/next-inbox-item-button.tsx:70
msgid "Sign Next Document" msgid "Sign Next Document"
msgstr "" msgstr ""
@ -636,9 +653,6 @@ msgstr ""
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
||||||| f05b670d ||||||| f05b670d
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
=======
#: packages/ui/primitives/document-flow/add-fields.tsx:785
>>>>>>> main
#: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 #: packages/ui/primitives/template-flow/add-template-fields.tsx:580
@ -805,13 +819,13 @@ msgstr "Upgrade"
msgid "Upload Template Document" msgid "Upload Template Document"
msgstr "Vorlagendokument hochladen" msgstr "Vorlagendokument hochladen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
msgid "Validation" msgid "Validation"
msgstr "Validierung" msgstr "Validierung"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
msgid "Value" msgid "Value"
msgstr "Wert" msgstr "Wert"

View File

@ -68,11 +68,11 @@ msgstr "Add an external ID to the document. This can be used to identify the doc
msgid "Add an external ID to the template. This can be used to identify in external systems." msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr "Add an external ID to the template. This can be used to identify in external systems." msgstr "Add an external ID to the template. This can be used to identify in external systems."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
msgid "Add another option" msgid "Add another option"
msgstr "Add another option" msgstr "Add another option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
msgid "Add another value" msgid "Add another value"
msgstr "Add another value" msgstr "Add another value"
@ -93,11 +93,11 @@ msgstr "Add Placeholder Recipient"
msgid "Add Signer" msgid "Add Signer"
msgstr "Add Signer" msgstr "Add Signer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
msgid "Add text" msgid "Add text"
msgstr "Add text" msgstr "Add text"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
msgid "Add text to the field" msgid "Add text to the field"
msgstr "Add text to the field" msgstr "Add text to the field"
@ -148,7 +148,7 @@ msgstr "Black"
msgid "Blue" msgid "Blue"
msgstr "Blue" msgstr "Blue"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
@ -174,7 +174,7 @@ msgstr "CC"
msgid "CC'd" msgid "CC'd"
msgstr "CC'd" msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
msgid "Character Limit" msgid "Character Limit"
msgstr "Character Limit" msgstr "Character Limit"
@ -183,7 +183,7 @@ msgstr "Character Limit"
msgid "Checkbox" msgid "Checkbox"
msgstr "Checkbox" msgstr "Checkbox"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
msgid "Checkbox values" msgid "Checkbox values"
msgstr "Checkbox values" msgstr "Checkbox values"
@ -293,7 +293,7 @@ msgstr "Drag & drop your PDF here."
msgid "Dropdown" msgid "Dropdown"
msgstr "Dropdown" msgstr "Dropdown"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
msgid "Dropdown options" msgid "Dropdown options"
msgstr "Dropdown options" msgstr "Dropdown options"
@ -327,7 +327,7 @@ msgstr "Enable signing order"
msgid "Enter password" msgid "Enter password"
msgstr "Enter password" msgstr "Enter password"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@ -336,26 +336,44 @@ msgstr "Error"
msgid "External ID" msgid "External ID"
msgstr "External ID" msgstr "External ID"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
msgid "Failed to save settings." msgid "Failed to save settings."
msgstr "Failed to save settings." msgstr "Failed to save settings."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
msgid "Field character limit" msgid "Field character limit"
msgstr "Field character limit" msgstr "Field character limit"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107 #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
msgid "Field font size"
msgstr "Field font size"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
msgid "Field format" msgid "Field format"
msgstr "Field format" msgstr "Field format"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
msgid "Field label" msgid "Field label"
msgstr "Field label" msgstr "Field label"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
msgid "Field placeholder" msgid "Field placeholder"
msgstr "Field placeholder" msgstr "Field placeholder"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
msgid "Font Size"
msgstr "Font Size"
#: packages/ui/components/document/document-global-auth-action-select.tsx:64 #: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication" msgid "Global recipient action authentication"
msgstr "Global recipient action authentication" msgstr "Global recipient action authentication"
@ -397,9 +415,9 @@ msgstr "Inbox"
msgid "Inherit authentication method" msgid "Inherit authentication method"
msgstr "Inherit authentication method" msgstr "Inherit authentication method"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
msgid "Label" msgid "Label"
msgstr "Label" msgstr "Label"
@ -407,7 +425,7 @@ msgstr "Label"
msgid "Manager" msgid "Manager"
msgstr "Manager" msgstr "Manager"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
msgid "Max" msgid "Max"
msgstr "Max" msgstr "Max"
@ -420,7 +438,7 @@ msgstr "Member"
msgid "Message <0>(Optional)</0>" msgid "Message <0>(Optional)</0>"
msgstr "Message <0>(Optional)</0>" msgstr "Message <0>(Optional)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
msgid "Min" msgid "Min"
msgstr "Min" msgstr "Min"
@ -481,7 +499,7 @@ msgstr "No value found."
msgid "Number" msgid "Number"
msgstr "Number" msgstr "Number"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
msgid "Number format" msgid "Number format"
msgstr "Number format" msgstr "Number format"
@ -509,9 +527,9 @@ msgstr "Pending"
msgid "Pick a number" msgid "Pick a number"
msgstr "Pick a number" msgstr "Pick a number"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
msgid "Placeholder" msgid "Placeholder"
msgstr "Placeholder" msgstr "Placeholder"
@ -524,11 +542,11 @@ msgstr "Radio"
msgid "Radio values" msgid "Radio values"
msgstr "Radio values" msgstr "Radio values"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
msgid "Read only" msgid "Read only"
msgstr "Read only" msgstr "Read only"
@ -555,11 +573,11 @@ msgstr "Redirect URL"
msgid "Remove" msgid "Remove"
msgstr "Remove" msgstr "Remove"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
msgid "Required field" msgid "Required field"
msgstr "Required field" msgstr "Required field"
@ -567,7 +585,7 @@ msgstr "Required field"
msgid "Rows per page" msgid "Rows per page"
msgstr "Rows per page" msgstr "Rows per page"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
@ -579,7 +597,7 @@ msgstr "Save Template"
msgid "Search languages..." msgid "Search languages..."
msgstr "Search languages..." msgstr "Search languages..."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
msgid "Select" msgid "Select"
msgstr "Select" msgstr "Select"
@ -587,11 +605,11 @@ msgstr "Select"
msgid "Select an option" msgid "Select an option"
msgstr "Select an option" msgstr "Select an option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
msgid "Select at least" msgid "Select at least"
msgstr "Select at least" msgstr "Select at least"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select default option" msgid "Select default option"
msgstr "Select default option" msgstr "Select default option"
@ -623,7 +641,6 @@ msgstr "Show advanced settings"
msgid "Sign" msgid "Sign"
msgstr "Sign" msgstr "Sign"
<<<<<<< HEAD
#: packages/ui/components/document/next-inbox-item-button.tsx:70 #: packages/ui/components/document/next-inbox-item-button.tsx:70
msgid "Sign Next Document" msgid "Sign Next Document"
msgstr "Sign Next Document" msgstr "Sign Next Document"
@ -631,9 +648,6 @@ msgstr "Sign Next Document"
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
||||||| f05b670d ||||||| f05b670d
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
=======
#: packages/ui/primitives/document-flow/add-fields.tsx:785
>>>>>>> main
#: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 #: packages/ui/primitives/template-flow/add-template-fields.tsx:580
@ -800,13 +814,13 @@ msgstr "Upgrade"
msgid "Upload Template Document" msgid "Upload Template Document"
msgstr "Upload Template Document" msgstr "Upload Template Document"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
msgid "Validation" msgid "Validation"
msgstr "Validation" msgstr "Validation"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
msgid "Value" msgid "Value"
msgstr "Value" msgstr "Value"

View File

@ -73,11 +73,11 @@ msgstr "Ajouter un ID externe au document. Cela peut être utilisé pour identif
msgid "Add an external ID to the template. This can be used to identify in external systems." msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr "Ajouter un ID externe au modèle. Cela peut être utilisé pour identifier dans des systèmes externes." msgstr "Ajouter un ID externe au modèle. Cela peut être utilisé pour identifier dans des systèmes externes."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:177 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:187
msgid "Add another option" msgid "Add another option"
msgstr "Ajouter une autre option" msgstr "Ajouter une autre option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:230 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:232
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:167
msgid "Add another value" msgid "Add another value"
msgstr "Ajouter une autre valeur" msgstr "Ajouter une autre valeur"
@ -98,11 +98,11 @@ msgstr "Ajouter un destinataire de substitution"
msgid "Add Signer" msgid "Add Signer"
msgstr "Ajouter un signataire" msgstr "Ajouter un signataire"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:73
msgid "Add text" msgid "Add text"
msgstr "Ajouter du texte" msgstr "Ajouter du texte"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:78
msgid "Add text to the field" msgid "Add text to the field"
msgstr "Ajouter du texte au champ" msgstr "Ajouter du texte au champ"
@ -153,7 +153,7 @@ msgstr "Noir"
msgid "Blue" msgid "Blue"
msgstr "Bleu" msgstr "Bleu"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:356
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58 #: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
@ -179,7 +179,7 @@ msgstr "CC"
msgid "CC'd" msgid "CC'd"
msgstr "CC'd" msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:86
msgid "Character Limit" msgid "Character Limit"
msgstr "Limite de caractères" msgstr "Limite de caractères"
@ -188,7 +188,7 @@ msgstr "Limite de caractères"
msgid "Checkbox" msgid "Checkbox"
msgstr "Case à cocher" msgstr "Case à cocher"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:197
msgid "Checkbox values" msgid "Checkbox values"
msgstr "Valeurs de case à cocher" msgstr "Valeurs de case à cocher"
@ -298,7 +298,7 @@ msgstr "Faites glisser et déposez votre PDF ici."
msgid "Dropdown" msgid "Dropdown"
msgstr "Liste déroulante" msgstr "Liste déroulante"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:158
msgid "Dropdown options" msgid "Dropdown options"
msgstr "Options de liste déroulante" msgstr "Options de liste déroulante"
@ -332,7 +332,7 @@ msgstr "Activer l'ordre de signature"
msgid "Enter password" msgid "Enter password"
msgstr "Entrez le mot de passe" msgstr "Entrez le mot de passe"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:257
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
@ -341,26 +341,44 @@ msgstr "Erreur"
msgid "External ID" msgid "External ID"
msgstr "ID externe" msgstr "ID externe"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:258
msgid "Failed to save settings." msgid "Failed to save settings."
msgstr "Échec de l'enregistrement des paramètres." msgstr "Échec de l'enregistrement des paramètres."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:93
msgid "Field character limit" msgid "Field character limit"
msgstr "Limite de caractères du champ" msgstr "Limite de caractères du champ"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107 #: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:62
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:44
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:130
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:107
msgid "Field font size"
msgstr ""
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:110
msgid "Field format" msgid "Field format"
msgstr "Format du champ" msgstr "Format du champ"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:53
msgid "Field label" msgid "Field label"
msgstr "Étiquette du champ" msgstr "Étiquette du champ"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:65
msgid "Field placeholder" msgid "Field placeholder"
msgstr "Espace réservé du champ" msgstr "Espace réservé du champ"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/date-field.tsx:56
#: packages/ui/primitives/document-flow/field-items-advanced-settings/email-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/initials-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/name-field.tsx:38
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:124
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:101
msgid "Font Size"
msgstr ""
#: packages/ui/components/document/document-global-auth-action-select.tsx:64 #: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication" msgid "Global recipient action authentication"
msgstr "Authentification d'action de destinataire globale" msgstr "Authentification d'action de destinataire globale"
@ -402,9 +420,9 @@ msgstr ""
msgid "Inherit authentication method" msgid "Inherit authentication method"
msgstr "Hériter de la méthode d'authentification" msgstr "Hériter de la méthode d'authentification"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:64 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:67
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:69 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:72
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:48
msgid "Label" msgid "Label"
msgstr "Étiquette" msgstr "Étiquette"
@ -412,7 +430,7 @@ msgstr "Étiquette"
msgid "Manager" msgid "Manager"
msgstr "Gestionnaire" msgstr "Gestionnaire"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:188
msgid "Max" msgid "Max"
msgstr "Max" msgstr "Max"
@ -425,7 +443,7 @@ msgstr "Membre"
msgid "Message <0>(Optional)</0>" msgid "Message <0>(Optional)</0>"
msgstr "Message <0>(Optionnel)</0>" msgstr "Message <0>(Optionnel)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:176
msgid "Min" msgid "Min"
msgstr "Min" msgstr "Min"
@ -486,7 +504,7 @@ msgstr "Aucune valeur trouvée."
msgid "Number" msgid "Number"
msgstr "Numéro" msgstr "Numéro"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:103
msgid "Number format" msgid "Number format"
msgstr "Format de numéro" msgstr "Format de numéro"
@ -514,9 +532,9 @@ msgstr ""
msgid "Pick a number" msgid "Pick a number"
msgstr "Choisissez un numéro" msgstr "Choisissez un numéro"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:76 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:79
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:81 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:84
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:60
msgid "Placeholder" msgid "Placeholder"
msgstr "Espace réservé" msgstr "Espace réservé"
@ -529,11 +547,11 @@ msgstr "Radio"
msgid "Radio values" msgid "Radio values"
msgstr "Valeurs radio" msgstr "Valeurs radio"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:184 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:186
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:147
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:136 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:122
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:114 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:133
msgid "Read only" msgid "Read only"
msgstr "Lecture seule" msgstr "Lecture seule"
@ -560,11 +578,11 @@ msgstr "URL de redirection"
msgid "Remove" msgid "Remove"
msgstr "Retirer" msgstr "Retirer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:176
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:137
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:126 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:146
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112 #: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:112
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:104 #: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:123
msgid "Required field" msgid "Required field"
msgstr "Champ requis" msgstr "Champ requis"
@ -572,7 +590,7 @@ msgstr "Champ requis"
msgid "Rows per page" msgid "Rows per page"
msgstr "Lignes par page" msgstr "Lignes par page"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:355
msgid "Save" msgid "Save"
msgstr "Sauvegarder" msgstr "Sauvegarder"
@ -584,7 +602,7 @@ msgstr "Sauvegarder le modèle"
msgid "Search languages..." msgid "Search languages..."
msgstr "Rechercher des langues..." msgstr "Rechercher des langues..."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:115
msgid "Select" msgid "Select"
msgstr "Sélectionner" msgstr "Sélectionner"
@ -592,11 +610,11 @@ msgstr "Sélectionner"
msgid "Select an option" msgid "Select an option"
msgstr "Sélectionner une option" msgstr "Sélectionner une option"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:139
msgid "Select at least" msgid "Select at least"
msgstr "Sélectionnez au moins" msgstr "Sélectionnez au moins"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95 #: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select default option" msgid "Select default option"
msgstr "Sélectionner l'option par défaut" msgstr "Sélectionner l'option par défaut"
@ -628,7 +646,6 @@ msgstr "Afficher les paramètres avancés"
msgid "Sign" msgid "Sign"
msgstr "Signer" msgstr "Signer"
<<<<<<< HEAD
#: packages/ui/components/document/next-inbox-item-button.tsx:70 #: packages/ui/components/document/next-inbox-item-button.tsx:70
msgid "Sign Next Document" msgid "Sign Next Document"
msgstr "" msgstr ""
@ -636,9 +653,6 @@ msgstr ""
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
||||||| f05b670d ||||||| f05b670d
#: packages/ui/primitives/document-flow/add-fields.tsx:742 #: packages/ui/primitives/document-flow/add-fields.tsx:742
=======
#: packages/ui/primitives/document-flow/add-fields.tsx:785
>>>>>>> main
#: packages/ui/primitives/document-flow/add-signature.tsx:323 #: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:580 #: packages/ui/primitives/template-flow/add-template-fields.tsx:580
@ -805,13 +819,13 @@ msgstr "Améliorer"
msgid "Upload Template Document" msgid "Upload Template Document"
msgstr "Télécharger le document modèle" msgstr "Télécharger le document modèle"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:130 #: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:132
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:147 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:167
msgid "Validation" msgid "Validation"
msgstr "Validation" msgstr "Validation"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:88 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:91
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:93 #: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:96
msgid "Value" msgid "Value"
msgstr "Valeur" msgstr "Valeur"

View File

@ -9,10 +9,39 @@ export const ZBaseFieldMeta = z.object({
export type TBaseFieldMeta = z.infer<typeof ZBaseFieldMeta>; export type TBaseFieldMeta = z.infer<typeof ZBaseFieldMeta>;
export const ZInitialsFieldMeta = z.object({
type: z.literal('initials').default('initials'),
fontSize: z.number().min(8).max(96).optional(),
});
export type TInitialsFieldMeta = z.infer<typeof ZInitialsFieldMeta>;
export const ZNameFieldMeta = z.object({
type: z.literal('name').default('name'),
fontSize: z.number().min(8).max(96).optional(),
});
export type TNameFieldMeta = z.infer<typeof ZNameFieldMeta>;
export const ZEmailFieldMeta = z.object({
type: z.literal('email').default('email'),
fontSize: z.number().min(8).max(96).optional(),
});
export type TEmailFieldMeta = z.infer<typeof ZEmailFieldMeta>;
export const ZDateFieldMeta = z.object({
type: z.literal('date').default('date'),
fontSize: z.number().min(8).max(96).optional(),
});
export type TDateFieldMeta = z.infer<typeof ZDateFieldMeta>;
export const ZTextFieldMeta = ZBaseFieldMeta.extend({ export const ZTextFieldMeta = ZBaseFieldMeta.extend({
type: z.literal('text').default('text'), type: z.literal('text').default('text'),
text: z.string().optional(), text: z.string().optional(),
characterLimit: z.number().optional(), characterLimit: z.number().optional(),
fontSize: z.number().min(8).max(96).optional(),
}); });
export type TTextFieldMeta = z.infer<typeof ZTextFieldMeta>; export type TTextFieldMeta = z.infer<typeof ZTextFieldMeta>;
@ -23,6 +52,7 @@ export const ZNumberFieldMeta = ZBaseFieldMeta.extend({
value: z.string().optional(), value: z.string().optional(),
minValue: z.number().optional(), minValue: z.number().optional(),
maxValue: z.number().optional(), maxValue: z.number().optional(),
fontSize: z.number().min(8).max(96).optional(),
}); });
export type TNumberFieldMeta = z.infer<typeof ZNumberFieldMeta>; export type TNumberFieldMeta = z.infer<typeof ZNumberFieldMeta>;
@ -69,6 +99,10 @@ export type TDropdownFieldMeta = z.infer<typeof ZDropdownFieldMeta>;
export const ZFieldMetaSchema = z export const ZFieldMetaSchema = z
.union([ .union([
ZBaseFieldMeta.extend(ZInitialsFieldMeta.shape),
ZBaseFieldMeta.extend(ZNameFieldMeta.shape),
ZBaseFieldMeta.extend(ZEmailFieldMeta.shape),
ZBaseFieldMeta.extend(ZDateFieldMeta.shape),
ZTextFieldMeta, ZTextFieldMeta,
ZNumberFieldMeta, ZNumberFieldMeta,
ZRadioFieldMeta, ZRadioFieldMeta,

View File

@ -13,8 +13,12 @@ import { match } from 'ts-pattern';
import { import {
type TBaseFieldMeta as BaseFieldMeta, type TBaseFieldMeta as BaseFieldMeta,
type TCheckboxFieldMeta as CheckboxFieldMeta, type TCheckboxFieldMeta as CheckboxFieldMeta,
type TDateFieldMeta as DateFieldMeta,
type TDropdownFieldMeta as DropdownFieldMeta, type TDropdownFieldMeta as DropdownFieldMeta,
type TEmailFieldMeta as EmailFieldMeta,
type TFieldMetaSchema as FieldMeta, type TFieldMetaSchema as FieldMeta,
type TInitialsFieldMeta as InitialsFieldMeta,
type TNameFieldMeta as NameFieldMeta,
type TNumberFieldMeta as NumberFieldMeta, type TNumberFieldMeta as NumberFieldMeta,
type TRadioFieldMeta as RadioFieldMeta, type TRadioFieldMeta as RadioFieldMeta,
type TTextFieldMeta as TextFieldMeta, type TTextFieldMeta as TextFieldMeta,
@ -33,7 +37,11 @@ import {
} from './document-flow-root'; } from './document-flow-root';
import { FieldItem } from './field-item'; import { FieldItem } from './field-item';
import { CheckboxFieldAdvancedSettings } from './field-items-advanced-settings/checkbox-field'; import { CheckboxFieldAdvancedSettings } from './field-items-advanced-settings/checkbox-field';
import { DateFieldAdvancedSettings } from './field-items-advanced-settings/date-field';
import { DropdownFieldAdvancedSettings } from './field-items-advanced-settings/dropdown-field'; import { DropdownFieldAdvancedSettings } from './field-items-advanced-settings/dropdown-field';
import { EmailFieldAdvancedSettings } from './field-items-advanced-settings/email-field';
import { InitialsFieldAdvancedSettings } from './field-items-advanced-settings/initials-field';
import { NameFieldAdvancedSettings } from './field-items-advanced-settings/name-field';
import { NumberFieldAdvancedSettings } from './field-items-advanced-settings/number-field'; import { NumberFieldAdvancedSettings } from './field-items-advanced-settings/number-field';
import { RadioFieldAdvancedSettings } from './field-items-advanced-settings/radio-field'; import { RadioFieldAdvancedSettings } from './field-items-advanced-settings/radio-field';
import { TextFieldAdvancedSettings } from './field-items-advanced-settings/text-field'; import { TextFieldAdvancedSettings } from './field-items-advanced-settings/text-field';
@ -55,10 +63,34 @@ export type FieldMetaKeys =
| keyof NumberFieldMeta | keyof NumberFieldMeta
| keyof RadioFieldMeta | keyof RadioFieldMeta
| keyof CheckboxFieldMeta | keyof CheckboxFieldMeta
| keyof DropdownFieldMeta; | keyof DropdownFieldMeta
| keyof InitialsFieldMeta
| keyof NameFieldMeta
| keyof EmailFieldMeta
| keyof DateFieldMeta;
const getDefaultState = (fieldType: FieldType): FieldMeta => { const getDefaultState = (fieldType: FieldType): FieldMeta => {
switch (fieldType) { switch (fieldType) {
case FieldType.INITIALS:
return {
type: 'initials',
fontSize: 14,
};
case FieldType.NAME:
return {
type: 'name',
fontSize: 14,
};
case FieldType.EMAIL:
return {
type: 'email',
fontSize: 14,
};
case FieldType.DATE:
return {
type: 'date',
fontSize: 14,
};
case FieldType.TEXT: case FieldType.TEXT:
return { return {
type: 'text', type: 'text',
@ -66,6 +98,7 @@ const getDefaultState = (fieldType: FieldType): FieldMeta => {
placeholder: '', placeholder: '',
text: '', text: '',
characterLimit: 0, characterLimit: 0,
fontSize: 14,
required: false, required: false,
readOnly: false, readOnly: false,
}; };
@ -80,6 +113,7 @@ const getDefaultState = (fieldType: FieldType): FieldMeta => {
maxValue: 0, maxValue: 0,
required: false, required: false,
readOnly: false, readOnly: false,
fontSize: 14,
}; };
case FieldType.RADIO: case FieldType.RADIO:
return { return {
@ -180,10 +214,17 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
const handleFieldChange = ( const handleFieldChange = (
key: FieldMetaKeys, key: FieldMetaKeys,
value: string | { checked: boolean; value: string }[] | { value: string }[] | boolean, value:
| string
| { checked: boolean; value: string }[]
| { value: string }[]
| boolean
| number,
) => { ) => {
setFieldState((prevState: FieldMeta) => { setFieldState((prevState: FieldMeta) => {
if (['characterLimit', 'minValue', 'maxValue', 'validationLength'].includes(key)) { if (
['characterLimit', 'minValue', 'maxValue', 'validationLength', 'fontSize'].includes(key)
) {
const parsedValue = Number(value); const parsedValue = Number(value);
return { return {
@ -232,6 +273,35 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
))} ))}
{match(field.type) {match(field.type)
.with(FieldType.INITIALS, () => (
<InitialsFieldAdvancedSettings
fieldState={fieldState}
handleFieldChange={handleFieldChange}
handleErrors={setErrors}
/>
))
.with(FieldType.NAME, () => (
<NameFieldAdvancedSettings
fieldState={fieldState}
handleFieldChange={handleFieldChange}
handleErrors={setErrors}
/>
))
.with(FieldType.EMAIL, () => (
<EmailFieldAdvancedSettings
fieldState={fieldState}
handleFieldChange={handleFieldChange}
handleErrors={setErrors}
/>
))
.with(FieldType.DATE, () => (
<DateFieldAdvancedSettings
fieldState={fieldState}
handleFieldChange={handleFieldChange}
handleErrors={setErrors}
/>
))
.with(FieldType.TEXT, () => ( .with(FieldType.TEXT, () => (
<TextFieldAdvancedSettings <TextFieldAdvancedSettings
fieldState={fieldState} fieldState={fieldState}
@ -268,7 +338,6 @@ export const FieldAdvancedSettings = forwardRef<HTMLDivElement, FieldAdvancedSet
/> />
)) ))
.otherwise(() => null)} .otherwise(() => null)}
{errors.length > 0 && ( {errors.length > 0 && (
<div className="mt-4"> <div className="mt-4">
<ul> <ul>

View File

@ -76,7 +76,17 @@ export const FieldItem = ({
const signerStyles = useSignerColors(recipientIndex); const signerStyles = useSignerColors(recipientIndex);
const advancedField = ['NUMBER', 'RADIO', 'CHECKBOX', 'DROPDOWN', 'TEXT'].includes(field.type); const advancedField = [
'NUMBER',
'RADIO',
'CHECKBOX',
'DROPDOWN',
'TEXT',
'INITIALS',
'EMAIL',
'DATE',
'NAME',
].includes(field.type);
const calculateCoords = useCallback(() => { const calculateCoords = useCallback(() => {
const $page = document.querySelector<HTMLElement>( const $page = document.querySelector<HTMLElement>(

View File

@ -66,6 +66,7 @@ export const CheckboxFieldAdvancedSettings = ({
required, required,
validationRule, validationRule,
validationLength, validationLength,
type: 'checkbox',
}, },
); );
handleErrors(errors); handleErrors(errors);
@ -86,6 +87,7 @@ export const CheckboxFieldAdvancedSettings = ({
required, required,
validationRule, validationRule,
validationLength, validationLength,
type: 'checkbox',
}, },
); );
handleErrors(errors); handleErrors(errors);

View File

@ -0,0 +1,71 @@
import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { validateFields as validateDateFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
import { type TDateFieldMeta as DateFieldMeta } from '@documenso/lib/types/field-meta';
import { Input } from '@documenso/ui/primitives/input';
import { Label } from '@documenso/ui/primitives/label';
type DateFieldAdvancedSettingsProps = {
fieldState: DateFieldMeta;
handleFieldChange: (key: keyof DateFieldMeta, value: string | boolean) => void;
handleErrors: (errors: string[]) => void;
};
export const DateFieldAdvancedSettings = ({
fieldState,
handleFieldChange,
handleErrors,
}: DateFieldAdvancedSettingsProps) => {
const { _ } = useLingui();
// const handleInput = (field: keyof DateFieldMeta, value: string | boolean) => {
// if (field === 'fontSize') {
// const fontSize = value === '' ? '' : Number(value);
// if (typeof fontSize === 'number' && !Number.isNaN(fontSize)) {
// const errors = validateDateFields({
// fontSize,
// type: 'date',
// });
// handleErrors(errors);
// handleFieldChange(field, fontSize.toString());
// } else {
// handleErrors(['Invalid font size']);
// }
// } else {
// handleFieldChange(field, value);
// }
// };
const handleInput = (field: keyof DateFieldMeta, value: string | boolean) => {
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const errors = validateDateFields({
fontSize,
type: 'date',
});
handleErrors(errors);
handleFieldChange(field, value);
};
return (
<div className="flex flex-col gap-4">
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
</div>
);
};

View File

@ -62,7 +62,12 @@ export const DropdownFieldAdvancedSettings = ({
setReadOnly(readOnly); setReadOnly(readOnly);
setRequired(required); setRequired(required);
const errors = validateDropdownField(undefined, { readOnly, required, values }); const errors = validateDropdownField(undefined, {
readOnly,
required,
values,
type: 'dropdown',
});
handleErrors(errors); handleErrors(errors);
handleFieldChange(field, value); handleFieldChange(field, value);
@ -76,7 +81,12 @@ export const DropdownFieldAdvancedSettings = ({
}; };
useEffect(() => { useEffect(() => {
const errors = validateDropdownField(undefined, { readOnly, required, values }); const errors = validateDropdownField(undefined, {
readOnly,
required,
values,
type: 'dropdown',
});
handleErrors(errors); handleErrors(errors);
}, [values]); }, [values]);

View File

@ -0,0 +1,53 @@
import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { validateFields as validateEmailFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
import { type TEmailFieldMeta as EmailFieldMeta } from '@documenso/lib/types/field-meta';
import { Input } from '@documenso/ui/primitives/input';
import { Label } from '@documenso/ui/primitives/label';
type EmailFieldAdvancedSettingsProps = {
fieldState: EmailFieldMeta;
handleFieldChange: (key: keyof EmailFieldMeta, value: string | boolean) => void;
handleErrors: (errors: string[]) => void;
};
export const EmailFieldAdvancedSettings = ({
fieldState,
handleFieldChange,
handleErrors,
}: EmailFieldAdvancedSettingsProps) => {
const { _ } = useLingui();
const handleInput = (field: keyof EmailFieldMeta, value: string | boolean) => {
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const errors = validateEmailFields({
fontSize,
type: 'email',
});
handleErrors(errors);
handleFieldChange(field, value);
};
return (
<div className="flex flex-col gap-4">
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
</div>
);
};

View File

@ -0,0 +1,53 @@
import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { validateFields as validateInitialsFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
import { type TInitialsFieldMeta as InitialsFieldMeta } from '@documenso/lib/types/field-meta';
import { Input } from '@documenso/ui/primitives/input';
import { Label } from '@documenso/ui/primitives/label';
type InitialsFieldAdvancedSettingsProps = {
fieldState: InitialsFieldMeta;
handleFieldChange: (key: keyof InitialsFieldMeta, value: string | boolean) => void;
handleErrors: (errors: string[]) => void;
};
export const InitialsFieldAdvancedSettings = ({
fieldState,
handleFieldChange,
handleErrors,
}: InitialsFieldAdvancedSettingsProps) => {
const { _ } = useLingui();
const handleInput = (field: keyof InitialsFieldMeta, value: string | boolean) => {
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const errors = validateInitialsFields({
fontSize,
type: 'initials',
});
handleErrors(errors);
handleFieldChange(field, value);
};
return (
<div className="flex flex-col gap-4">
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
</div>
);
};

View File

@ -0,0 +1,53 @@
import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { validateFields as validateNameFields } from '@documenso/lib/advanced-fields-validation/validate-fields';
import { type TNameFieldMeta as NameFieldMeta } from '@documenso/lib/types/field-meta';
import { Input } from '@documenso/ui/primitives/input';
import { Label } from '@documenso/ui/primitives/label';
type NameFieldAdvancedSettingsProps = {
fieldState: NameFieldMeta;
handleFieldChange: (key: keyof NameFieldMeta, value: string | boolean) => void;
handleErrors: (errors: string[]) => void;
};
export const NameFieldAdvancedSettings = ({
fieldState,
handleFieldChange,
handleErrors,
}: NameFieldAdvancedSettingsProps) => {
const { _ } = useLingui();
const handleInput = (field: keyof NameFieldMeta, value: string | boolean) => {
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const errors = validateNameFields({
fontSize,
type: 'name',
});
handleErrors(errors);
handleFieldChange(field, value);
};
return (
<div className="flex flex-col gap-4">
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
</div>
);
};

View File

@ -38,12 +38,13 @@ export const NumberFieldAdvancedSettings = ({
const [showValidation, setShowValidation] = useState(false); const [showValidation, setShowValidation] = useState(false);
const handleInput = (field: keyof NumberFieldMeta, value: string | boolean) => { const handleInput = (field: keyof NumberFieldMeta, value: string | boolean) => {
const userValue = field === 'value' ? value : fieldState.value || 0; const userValue = field === 'value' ? value : fieldState.value ?? 0;
const userMinValue = field === 'minValue' ? Number(value) : Number(fieldState.minValue || 0); const userMinValue = field === 'minValue' ? Number(value) : Number(fieldState.minValue ?? 0);
const userMaxValue = field === 'maxValue' ? Number(value) : Number(fieldState.maxValue || 0); const userMaxValue = field === 'maxValue' ? Number(value) : Number(fieldState.maxValue ?? 0);
const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly); const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly);
const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required); const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required);
const numberFormat = field === 'numberFormat' ? String(value) : fieldState.numberFormat || ''; const numberFormat = field === 'numberFormat' ? String(value) : fieldState.numberFormat ?? '';
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const valueErrors = validateNumberField(String(userValue), { const valueErrors = validateNumberField(String(userValue), {
minValue: userMinValue, minValue: userMinValue,
@ -51,6 +52,8 @@ export const NumberFieldAdvancedSettings = ({
readOnly, readOnly,
required, required,
numberFormat, numberFormat,
fontSize,
type: 'number',
}); });
handleErrors(valueErrors); handleErrors(valueErrors);
@ -115,6 +118,23 @@ export const NumberFieldAdvancedSettings = ({
</SelectContent> </SelectContent>
</Select> </Select>
</div> </div>
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
<div className="mt-2 flex flex-col gap-4"> <div className="mt-2 flex flex-col gap-4">
<div className="flex flex-row items-center gap-2"> <div className="flex flex-row items-center gap-2">
<Switch <Switch

View File

@ -70,7 +70,7 @@ export const RadioFieldAdvancedSettings = ({
setReadOnly(readOnly); setReadOnly(readOnly);
setRequired(required); setRequired(required);
const errors = validateRadioField(String(value), { readOnly, required, values }); const errors = validateRadioField(String(value), { readOnly, required, values, type: 'radio' });
handleErrors(errors); handleErrors(errors);
handleFieldChange(field, value); handleFieldChange(field, value);
@ -95,7 +95,7 @@ export const RadioFieldAdvancedSettings = ({
}, [fieldState.values]); }, [fieldState.values]);
useEffect(() => { useEffect(() => {
const errors = validateRadioField(undefined, { readOnly, required, values }); const errors = validateRadioField(undefined, { readOnly, required, values, type: 'radio' });
handleErrors(errors); handleErrors(errors);
}, [values]); }, [values]);

View File

@ -22,9 +22,10 @@ export const TextFieldAdvancedSettings = ({
const { _ } = useLingui(); const { _ } = useLingui();
const handleInput = (field: keyof TextFieldMeta, value: string | boolean) => { const handleInput = (field: keyof TextFieldMeta, value: string | boolean) => {
const text = field === 'text' ? String(value) : fieldState.text || ''; const text = field === 'text' ? String(value) : fieldState.text ?? '';
const limit = const limit =
field === 'characterLimit' ? Number(value) : Number(fieldState.characterLimit || 0); field === 'characterLimit' ? Number(value) : Number(fieldState.characterLimit ?? 0);
const fontSize = field === 'fontSize' ? Number(value) : Number(fieldState.fontSize ?? 14);
const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly); const readOnly = field === 'readOnly' ? Boolean(value) : Boolean(fieldState.readOnly);
const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required); const required = field === 'required' ? Boolean(value) : Boolean(fieldState.required);
@ -32,6 +33,8 @@ export const TextFieldAdvancedSettings = ({
characterLimit: Number(limit), characterLimit: Number(limit),
readOnly, readOnly,
required, required,
fontSize,
type: 'text',
}); });
handleErrors(textErrors); handleErrors(textErrors);
@ -93,6 +96,22 @@ export const TextFieldAdvancedSettings = ({
/> />
</div> </div>
<div>
<Label>
<Trans>Font Size</Trans>
</Label>
<Input
id="fontSize"
type="number"
className="bg-background mt-2"
placeholder={_(msg`Field font size`)}
value={fieldState.fontSize}
onChange={(e) => handleInput('fontSize', e.target.value)}
min={8}
max={96}
/>
</div>
<div className="mt-4 flex flex-col gap-4"> <div className="mt-4 flex flex-col gap-4">
<div className="flex flex-row items-center gap-2"> <div className="flex flex-row items-center gap-2">
<Switch <Switch