Compare commits

..

9 Commits

Author SHA1 Message Date
3da344fc5f v1.7.1-rc.3 2024-09-19 13:55:35 +10:00
404ca3202f chore: update action auth 2024-09-19 13:45:39 +10:00
c043fa9c06 fix: add check for invalid locales (#1353)
## Description

Currently invalid or missing `accept-language` headers will cause issues
rendering Plural components since we do not validate them.

This adds a check to try filter out invalid locales.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced locale filtering process to ensure only valid locales are
processed.
  
- **Bug Fixes**
- Improved data integrity by preventing invalid locales from affecting
application functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-19 09:58:59 +10:00
9852e8971f v1.7.1-rc.2 2024-09-18 11:05:19 +10:00
5091112e4b fix: dont nullify externalId if not passed to update document settings 2024-09-18 11:00:48 +10:00
e76f732990 fix: completed signing page layout (#1349) 2024-09-18 10:54:00 +10:00
b7c3deb6cd chore: smaller text in signature pad (#1351) 2024-09-18 10:44:12 +10:00
08114f7b97 chore: add translations (#1327) 2024-09-18 10:43:43 +10:00
6e368cc333 chore: add document visibility section (#1352) 2024-09-18 02:41:57 +10:00
27 changed files with 1400 additions and 1339 deletions

View File

@ -10,6 +10,7 @@
"signing-documents": "Signing Documents",
"templates": "Templates",
"direct-links": "Direct Signing Links",
"document-visibility": "Document Visibility",
"-- Legal Overview": {
"type": "separator",
"title": "Legal Overview"

View File

@ -0,0 +1,18 @@
---
title: Document Visibility
description: Learn how to control the visibility of your team documents.
---
# Team's Document Visibility
By default, all documents created in a team are visible to all team members. However, you can control the visibility of your documents by changing the document's visibility settings.
To set the visibility of a document, click on the **Document visibility** dropdown in the document's settings panel.
![A screenshot of the Documenso's document editor page where you can update the document visibility](/document-visibility-settings.webp)
The document visibility can be set to one of the following options:
- **Everyone** - The document is visible to all team members.
- **Managers and above** - The document is visible to people with the role of Manager or above.
- **Admin only** - The document is only visible to the team's admins.

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,6 +1,6 @@
{
"name": "@documenso/marketing",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"private": true,
"license": "AGPL-3.0",
"scripts": {

View File

@ -1,6 +1,6 @@
{
"name": "@documenso/web",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"private": true,
"license": "AGPL-3.0",
"scripts": {

View File

@ -204,25 +204,29 @@ export default async function CompletedSigningPage({
</div>
</div>
{canSignUp && (
<div className={`flex max-w-xl flex-col items-center justify-center p-4 md:p-12`}>
<h2 className="mt-8 text-center text-xl font-semibold md:mt-0">
<Trans>Need to sign documents?</Trans>
</h2>
<div className="flex flex-col items-center">
{canSignUp && (
<div className="flex max-w-xl flex-col items-center justify-center p-4 md:p-12">
<h2 className="mt-8 text-center text-xl font-semibold md:mt-0">
<Trans>Need to sign documents?</Trans>
</h2>
<p className="text-muted-foreground/60 mt-4 max-w-[55ch] text-center leading-normal">
<Trans>Create your account and start using state-of-the-art document signing.</Trans>
</p>
<p className="text-muted-foreground/60 mt-4 max-w-[55ch] text-center leading-normal">
<Trans>
Create your account and start using state-of-the-art document signing.
</Trans>
</p>
<ClaimAccount defaultName={recipientName} defaultEmail={recipient.email} />
</div>
)}
<ClaimAccount defaultName={recipientName} defaultEmail={recipient.email} />
</div>
)}
{isLoggedIn && (
<Link href="/documents" className="text-documenso-700 hover:text-documenso-600 mt-36">
<Trans>Go Back Home</Trans>
</Link>
)}
{isLoggedIn && (
<Link href="/documents" className="text-documenso-700 hover:text-documenso-600">
<Trans>Go Back Home</Trans>
</Link>
)}
</div>
</div>
<PollUntilDocumentCompleted document={document} />

View File

@ -1,11 +1,11 @@
import { useState } from 'react';
import { useRouter } from 'next/navigation';
import { Trans } from '@lingui/macro';
import { DateTime } from 'luxon';
import { signOut } from 'next-auth/react';
import { RecipientRole } from '@documenso/prisma/client';
import { trpc } from '@documenso/trpc/react';
import { Alert, AlertDescription } from '@documenso/ui/primitives/alert';
import { Button } from '@documenso/ui/primitives/button';
import { DialogFooter } from '@documenso/ui/primitives/dialog';
@ -25,22 +25,19 @@ export const DocumentActionAuthAccount = ({
}: DocumentActionAuthAccountProps) => {
const { recipient } = useRequiredDocumentAuthContext();
const [isSigningOut, setIsSigningOut] = useState(false);
const router = useRouter();
const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
const [isSigningOut, setIsSigningOut] = useState(false);
const handleChangeAccount = async (email: string) => {
try {
setIsSigningOut(true);
const encryptedEmail = await encryptSecondaryData({
data: email,
expiresAt: DateTime.now().plus({ days: 1 }).toMillis(),
await signOut({
redirect: false,
});
await signOut({
callbackUrl: `/signin?email=${encodeURIComponent(encryptedEmail)}`,
});
router.push(`/signin#email=${email}`);
} catch {
setIsSigningOut(false);

View File

@ -2,12 +2,12 @@
import { useState } from 'react';
import { useRouter } from 'next/navigation';
import { Trans, msg } from '@lingui/macro';
import { useLingui } from '@lingui/react';
import { DateTime } from 'luxon';
import { signOut } from 'next-auth/react';
import { trpc } from '@documenso/trpc/react';
import { Button } from '@documenso/ui/primitives/button';
import { useToast } from '@documenso/ui/primitives/use-toast';
@ -20,24 +20,19 @@ export const SigningAuthPageView = ({ email, emailHasAccount }: SigningAuthPageV
const { _ } = useLingui();
const { toast } = useToast();
const [isSigningOut, setIsSigningOut] = useState(false);
const router = useRouter();
const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
const [isSigningOut, setIsSigningOut] = useState(false);
const handleChangeAccount = async (email: string) => {
try {
setIsSigningOut(true);
const encryptedEmail = await encryptSecondaryData({
data: email,
expiresAt: DateTime.now().plus({ days: 1 }).toMillis(),
await signOut({
redirect: false,
});
await signOut({
callbackUrl: emailHasAccount
? `/signin?email=${encodeURIComponent(encryptedEmail)}`
: `/signup?email=${encodeURIComponent(encryptedEmail)}`,
});
router.push(emailHasAccount ? `/signin#email=${email}` : `/signup#email=${email}`);
} catch {
toast({
title: _(msg`Something went wrong`),

View File

@ -1,6 +1,5 @@
import type { Metadata } from 'next';
import Link from 'next/link';
import { redirect } from 'next/navigation';
import { Trans } from '@lingui/macro';
import { env } from 'next-runtime-env';
@ -11,7 +10,6 @@ import {
IS_OIDC_SSO_ENABLED,
OIDC_PROVIDER_LABEL,
} from '@documenso/lib/constants/auth';
import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { SignInForm } from '~/components/forms/signin';
@ -19,24 +17,11 @@ export const metadata: Metadata = {
title: 'Sign In',
};
type SignInPageProps = {
searchParams: {
email?: string;
};
};
export default function SignInPage({ searchParams }: SignInPageProps) {
export default function SignInPage() {
setupI18nSSR();
const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
const rawEmail = typeof searchParams.email === 'string' ? searchParams.email : undefined;
const email = rawEmail ? decryptSecondaryData(rawEmail) : null;
if (!email && rawEmail) {
redirect('/signin');
}
return (
<div className="w-screen max-w-lg px-4">
<div className="border-border dark:bg-background z-10 rounded-xl border bg-neutral-100 p-6">
@ -50,7 +35,6 @@ export default function SignInPage({ searchParams }: SignInPageProps) {
<hr className="-mx-6 my-4" />
<SignInForm
initialEmail={email || undefined}
isGoogleSSOEnabled={IS_GOOGLE_SSO_ENABLED}
isOIDCSSOEnabled={IS_OIDC_SSO_ENABLED}
oidcProviderLabel={OIDC_PROVIDER_LABEL}

View File

@ -5,7 +5,6 @@ import { env } from 'next-runtime-env';
import { setupI18nSSR } from '@documenso/lib/client-only/providers/i18n.server';
import { IS_GOOGLE_SSO_ENABLED, IS_OIDC_SSO_ENABLED } from '@documenso/lib/constants/auth';
import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { SignUpFormV2 } from '~/components/forms/v2/signup';
@ -13,13 +12,7 @@ export const metadata: Metadata = {
title: 'Sign Up',
};
type SignUpPageProps = {
searchParams: {
email?: string;
};
};
export default function SignUpPage({ searchParams }: SignUpPageProps) {
export default function SignUpPage() {
setupI18nSSR();
const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
@ -28,17 +21,9 @@ export default function SignUpPage({ searchParams }: SignUpPageProps) {
redirect('/signin');
}
const rawEmail = typeof searchParams.email === 'string' ? searchParams.email : undefined;
const email = rawEmail ? decryptSecondaryData(rawEmail) : null;
if (!email && rawEmail) {
redirect('/signup');
}
return (
<SignUpFormV2
className="w-screen max-w-screen-2xl px-4 md:px-16 lg:-my-16"
initialEmail={email || undefined}
isGoogleSSOEnabled={IS_GOOGLE_SSO_ENABLED}
isOIDCSSOEnabled={IS_OIDC_SSO_ENABLED}
/>

View File

@ -1,6 +1,6 @@
'use client';
import { useMemo, useState } from 'react';
import { useEffect, useMemo, useState } from 'react';
import Link from 'next/link';
import { useRouter } from 'next/navigation';
@ -307,6 +307,18 @@ export const SignInForm = ({
}
};
useEffect(() => {
const hash = window.location.hash.slice(1);
const params = new URLSearchParams(hash);
const email = params.get('email');
if (email) {
form.setValue('email', email);
}
}, [form]);
return (
<Form {...form}>
<form

View File

@ -1,6 +1,6 @@
'use client';
import { useState } from 'react';
import { useEffect, useState } from 'react';
import Image from 'next/image';
import Link from 'next/link';
@ -203,6 +203,18 @@ export const SignUpFormV2 = ({
}
};
useEffect(() => {
const hash = window.location.hash.slice(1);
const params = new URLSearchParams(hash);
const email = params.get('email');
if (email) {
form.setValue('email', email);
}
}, [form]);
return (
<div className={cn('flex justify-center gap-x-12', className)}>
<div className="border-border relative hidden flex-1 overflow-hidden rounded-xl border xl:flex">

8
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "@documenso/root",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@documenso/root",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"workspaces": [
"apps/*",
"packages/*"
@ -80,7 +80,7 @@
},
"apps/marketing": {
"name": "@documenso/marketing",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"license": "AGPL-3.0",
"dependencies": {
"@documenso/assets": "*",
@ -424,7 +424,7 @@
},
"apps/web": {
"name": "@documenso/web",
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"license": "AGPL-3.0",
"dependencies": {
"@documenso/api": "*",

View File

@ -1,6 +1,6 @@
{
"private": true,
"version": "1.7.1-rc.1",
"version": "1.7.1-rc.3",
"scripts": {
"build": "turbo run build",
"build:web": "turbo run build --filter=@documenso/web",

View File

@ -302,7 +302,9 @@ export const ApiContractV1Implementation = createNextRoute(ApiContractV1, {
documentId: document.id,
userId: user.id,
teamId: team?.id,
data: body.authOptions,
data: {
...body.authOptions,
},
requestMetadata: extractNextApiRequestMetadata(args.req),
});
}

View File

@ -93,11 +93,14 @@ export const updateDocumentSettings = async ({
}
}
const isTitleSame = data.title === document.title;
const isExternalIdSame = data.externalId === document.externalId;
const isGlobalAccessSame = documentGlobalAccessAuth === newGlobalAccessAuth;
const isGlobalActionSame = documentGlobalActionAuth === newGlobalActionAuth;
const isDocumentVisibilitySame = data.visibility === document.visibility;
const isTitleSame = data.title === undefined || data.title === document.title;
const isExternalIdSame = data.externalId === undefined || data.externalId === document.externalId;
const isGlobalAccessSame =
documentGlobalAccessAuth === undefined || documentGlobalAccessAuth === newGlobalAccessAuth;
const isGlobalActionSame =
documentGlobalActionAuth === undefined || documentGlobalActionAuth === newGlobalActionAuth;
const isDocumentVisibilitySame =
data.visibility === undefined || data.visibility === document.visibility;
const auditLogs: CreateDocumentAuditLogDataResponse[] = [];
@ -200,7 +203,7 @@ export const updateDocumentSettings = async ({
},
data: {
title: data.title,
externalId: data.externalId || null,
externalId: data.externalId,
visibility: data.visibility as DocumentVisibility,
authOptions,
},

View File

@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-05 06:04\n"
"PO-Revision-Date: 2024-09-16 16:03\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -20,246 +20,246 @@ msgstr ""
#: packages/ui/primitives/data-table-pagination.tsx:30
msgid "{0} of {1} row(s) selected."
msgstr ""
msgstr "{0} von {1} Zeile(n) ausgewählt."
#: packages/ui/primitives/data-table-pagination.tsx:41
msgid "{visibleRows, plural, one {Showing # result.} other {Showing # results.}}"
msgstr ""
msgstr "{visibleRows, plural, one {Eine # Ergebnis wird angezeigt.} other {# Ergebnisse werden angezeigt.}}"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:53
msgid "<0>Inherit authentication method</0> - Use the global action signing authentication method configured in the \"General Settings\" step"
msgstr ""
msgstr "<0>Authentifizierungsmethode erben</0> - Verwenden Sie die in den \"Allgemeinen Einstellungen\" konfigurierte globale Aktionssignatur-Authentifizierungsmethode"
#: packages/ui/components/document/document-global-auth-action-select.tsx:95
msgid "<0>No restrictions</0> - No authentication required"
msgstr ""
msgstr "<0>Keine Einschränkungen</0> - Keine Authentifizierung erforderlich"
#: packages/ui/components/document/document-global-auth-access-select.tsx:77
msgid "<0>No restrictions</0> - The document can be accessed directly by the URL sent to the recipient"
msgstr ""
msgstr "<0>Keine Einschränkungen</0> - Das Dokument kann direkt über die dem Empfänger gesendete URL abgerufen werden"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:75
msgid "<0>None</0> - No authentication required"
msgstr ""
msgstr "<0>Keine</0> - Keine Authentifizierung erforderlich"
#: packages/ui/components/document/document-global-auth-action-select.tsx:89
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:69
msgid "<0>Require 2FA</0> - The recipient must have an account and 2FA enabled via their settings"
msgstr ""
msgstr "<0>2FA erforderlich</0> - Der Empfänger muss ein Konto haben und die 2FA über seine Einstellungen aktiviert haben"
#: packages/ui/components/document/document-global-auth-access-select.tsx:72
msgid "<0>Require account</0> - The recipient must be signed in to view the document"
msgstr ""
msgstr "<0>Konto erforderlich</0> - Der Empfänger muss angemeldet sein, um das Dokument anzeigen zu können"
#: packages/ui/components/document/document-global-auth-action-select.tsx:83
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:63
msgid "<0>Require passkey</0> - The recipient must have an account and passkey configured via their settings"
msgstr ""
msgstr "<0>Passkey erforderlich</0> - Der Empfänger muss ein Konto haben und den Passkey über seine Einstellungen konfiguriert haben"
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "Add a document"
msgstr ""
msgstr "Dokument hinzufügen"
#: packages/ui/primitives/document-flow/add-settings.tsx:336
#: packages/ui/primitives/template-flow/add-template-settings.tsx:339
msgid "Add a URL to redirect the user to once the document is signed"
msgstr ""
msgstr "Fügen Sie eine URL hinzu, um den Benutzer nach der Unterzeichnung des Dokuments weiterzuleiten"
#: packages/ui/primitives/document-flow/add-settings.tsx:248
msgid "Add an external ID to the document. This can be used to identify the document in external systems."
msgstr ""
msgstr "Fügen Sie dem Dokument eine externe ID hinzu. Diese kann verwendet werden, um das Dokument in externen Systemen zu identifizieren."
#: packages/ui/primitives/template-flow/add-template-settings.tsx:256
msgid "Add an external ID to the template. This can be used to identify in external systems."
msgstr ""
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
msgid "Add another option"
msgstr ""
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/radio-field.tsx:167
msgid "Add another value"
msgstr ""
msgstr "Weiteren Wert hinzufügen"
#: packages/ui/primitives/document-flow/add-signers.tsx:653
msgid "Add myself"
msgstr ""
msgstr "Mich selbst hinzufügen"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:637
msgid "Add Myself"
msgstr ""
msgstr "Mich hinzufügen"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:623
msgid "Add Placeholder Recipient"
msgstr ""
msgstr "Platzhalterempfänger hinzufügen"
#: packages/ui/primitives/document-flow/add-signers.tsx:642
msgid "Add Signer"
msgstr ""
msgstr "Unterzeichner hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:70
msgid "Add text"
msgstr ""
msgstr "Text hinzufügen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:75
msgid "Add text to the field"
msgstr ""
msgstr "Text zum Feld hinzufügen"
#: packages/lib/constants/teams.ts:10
msgid "Admin"
msgstr ""
msgstr "Admin"
#: packages/ui/primitives/document-flow/add-settings.tsx:230
#: packages/ui/primitives/template-flow/add-template-settings.tsx:238
msgid "Advanced Options"
msgstr ""
msgstr "Erweiterte Optionen"
#: packages/ui/primitives/document-flow/add-fields.tsx:522
#: packages/ui/primitives/template-flow/add-template-fields.tsx:402
msgid "Advanced settings"
msgstr ""
msgstr "Erweiterte Einstellungen"
#: packages/lib/constants/template.ts:21
msgid "After submission, a document will be automatically generated and added to your documents page. You will also receive a notification via email."
msgstr ""
msgstr "Nach der Übermittlung wird ein Dokument automatisch generiert und zu Ihrer Dokumentenseite hinzugefügt. Sie erhalten außerdem eine Benachrichtigung per E-Mail."
#: packages/lib/constants/recipient-roles.ts:8
msgid "Approve"
msgstr ""
msgstr "Genehmigen"
#: packages/lib/constants/recipient-roles.ts:9
msgid "Approved"
msgstr ""
msgstr "Genehmigt"
#: packages/lib/constants/recipient-roles.ts:11
msgid "Approver"
msgstr ""
msgstr "Genehmiger"
#: packages/lib/constants/recipient-roles.ts:10
msgid "Approving"
msgstr ""
msgstr "Genehmigung"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:276
msgid "Black"
msgstr ""
msgstr "Schwarz"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:290
msgid "Blue"
msgstr ""
msgstr "Blau"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:287
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:58
msgid "Cancel"
msgstr ""
msgstr "Abbrechen"
#: packages/ui/primitives/document-flow/add-signers.tsx:194
msgid "Cannot remove signer"
msgstr ""
msgstr "Unterzeichner kann nicht entfernt werden"
#: packages/lib/constants/recipient-roles.ts:17
msgid "Cc"
msgstr ""
msgstr "Cc"
#: packages/lib/constants/recipient-roles.ts:14
#: packages/lib/constants/recipient-roles.ts:16
msgid "CC"
msgstr ""
msgstr "CC"
#: packages/lib/constants/recipient-roles.ts:15
msgid "CC'd"
msgstr ""
msgstr "CC'd"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:83
msgid "Character Limit"
msgstr ""
msgstr "Zeichenbeschränkung"
#: packages/ui/primitives/document-flow/add-fields.tsx:944
#: packages/ui/primitives/template-flow/add-template-fields.tsx:788
msgid "Checkbox"
msgstr ""
msgstr "Checkbox"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:195
msgid "Checkbox values"
msgstr ""
msgstr "Checkbox-Werte"
#: packages/ui/primitives/data-table.tsx:156
msgid "Clear filters"
msgstr ""
msgstr "Filter löschen"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:310
msgid "Clear Signature"
msgstr ""
msgstr "Unterschrift löschen"
#: packages/ui/primitives/document-flow/add-signature.tsx:394
msgid "Click to insert field"
msgstr ""
msgstr "Klicken, um das Feld einzufügen"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:44
msgid "Close"
msgstr ""
msgstr "Schließen"
#: packages/lib/constants/template.ts:12
msgid "Configure Direct Recipient"
msgstr ""
msgstr "Direkten Empfänger konfigurieren"
#: packages/ui/primitives/document-flow/add-fields.tsx:523
#: packages/ui/primitives/template-flow/add-template-fields.tsx:403
msgid "Configure the {0} field"
msgstr ""
msgstr "Konfigurieren Sie das Feld {0}"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:141
msgid "Continue"
msgstr ""
msgstr "Fortsetzen"
#: packages/ui/components/document/document-share-button.tsx:46
msgid "Copied to clipboard"
msgstr ""
msgstr "In die Zwischenablage kopiert"
#: packages/ui/primitives/document-flow/add-signature.tsx:360
msgid "Custom Text"
msgstr ""
msgstr "Benutzerdefinierter Text"
#: packages/ui/primitives/document-flow/add-fields.tsx:840
#: packages/ui/primitives/template-flow/add-template-fields.tsx:684
msgid "Date"
msgstr ""
msgstr "Datum"
#: packages/ui/primitives/document-flow/add-settings.tsx:271
#: packages/ui/primitives/template-flow/add-template-settings.tsx:279
msgid "Date Format"
msgstr ""
msgstr "Datumsformat"
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:570
msgid "Direct link receiver"
msgstr ""
msgstr "Empfänger des direkten Links"
#: packages/ui/components/document/document-global-auth-access-select.tsx:62
#: packages/ui/primitives/document-flow/add-settings.tsx:174
#: packages/ui/primitives/template-flow/add-template-settings.tsx:151
msgid "Document access"
msgstr ""
msgstr "Dokumentenzugriff"
#: packages/lib/constants/template.ts:20
msgid "Document Creation"
msgstr ""
msgstr "Dokumenterstellung"
#: packages/ui/components/document/document-download-button.tsx:68
msgid "Download"
msgstr ""
msgstr "Herunterladen"
#: packages/ui/primitives/document-dropzone.tsx:162
msgid "Drag & drop your PDF here."
msgstr ""
msgstr "Ziehen Sie Ihr PDF hierher."
#: packages/ui/primitives/document-flow/add-fields.tsx:970
#: packages/ui/primitives/template-flow/add-template-fields.tsx:814
msgid "Dropdown"
msgstr ""
msgstr "Dropdown"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:148
msgid "Dropdown options"
msgstr ""
msgstr "Dropdown-Optionen"
#: packages/ui/primitives/document-flow/add-fields.tsx:788
#: packages/ui/primitives/document-flow/add-signature.tsx:272
@ -268,113 +268,117 @@ msgstr ""
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:463
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:470
msgid "Email"
msgstr ""
msgstr "E-Mail"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:184
msgid "Email Options"
msgstr ""
msgstr "E-Mail-Optionen"
#: packages/lib/constants/template.ts:8
msgid "Enable Direct Link Signing"
msgstr ""
msgstr "Direktlink-Signierung aktivieren"
#: packages/ui/primitives/document-flow/add-signers.tsx:392
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:362
msgid "Enable signing order"
msgstr ""
msgstr "Aktiviere die Signaturreihenfolge"
#: packages/ui/primitives/document-password-dialog.tsx:84
msgid "Enter password"
msgstr ""
msgstr "Passwort eingeben"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:216
msgid "Error"
msgstr ""
msgstr "Fehler"
#: packages/ui/primitives/document-flow/add-settings.tsx:241
#: packages/ui/primitives/template-flow/add-template-settings.tsx:249
msgid "External ID"
msgstr ""
msgstr "Externe ID"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:217
msgid "Failed to save settings."
msgstr ""
msgstr "Einstellungen konnten nicht gespeichert werden."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:90
msgid "Field character limit"
msgstr ""
msgstr "Zeichenbeschränkung des Feldes"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:107
msgid "Field format"
msgstr ""
msgstr "Feldformat"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:50
msgid "Field label"
msgstr ""
msgstr "Feldbeschriftung"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:62
msgid "Field placeholder"
msgstr ""
msgstr "Feldplatzhalter"
#: packages/ui/components/document/document-global-auth-action-select.tsx:64
msgid "Global recipient action authentication"
msgstr ""
msgstr "Globale Empfängerauthentifizierung"
#: packages/ui/primitives/document-flow/document-flow-root.tsx:142
msgid "Go Back"
msgstr ""
msgstr "Zurück"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:297
msgid "Green"
msgstr ""
msgstr "Grün"
#: packages/lib/constants/recipient-roles.ts:72
msgid "I am a signer of this document"
msgstr ""
msgstr "Ich bin ein Unterzeichner dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:75
msgid "I am a viewer of this document"
msgstr ""
msgstr "Ich bin ein Betrachter dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:73
msgid "I am an approver of this document"
msgstr ""
msgstr "Ich bin ein Genehmiger dieses Dokuments"
#: packages/lib/constants/recipient-roles.ts:74
msgid "I am required to receive a copy of this document"
msgstr ""
msgstr "Ich bin verpflichtet, eine Kopie dieses Dokuments zu erhalten"
#: packages/lib/constants/recipient-roles.ts:74
#~ msgid "I am required to recieve a copy of this document"
#~ msgstr "I am required to recieve a copy of this document"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:29
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:87
msgid "Inherit authentication method"
msgstr ""
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:69
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:45
msgid "Label"
msgstr ""
msgstr "Beschriftung"
#: packages/lib/constants/teams.ts:11
msgid "Manager"
msgstr ""
msgstr "Manager"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:168
msgid "Max"
msgstr ""
msgstr "Max"
#: packages/lib/constants/teams.ts:12
msgid "Member"
msgstr ""
msgstr "Mitglied"
#: packages/ui/primitives/document-flow/add-subject.tsx:95
#: packages/ui/primitives/template-flow/add-template-settings.tsx:215
msgid "Message <0>(Optional)</0>"
msgstr ""
msgstr "Nachricht <0>(Optional)</0>"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:156
msgid "Min"
msgstr ""
msgstr "Min"
#: packages/ui/primitives/document-flow/add-fields.tsx:814
#: packages/ui/primitives/document-flow/add-signature.tsx:298
@ -384,93 +388,93 @@ msgstr ""
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:498
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:504
msgid "Name"
msgstr ""
msgstr "Name"
#: packages/ui/components/recipient/recipient-role-select.tsx:52
msgid "Needs to approve"
msgstr ""
msgstr "Muss genehmigen"
#: packages/ui/components/recipient/recipient-role-select.tsx:31
msgid "Needs to sign"
msgstr ""
msgstr "Muss unterzeichnen"
#: packages/ui/components/recipient/recipient-role-select.tsx:73
msgid "Needs to view"
msgstr ""
msgstr "Muss sehen"
#: packages/ui/primitives/document-flow/add-fields.tsx:625
#: packages/ui/primitives/template-flow/add-template-fields.tsx:497
msgid "No recipient matching this description was found."
msgstr ""
msgstr "Kein passender Empfänger mit dieser Beschreibung gefunden."
#: packages/ui/primitives/document-flow/add-fields.tsx:641
#: packages/ui/primitives/template-flow/add-template-fields.tsx:513
msgid "No recipients with this role"
msgstr ""
msgstr "Keine Empfänger mit dieser Rolle"
#: packages/ui/components/document/document-global-auth-access-select.tsx:30
#: packages/ui/components/document/document-global-auth-access-select.tsx:43
#: packages/ui/components/document/document-global-auth-action-select.tsx:31
#: packages/ui/components/document/document-global-auth-action-select.tsx:46
msgid "No restrictions"
msgstr ""
msgstr "Keine Einschränkungen"
#: packages/ui/primitives/data-table.tsx:148
msgid "No results found"
msgstr ""
msgstr "Keine Ergebnisse gefunden"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:30
msgid "No signature field found"
msgstr ""
msgstr "Kein Unterschriftsfeld gefunden"
#: packages/ui/primitives/combobox.tsx:60
#: packages/ui/primitives/multi-select-combobox.tsx:153
msgid "No value found."
msgstr ""
msgstr "Kein Wert gefunden."
#: packages/ui/primitives/document-flow/add-fields.tsx:892
#: packages/ui/primitives/template-flow/add-template-fields.tsx:736
msgid "Number"
msgstr ""
msgstr "Nummer"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/number-field.tsx:100
msgid "Number format"
msgstr ""
msgstr "Zahlenformat"
#: packages/lib/constants/template.ts:9
msgid "Once enabled, you can select any active recipient to be a direct link signing recipient, or create a new one. This recipient type cannot be edited or deleted."
msgstr ""
msgstr "Sobald aktiviert, können Sie einen aktiven Empfänger für die Direktlink-Signierung auswählen oder einen neuen erstellen. Dieser Empfängertyp kann nicht bearbeitet oder gelöscht werden."
#: packages/lib/constants/template.ts:17
msgid "Once your template is set up, share the link anywhere you want. The person who opens the link will be able to enter their information in the direct link recipient field and complete any other fields assigned to them."
msgstr ""
msgstr "Sobald Ihre Vorlage eingerichtet ist, teilen Sie den Link überall, wo Sie möchten. Die Person, die den Link öffnet, kann ihre Informationen im Feld für direkte Empfänger eingeben und alle anderen ihr zugewiesenen Felder ausfüllen."
#: packages/ui/primitives/data-table-pagination.tsx:77
msgid "Page {0} of {1}"
msgstr ""
msgstr "Seite {0} von {1}"
#: packages/ui/primitives/document-password-dialog.tsx:62
msgid "Password Required"
msgstr ""
msgstr "Passwort erforderlich"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:154
msgid "Pick a number"
msgstr ""
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:81
#: packages/ui/primitives/document-flow/field-items-advanced-settings/text-field.tsx:57
msgid "Placeholder"
msgstr ""
msgstr "Platzhalter"
#: packages/ui/primitives/document-flow/add-fields.tsx:918
#: packages/ui/primitives/template-flow/add-template-fields.tsx:762
msgid "Radio"
msgstr ""
msgstr "Radio"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/radio-field.tsx:133
msgid "Radio values"
msgstr ""
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/dropdown-field.tsx:137
@ -478,30 +482,30 @@ msgstr ""
#: 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
msgid "Read only"
msgstr ""
msgstr "Nur lesen"
#: packages/ui/components/recipient/recipient-role-select.tsx:95
msgid "Receives copy"
msgstr ""
msgstr "Erhält Kopie"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:39
#: packages/ui/primitives/document-flow/add-settings.tsx:215
#: packages/ui/primitives/template-flow/add-template-settings.tsx:169
msgid "Recipient action authentication"
msgstr ""
msgstr "Empfängeraktion Authentifizierung"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:283
msgid "Red"
msgstr ""
msgstr "Rot"
#: packages/ui/primitives/document-flow/add-settings.tsx:329
#: packages/ui/primitives/template-flow/add-template-settings.tsx:332
msgid "Redirect URL"
msgstr ""
msgstr "Weiterleitungs-URL"
#: packages/ui/primitives/document-flow/add-fields.tsx:1008
msgid "Remove"
msgstr ""
msgstr "Entfernen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:174
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:127
@ -509,264 +513,268 @@ msgstr ""
#: 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
msgid "Required field"
msgstr ""
msgstr "Pflichtfeld"
#: packages/ui/primitives/data-table-pagination.tsx:55
msgid "Rows per page"
msgstr ""
msgstr "Zeilen pro Seite"
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:286
msgid "Save"
msgstr ""
msgstr "Speichern"
#: packages/ui/primitives/template-flow/add-template-fields.tsx:848
msgid "Save Template"
msgstr ""
msgstr "Vorlage speichern"
#: packages/ui/components/common/language-switcher-dialog.tsx:34
msgid "Search languages..."
msgstr ""
msgstr "Sprachen suchen..."
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:105
msgid "Select"
msgstr ""
msgstr "Auswählen"
#: packages/ui/primitives/combobox.tsx:38
msgid "Select an option"
msgstr ""
msgstr "Option auswählen"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/checkbox-field.tsx:137
msgid "Select at least"
msgstr ""
msgstr "Wählen Sie mindestens"
#: packages/ui/primitives/document-flow/field-items-advanced-settings/dropdown-field.tsx:95
msgid "Select default option"
msgstr ""
msgstr "Standardoption auswählen"
#: packages/ui/primitives/document-flow/add-subject.tsx:124
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:34
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:64
msgid "Send"
msgstr ""
msgstr "Senden"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:41
msgid "Send Document"
msgstr ""
msgstr "Dokument senden"
#: packages/ui/components/document/document-share-button.tsx:135
msgid "Share Signature Card"
msgstr ""
msgstr "Unterschriftenkarte teilen"
#: packages/lib/constants/template.ts:16
msgid "Share the Link"
msgstr ""
msgstr "Link teilen"
#: packages/ui/primitives/document-flow/add-signers.tsx:671
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:655
msgid "Show advanced settings"
msgstr ""
msgstr "Erweiterte Einstellungen anzeigen"
#: packages/lib/constants/recipient-roles.ts:20
msgid "Sign"
msgstr ""
msgstr "Unterschreiben"
#: packages/ui/primitives/document-flow/add-fields.tsx:736
#: packages/ui/primitives/document-flow/add-signature.tsx:323
#: packages/ui/primitives/document-flow/field-icon.tsx:52
#: packages/ui/primitives/template-flow/add-template-fields.tsx:580
msgid "Signature"
msgstr ""
msgstr "Unterschrift"
#: packages/lib/constants/recipient-roles.ts:21
msgid "Signed"
msgstr ""
msgstr "Unterzeichnet"
#: packages/lib/constants/recipient-roles.ts:23
msgid "Signer"
msgstr ""
msgstr "Unterzeichner"
#: packages/lib/constants/recipient-roles.ts:22
msgid "Signing"
msgstr ""
msgstr "Unterzeichnung"
#: packages/ui/primitives/document-flow/missing-signature-field-dialog.tsx:34
msgid "Some signers have not been assigned a signature field. Please assign at least 1 signature field to each signer before proceeding."
msgstr ""
msgstr "Einige Unterzeichner haben noch kein Unterschriftsfeld zugewiesen bekommen. Bitte weisen Sie jedem Unterzeichner mindestens ein Unterschriftsfeld zu, bevor Sie fortfahren."
#: packages/ui/components/document/document-share-button.tsx:51
msgid "Something went wrong"
msgstr ""
msgstr "Etwas ist schief gelaufen"
#: packages/ui/primitives/data-table.tsx:136
msgid "Something went wrong."
msgstr ""
msgstr "Etwas ist schief gelaufen."
#: packages/ui/primitives/document-flow/document-flow-root.tsx:107
msgid "Step <0>{step} of {maxStep}</0>"
msgstr ""
msgstr "Schritt <0>{step} von {maxStep}</0>"
#: packages/ui/primitives/document-flow/add-subject.tsx:78
#: packages/ui/primitives/template-flow/add-template-settings.tsx:195
msgid "Subject <0>(Optional)</0>"
msgstr ""
msgstr "Betreff <0>(Optional)</0>"
#: packages/ui/primitives/document-password-dialog.tsx:97
msgid "Submit"
msgstr ""
msgstr "Einreichen"
#: packages/ui/primitives/template-flow/add-template-settings.tsx:134
msgid "Template title"
msgstr ""
msgstr "Vorlagentitel"
#: packages/ui/primitives/document-flow/add-fields.tsx:866
#: packages/ui/primitives/template-flow/add-template-fields.tsx:710
msgid "Text"
msgstr ""
msgstr "Text"
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:44
msgid "The authentication required for recipients to sign fields"
msgstr ""
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger Felder signieren"
#: packages/ui/components/document/document-global-auth-action-select.tsx:68
msgid "The authentication required for recipients to sign the signature field."
msgstr ""
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Signaturfeld signieren können."
#: packages/ui/components/document/document-global-auth-access-select.tsx:67
msgid "The authentication required for recipients to view the document."
msgstr ""
msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Dokument anzeigen können."
#: packages/ui/components/document/document-send-email-message-helper.tsx:31
msgid "The document's name"
msgstr ""
msgstr "Der Name des Dokuments"
#: packages/ui/primitives/document-password-dialog.tsx:52
msgid "The password you have entered is incorrect. Please try again."
msgstr ""
msgstr "Das eingegebene Passwort ist falsch. Bitte versuchen Sie es erneut."
#: packages/ui/components/recipient/recipient-role-select.tsx:103
msgid "The recipient is not required to take any action and receives a copy of the document after it is completed."
msgstr ""
msgstr "Der Empfänger muss keine Aktion ausführen und erhält nach Abschluss eine Kopie des Dokuments."
#: packages/ui/components/recipient/recipient-role-select.tsx:60
msgid "The recipient is required to approve the document for it to be completed."
msgstr ""
msgstr "Der Empfänger muss das Dokument genehmigen, damit es abgeschlossen werden kann."
#: packages/ui/components/recipient/recipient-role-select.tsx:39
msgid "The recipient is required to sign the document for it to be completed."
msgstr ""
msgstr "Der Empfänger muss das Dokument unterschreiben, damit es abgeschlossen werden kann."
#: packages/ui/components/recipient/recipient-role-select.tsx:81
msgid "The recipient is required to view the document for it to be completed."
msgstr ""
msgstr "Der Empfänger muss das Dokument anzeigen, damit es abgeschlossen werden kann."
#: packages/ui/components/document/document-share-button.tsx:52
msgid "The sharing link could not be created at this time. Please try again."
msgstr ""
msgstr "Der Freigabelink konnte in diesem Moment nicht erstellt werden. Bitte versuchen Sie es erneut."
#: packages/ui/components/document/document-share-button.tsx:47
msgid "The sharing link has been copied to your clipboard."
msgstr ""
msgstr "Der Freigabelink wurde in Ihre Zwischenablage kopiert."
#: packages/ui/components/document/document-send-email-message-helper.tsx:25
msgid "The signer's email"
msgstr ""
msgstr "Die E-Mail des Unterzeichners"
#: packages/ui/components/document/document-send-email-message-helper.tsx:19
msgid "The signer's name"
msgstr ""
msgstr "Der Name des Unterzeichners"
#: packages/ui/components/document/document-global-auth-action-select.tsx:72
msgid "This can be overriden by setting the authentication requirements directly on each recipient in the next step."
msgstr ""
msgstr "Dies kann überschrieben werden, indem die Authentifizierungsanforderungen im nächsten Schritt direkt für jeden Empfänger festgelegt werden."
#: packages/ui/primitives/document-flow/add-fields.tsx:697
msgid "This document has already been sent to this recipient. You can no longer edit this recipient."
msgstr ""
msgstr "Dieses Dokument wurde bereits an diesen Empfänger gesendet. Sie können diesen Empfänger nicht mehr bearbeiten."
#: packages/ui/primitives/document-password-dialog.tsx:66
msgid "This document is password protected. Please enter the password to view the document."
msgstr ""
msgstr "Dieses Dokument ist durch ein Passwort geschützt. Bitte geben Sie das Passwort ein, um das Dokument anzusehen."
#: packages/ui/primitives/template-flow/add-template-placeholder-recipients.tsx:573
msgid "This field cannot be modified or deleted. When you share this template's direct link or add it to your public profile, anyone who accesses it can input their name and email, and fill in the fields assigned to them."
msgstr ""
msgstr "Dieses Feld kann nicht geändert oder gelöscht werden. Wenn Sie den direkten Link dieser Vorlage teilen oder zu Ihrem öffentlichen Profil hinzufügen, kann jeder, der darauf zugreift, seinen Namen und seine E-Mail-Adresse eingeben und die ihm zugewiesenen Felder ausfüllen."
#: packages/ui/primitives/document-flow/add-signers.tsx:195
msgid "This signer has already received the document."
msgstr ""
msgstr "Dieser Unterzeichner hat das Dokument bereits erhalten."
#: packages/ui/components/recipient/recipient-action-auth-select.tsx:48
msgid "This will override any global settings."
msgstr ""
msgstr "Dies überschreibt alle globalen Einstellungen."
#: packages/ui/primitives/document-flow/add-settings.tsx:305
#: packages/ui/primitives/template-flow/add-template-settings.tsx:309
msgid "Time Zone"
msgstr ""
msgstr "Zeitzone"
#: packages/ui/primitives/document-flow/add-settings.tsx:153
msgid "Title"
msgstr ""
msgstr "Titel"
#: packages/ui/primitives/document-flow/add-fields.tsx:983
#: packages/ui/primitives/template-flow/add-template-fields.tsx:828
msgid "To proceed further, please set at least one value for the {0} field."
msgstr ""
msgstr "Um fortzufahren, legen Sie bitte mindestens einen Wert für das Feld {0} fest."
#: packages/ui/primitives/document-flow/add-subject.tsx:124
msgid "Update"
msgstr ""
msgstr "Aktualisieren"
#: packages/lib/constants/template.ts:13
msgid "Update the role and add fields as required for the direct recipient. The individual who uses the direct link will sign the document as the direct recipient."
msgstr ""
msgstr "Aktualisieren Sie die Rolle und fügen Sie Felder nach Bedarf für den direkten Empfänger hinzu. Die Person, die den direkten Link verwendet, wird das Dokument als direkter Empfänger unterzeichnen."
#: packages/ui/primitives/document-dropzone.tsx:168
msgid "Upgrade"
msgstr ""
msgstr "Upgrade"
#: packages/ui/primitives/document-dropzone.tsx:70
msgid "Upload Template Document"
msgstr ""
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/number-field.tsx:147
msgid "Validation"
msgstr ""
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:93
msgid "Value"
msgstr ""
msgstr "Wert"
#: packages/lib/constants/recipient-roles.ts:26
msgid "View"
msgstr ""
msgstr "View"
#: packages/lib/constants/recipient-roles.ts:27
msgid "Viewed"
msgstr ""
msgstr "Viewed"
#: packages/lib/constants/recipient-roles.ts:29
msgid "Viewer"
msgstr ""
msgstr "Viewer"
#: packages/lib/constants/recipient-roles.ts:28
msgid "Viewing"
msgstr ""
msgstr "Viewing"
#: packages/ui/primitives/signature-pad/signature-pad.tsx:280
#~ msgid "White"
#~ msgstr "White"
#: packages/ui/primitives/document-flow/send-document-action-dialog.tsx:44
msgid "You are about to send this document to the recipients. Are you sure you want to continue?"
msgstr ""
msgstr "Sie sind dabei, dieses Dokument an die Empfänger zu senden. Sind Sie sicher, dass Sie fortfahren möchten?"
#: packages/ui/components/document/document-send-email-message-helper.tsx:11
msgid "You can use the following variables in your message:"
msgstr ""
msgstr "Sie können die folgenden Variablen in Ihrer Nachricht verwenden:"
#: packages/ui/primitives/document-dropzone.tsx:43
msgid "You cannot upload documents at this time."
msgstr ""
msgstr "Sie können derzeit keine Dokumente hochladen."
#: packages/ui/primitives/document-dropzone.tsx:69
msgid "You have reached your document limit."
msgstr ""
msgstr "Sie haben Ihr Dokumentenlimit erreicht."

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: documenso-app\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-05 06:04\n"
"PO-Revision-Date: 2024-09-16 14:04\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -431,7 +431,7 @@ msgstr "Sparen Sie $60 oder $120"
#: apps/marketing/src/components/(marketing)/i18n-switcher.tsx:47
#~ msgid "Search languages..."
#~ msgstr "Sprachen suchen..."
#~ msgstr "Search languages..."
#: apps/marketing/src/app/(marketing)/pricing/page.tsx:109
msgid "Securely. Our data centers are located in Frankfurt (Germany), giving us the best local privacy laws. We are very aware of the sensitive nature of our data and follow best practices to ensure the security and integrity of the data entrusted to us."

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -334,7 +334,7 @@ msgstr "All Time"
msgid "Allows authenticating using biometrics, password managers, hardware keys, etc."
msgstr "Allows authenticating using biometrics, password managers, hardware keys, etc."
#: apps/web/src/components/forms/v2/signup.tsx:411
#: apps/web/src/components/forms/v2/signup.tsx:423
msgid "Already have an account? <0>Sign in instead</0>"
msgstr "Already have an account? <0>Sign in instead</0>"
@ -573,7 +573,7 @@ msgid "Audit Log"
msgstr "Audit Log"
#: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:41
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:57
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:52
msgid "Authentication required"
msgstr "Authentication required"
@ -591,7 +591,7 @@ msgstr "Awaiting email confirmation"
#: apps/web/src/app/(recipient)/d/[token]/sign-direct-template.tsx:369
#: apps/web/src/components/(dashboard)/settings/layout/activity-back.tsx:20
#: apps/web/src/components/forms/v2/signup.tsx:497
#: apps/web/src/components/forms/v2/signup.tsx:509
msgid "Back"
msgstr "Back"
@ -604,7 +604,7 @@ msgid "Background Color"
msgstr "Background Color"
#: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:167
#: apps/web/src/components/forms/signin.tsx:473
#: apps/web/src/components/forms/signin.tsx:485
msgid "Backup Code"
msgstr "Backup Code"
@ -616,7 +616,7 @@ msgstr "Backup codes"
msgid "Banner Updated"
msgstr "Banner Updated"
#: apps/web/src/components/forms/v2/signup.tsx:460
#: apps/web/src/components/forms/v2/signup.tsx:472
msgid "Basic details"
msgstr "Basic details"
@ -657,7 +657,7 @@ msgstr "By enabling 2FA, you will be required to enter a code from your authenti
#: apps/web/src/app/(dashboard)/templates/move-template-dialog.tsx:119
#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:470
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-2fa.tsx:178
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:74
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:71
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:164
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-passkey.tsx:189
#: apps/web/src/app/(signing)/sign/[token]/form.tsx:150
@ -715,7 +715,7 @@ msgstr "Choose..."
msgid "Claim account"
msgstr "Claim account"
#: apps/web/src/components/forms/v2/signup.tsx:469
#: apps/web/src/components/forms/v2/signup.tsx:481
msgid "Claim username"
msgstr "Claim username"
@ -723,7 +723,7 @@ msgstr "Claim username"
msgid "Claim your profile later"
msgstr "Claim your profile later"
#: apps/web/src/components/forms/v2/signup.tsx:267
#: apps/web/src/components/forms/v2/signup.tsx:279
msgid "Claim your username now"
msgstr "Claim your username now"
@ -768,7 +768,7 @@ msgstr "Close"
#: apps/web/src/app/(signing)/sign/[token]/sign-dialog.tsx:61
#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:425
#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:304
#: apps/web/src/components/forms/v2/signup.tsx:522
#: apps/web/src/components/forms/v2/signup.tsx:534
msgid "Complete"
msgstr "Complete"
@ -882,7 +882,7 @@ msgstr "Copy token"
msgid "Create"
msgstr "Create"
#: apps/web/src/components/forms/v2/signup.tsx:252
#: apps/web/src/components/forms/v2/signup.tsx:264
msgid "Create a new account"
msgstr "Create a new account"
@ -947,11 +947,11 @@ msgstr "Create webhook"
msgid "Create Webhook"
msgstr "Create Webhook"
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:214
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:215
msgid "Create your account and start using state-of-the-art document signing."
msgstr "Create your account and start using state-of-the-art document signing."
#: apps/web/src/components/forms/v2/signup.tsx:256
#: apps/web/src/components/forms/v2/signup.tsx:268
msgid "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
msgstr "Create your account and start using state-of-the-art document signing. Open and beautiful signing is within your grasp."
@ -1330,7 +1330,7 @@ msgid "Documents Viewed"
msgstr "Documents Viewed"
#: apps/web/src/app/(unauthenticated)/reset-password/[token]/page.tsx:40
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:61
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:45
msgid "Don't have an account? <0>Sign up</0>"
msgstr "Don't have an account? <0>Sign up</0>"
@ -1407,7 +1407,7 @@ msgstr "Edit webhook"
#: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153
#: apps/web/src/components/forms/forgot-password.tsx:81
#: apps/web/src/components/forms/profile.tsx:122
#: apps/web/src/components/forms/signin.tsx:326
#: apps/web/src/components/forms/signin.tsx:338
#: apps/web/src/components/forms/signup.tsx:180
msgid "Email"
msgstr "Email"
@ -1418,7 +1418,7 @@ msgstr "Email"
msgid "Email address"
msgstr "Email address"
#: apps/web/src/components/forms/v2/signup.tsx:316
#: apps/web/src/components/forms/v2/signup.tsx:328
msgid "Email Address"
msgstr "Email Address"
@ -1579,7 +1579,7 @@ msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB"
msgstr "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB"
#: apps/web/src/app/(unauthenticated)/forgot-password/page.tsx:21
#: apps/web/src/components/forms/signin.tsx:358
#: apps/web/src/components/forms/signin.tsx:370
msgid "Forgot your password?"
msgstr "Forgot your password?"
@ -1588,7 +1588,7 @@ msgstr "Forgot your password?"
#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:361
#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:241
#: apps/web/src/components/forms/profile.tsx:110
#: apps/web/src/components/forms/v2/signup.tsx:300
#: apps/web/src/components/forms/v2/signup.tsx:312
msgid "Full Name"
msgstr "Full Name"
@ -1615,7 +1615,7 @@ msgstr "Go Back"
msgid "Go back home"
msgstr "Go back home"
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:223
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:226
#: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:57
msgid "Go Back Home"
msgstr "Go Back Home"
@ -1859,8 +1859,8 @@ msgid "Loading..."
msgstr "Loading..."
#: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:54
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:78
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:72
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:75
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:67
msgid "Login"
msgstr "Login"
@ -2011,7 +2011,7 @@ msgstr "My templates"
msgid "Name"
msgstr "Name"
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:210
#: apps/web/src/app/(signing)/sign/[token]/complete/page.tsx:211
msgid "Need to sign documents?"
msgstr "Need to sign documents?"
@ -2034,7 +2034,7 @@ msgstr "New Template"
#: apps/web/src/app/embed/direct/[[...url]]/client.tsx:416
#: apps/web/src/app/embed/sign/[[...url]]/client.tsx:295
#: apps/web/src/components/forms/v2/signup.tsx:509
#: apps/web/src/components/forms/v2/signup.tsx:521
msgid "Next"
msgstr "Next"
@ -2145,11 +2145,11 @@ msgstr "Opened"
#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:337
#: apps/web/src/components/forms/signup.tsx:243
#: apps/web/src/components/forms/signup.tsx:267
#: apps/web/src/components/forms/v2/signup.tsx:371
#: apps/web/src/components/forms/v2/signup.tsx:383
msgid "Or"
msgstr "Or"
#: apps/web/src/components/forms/signin.tsx:378
#: apps/web/src/components/forms/signin.tsx:390
msgid "Or continue with"
msgstr "Or continue with"
@ -2166,7 +2166,7 @@ msgstr "Owner"
msgid "Paid"
msgstr "Paid"
#: apps/web/src/components/forms/signin.tsx:423
#: apps/web/src/components/forms/signin.tsx:435
msgid "Passkey"
msgstr "Passkey"
@ -2206,9 +2206,9 @@ msgstr "Passkeys are not supported on this browser"
#: apps/web/src/components/(dashboard)/common/command-menu.tsx:70
#: apps/web/src/components/forms/password.tsx:123
#: apps/web/src/components/forms/reset-password.tsx:110
#: apps/web/src/components/forms/signin.tsx:344
#: apps/web/src/components/forms/signin.tsx:356
#: apps/web/src/components/forms/signup.tsx:196
#: apps/web/src/components/forms/v2/signup.tsx:332
#: apps/web/src/components/forms/v2/signup.tsx:344
msgid "Password"
msgstr "Password"
@ -2399,7 +2399,7 @@ msgstr "Public Profile"
msgid "Public profile URL"
msgstr "Public profile URL"
#: apps/web/src/components/forms/v2/signup.tsx:438
#: apps/web/src/components/forms/v2/signup.tsx:450
msgid "Public profile username"
msgstr "Public profile username"
@ -2753,17 +2753,17 @@ msgid "Sign field"
msgstr "Sign field"
#: apps/web/src/components/forms/signup.tsx:212
#: apps/web/src/components/forms/v2/signup.tsx:350
#: apps/web/src/components/forms/v2/signup.tsx:362
msgid "Sign Here"
msgstr "Sign Here"
#: apps/web/src/app/not-found.tsx:29
#: apps/web/src/components/forms/signin.tsx:371
#: apps/web/src/components/forms/signin.tsx:498
#: apps/web/src/components/forms/signin.tsx:383
#: apps/web/src/components/forms/signin.tsx:510
msgid "Sign In"
msgstr "Sign In"
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:44
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:29
msgid "Sign in to your account"
msgstr "Sign in to your account"
@ -2777,7 +2777,7 @@ msgstr "Sign Out"
msgid "Sign the document to complete the process."
msgstr "Sign the document to complete the process."
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:72
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:67
msgid "Sign up"
msgstr "Sign up"
@ -2786,12 +2786,12 @@ msgid "Sign Up"
msgstr "Sign Up"
#: apps/web/src/components/forms/signup.tsx:257
#: apps/web/src/components/forms/v2/signup.tsx:389
#: apps/web/src/components/forms/v2/signup.tsx:401
msgid "Sign Up with Google"
msgstr "Sign Up with Google"
#: apps/web/src/components/forms/signup.tsx:281
#: apps/web/src/components/forms/v2/signup.tsx:405
#: apps/web/src/components/forms/v2/signup.tsx:417
msgid "Sign Up with OIDC"
msgstr "Sign Up with OIDC"
@ -2817,8 +2817,8 @@ msgstr "Signatures will appear once the document has been completed"
msgid "Signed"
msgstr "Signed"
#: apps/web/src/components/forms/signin.tsx:371
#: apps/web/src/components/forms/signin.tsx:498
#: apps/web/src/components/forms/signin.tsx:383
#: apps/web/src/components/forms/signin.tsx:510
msgid "Signing in..."
msgstr "Signing in..."
@ -2863,7 +2863,7 @@ msgstr "Site Settings"
#: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:151
#: apps/web/src/app/(recipient)/d/[token]/direct-template.tsx:117
#: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:27
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:43
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:38
#: apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx:53
#: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:39
#: apps/web/src/app/(unauthenticated)/verify-email/[token]/page.tsx:61
@ -3429,7 +3429,7 @@ msgstr "To enable two-factor authentication, scan the following QR code using yo
msgid "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox."
msgstr "To gain access to your account, please confirm your email address by clicking on the confirmation link from your inbox."
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:57
#: apps/web/src/app/(signing)/sign/[token]/document-action-auth-account.tsx:54
msgid "To mark this document as viewed, you need to be logged in as <0>{0}</0>"
msgstr "To mark this document as viewed, you need to be logged in as <0>{0}</0>"
@ -3518,7 +3518,7 @@ msgstr "Two factor authentication"
msgid "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app."
msgstr "Two factor authentication recovery codes are used to access your account in the event that you lose access to your authenticator app."
#: apps/web/src/components/forms/signin.tsx:436
#: apps/web/src/components/forms/signin.tsx:448
msgid "Two-Factor Authentication"
msgstr "Two-Factor Authentication"
@ -3728,12 +3728,12 @@ msgid "Uploaded file not an allowed file type"
msgstr "Uploaded file not an allowed file type"
#: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:187
#: apps/web/src/components/forms/signin.tsx:493
#: apps/web/src/components/forms/signin.tsx:505
msgid "Use Authenticator"
msgstr "Use Authenticator"
#: apps/web/src/components/forms/2fa/disable-authenticator-app-dialog.tsx:185
#: apps/web/src/components/forms/signin.tsx:491
#: apps/web/src/components/forms/signin.tsx:503
msgid "Use Backup Code"
msgstr "Use Backup Code"
@ -3749,7 +3749,7 @@ msgstr "User"
msgid "User ID"
msgstr "User ID"
#: apps/web/src/components/forms/v2/signup.tsx:222
#: apps/web/src/components/forms/v2/signup.tsx:234
msgid "User profiles are here!"
msgstr "User profiles are here!"
@ -4028,7 +4028,7 @@ msgid "We were unable to disable two-factor authentication for your account. Ple
msgstr "We were unable to disable two-factor authentication for your account. Please ensure that you have entered your password and backup code correctly and try again."
#: apps/web/src/app/(recipient)/d/[token]/signing-auth-page.tsx:28
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:44
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:39
msgid "We were unable to log you out at this time."
msgstr "We were unable to log you out at this time."
@ -4095,7 +4095,7 @@ msgstr "Webhooks"
msgid "Weekly"
msgstr "Weekly"
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:48
#: apps/web/src/app/(unauthenticated)/signin/page.tsx:33
msgid "Welcome back, we are lucky to have you."
msgstr "Welcome back, we are lucky to have you."
@ -4321,7 +4321,7 @@ msgstr "You must have at least one other team member to transfer ownership."
msgid "You must set a profile URL before enabling your public profile."
msgstr "You must set a profile URL before enabling your public profile."
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:61
#: apps/web/src/app/(signing)/sign/[token]/signing-auth-page.tsx:56
msgid "You need to be logged in as <0>{email}</0> to view this page."
msgstr "You need to be logged in as <0>{email}</0> to view this page."
@ -4333,7 +4333,7 @@ msgstr "You need to be logged in to view this page."
msgid "You need to setup 2FA to mark this document as viewed."
msgstr "You need to setup 2FA to mark this document as viewed."
#: apps/web/src/components/forms/v2/signup.tsx:271
#: apps/web/src/components/forms/v2/signup.tsx:283
msgid "You will get notified & be able to set up your documenso public profile when we launch the feature."
msgstr "You will get notified & be able to set up your documenso public profile when we launch the feature."

View File

@ -90,8 +90,18 @@ export const extractLocaleData = ({
lang = 'en';
}
// Filter out locales that are not valid.
const locales = (langHeader?.locales ?? []).filter((locale) => {
try {
new Intl.Locale(locale);
return true;
} catch {
return false;
}
});
return {
lang: lang || APP_I18N_OPTIONS.sourceLang,
locales: langHeader.locales,
locales,
};
};

View File

@ -1,17 +1,8 @@
import { encryptSecondaryData } from '@documenso/lib/server-only/crypto/encrypt';
import { procedure, router } from '../trpc';
import { ZEncryptSecondaryDataMutationSchema } from './schema';
export const cryptoRouter = router({
encryptSecondaryData: procedure
.input(ZEncryptSecondaryDataMutationSchema)
.mutation(({ input }) => {
try {
return encryptSecondaryData(input);
} catch {
// Never leak errors for crypto.
throw new Error('Failed to encrypt data');
}
}),
encryptSecondaryData: procedure.input(ZEncryptSecondaryDataMutationSchema).mutation(() => {
throw new Error('Public usage of encryptSecondaryData is no longer permitted');
}),
});

View File

@ -265,35 +265,35 @@ export const SignaturePad = ({
<div className="text-foreground absolute right-2 top-2 filter">
<Select defaultValue={selectedColor} onValueChange={(value) => setSelectedColor(value)}>
<SelectTrigger className="h-auto w-auto border-none p-1">
<SelectTrigger className="h-auto w-auto border-none p-0.5">
<SelectValue placeholder="" />
</SelectTrigger>
<SelectContent className="w-[150px]" align="end">
<SelectContent className="w-[100px]" align="end">
<SelectItem value="black">
<div className="text-muted-foreground flex items-center px-1 text-sm">
<div className="border-border mr-2 h-5 w-5 rounded-full border-2 bg-black shadow-sm" />
<div className="text-muted-foreground flex items-center text-[0.688rem]">
<div className="border-border mr-1 h-4 w-4 rounded-full border-2 bg-black shadow-sm" />
<Trans>Black</Trans>
</div>
</SelectItem>
<SelectItem value="red">
<div className="text-muted-foreground flex items-center px-1 text-sm">
<div className="border-border mr-2 h-5 w-5 rounded-full border-2 bg-[red] shadow-sm" />
<div className="text-muted-foreground flex items-center text-[0.688rem]">
<div className="border-border mr-1 h-4 w-4 rounded-full border-2 bg-[red] shadow-sm" />
<Trans>Red</Trans>
</div>
</SelectItem>
<SelectItem value="blue">
<div className="text-muted-foreground flex items-center px-1 text-sm">
<div className="border-border mr-2 h-5 w-5 rounded-full border-2 bg-[blue] shadow-sm" />
<div className="text-muted-foreground flex items-center text-[0.688rem]">
<div className="border-border mr-1 h-4 w-4 rounded-full border-2 bg-[blue] shadow-sm" />
<Trans>Blue</Trans>
</div>
</SelectItem>
<SelectItem value="green">
<div className="text-muted-foreground flex items-center px-1 text-sm">
<div className="border-border mr-2 h-5 w-5 rounded-full border-2 bg-[green] shadow-sm" />
<div className="text-muted-foreground flex items-center text-[0.688rem]">
<div className="border-border mr-1 h-4 w-4 rounded-full border-2 bg-[green] shadow-sm" />
<Trans>Green</Trans>
</div>
</SelectItem>
@ -301,10 +301,10 @@ export const SignaturePad = ({
</Select>
</div>
<div className="absolute bottom-4 right-4 flex gap-2">
<div className="absolute bottom-3 right-3 flex gap-2">
<button
type="button"
className="focus-visible:ring-ring ring-offset-background text-muted-foreground/60 hover:text-muted-foreground rounded-full p-0 text-xs focus-visible:outline-none focus-visible:ring-2"
className="focus-visible:ring-ring ring-offset-background text-muted-foreground/60 hover:text-muted-foreground rounded-full p-0 text-[0.688rem] focus-visible:outline-none focus-visible:ring-2"
onClick={() => onClearClick()}
>
<Trans>Clear Signature</Trans>
@ -316,7 +316,7 @@ export const SignaturePad = ({
<button
type="button"
title="undo"
className="focus-visible:ring-ring ring-offset-background text-muted-foreground/60 hover:text-muted-foreground rounded-full p-0 text-xs focus-visible:outline-none focus-visible:ring-2"
className="focus-visible:ring-ring ring-offset-background text-muted-foreground/60 hover:text-muted-foreground rounded-full p-0 text-[0.688rem] focus-visible:outline-none focus-visible:ring-2"
onClick={() => onUndoClick()}
>
<Undo2 className="h-4 w-4" />