@arbidocs/blocks 0.5.20 → 0.5.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConnectedNativeDocxComparison-KUDFJ3GG.js → ConnectedNativeDocxComparison-4X7H57LE.js} +9 -9
- package/dist/{ConnectedStreamedWordArtifact-JD2XZCYP.js.map → ConnectedNativeDocxComparison-4X7H57LE.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-FUNR66KP.cjs → ConnectedNativeDocxComparison-7WTVHEKI.cjs} +10 -10
- package/dist/{ConnectedNativeDocxComparison-FUNR66KP.cjs.map → ConnectedNativeDocxComparison-7WTVHEKI.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-G6R3SFZ3.js → ConnectedNativeDocxEditor-I6RQUSR3.js} +7 -7
- package/dist/{ConnectedNativeDocxEditor-G6R3SFZ3.js.map → ConnectedNativeDocxEditor-I6RQUSR3.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-XVCAXAAU.cjs → ConnectedNativeDocxEditor-PZ2ASQO3.cjs} +9 -9
- package/dist/{ConnectedNativeDocxEditor-XVCAXAAU.cjs.map → ConnectedNativeDocxEditor-PZ2ASQO3.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-JD2XZCYP.js → ConnectedStreamedWordArtifact-KCYSJ3B2.js} +9 -9
- package/dist/{ConnectedNativeDocxComparison-KUDFJ3GG.js.map → ConnectedStreamedWordArtifact-KCYSJ3B2.js.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-P55WP3MC.cjs → ConnectedStreamedWordArtifact-Q5KC4W7O.cjs} +10 -10
- package/dist/ConnectedStreamedWordArtifact-Q5KC4W7O.cjs.map +1 -0
- package/dist/{NativeDocxEditor-6O7UMP7Y.cjs → NativeDocxEditor-JUTTA46L.cjs} +8 -8
- package/dist/{NativeDocxEditor-6O7UMP7Y.cjs.map → NativeDocxEditor-JUTTA46L.cjs.map} +1 -1
- package/dist/{NativeDocxEditor-MHO7LF4E.js → NativeDocxEditor-PSC3JWWA.js} +4 -4
- package/dist/{NativeDocxEditor-MHO7LF4E.js.map → NativeDocxEditor-PSC3JWWA.js.map} +1 -1
- package/dist/{WorkspaceTableView-UR3WLSJG.cjs → WorkspaceTableView-6JVHGDUB.cjs} +8 -8
- package/dist/{WorkspaceTableView-UR3WLSJG.cjs.map → WorkspaceTableView-6JVHGDUB.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-TNUEU6OO.js → WorkspaceTableView-ECPHGWHF.js} +6 -6
- package/dist/{WorkspaceTableView-TNUEU6OO.js.map → WorkspaceTableView-ECPHGWHF.js.map} +1 -1
- package/dist/agents/index.cjs +326 -326
- package/dist/agents/index.js +4 -4
- package/dist/auth/index.cjs +44 -44
- package/dist/auth/index.js +2 -2
- package/dist/auth0/index.cjs +4 -3
- package/dist/auth0/index.cjs.map +1 -1
- package/dist/auth0/index.js +4 -3
- package/dist/auth0/index.js.map +1 -1
- package/dist/{chunk-BQNDBWLB.js → chunk-4ML5AMMO.js} +3 -3
- package/dist/{chunk-BQNDBWLB.js.map → chunk-4ML5AMMO.js.map} +1 -1
- package/dist/{chunk-ODFDMORE.cjs → chunk-4S34OHJX.cjs} +4 -4
- package/dist/{chunk-ODFDMORE.cjs.map → chunk-4S34OHJX.cjs.map} +1 -1
- package/dist/{chunk-QS3AJ3FT.cjs → chunk-5H37UWWS.cjs} +5 -5
- package/dist/{chunk-QS3AJ3FT.cjs.map → chunk-5H37UWWS.cjs.map} +1 -1
- package/dist/{chunk-2FQ4CMRY.cjs → chunk-5ZU2XYXO.cjs} +278 -4
- package/dist/chunk-5ZU2XYXO.cjs.map +1 -0
- package/dist/{chunk-JS7KJRKG.js → chunk-75Z5AUMM.js} +3 -3
- package/dist/{chunk-JS7KJRKG.js.map → chunk-75Z5AUMM.js.map} +1 -1
- package/dist/chunk-BITGO5LI.cjs +18 -0
- package/dist/{chunk-WDCD3OZH.cjs.map → chunk-BITGO5LI.cjs.map} +1 -1
- package/dist/{chunk-E2SKI6VO.js → chunk-D3BHUDOU.js} +3 -3
- package/dist/{chunk-E2SKI6VO.js.map → chunk-D3BHUDOU.js.map} +1 -1
- package/dist/{chunk-WJZK5GAV.js → chunk-DTENNALR.js} +3 -3
- package/dist/{chunk-WJZK5GAV.js.map → chunk-DTENNALR.js.map} +1 -1
- package/dist/{chunk-P5RZPEHW.cjs → chunk-F2BYURQZ.cjs} +5 -5
- package/dist/{chunk-P5RZPEHW.cjs.map → chunk-F2BYURQZ.cjs.map} +1 -1
- package/dist/{chunk-HNGGKANF.js → chunk-F6LC2CRB.js} +5 -5
- package/dist/{chunk-HNGGKANF.js.map → chunk-F6LC2CRB.js.map} +1 -1
- package/dist/{chunk-MBRUUST5.js → chunk-F7IQGPZH.js} +4 -4
- package/dist/{chunk-MBRUUST5.js.map → chunk-F7IQGPZH.js.map} +1 -1
- package/dist/{chunk-X2SQZY7U.js → chunk-FERNQVSH.js} +274 -8
- package/dist/chunk-FERNQVSH.js.map +1 -0
- package/dist/{chunk-KBSKN3NF.cjs → chunk-FQIJICZE.cjs} +9 -9
- package/dist/{chunk-KBSKN3NF.cjs.map → chunk-FQIJICZE.cjs.map} +1 -1
- package/dist/{chunk-SSJLYCX7.cjs → chunk-FV32BTXV.cjs} +84 -56
- package/dist/chunk-FV32BTXV.cjs.map +1 -0
- package/dist/{chunk-2YZ35KKK.cjs → chunk-FZVAJFRH.cjs} +80 -84
- package/dist/chunk-FZVAJFRH.cjs.map +1 -0
- package/dist/{chunk-HHJALHRS.js → chunk-H5XHCIWY.js} +83 -55
- package/dist/chunk-H5XHCIWY.js.map +1 -0
- package/dist/{chunk-TBNXJHTP.js → chunk-IA5BYEO7.js} +7 -5
- package/dist/chunk-IA5BYEO7.js.map +1 -0
- package/dist/{chunk-NFTANEP6.cjs → chunk-IJQ5DIZT.cjs} +5 -5
- package/dist/{chunk-NFTANEP6.cjs.map → chunk-IJQ5DIZT.cjs.map} +1 -1
- package/dist/{chunk-NMZI3K6R.cjs → chunk-IRY63R4L.cjs} +16 -2
- package/dist/chunk-IRY63R4L.cjs.map +1 -0
- package/dist/{chunk-MVP7METT.js → chunk-IXBJEQH5.js} +4 -80
- package/dist/chunk-IXBJEQH5.js.map +1 -0
- package/dist/{chunk-PAKPD3LB.js → chunk-JKJI5SRF.js} +3 -3
- package/dist/{chunk-PAKPD3LB.js.map → chunk-JKJI5SRF.js.map} +1 -1
- package/dist/{chunk-EWRRV37Z.cjs → chunk-K237IYOD.cjs} +2 -80
- package/dist/chunk-K237IYOD.cjs.map +1 -0
- package/dist/chunk-KL6XOSEN.js +156 -0
- package/dist/chunk-KL6XOSEN.js.map +1 -0
- package/dist/{chunk-TRDY3ZT7.js → chunk-LU23I2HS.js} +3 -3
- package/dist/{chunk-TRDY3ZT7.js.map → chunk-LU23I2HS.js.map} +1 -1
- package/dist/{chunk-SAYEQE5R.cjs → chunk-MJT7KHHT.cjs} +48 -48
- package/dist/{chunk-SAYEQE5R.cjs.map → chunk-MJT7KHHT.cjs.map} +1 -1
- package/dist/chunk-MSCDYRSA.cjs +18 -0
- package/dist/{chunk-JPNFVDH4.cjs.map → chunk-MSCDYRSA.cjs.map} +1 -1
- package/dist/chunk-MSPNYW6Z.cjs +165 -0
- package/dist/chunk-MSPNYW6Z.cjs.map +1 -0
- package/dist/{chunk-2R3GGNPA.js → chunk-MZA7GMOH.js} +16 -3
- package/dist/chunk-MZA7GMOH.js.map +1 -0
- package/dist/{chunk-4UGVMOTK.cjs → chunk-NML42O7Q.cjs} +4 -4
- package/dist/{chunk-4UGVMOTK.cjs.map → chunk-NML42O7Q.cjs.map} +1 -1
- package/dist/{chunk-YKGZG353.js → chunk-NVRJ6WTR.js} +3 -3
- package/dist/{chunk-YKGZG353.js.map → chunk-NVRJ6WTR.js.map} +1 -1
- package/dist/{chunk-ZW4QFL3Y.cjs → chunk-PFVCOUU6.cjs} +13 -13
- package/dist/{chunk-ZW4QFL3Y.cjs.map → chunk-PFVCOUU6.cjs.map} +1 -1
- package/dist/{chunk-QLLV5UUI.cjs → chunk-PSIKUQYM.cjs} +5 -5
- package/dist/{chunk-QLLV5UUI.cjs.map → chunk-PSIKUQYM.cjs.map} +1 -1
- package/dist/{chunk-R53JJZNW.js → chunk-RVKVGS72.js} +76 -79
- package/dist/chunk-RVKVGS72.js.map +1 -0
- package/dist/{chunk-H32DV7XS.cjs → chunk-UAEYU2NN.cjs} +136 -2
- package/dist/chunk-UAEYU2NN.cjs.map +1 -0
- package/dist/{chunk-USZ32EKR.js → chunk-VFZLZSJ3.js} +4 -4
- package/dist/{chunk-USZ32EKR.js.map → chunk-VFZLZSJ3.js.map} +1 -1
- package/dist/{chunk-XRL4R2TT.js → chunk-WZ63HE2C.js} +136 -4
- package/dist/chunk-WZ63HE2C.js.map +1 -0
- package/dist/{chunk-F72ZD5Q2.cjs → chunk-YD3RN2FY.cjs} +3 -3
- package/dist/{chunk-F72ZD5Q2.cjs.map → chunk-YD3RN2FY.cjs.map} +1 -1
- package/dist/{chunk-VYFRW6NN.cjs → chunk-YRHQ7OLG.cjs} +3 -3
- package/dist/{chunk-VYFRW6NN.cjs.map → chunk-YRHQ7OLG.cjs.map} +1 -1
- package/dist/{chunk-PYJUIEYV.js → chunk-YT5OOFK3.js} +3 -3
- package/dist/{chunk-PYJUIEYV.js.map → chunk-YT5OOFK3.js.map} +1 -1
- package/dist/{chunk-XCL6ZCI5.js → chunk-Z6CAKLA5.js} +3 -3
- package/dist/{chunk-XCL6ZCI5.js.map → chunk-Z6CAKLA5.js.map} +1 -1
- package/dist/{chunk-RAYCOBF7.cjs → chunk-ZESMRGDV.cjs} +7 -5
- package/dist/chunk-ZESMRGDV.cjs.map +1 -0
- package/dist/{chunk-6FWUZGPF.js → chunk-ZMYK7XTS.js} +4 -4
- package/dist/{chunk-6FWUZGPF.js.map → chunk-ZMYK7XTS.js.map} +1 -1
- package/dist/connect/docx.cjs +13 -13
- package/dist/connect/docx.js +9 -9
- package/dist/connect/index.cjs +1138 -906
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +1 -0
- package/dist/connect/index.js +480 -249
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +17 -17
- package/dist/connect/viewer.js +6 -6
- package/dist/connection/ConnectedAccountAccessBadge.d.ts +1 -0
- package/dist/connection/ConnectedSettings.d.ts +6 -2
- package/dist/connection/ConnectedSsoDisconnect.d.ts +2 -0
- package/dist/connection/auth/support.d.ts +1 -0
- package/dist/connection/auth/useLoginActions.d.ts +1 -1
- package/dist/connection/settings-page/ConnectedAccountSettings.d.ts +5 -1
- package/dist/document-tools/AdoptSignatureDialog.d.ts +3 -1
- package/dist/document-tools/index.cjs +20 -20
- package/dist/document-tools/index.js +3 -3
- package/dist/document-tools/viewer/index.cjs +10 -10
- package/dist/document-tools/viewer/index.js +3 -3
- package/dist/docx/index.cjs +51 -51
- package/dist/docx/index.js +4 -4
- package/dist/facts/index.cjs +55 -55
- package/dist/facts/index.js +3 -3
- package/dist/home/index.cjs +15 -16
- package/dist/home/index.cjs.map +1 -1
- package/dist/home/index.js +1 -2
- package/dist/home/index.js.map +1 -1
- package/dist/index.cjs +425 -425
- package/dist/index.js +7 -7
- package/dist/settings/IdentityVerification.d.ts +3 -1
- package/dist/settings/ProfileCard.d.ts +3 -1
- package/dist/settings/SettingsPanel.d.ts +6 -0
- package/dist/settings/SubscriptionParts.d.ts +0 -11
- package/dist/settings/index.cjs +162 -166
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +3 -3
- package/dist/workflow-canvas/index.cjs +17 -17
- package/dist/workflow-canvas/index.js +4 -4
- package/dist/workspaces/WorkspaceFormParts.d.ts +10 -2
- package/dist/workspaces/index.cjs +52 -287
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.js +9 -268
- package/dist/workspaces/index.js.map +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-P55WP3MC.cjs.map +0 -1
- package/dist/chunk-2FQ4CMRY.cjs.map +0 -1
- package/dist/chunk-2R3GGNPA.js.map +0 -1
- package/dist/chunk-2YZ35KKK.cjs.map +0 -1
- package/dist/chunk-5TDGVOR5.js +0 -142
- package/dist/chunk-5TDGVOR5.js.map +0 -1
- package/dist/chunk-6AXJBTHM.js +0 -77
- package/dist/chunk-6AXJBTHM.js.map +0 -1
- package/dist/chunk-EWRRV37Z.cjs.map +0 -1
- package/dist/chunk-H32DV7XS.cjs.map +0 -1
- package/dist/chunk-HHJALHRS.js.map +0 -1
- package/dist/chunk-JPNFVDH4.cjs +0 -18
- package/dist/chunk-MKNSIZWR.cjs +0 -84
- package/dist/chunk-MKNSIZWR.cjs.map +0 -1
- package/dist/chunk-MVP7METT.js.map +0 -1
- package/dist/chunk-NMZI3K6R.cjs.map +0 -1
- package/dist/chunk-R53JJZNW.js.map +0 -1
- package/dist/chunk-RAYCOBF7.cjs.map +0 -1
- package/dist/chunk-REH7PX3N.cjs +0 -145
- package/dist/chunk-REH7PX3N.cjs.map +0 -1
- package/dist/chunk-SSJLYCX7.cjs.map +0 -1
- package/dist/chunk-TBNXJHTP.js.map +0 -1
- package/dist/chunk-WDCD3OZH.cjs +0 -18
- package/dist/chunk-X2SQZY7U.js.map +0 -1
- package/dist/chunk-XRL4R2TT.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ViewerStatusNote } from './chunk-6HKLTYNN.js';
|
|
3
|
-
import { SettingsCard } from './chunk-
|
|
4
|
-
import { AdoptSignatureDialog } from './chunk-
|
|
3
|
+
import { SettingsDisclosure, SettingsCard } from './chunk-MZA7GMOH.js';
|
|
4
|
+
import { AdoptSignatureDialog } from './chunk-IA5BYEO7.js';
|
|
5
5
|
import { ConfirmDialog } from './chunk-U4HWVCRN.js';
|
|
6
6
|
import { ModalScaffold } from './chunk-TX2ZICS7.js';
|
|
7
|
-
import { PencilLine, FileText, PenLine, Users, Signature, Trash2, Send, FilePenLine, Download } from 'lucide-react';
|
|
7
|
+
import { PencilLine, FileText, PenLine, Users, Signature, Upload, Trash2, Send, FilePenLine, Download } from 'lucide-react';
|
|
8
8
|
import { Button, DropdownMenuItem, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, Label, Textarea } from '@arbidocs/react/ui';
|
|
9
9
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
10
10
|
import { useState } from 'react';
|
|
@@ -353,67 +353,95 @@ function SavedSignatureSettings() {
|
|
|
353
353
|
const store = useStoreSavedSignature();
|
|
354
354
|
const remove = useDeleteSavedSignature();
|
|
355
355
|
const [editing, setEditing] = useState(false);
|
|
356
|
+
const [uploading, setUploading] = useState(false);
|
|
356
357
|
const [confirming, setConfirming] = useState(false);
|
|
357
358
|
const signature = saved.data;
|
|
358
|
-
return /* @__PURE__ */ jsxs(
|
|
359
|
-
/* @__PURE__ */
|
|
360
|
-
/* @__PURE__ */ jsx("
|
|
361
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
|
|
359
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
360
|
+
/* @__PURE__ */ jsx(SettingsDisclosure, { title: "Saved signature", testId: "saved-signature-settings", children: /* @__PURE__ */ jsxs(SettingsCard, { children: [
|
|
361
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
|
|
362
362
|
"Saved to your account, sealed with your own key, to insert into Word documents and place on PDFs. ",
|
|
363
363
|
INFORMAL_SIGNATURE_NOTE
|
|
364
|
-
] })
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
/* @__PURE__ */ jsx(
|
|
368
|
-
"img",
|
|
369
|
-
{
|
|
370
|
-
src: `data:image/png;base64,${signature.signature_png}`,
|
|
371
|
-
alt: "Your saved signature",
|
|
372
|
-
className: "h-16 max-w-xs rounded-md border bg-white object-contain p-1"
|
|
373
|
-
}
|
|
374
|
-
),
|
|
375
|
-
/* @__PURE__ */ jsx(
|
|
376
|
-
"img",
|
|
377
|
-
{
|
|
378
|
-
src: `data:image/png;base64,${signature.initials_png}`,
|
|
379
|
-
alt: "Your saved initials",
|
|
380
|
-
className: "h-16 max-w-[8rem] rounded-md border bg-white object-contain p-1"
|
|
381
|
-
}
|
|
382
|
-
)
|
|
383
|
-
] }) : /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", "data-testid": "saved-signature-none", children: saved.isLoading ? "Loading\u2026" : "No signature saved." }),
|
|
384
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
385
|
-
/* @__PURE__ */ jsxs(
|
|
386
|
-
Button,
|
|
364
|
+
] }) }),
|
|
365
|
+
signature ? /* @__PURE__ */ jsxs(
|
|
366
|
+
"div",
|
|
387
367
|
{
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
variant: "outline",
|
|
391
|
-
onClick: () => setEditing(true),
|
|
392
|
-
"data-testid": "saved-signature-replace",
|
|
368
|
+
className: "flex flex-wrap items-center gap-4",
|
|
369
|
+
"data-testid": "saved-signature-preview",
|
|
393
370
|
children: [
|
|
394
|
-
/* @__PURE__ */ jsx(
|
|
395
|
-
|
|
371
|
+
/* @__PURE__ */ jsx(
|
|
372
|
+
"img",
|
|
373
|
+
{
|
|
374
|
+
src: `data:image/png;base64,${signature.signature_png}`,
|
|
375
|
+
alt: "Your saved signature",
|
|
376
|
+
className: "h-16 max-w-xs rounded-md border bg-white object-contain p-1"
|
|
377
|
+
}
|
|
378
|
+
),
|
|
379
|
+
/* @__PURE__ */ jsx(
|
|
380
|
+
"img",
|
|
381
|
+
{
|
|
382
|
+
src: `data:image/png;base64,${signature.initials_png}`,
|
|
383
|
+
alt: "Your saved initials",
|
|
384
|
+
className: "h-16 max-w-[8rem] rounded-md border bg-white object-contain p-1"
|
|
385
|
+
}
|
|
386
|
+
)
|
|
396
387
|
]
|
|
397
388
|
}
|
|
398
|
-
),
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
389
|
+
) : /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", "data-testid": "saved-signature-none", children: saved.isLoading ? "Loading\u2026" : "No signature saved." }),
|
|
390
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-2", children: [
|
|
391
|
+
/* @__PURE__ */ jsxs(
|
|
392
|
+
Button,
|
|
393
|
+
{
|
|
394
|
+
type: "button",
|
|
395
|
+
size: "sm",
|
|
396
|
+
variant: "outline",
|
|
397
|
+
onClick: () => {
|
|
398
|
+
setUploading(false);
|
|
399
|
+
setEditing(true);
|
|
400
|
+
},
|
|
401
|
+
"data-testid": "saved-signature-replace",
|
|
402
|
+
children: [
|
|
403
|
+
/* @__PURE__ */ jsx(PenLine, { className: "mr-1 size-4", "aria-hidden": true }),
|
|
404
|
+
signature ? "Replace" : "Add a signature"
|
|
405
|
+
]
|
|
406
|
+
}
|
|
407
|
+
),
|
|
408
|
+
/* @__PURE__ */ jsxs(
|
|
409
|
+
Button,
|
|
410
|
+
{
|
|
411
|
+
type: "button",
|
|
412
|
+
size: "sm",
|
|
413
|
+
variant: "outline",
|
|
414
|
+
onClick: () => {
|
|
415
|
+
setUploading(true);
|
|
416
|
+
setEditing(true);
|
|
417
|
+
},
|
|
418
|
+
"data-testid": "saved-signature-upload",
|
|
419
|
+
children: [
|
|
420
|
+
/* @__PURE__ */ jsx(Upload, { className: "mr-1 size-4", "aria-hidden": true }),
|
|
421
|
+
"Upload"
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
),
|
|
425
|
+
signature && /* @__PURE__ */ jsxs(
|
|
426
|
+
Button,
|
|
427
|
+
{
|
|
428
|
+
type: "button",
|
|
429
|
+
size: "sm",
|
|
430
|
+
variant: "ghost",
|
|
431
|
+
onClick: () => setConfirming(true),
|
|
432
|
+
"data-testid": "saved-signature-delete",
|
|
433
|
+
children: [
|
|
434
|
+
/* @__PURE__ */ jsx(Trash2, { className: "mr-1 size-4", "aria-hidden": true }),
|
|
435
|
+
"Delete"
|
|
436
|
+
]
|
|
437
|
+
}
|
|
438
|
+
)
|
|
439
|
+
] })
|
|
440
|
+
] }) }),
|
|
414
441
|
/* @__PURE__ */ jsx(
|
|
415
442
|
AdoptSignatureDialog,
|
|
416
443
|
{
|
|
444
|
+
initialStyle: uploading ? "uploaded" : void 0,
|
|
417
445
|
open: editing,
|
|
418
446
|
onOpenChange: setEditing,
|
|
419
447
|
mode: "save",
|
|
@@ -719,5 +747,5 @@ function FileShareDialog({
|
|
|
719
747
|
}
|
|
720
748
|
|
|
721
749
|
export { AnnotateButton, DEFAULT_VERSION_SNAPSHOT_BAR_LABELS, DELETE_SAVED_SIGNATURE_TEXT, DownloadMarkupButton, FileShareDialog, MarkupNotices, MarkupViewNote, PlaceMySignatureButton, RequestSignaturesButton, SavedSignatureSettings, ShowOriginalButton, SignButton, SignatureRequestBanner, SignedEditNote, VersionSnapshotBar };
|
|
722
|
-
//# sourceMappingURL=chunk-
|
|
723
|
-
//# sourceMappingURL=chunk-
|
|
750
|
+
//# sourceMappingURL=chunk-H5XHCIWY.js.map
|
|
751
|
+
//# sourceMappingURL=chunk-H5XHCIWY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/document-tools/DocumentToolButtons.tsx","../src/document-tools/MarkupNotices.tsx","../src/document-tools/MarkupViewNote.tsx","../src/document-tools/VersionSnapshotBar.tsx","../src/document-tools/PlaceMySignatureButton.tsx","../src/document-tools/SavedSignatureSettings.tsx","../src/document-tools/SignatureRequestBanner.tsx","../src/document-tools/FileShareDialog.tsx"],"names":["jsxs","jsx","LINK","Fragment","Button","useDocumentTools","useState","INFORMAL_SIGNATURE_NOTE","PenLine"],"mappings":"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","file":"chunk-H5XHCIWY.js","sourcesContent":["/**\n * The viewer-header buttons of the PDF document tools: Annotate, Show original, Download with\n * markup and Sign. Separate parts so a host can place them among its own header actions. On a\n * narrow (`compact`) header each is icon-only; its accessible name stays.\n */\n\nimport type { ReactElement } from 'react'\nimport { Download, FileText, PenLine, PencilLine, Users } from 'lucide-react'\nimport { Button } from '@arbidocs/react/ui'\n\nconst TOUCH = 'pointer-coarse:min-h-11'\n\ninterface ToggleProps {\n /** On (pressed). */\n active: boolean\n onClick: () => void\n compact?: boolean\n}\n\n/** Annotate mode: highlight, comment, stamp, redact. */\nexport function AnnotateButton({ active, onClick, compact }: ToggleProps): ReactElement {\n return (\n <Button\n type=\"button\"\n variant={active ? 'default' : 'outline'}\n size={compact ? 'icon' : 'sm'}\n aria-pressed={active}\n title=\"Annotate: highlight, comment, stamp, redact\"\n aria-label=\"Annotate\"\n data-testid=\"annotate-toggle\"\n className={TOUCH}\n onClick={onClick}\n >\n <PencilLine className=\"size-4\" />\n {!compact && <span className=\"ml-1\">Annotate</span>}\n </Button>\n )\n}\n\n/** The markup is the default view of a marked-up PDF; this shows the untouched file. */\nexport function ShowOriginalButton({ active, onClick, compact }: ToggleProps): ReactElement {\n return (\n <Button\n type=\"button\"\n variant={active ? 'default' : 'outline'}\n size={compact ? 'icon' : 'sm'}\n aria-pressed={active}\n title={active ? 'Show the markup again' : 'Show the original, without markup'}\n aria-label=\"Show original\"\n data-testid=\"markup-show-original\"\n className={TOUCH}\n onClick={onClick}\n >\n <FileText className=\"size-4\" />\n {!compact && <span className=\"ml-1\">Show original</span>}\n </Button>\n )\n}\n\n/**\n * \"Download with markup\": the PDF with its annotations, which Acrobat and Preview show. With a\n * `disabledReason` (a signed, locked version) it is off and says why.\n */\nexport function DownloadMarkupButton({\n onClick,\n disabledReason,\n}: {\n onClick: () => void\n disabledReason?: string\n}): ReactElement {\n const button = (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon\"\n title={\n disabledReason ??\n 'Download with markup: the PDF with its annotations (opens in Acrobat or Preview)'\n }\n aria-label=\"Download with markup\"\n aria-description={disabledReason}\n disabled={!!disabledReason}\n data-testid=\"markup-download\"\n className={TOUCH}\n onClick={onClick}\n >\n <Download className=\"size-4\" />\n </Button>\n )\n // A disabled button gets no pointer events, so the reason sits on a wrapper too.\n return disabledReason ? (\n <span title={disabledReason} className=\"inline-flex\" data-testid=\"markup-download-locked\">\n {button}\n </span>\n ) : (\n button\n )\n}\n\n/** One line where a signed version's content can be edited: an edit is a new, unsigned version. */\nexport function SignedEditNote(): ReactElement {\n return (\n <p\n className=\"border-b px-3 py-1.5 text-xs text-muted-foreground\"\n data-testid=\"signed-edit-note\"\n >\n Editing creates a new unsigned version\n </p>\n )\n}\n\n/** Sign: choose where the signature goes, then sign. */\nexport function SignButton({ active, onClick, compact }: ToggleProps): ReactElement {\n return (\n <Button\n type=\"button\"\n variant={active ? 'default' : 'outline'}\n size={compact ? 'icon' : 'sm'}\n aria-pressed={active}\n title=\"Sign document\"\n aria-label=\"Sign\"\n data-testid=\"sign-document-button\"\n className={TOUCH}\n onClick={onClick}\n >\n <PenLine className=\"size-4\" />\n {!compact && <span className=\"ml-1\">Sign</span>}\n </Button>\n )\n}\n\n/** Prepare the document for others to sign: place their fields and send it. */\nexport function RequestSignaturesButton({ active, onClick, compact }: ToggleProps): ReactElement {\n return (\n <Button\n type=\"button\"\n variant={active ? 'default' : 'outline'}\n size={compact ? 'icon' : 'sm'}\n aria-pressed={active}\n title=\"Request signatures\"\n aria-label=\"Request signatures\"\n data-testid=\"request-signatures-button\"\n className={TOUCH}\n onClick={onClick}\n >\n <Users className=\"size-4\" />\n {!compact && <span className=\"ml-1\">Request signatures</span>}\n </Button>\n )\n}\n","/**\n * The one-line notices above the PDF about its markup: annotations found in this browser from\n * before markup was saved on the server (for a shared document: add them to the shared markup, or\n * discard), and markup that sits on an older version (open it, or copy its open comments here).\n */\n\nimport type { LegacyPrompt, OlderMarkupNote } from '@arbidocs/react/document-tools'\n\nconst BAR = 'flex flex-wrap items-center justify-between gap-2 border-b px-3 py-2 text-xs'\nconst LINK =\n 'font-medium text-primary hover:underline disabled:opacity-50 disabled:no-underline pointer-coarse:min-h-11'\n\nexport interface MarkupNoticesProps {\n legacyPrompt: LegacyPrompt | null\n olderNote: OlderMarkupNote | null\n onOpenVersion: (version: number) => void\n}\n\nexport function MarkupNotices({ legacyPrompt, olderNote, onOpenVersion }: MarkupNoticesProps) {\n return (\n <>\n {legacyPrompt && (\n <div className={BAR} role=\"status\" data-testid=\"markup-migration-prompt\">\n <span>\n {legacyPrompt.count} annotation{legacyPrompt.count === 1 ? '' : 's'} on this document\n {legacyPrompt.count === 1 ? ' is' : ' are'} saved only in this browser. Add{' '}\n {legacyPrompt.count === 1 ? 'it' : 'them'} to the shared markup, where everyone with\n access sees {legacyPrompt.count === 1 ? 'it' : 'them'}?\n </span>\n <span className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n className={LINK}\n disabled={legacyPrompt.busy}\n data-testid=\"markup-migration-add\"\n onClick={legacyPrompt.add}\n >\n {legacyPrompt.busy ? 'Adding…' : 'Add to shared markup'}\n </button>\n <button\n type=\"button\"\n className={LINK}\n disabled={legacyPrompt.busy}\n data-testid=\"markup-migration-discard\"\n onClick={legacyPrompt.discard}\n >\n Discard\n </button>\n </span>\n </div>\n )}\n {olderNote && (\n <div className={BAR} data-testid=\"markup-older-version-note\">\n <span>\n The markup is on version {olderNote.version}. This version started without it.\n {olderNote.signed && (\n <span data-testid=\"markup-older-version-signed\">\n {' '}\n It is signed: comments copied here are kept beside it, and the signed PDF does not\n change.\n </span>\n )}\n </span>\n <span className=\"flex items-center gap-3\">\n <button\n type=\"button\"\n className={LINK}\n data-testid=\"markup-open-older-version\"\n onClick={() => onOpenVersion(olderNote.version)}\n >\n Open version {olderNote.version}\n </button>\n <button\n type=\"button\"\n className={LINK}\n disabled={olderNote.busy}\n data-testid=\"markup-copy-open-threads\"\n title=\"Copy the unresolved comment threads onto this version (redactions never carry over)\"\n onClick={olderNote.copy}\n >\n {olderNote.busy ? 'Copying…' : 'Copy open comments here'}\n </button>\n </span>\n </div>\n )}\n </>\n )\n}\n","/**\n * Which view of a marked-up PDF is on screen, spelled out beside the title, with the switch to the\n * other one. The narrow header's \"Show original\" is an unlabelled page icon, so on its own it read\n * as no control at all, and nothing said whether the page showed the markup or the original.\n */\n\nimport type { ReactElement } from 'react'\nimport { ViewerStatusNote } from '../files/ViewerLayout'\n\nexport interface MarkupViewNoteProps {\n showOriginal: boolean\n onToggle: () => void\n}\n\nexport function MarkupViewNote({ showOriginal, onToggle }: MarkupViewNoteProps): ReactElement {\n return (\n <ViewerStatusNote testId=\"markup-view-note\">\n {showOriginal ? 'Original, without markup' : 'With markup'}\n {' · '}\n <button\n type=\"button\"\n className=\"font-medium text-primary hover:underline pointer-coarse:min-h-11\"\n data-testid=\"markup-view-note-toggle\"\n onClick={onToggle}\n >\n {showOriginal ? 'Show markup' : 'Show original'}\n </button>\n </ViewerStatusNote>\n )\n}\n","/**\n * The bar above an older version opened read-only: which version it is, \"Ask about this version\"\n * (when the host has an assistant) and the way back to the current version. Put it in the viewer's\n * sticky header, not the content area: a PDF view scrolls its first page into view, which would\n * scroll a bar above it out of sight.\n */\n\nimport type { ReactElement } from 'react'\n\nconst LINK = 'font-medium text-primary hover:underline pointer-coarse:min-h-11'\n\nexport interface VersionSnapshotBarLabels {\n /** `Version 2 · read only`; `number` is undefined when the version is not known. */\n title: (number: number | undefined) => string\n ask: string\n returnToCurrent: string\n /** For documents edited live (Word, artifacts), where \"current\" is the live document. */\n returnToLive: string\n}\n\nexport const DEFAULT_VERSION_SNAPSHOT_BAR_LABELS: VersionSnapshotBarLabels = {\n title: (number) => `${number ? `Version ${number}` : 'Saved version'} · read only`,\n ask: 'Ask about this version',\n returnToCurrent: 'Return to current version',\n returnToLive: 'Return to live document',\n}\n\nexport interface VersionSnapshotBarProps {\n /** The version's number, when known. */\n versionNumber?: number\n /** The document is edited live: the way back says \"live document\". */\n live?: boolean\n /** Ask the assistant about this version. Omitted: no ask action. */\n onAsk?: () => void\n onReturn: () => void\n labels?: Partial<VersionSnapshotBarLabels>\n}\n\nexport function VersionSnapshotBar({\n versionNumber,\n live = false,\n onAsk,\n onReturn,\n labels: overrides,\n}: VersionSnapshotBarProps): ReactElement {\n const labels = { ...DEFAULT_VERSION_SNAPSHOT_BAR_LABELS, ...overrides }\n return (\n <div\n className=\"flex items-center justify-between border-b px-3 py-2 text-xs\"\n data-testid=\"version-snapshot-bar\"\n >\n <span>{labels.title(versionNumber)}</span>\n <span className=\"flex items-center gap-3\">\n {onAsk && (\n <button type=\"button\" className={LINK} data-testid=\"version-snapshot-ask\" onClick={onAsk}>\n {labels.ask}\n </button>\n )}\n <button\n type=\"button\"\n className={LINK}\n data-testid=\"version-snapshot-return\"\n onClick={onReturn}\n >\n {live ? labels.returnToLive : labels.returnToCurrent}\n </button>\n </span>\n </div>\n )\n}\n","/**\n * PDF tab › My signature: place one's own saved signature or initials on the page as a picture stamp\n * in the markup layer (then drag and resize it like any stamp). Nothing saved yet: the adopt dialog\n * opens first and saves it. Needs a `<DocumentToolsProvider>` inside a React Query\n * `QueryClientProvider`.\n */\n\nimport { useState, type ReactElement } from 'react'\nimport { Signature } from 'lucide-react'\nimport {\n INFORMAL_SIGNATURE_NOTE,\n fetchSavedSignature,\n storeSavedSignature,\n useDocumentTools,\n type SavedSignature,\n} from '@arbidocs/react/document-tools'\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@arbidocs/react/ui'\nimport { AdoptSignatureDialog } from './AdoptSignatureDialog'\n\nexport type PlacedMark = { image: string; label: string }\n\ntype Mark = 'signature' | 'initials'\n\nconst picked = (saved: SavedSignature, mark: Mark): PlacedMark =>\n mark === 'signature'\n ? { image: saved.signature_png, label: 'Signature' }\n : { image: saved.initials_png, label: 'Initials' }\n\nexport function PlaceMySignatureButton({\n onPlace,\n compact = false,\n menuItems = false,\n}: {\n /** Arm the stamp tool with this picture: the next click on a page places it. */\n onPlace: (mark: PlacedMark) => void\n compact?: boolean\n /** Render the actions inside a shared signing menu. */\n menuItems?: boolean\n}): ReactElement {\n const { client, user, notify } = useDocumentTools()\n const [adoptFor, setAdoptFor] = useState<Mark | null>(null)\n\n // Read when asked for (sealed with one's own key: opened here, in the browser).\n const place = async (mark: Mark) => {\n try {\n const saved = await fetchSavedSignature(client)\n if (saved) return onPlace(picked(saved, mark))\n setAdoptFor(mark)\n } catch (err) {\n notify(err instanceof Error ? err.message : 'Your saved signature could not be read', 'error')\n }\n }\n\n return (\n <>\n {menuItems ? (\n <>\n <DropdownMenuItem\n onSelect={() => void place('signature')}\n data-testid=\"place-my-signature\"\n >\n Place my signature\n </DropdownMenuItem>\n <DropdownMenuItem onSelect={() => void place('initials')} data-testid=\"place-my-initials\">\n Place my initials\n </DropdownMenuItem>\n </>\n ) : (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size={compact ? 'icon' : 'sm'}\n title=\"Place my signature\"\n aria-label=\"Place my signature\"\n className=\"pointer-coarse:min-h-11\"\n data-testid=\"place-my-signature-button\"\n >\n <Signature className=\"size-4\" />\n {!compact && <span className=\"ml-1\">My signature</span>}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"max-w-72\">\n <DropdownMenuItem\n onSelect={() => void place('signature')}\n data-testid=\"place-my-signature\"\n >\n Place my signature\n </DropdownMenuItem>\n <DropdownMenuItem\n onSelect={() => void place('initials')}\n data-testid=\"place-my-initials\"\n >\n Place my initials\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuLabel className=\"text-xs font-normal text-muted-foreground\">\n {INFORMAL_SIGNATURE_NOTE}\n </DropdownMenuLabel>\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n <AdoptSignatureDialog\n open={!!adoptFor}\n onOpenChange={(open) => !open && setAdoptFor(null)}\n mode=\"save\"\n defaultName={user?.name ?? ''}\n onSave={async (signature) => {\n await storeSavedSignature(client, signature)\n const mark = adoptFor\n setAdoptFor(null)\n if (mark) onPlace(picked(signature, mark))\n }}\n onAdopt={\n menuItems\n ? () => {}\n : () => notify('Your signature is saved. Click where it goes.', 'success')\n }\n />\n </>\n )\n}\n","/**\n * Account settings › Your signature: the signature and initials saved to the account (sealed with\n * the user's own key), with Replace (the adopt dialog, saving over it) and Delete (removed from the\n * account completely; what was already placed in documents or sealed in signed PDFs stays as it\n * is). Needs a `<DocumentToolsProvider>` inside a React Query `QueryClientProvider`.\n */\n\nimport { useState, type ReactElement } from 'react'\nimport { PenLine, Trash2, Upload } from 'lucide-react'\nimport {\n INFORMAL_SIGNATURE_NOTE,\n useDeleteSavedSignature,\n useDocumentTools,\n useSavedSignature,\n useStoreSavedSignature,\n} from '@arbidocs/react/document-tools'\nimport { Button } from '@arbidocs/react/ui'\nimport { ConfirmDialog } from '../provider/dialogs'\nimport { SettingsCard, SettingsDisclosure } from '../settings/SettingsPanel'\nimport { AdoptSignatureDialog } from './AdoptSignatureDialog'\n\nexport const DELETE_SAVED_SIGNATURE_TEXT =\n 'Your saved signature and initials are removed from your account completely. Signatures you ' +\n 'already inserted into documents, and those sealed in signed PDFs, are not affected.'\n\nexport function SavedSignatureSettings(): ReactElement {\n const { user, notify } = useDocumentTools()\n const saved = useSavedSignature()\n const store = useStoreSavedSignature()\n const remove = useDeleteSavedSignature()\n const [editing, setEditing] = useState(false)\n const [uploading, setUploading] = useState(false)\n const [confirming, setConfirming] = useState(false)\n const signature = saved.data\n\n return (\n <>\n <SettingsDisclosure title=\"Saved signature\" testId=\"saved-signature-settings\">\n <SettingsCard>\n <div className=\"space-y-1\">\n <p className=\"text-sm text-muted-foreground\">\n Saved to your account, sealed with your own key, to insert into Word documents and\n place on PDFs. {INFORMAL_SIGNATURE_NOTE}\n </p>\n </div>\n {signature ? (\n <div\n className=\"flex flex-wrap items-center gap-4\"\n data-testid=\"saved-signature-preview\"\n >\n <img\n src={`data:image/png;base64,${signature.signature_png}`}\n alt=\"Your saved signature\"\n className=\"h-16 max-w-xs rounded-md border bg-white object-contain p-1\"\n />\n <img\n src={`data:image/png;base64,${signature.initials_png}`}\n alt=\"Your saved initials\"\n className=\"h-16 max-w-[8rem] rounded-md border bg-white object-contain p-1\"\n />\n </div>\n ) : (\n <p className=\"text-sm text-muted-foreground\" data-testid=\"saved-signature-none\">\n {saved.isLoading ? 'Loading…' : 'No signature saved.'}\n </p>\n )}\n <div className=\"flex flex-wrap gap-2\">\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setUploading(false)\n setEditing(true)\n }}\n data-testid=\"saved-signature-replace\"\n >\n <PenLine className=\"mr-1 size-4\" aria-hidden />\n {signature ? 'Replace' : 'Add a signature'}\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n onClick={() => {\n setUploading(true)\n setEditing(true)\n }}\n data-testid=\"saved-signature-upload\"\n >\n <Upload className=\"mr-1 size-4\" aria-hidden />\n Upload\n </Button>\n {signature && (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setConfirming(true)}\n data-testid=\"saved-signature-delete\"\n >\n <Trash2 className=\"mr-1 size-4\" aria-hidden />\n Delete\n </Button>\n )}\n </div>\n </SettingsCard>\n </SettingsDisclosure>\n <AdoptSignatureDialog\n initialStyle={uploading ? 'uploaded' : undefined}\n open={editing}\n onOpenChange={setEditing}\n mode=\"save\"\n defaultName={user?.name ?? ''}\n saved={signature ?? null}\n onSave={async (next) => void (await store.mutateAsync(next))}\n onAdopt={() => {\n setEditing(false)\n notify('Your signature is saved.', 'success')\n }}\n />\n <ConfirmDialog\n isOpen={confirming}\n onClose={() => setConfirming(false)}\n onConfirm={async () => {\n try {\n await remove.mutateAsync()\n notify('Your saved signature is deleted.', 'success')\n } catch (err) {\n notify(err instanceof Error ? err.message : 'Could not delete it', 'error')\n } finally {\n setConfirming(false)\n }\n }}\n title=\"Delete your saved signature?\"\n description={DELETE_SAVED_SIGNATURE_TEXT}\n confirmText=\"Delete\"\n variant=\"destructive\"\n isLoading={remove.isPending}\n testId=\"saved-signature-delete-confirm\"\n />\n </>\n )\n}\n","/**\n * Where a document's signature requests stand, above the document: a request waiting for the\n * viewer's signature (with \"Review and sign\"), one the viewer sent and is waiting on others (who\n * has signed; void it), and the viewer's own draft (go on editing it). Nothing when there is none.\n * Needs a `<DocumentToolsProvider>` whose `user` has an `externalId`.\n */\n\nimport type { ReactElement } from 'react'\nimport { FilePenLine, PenLine, Send } from 'lucide-react'\nimport {\n SIGNER_PROGRESS_LABELS,\n useDocumentSignatureRequests,\n useDocumentTools,\n useInviteSigners,\n useSignerCandidates,\n useVoidSignatureRequest,\n type SignatureRequest,\n} from '@arbidocs/react/document-tools'\nimport { Button } from '@arbidocs/react/ui'\n\nexport interface SignatureRequestBannerProps {\n documentId: string\n /** Open the guided signing of a request waiting for the viewer. */\n onSign: (request: SignatureRequest) => void\n /** Go on editing the viewer's draft. */\n onEditDraft: (request: SignatureRequest) => void\n /** Hide it (e.g. while the editor or the guided signing is open). */\n hidden?: boolean\n}\n\n/** Who is still to sign, and how far each has got (\"Dana Day (invited)\"). */\nfunction waitingFor(request: SignatureRequest): string[] {\n return request.signers\n .filter((s) => s.status === 'pending')\n .map((s) => `${s.name || s.email || ''} (${SIGNER_PROGRESS_LABELS[s.progress].toLowerCase()})`)\n}\n\nexport function SignatureRequestBanner({\n documentId,\n onSign,\n onEditDraft,\n hidden = false,\n}: SignatureRequestBannerProps): ReactElement | null {\n const { user, notify } = useDocumentTools()\n const requests = useDocumentSignatureRequests(documentId, !hidden)\n const voidRequest = useVoidSignatureRequest()\n const invite = useInviteSigners()\n const me = user?.externalId ?? null\n const candidates = useSignerCandidates(!hidden && !!me)\n const isOwner = candidates.data?.some((c) => c.externalId === me && c.role === 'owner') ?? false\n if (hidden || !me || !requests.data) return null\n const open = requests.data.filter((r) => r.status === 'sent' || r.status === 'draft')\n const awaitingMe = open.filter(\n (r) =>\n r.status === 'sent' && r.signers.some((s) => s.user_ext_id === me && s.status === 'pending')\n )\n const sentByMe = open.filter(\n (r) => r.status === 'sent' && r.created_by === me && !awaitingMe.includes(r)\n )\n const drafts = open.filter((r) => r.status === 'draft' && r.created_by === me)\n if (awaitingMe.length + sentByMe.length + drafts.length === 0) return null\n\n const doVoid = async (request: SignatureRequest) => {\n try {\n await voidRequest.mutateAsync(request.external_id)\n notify(request.status === 'draft' ? 'Draft discarded.' : 'Signature request voided.', 'info')\n } catch (err) {\n notify(err instanceof Error ? err.message : 'Could not void it', 'error')\n }\n }\n\n return (\n <div\n className=\"space-y-1.5 border-b border-border px-3 py-2 text-sm\"\n data-testid=\"signature-request-banner\"\n >\n {awaitingMe.map((r) => {\n const count = r.fields.filter((f) => f.signer === me).length\n const author = r.signers.find((s) => s.user_ext_id === r.created_by)?.name\n return (\n <div\n key={r.external_id}\n className=\"flex flex-wrap items-center gap-2 rounded-md bg-blue-50 px-2 py-1.5 text-blue-950 dark:bg-blue-950/40 dark:text-blue-100\"\n data-testid=\"signature-request-awaiting-me\"\n >\n <PenLine className=\"size-4 shrink-0\" aria-hidden />\n <span className=\"mr-auto\">\n {author && r.created_by !== me\n ? `${author} asked you to sign`\n : 'You are asked to sign'}{' '}\n {count} field{count === 1 ? '' : 's'} in this document.\n {r.stale && ' It has changed since it was sent: ask for it again.'}\n </span>\n <Button\n type=\"button\"\n size=\"sm\"\n onClick={() => onSign(r)}\n disabled={r.stale}\n data-testid=\"signature-request-start\"\n >\n Review and sign\n </Button>\n </div>\n )\n })}\n {sentByMe.map((r) => {\n const pending = waitingFor(r)\n const signed = r.signers.length - pending.length\n const invited = r.signers.filter((s) => s.progress === 'invited' && s.email)\n return (\n <div\n key={r.external_id}\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"signature-request-sent\"\n >\n <Send className=\"size-4 shrink-0 text-muted-foreground\" aria-hidden />\n <span className=\"mr-auto\">\n Out for signature: {signed} of {r.signers.length} signed\n {pending.length > 0 && (\n <span className=\"text-muted-foreground\"> · waiting for {pending.join(', ')}</span>\n )}\n {r.stale && (\n <span className=\"text-red-text\"> · the document has changed since it was sent</span>\n )}\n </span>\n {isOwner && invited.length > 0 && (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n disabled={invite.isPending}\n onClick={async () => {\n try {\n await invite.mutateAsync({\n documentId,\n emails: invited.map((s) => s.email!),\n })\n notify(\n 'Invited again: anyone already registered is added now and asked to sign.',\n 'success'\n )\n } catch (err) {\n notify(err instanceof Error ? err.message : 'Could not invite', 'error')\n }\n }}\n data-testid=\"signature-request-reinvite\"\n >\n Invite again\n </Button>\n )}\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => doVoid(r)}\n disabled={voidRequest.isPending}\n >\n Void\n </Button>\n </div>\n )\n })}\n {drafts.map((r) => (\n <div\n key={r.external_id}\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"signature-request-draft\"\n >\n <FilePenLine className=\"size-4 shrink-0 text-muted-foreground\" aria-hidden />\n <span className=\"mr-auto\">\n Draft signature request: {r.fields.length} field{r.fields.length === 1 ? '' : 's'}, not\n sent yet.\n </span>\n <Button type=\"button\" size=\"sm\" variant=\"outline\" onClick={() => onEditDraft(r)}>\n Continue\n </Button>\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => doVoid(r)}\n disabled={voidRequest.isPending}\n >\n Discard\n </Button>\n </div>\n ))}\n </div>\n )\n}\n","import { useState } from 'react'\nimport { createFileShare, useDocumentTools } from '@arbidocs/react/document-tools'\nimport { Button, Label, Textarea } from '@arbidocs/react/ui'\nimport { ModalScaffold } from '../settings/ModalScaffold'\n\nexport function FileShareDialog({\n open,\n onOpenChange,\n documentId,\n version,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n documentId: string\n version: number\n}) {\n const { client, prepareFileShare } = useDocumentTools()\n const [emails, setEmails] = useState('')\n const [message, setMessage] = useState('')\n const [busy, setBusy] = useState(false)\n const [error, setError] = useState('')\n return (\n <ModalScaffold\n open={open}\n onOpenChange={(next) => !busy && onOpenChange(next)}\n title={`Share file · version ${version}`}\n description=\"Recipients can view and download only this version. They get no workspace access or other versions.\"\n showDescription\n testId=\"file-share-dialog\"\n >\n <form\n onSubmit={async (event) => {\n event.preventDefault()\n setBusy(true)\n setError('')\n try {\n const recipients = [\n ...new Set(\n emails\n .split(/[,;\\n]+/)\n .map((e) => e.trim().toLowerCase())\n .filter(Boolean)\n ),\n ]\n if (!recipients.length) throw new Error('Add at least one recipient email')\n await prepareFileShare(documentId)\n const share = await createFileShare(client, documentId, {\n version,\n recipients: recipients.map((email) => ({ email, permission: 'view' })),\n message,\n })\n window.location.assign(`/shared-files/${share.external_id}`)\n } catch (e) {\n setError(e instanceof Error ? e.message : 'Could not share the file')\n } finally {\n setBusy(false)\n }\n }}\n >\n <ModalScaffold.Body>\n <Label htmlFor=\"file-share-emails\">Recipient emails</Label>\n <Textarea\n id=\"file-share-emails\"\n data-testid=\"file-share-emails\"\n value={emails}\n onChange={(e) => setEmails(e.target.value)}\n placeholder=\"One email per line, or separated by commas\"\n required\n />\n <Label htmlFor=\"file-share-message\">Message (optional)</Label>\n <Textarea\n id=\"file-share-message\"\n value={message}\n onChange={(e) => setMessage(e.target.value)}\n maxLength={2000}\n />\n <p className=\"text-sm text-muted-foreground\">\n Each recipient receives an email with an account-specific link. External users on a Box\n receive up to 24 hours of access.\n </p>\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n </ModalScaffold.Body>\n <ModalScaffold.Footer>\n <Button\n type=\"button\"\n variant=\"outline\"\n disabled={busy}\n onClick={() => onOpenChange(false)}\n >\n Cancel\n </Button>\n <Button type=\"submit\" disabled={busy} data-testid=\"file-share-send\">\n {busy ? 'Sharing…' : 'Share this version'}\n </Button>\n </ModalScaffold.Footer>\n </form>\n </ModalScaffold>\n )\n}\n"]}
|
|
@@ -169,7 +169,8 @@ function AdoptSignatureDialog({
|
|
|
169
169
|
onAdopt,
|
|
170
170
|
saved = null,
|
|
171
171
|
onSave,
|
|
172
|
-
mode = "adopt"
|
|
172
|
+
mode = "adopt",
|
|
173
|
+
initialStyle
|
|
173
174
|
}) {
|
|
174
175
|
const saving = mode === "save";
|
|
175
176
|
const [saveToAccount, setSaveToAccount] = useState(false);
|
|
@@ -193,7 +194,7 @@ function AdoptSignatureDialog({
|
|
|
193
194
|
if (saved) {
|
|
194
195
|
setName(saved.name);
|
|
195
196
|
setInitials(saved.initials);
|
|
196
|
-
setStyle(saved.style);
|
|
197
|
+
setStyle(initialStyle ?? saved.style);
|
|
197
198
|
setInitialsStyle(saved.initials_style);
|
|
198
199
|
setSavedDrawing(saved.style === "drawn" ? dataUrlOf(saved.signature_png) : null);
|
|
199
200
|
setUpload(saved.style === "uploaded" ? dataUrlOf(saved.signature_png) : null);
|
|
@@ -201,8 +202,9 @@ function AdoptSignatureDialog({
|
|
|
201
202
|
} else {
|
|
202
203
|
setName(defaultName);
|
|
203
204
|
setInitials(initialsOf(defaultName));
|
|
205
|
+
setStyle(initialStyle ?? "typed");
|
|
204
206
|
}
|
|
205
|
-
}, [open, defaultName, saved]);
|
|
207
|
+
}, [open, defaultName, saved, initialStyle]);
|
|
206
208
|
const adopt = async () => {
|
|
207
209
|
setError(null);
|
|
208
210
|
if (!name.trim() || !initials.trim()) return;
|
|
@@ -478,5 +480,5 @@ function AdoptSignatureDialog({
|
|
|
478
480
|
}
|
|
479
481
|
|
|
480
482
|
export { AdoptSignatureDialog, TYPED_SIGNATURE_STYLE };
|
|
481
|
-
//# sourceMappingURL=chunk-
|
|
482
|
-
//# sourceMappingURL=chunk-
|
|
483
|
+
//# sourceMappingURL=chunk-IA5BYEO7.js.map
|
|
484
|
+
//# sourceMappingURL=chunk-IA5BYEO7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/document-tools/AdoptSignatureDialog.tsx"],"names":["SignaturePad"],"mappings":"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","file":"chunk-IA5BYEO7.js","sourcesContent":["/**\n * Adopt a signature once, before applying it at each field: type it (the name in a signature\n * face, as the signed PDF draws it), draw it, or upload an image of it; initials likewise typed or\n * drawn. A drawn or uploaded mark is handed on as a PNG (white made transparent); the server\n * re-encodes it.\n *\n * The drawing pad spans the screen's width on a phone and is a generous box on a tablet or desktop.\n * Its canvas is backed at the device's pixel ratio (crisp strokes on a retina screen), and it takes\n * every touch for itself (`touch-action: none`): drawing with a finger never scrolls or zooms the\n * page. Strokes are kept as points, so a resize (turning the phone) redraws them at the new size.\n *\n * With `onSave`, the person may also tick \"Save to my account for future use\": the signature and\n * initials are then sealed to their own key and kept for next time (`saved` prefills the dialog).\n * In `mode=\"save\"` (account settings) the dialog only saves.\n */\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type PointerEvent,\n type ReactElement,\n} from 'react'\nimport {\n initialsOf,\n intentText,\n type AdoptedSignature,\n type SavedSignature,\n} from '@arbidocs/react/document-tools'\nimport {\n Button,\n Checkbox,\n Input,\n Label,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n cn,\n} from '@arbidocs/react/ui'\nimport { ModalScaffold } from '../settings/ModalScaffold'\n\nexport interface AdoptedMark {\n adopted: AdoptedSignature\n /** A data URL of the drawn/uploaded signature, for showing it at each field; null when typed. */\n signatureUrl: string | null\n /** A data URL of the drawn initials; null when typed. */\n initialsUrl?: string | null\n}\n\nexport interface AdoptSignatureDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n defaultName: string\n onAdopt: (mark: AdoptedMark) => void\n /** The signature saved to the account: the dialog starts from it. */\n saved?: SavedSignature | null\n /** Present: offer \"Save to my account for future use\" (and save when ticked). */\n onSave?: (signature: SavedSignature) => Promise<void>\n /** `save`: account settings, the dialog only saves the signature (no signing). */\n mode?: 'adopt' | 'save'\n /** Start on a particular input tab, for the account's Upload action. */\n initialStyle?: AdoptedSignature['style']\n}\n\n/** Typed signatures look like the PDF will: an italic serif in ink blue. */\nexport const TYPED_SIGNATURE_STYLE = {\n fontFamily: '\"Times New Roman\", Times, serif',\n fontStyle: 'italic',\n color: '#0d1a59',\n} as const\n\ntype Style = AdoptedSignature['style']\ntype InitialsStyle = 'typed' | 'drawn'\ntype Point = { x: number; y: number }\n\ninterface SignaturePadHandle {\n isBlank: () => boolean\n toDataUrl: () => string | null\n clear: () => void\n}\n\n/**\n * A drawing pad: strokes in fractions of the pad, painted on a canvas at the device's pixel ratio.\n * `onInk` fires when the first stroke lands or the pad is cleared.\n */\nconst SignaturePad = forwardRef<\n SignaturePadHandle,\n { label: string; className?: string; onInk: (has: boolean) => void; testId?: string }\n>(function SignaturePad({ label, className, onInk, testId }, ref) {\n const canvas = useRef<HTMLCanvasElement>(null)\n const strokes = useRef<Point[][]>([])\n const drawing = useRef<Point[] | null>(null)\n\n const paint = useCallback(() => {\n const c = canvas.current\n const ctx = c?.getContext('2d')\n if (!c || !ctx) return\n const ratio = window.devicePixelRatio || 1\n const width = c.width / ratio\n const height = c.height / ratio\n ctx.setTransform(ratio, 0, 0, ratio, 0, 0)\n ctx.clearRect(0, 0, width, height)\n ctx.lineWidth = Math.min(4, Math.max(2, height * 0.018))\n ctx.lineCap = 'round'\n ctx.lineJoin = 'round'\n ctx.strokeStyle = TYPED_SIGNATURE_STYLE.color\n for (const stroke of strokes.current) {\n if (!stroke.length) continue\n ctx.beginPath()\n ctx.moveTo(stroke[0]!.x * width, stroke[0]!.y * height)\n // A dot is a stroke too.\n if (stroke.length === 1) ctx.lineTo(stroke[0]!.x * width + 0.1, stroke[0]!.y * height)\n for (const p of stroke.slice(1)) ctx.lineTo(p.x * width, p.y * height)\n ctx.stroke()\n }\n }, [])\n\n // Back the canvas at the device's pixel ratio, and redraw on every resize.\n useEffect(() => {\n const c = canvas.current\n if (!c) return\n const fit = () => {\n const rect = c.getBoundingClientRect()\n const ratio = window.devicePixelRatio || 1\n const width = Math.max(1, Math.round(rect.width * ratio))\n const height = Math.max(1, Math.round(rect.height * ratio))\n if (c.width !== width || c.height !== height) {\n c.width = width\n c.height = height\n }\n paint()\n }\n fit()\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(fit)\n observer?.observe(c)\n return () => observer?.disconnect()\n }, [paint])\n\n useImperativeHandle(\n ref,\n () => ({\n isBlank: () => strokes.current.every((s) => s.length === 0),\n toDataUrl: () =>\n strokes.current.some((s) => s.length)\n ? (canvas.current?.toDataURL('image/png') ?? null)\n : null,\n clear: () => {\n strokes.current = []\n paint()\n onInk(false)\n },\n }),\n [paint, onInk]\n )\n\n const at = (e: PointerEvent<HTMLCanvasElement>): Point => {\n const r = e.currentTarget.getBoundingClientRect()\n return {\n x: Math.min(1, Math.max(0, (e.clientX - r.left) / (r.width || 1))),\n y: Math.min(1, Math.max(0, (e.clientY - r.top) / (r.height || 1))),\n }\n }\n\n return (\n <canvas\n ref={canvas}\n className={cn(\n 'block touch-none rounded-md border bg-white select-none [overscroll-behavior:contain]',\n className\n )}\n style={{ touchAction: 'none' }}\n aria-label={label}\n role=\"img\"\n onPointerDown={(e) => {\n e.preventDefault()\n e.currentTarget.setPointerCapture?.(e.pointerId)\n drawing.current = [at(e)]\n strokes.current.push(drawing.current)\n paint()\n onInk(true)\n }}\n onPointerMove={(e) => {\n if (!drawing.current) return\n e.preventDefault()\n // Every sample the browser coalesced, for a smooth line from a fast finger or pen.\n const native = e.nativeEvent as globalThis.PointerEvent\n const samples = native.getCoalescedEvents?.() ?? []\n if (samples.length) {\n const r = e.currentTarget.getBoundingClientRect()\n for (const s of samples)\n drawing.current.push({\n x: Math.min(1, Math.max(0, (s.clientX - r.left) / (r.width || 1))),\n y: Math.min(1, Math.max(0, (s.clientY - r.top) / (r.height || 1))),\n })\n } else drawing.current.push(at(e))\n paint()\n }}\n onPointerUp={() => (drawing.current = null)}\n onPointerCancel={() => (drawing.current = null)}\n data-testid={testId}\n />\n )\n})\n\n/** Draw an uploaded image onto a fresh canvas, fitted, with near-white made transparent. */\nasync function uploadedPng(file: File): Promise<string> {\n const url = URL.createObjectURL(file)\n try {\n const img = new Image()\n await new Promise<void>((resolve, reject) => {\n img.onload = () => resolve()\n img.onerror = () => reject(new Error('That file is not an image'))\n img.src = url\n })\n const canvas = document.createElement('canvas')\n canvas.width = 900\n canvas.height = 300\n const ctx = canvas.getContext('2d')!\n const scale = Math.min(canvas.width / img.width, canvas.height / img.height)\n const w = img.width * scale\n const h = img.height * scale\n ctx.drawImage(img, (canvas.width - w) / 2, (canvas.height - h) / 2, w, h)\n const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height)\n for (let i = 0; i < pixels.data.length; i += 4) {\n const [r, g, b] = [pixels.data[i]!, pixels.data[i + 1]!, pixels.data[i + 2]!]\n if (r > 225 && g > 225 && b > 225) pixels.data[i + 3] = 0\n }\n ctx.putImageData(pixels, 0, 0)\n return canvas.toDataURL('image/png')\n } finally {\n URL.revokeObjectURL(url)\n }\n}\n\nconst base64Of = (dataUrl: string) => dataUrl.slice(dataUrl.indexOf(',') + 1)\nconst dataUrlOf = (png: string) => `data:image/png;base64,${png}`\n\n/** A typed mark as a picture (transparent, ink blue, the signature face): what is saved for it. */\nfunction typedPng(text: string, height = 120): string {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) return ''\n const font = `italic ${Math.round(height * 0.6)}px ${TYPED_SIGNATURE_STYLE.fontFamily}`\n ctx.font = font\n const width = Math.max(height, Math.ceil(ctx.measureText(text).width + height * 0.4))\n canvas.width = width\n canvas.height = height\n ctx.font = font\n ctx.fillStyle = TYPED_SIGNATURE_STYLE.color\n ctx.textBaseline = 'middle'\n ctx.fillText(text, height * 0.2, height / 2)\n return base64Of(canvas.toDataURL('image/png'))\n}\n\n/** Full width of the screen on a phone (past the dialog's padding), a large box on wider screens. */\nconst PAD_SIGNATURE = '-mx-6 w-[calc(100%+3rem)] h-[44vw] min-h-36 sm:mx-0 sm:w-full sm:h-56'\nconst PAD_INITIALS = '-mx-6 w-[calc(100%+3rem)] h-[34vw] min-h-28 sm:mx-0 sm:w-80 sm:h-40'\n\nexport function AdoptSignatureDialog({\n open,\n onOpenChange,\n defaultName,\n onAdopt,\n saved = null,\n onSave,\n mode = 'adopt',\n initialStyle,\n}: AdoptSignatureDialogProps): ReactElement {\n const saving = mode === 'save'\n const [saveToAccount, setSaveToAccount] = useState(false)\n const [busy, setBusy] = useState(false)\n /** The saved drawing, shown on the pad until the person draws a new one. */\n const [savedDrawing, setSavedDrawing] = useState<string | null>(null)\n const [savedInitials, setSavedInitials] = useState<string | null>(null)\n const [name, setName] = useState(defaultName)\n const [initials, setInitials] = useState(() => initialsOf(defaultName))\n const [style, setStyle] = useState<Style>('typed')\n const [initialsStyle, setInitialsStyle] = useState<InitialsStyle>('typed')\n const [hasInk, setHasInk] = useState(false)\n const [hasInitialsInk, setHasInitialsInk] = useState(false)\n const [upload, setUpload] = useState<string | null>(null)\n const [error, setError] = useState<string | null>(null)\n const signaturePad = useRef<SignaturePadHandle>(null)\n const initialsPad = useRef<SignaturePadHandle>(null)\n\n useEffect(() => {\n if (!open) return\n setSaveToAccount(false)\n setError(null)\n if (saved) {\n setName(saved.name)\n setInitials(saved.initials)\n setStyle(initialStyle ?? saved.style)\n setInitialsStyle(saved.initials_style)\n setSavedDrawing(saved.style === 'drawn' ? dataUrlOf(saved.signature_png) : null)\n setUpload(saved.style === 'uploaded' ? dataUrlOf(saved.signature_png) : null)\n setSavedInitials(saved.initials_style === 'drawn' ? dataUrlOf(saved.initials_png) : null)\n } else {\n setName(defaultName)\n setInitials(initialsOf(defaultName))\n setStyle(initialStyle ?? 'typed')\n }\n }, [open, defaultName, saved, initialStyle])\n\n const adopt = async () => {\n setError(null)\n if (!name.trim() || !initials.trim()) return\n let signatureUrl: string | null = null\n if (style === 'drawn') {\n signatureUrl = signaturePad.current?.toDataUrl() ?? (hasInk ? null : savedDrawing)\n if (!signatureUrl) return setError('Draw your signature first.')\n } else if (style === 'uploaded') {\n signatureUrl = upload\n if (!signatureUrl) return setError('Choose an image first.')\n }\n let initialsUrl: string | null = null\n if (initialsStyle === 'drawn') {\n initialsUrl = initialsPad.current?.toDataUrl() ?? (hasInitialsInk ? null : savedInitials)\n if (!initialsUrl) return setError('Draw your initials first.')\n }\n if (onSave && (saving || saveToAccount)) {\n setBusy(true)\n try {\n await onSave({\n name: name.trim(),\n initials: initials.trim(),\n style,\n initials_style: initialsStyle,\n signature_png: signatureUrl ? base64Of(signatureUrl) : typedPng(name.trim()),\n initials_png: initialsUrl ? base64Of(initialsUrl) : typedPng(initials.trim()),\n })\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Your signature could not be saved')\n return\n } finally {\n setBusy(false)\n }\n }\n onAdopt({\n adopted: {\n name: name.trim(),\n initials: initials.trim(),\n style,\n ...(signatureUrl ? { signature_image: base64Of(signatureUrl) } : {}),\n ...(initialsUrl ? { initials_image: base64Of(initialsUrl) } : {}),\n },\n signatureUrl,\n initialsUrl,\n })\n }\n\n return (\n <ModalScaffold\n open={open}\n onOpenChange={onOpenChange}\n title={saving ? 'Your signature' : 'Adopt your signature'}\n description={\n saving\n ? 'Saved to your account, sealed with your own key, for placing in documents yourself.'\n : 'You adopt it once and apply it at each place you are asked to sign.'\n }\n showDescription\n size=\"lg\"\n testId=\"adopt-signature-dialog\"\n >\n <ModalScaffold.Body>\n <div className=\"grid grid-cols-[1fr_7rem] gap-3\">\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"adopt-name\">Full name</Label>\n <Input\n id=\"adopt-name\"\n value={name}\n onChange={(e) => {\n setName(e.target.value)\n setInitials(initialsOf(e.target.value))\n }}\n data-testid=\"adopt-signature-name\"\n />\n </div>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"adopt-initials\">Initials</Label>\n <Input\n id=\"adopt-initials\"\n value={initials}\n maxLength={12}\n onChange={(e) => setInitials(e.target.value)}\n data-testid=\"adopt-signature-initials\"\n />\n </div>\n </div>\n <section className=\"space-y-1.5\" aria-label=\"Signature\">\n <h3 className=\"text-sm font-medium\">Signature</h3>\n <Tabs\n value={style}\n onValueChange={(v) => {\n setStyle(v as Style)\n setError(null)\n }}\n >\n <TabsList className=\"grid w-full grid-cols-3\">\n <TabsTrigger value=\"typed\" data-testid=\"adopt-tab-typed\">\n Type\n </TabsTrigger>\n <TabsTrigger value=\"drawn\" data-testid=\"adopt-tab-drawn\">\n Draw\n </TabsTrigger>\n <TabsTrigger value=\"uploaded\" data-testid=\"adopt-tab-uploaded\">\n Upload\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"typed\">\n <div\n className=\"flex h-28 items-center justify-center overflow-hidden rounded-md border bg-white px-4 text-4xl whitespace-nowrap\"\n style={TYPED_SIGNATURE_STYLE}\n data-testid=\"adopt-signature-typed-preview\"\n >\n {name.trim() || 'Your name'}\n </div>\n </TabsContent>\n <TabsContent value=\"drawn\" forceMount hidden={style !== 'drawn'}>\n <div className=\"relative\">\n <SignaturePad\n ref={signaturePad}\n label=\"Draw your signature\"\n className={PAD_SIGNATURE}\n onInk={setHasInk}\n testId=\"adopt-signature-canvas\"\n />\n {savedDrawing && !hasInk && (\n <img\n src={savedDrawing}\n alt=\"Your saved signature\"\n className=\"pointer-events-none absolute inset-0 h-full w-full object-contain p-2\"\n data-testid=\"adopt-signature-saved\"\n />\n )}\n </div>\n <div className=\"flex items-center justify-between pt-1 text-xs text-muted-foreground\">\n <span>Sign with your finger, a pen or the mouse.</span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => signaturePad.current?.clear()}\n disabled={!hasInk}\n data-testid=\"adopt-signature-clear\"\n >\n Clear\n </Button>\n </div>\n </TabsContent>\n <TabsContent value=\"uploaded\" forceMount hidden={style !== 'uploaded'}>\n <div className=\"flex h-28 items-center justify-center rounded-md border bg-white\">\n {upload ? (\n <img src={upload} alt=\"Uploaded signature\" className=\"h-full object-contain\" />\n ) : (\n <span className=\"text-sm text-muted-foreground\">No image chosen</span>\n )}\n </div>\n <Input\n type=\"file\"\n accept=\"image/png,image/jpeg,image/webp\"\n className=\"mt-2\"\n onChange={async (e) => {\n const file = e.target.files?.[0]\n if (!file) return\n try {\n setUpload(await uploadedPng(file))\n setError(null)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'The image could not be read')\n }\n }}\n data-testid=\"adopt-signature-upload\"\n />\n </TabsContent>\n </Tabs>\n </section>\n <section className=\"space-y-1.5\" aria-label=\"Initials\">\n <h3 className=\"text-sm font-medium\">Initials</h3>\n <Tabs\n value={initialsStyle}\n onValueChange={(v) => {\n setInitialsStyle(v as InitialsStyle)\n setError(null)\n }}\n >\n <TabsList className=\"grid w-full grid-cols-2 sm:w-80\">\n <TabsTrigger value=\"typed\" data-testid=\"adopt-initials-tab-typed\">\n Type\n </TabsTrigger>\n <TabsTrigger value=\"drawn\" data-testid=\"adopt-initials-tab-drawn\">\n Draw\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"typed\">\n <div\n className=\"flex h-20 items-center justify-center rounded-md border bg-white px-4 text-3xl sm:w-80\"\n style={TYPED_SIGNATURE_STYLE}\n data-testid=\"adopt-initials-typed-preview\"\n >\n {initials.trim() || 'AB'}\n </div>\n </TabsContent>\n <TabsContent value=\"drawn\" forceMount hidden={initialsStyle !== 'drawn'}>\n <div className=\"relative sm:w-80\">\n <SignaturePad\n ref={initialsPad}\n label=\"Draw your initials\"\n className={PAD_INITIALS}\n onInk={setHasInitialsInk}\n testId=\"adopt-initials-canvas\"\n />\n {savedInitials && !hasInitialsInk && (\n <img\n src={savedInitials}\n alt=\"Your saved initials\"\n className=\"pointer-events-none absolute inset-0 h-full w-full object-contain p-2\"\n />\n )}\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => initialsPad.current?.clear()}\n disabled={!hasInitialsInk}\n >\n Clear\n </Button>\n </TabsContent>\n </Tabs>\n </section>\n {onSave && !saving && (\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox\n checked={saveToAccount}\n onCheckedChange={(c) => setSaveToAccount(c === true)}\n data-testid=\"adopt-signature-save\"\n />\n Save to my account for future use\n </label>\n )}\n {name.trim() && !saving && (\n <p className=\"text-xs text-muted-foreground\">\n By adopting it you agree to sign electronically: “{intentText({ name })}”\n </p>\n )}\n {error && (\n <p className=\"text-sm text-red-text\" role=\"alert\">\n {error}\n </p>\n )}\n </ModalScaffold.Body>\n <ModalScaffold.Footer>\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={() => void adopt()}\n disabled={busy || !name.trim() || !initials.trim()}\n data-testid=\"adopt-signature-submit\"\n >\n {saving ? 'Save' : 'Adopt and sign'}\n </Button>\n </ModalScaffold.Footer>\n </ModalScaffold>\n )\n}\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
var chunk5Y6V7F6W_cjs = require('./chunk-5Y6V7F6W.cjs');
|
|
5
5
|
var chunkD54JXTPG_cjs = require('./chunk-D54JXTPG.cjs');
|
|
6
6
|
var chunkJIOHDVWH_cjs = require('./chunk-JIOHDVWH.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkFQIJICZE_cjs = require('./chunk-FQIJICZE.cjs');
|
|
8
8
|
var chunkVZOOGA47_cjs = require('./chunk-VZOOGA47.cjs');
|
|
9
9
|
var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
|
|
10
10
|
var ui = require('@arbidocs/react/ui');
|
|
@@ -396,9 +396,9 @@ function workspaceActivityHeadline(item) {
|
|
|
396
396
|
return item.status ? `${run} (${item.status.replace(/_/g, " ")})` : run;
|
|
397
397
|
}
|
|
398
398
|
default: {
|
|
399
|
-
const headline =
|
|
399
|
+
const headline = chunkFQIJICZE_cjs.taskActivityHeadline(
|
|
400
400
|
{ kind: item.kind, detail: item.detail },
|
|
401
|
-
|
|
401
|
+
chunkFQIJICZE_cjs.DEFAULT_TASK_ACTIVITY_LABELS
|
|
402
402
|
);
|
|
403
403
|
return `${headline} in ${thread}`;
|
|
404
404
|
}
|
|
@@ -2096,5 +2096,5 @@ exports.tagTableMarkdown = tagTableMarkdown;
|
|
|
2096
2096
|
exports.tagsPageNouns = tagsPageNouns;
|
|
2097
2097
|
exports.workspaceActivityHeadline = workspaceActivityHeadline;
|
|
2098
2098
|
exports.workspaceActivityTarget = workspaceActivityTarget;
|
|
2099
|
-
//# sourceMappingURL=chunk-
|
|
2100
|
-
//# sourceMappingURL=chunk-
|
|
2099
|
+
//# sourceMappingURL=chunk-IJQ5DIZT.cjs.map
|
|
2100
|
+
//# sourceMappingURL=chunk-IJQ5DIZT.cjs.map
|