@arbidocs/blocks 0.4.75 → 0.4.77
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/agents/index.cjs +341 -253
- package/dist/agents/index.js +3 -3
- package/dist/agents/tasks/TaskActivityTimeline.d.ts +1 -1
- package/dist/agents/tasks/WorkflowThreadStrip.d.ts +44 -1
- package/dist/agents/tasks/index.d.ts +2 -1
- package/dist/agents/tasks/linkedRuns.d.ts +31 -0
- package/dist/agents/workflows/SchemaForm.d.ts +6 -1
- package/dist/agents/workflows/StepParts.d.ts +109 -0
- package/dist/agents/workflows/WorkflowRunner.d.ts +11 -2
- package/dist/agents/workflows/index.d.ts +3 -2
- package/dist/agents/workflows/planSteps.d.ts +10 -1
- package/dist/agents/workflows/run.d.ts +61 -8
- package/dist/agents/workflows/types.d.ts +160 -4
- package/dist/agents/workflows/useWorkflowPreview.d.ts +2 -1
- package/dist/agents/workflows/useWorkflowView.d.ts +19 -0
- package/dist/chat/ChatPage.d.ts +1 -1
- package/dist/chat/WorkflowStepChip.d.ts +24 -0
- package/dist/chat/chat-page-types.d.ts +4 -0
- package/dist/chat/index.cjs +130 -122
- package/dist/chat/index.d.ts +1 -0
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-YWYVIQ7T.js → chunk-34UW6XUQ.js} +948 -38
- package/dist/chunk-34UW6XUQ.js.map +1 -0
- package/dist/{chunk-P2RBE3FD.cjs → chunk-3XR3IEGU.cjs} +965 -35
- package/dist/chunk-3XR3IEGU.cjs.map +1 -0
- package/dist/{chunk-ZWA7UUZL.cjs → chunk-7YUFMNFW.cjs} +2 -54
- package/dist/chunk-7YUFMNFW.cjs.map +1 -0
- package/dist/chunk-A24C6BNA.js +92 -0
- package/dist/chunk-A24C6BNA.js.map +1 -0
- package/dist/chunk-AINNADMT.cjs +62 -0
- package/dist/chunk-AINNADMT.cjs.map +1 -0
- package/dist/{chunk-7CVF3DK2.cjs → chunk-EKIUMNCN.cjs} +5 -5
- package/dist/{chunk-7CVF3DK2.cjs.map → chunk-EKIUMNCN.cjs.map} +1 -1
- package/dist/chunk-FE4ULGOR.js +151 -0
- package/dist/chunk-FE4ULGOR.js.map +1 -0
- package/dist/chunk-FT5FFXSJ.js +60 -0
- package/dist/chunk-FT5FFXSJ.js.map +1 -0
- package/dist/{chunk-HITAN7JF.cjs → chunk-GTXOV7IJ.cjs} +4 -4
- package/dist/{chunk-HITAN7JF.cjs.map → chunk-GTXOV7IJ.cjs.map} +1 -1
- package/dist/{chunk-LT2UORRG.js → chunk-HEVVT6IT.js} +205 -38
- package/dist/chunk-HEVVT6IT.js.map +1 -0
- package/dist/{chunk-IPGKTUF7.cjs → chunk-HOD6OM7L.cjs} +68 -3
- package/dist/chunk-HOD6OM7L.cjs.map +1 -0
- package/dist/{chunk-F4LUD3YC.cjs → chunk-JFUN4D7D.cjs} +229 -60
- package/dist/chunk-JFUN4D7D.cjs.map +1 -0
- package/dist/{chunk-UIWLDSTF.js → chunk-NIP5BOP7.js} +68 -5
- package/dist/chunk-NIP5BOP7.js.map +1 -0
- package/dist/{chunk-MK6NJQGF.js → chunk-OEM5ARVM.js} +3 -3
- package/dist/{chunk-MK6NJQGF.js.map → chunk-OEM5ARVM.js.map} +1 -1
- package/dist/{chunk-5EBGRG3X.js → chunk-OPA2Y6YZ.js} +3 -54
- package/dist/chunk-OPA2Y6YZ.js.map +1 -0
- package/dist/chunk-TZR36PPP.cjs +95 -0
- package/dist/chunk-TZR36PPP.cjs.map +1 -0
- package/dist/{chunk-WJEKRSPH.js → chunk-UEU23PTW.js} +3 -3
- package/dist/{chunk-WJEKRSPH.js.map → chunk-UEU23PTW.js.map} +1 -1
- package/dist/chunk-ZVBPRMHJ.cjs +153 -0
- package/dist/chunk-ZVBPRMHJ.cjs.map +1 -0
- package/dist/connect/docx.cjs +10 -88
- package/dist/connect/docx.cjs.map +1 -1
- package/dist/connect/docx.js +6 -86
- package/dist/connect/docx.js.map +1 -1
- package/dist/connect/index.cjs +295 -32
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +280 -17
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedWorkflowRunner.d.ts +16 -2
- package/dist/connection/WorkflowRunnerDialogs.d.ts +37 -0
- package/dist/connection/useWorkflowThread.d.ts +12 -0
- package/dist/document-tools/index.cjs +7 -143
- package/dist/document-tools/index.cjs.map +1 -1
- package/dist/document-tools/index.js +5 -144
- package/dist/document-tools/index.js.map +1 -1
- package/dist/docx/index.cjs +18 -17
- package/dist/docx/index.cjs.map +1 -1
- package/dist/docx/index.js +3 -2
- package/dist/docx/index.js.map +1 -1
- package/dist/facts/index.cjs +1 -1
- package/dist/facts/index.js +1 -1
- package/dist/files/index.cjs +1 -1
- package/dist/files/index.js +1 -1
- package/dist/home/index.cjs +1 -1
- package/dist/home/index.js +1 -1
- package/dist/index.cjs +631 -535
- package/dist/index.js +8 -8
- package/dist/settings/index.cjs +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/shell/index.cjs +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/studio/index.cjs +4 -4
- package/dist/studio/index.js +3 -3
- package/dist/workflow-canvas/SignalsEditor.d.ts +41 -0
- package/dist/workflow-canvas/StepActionSettings.d.ts +132 -0
- package/dist/workflow-canvas/StepInspector.d.ts +28 -2
- package/dist/workflow-canvas/TriggerInspector.d.ts +11 -2
- package/dist/workflow-canvas/WorkflowBuilder.d.ts +17 -4
- package/dist/workflow-canvas/WorkflowCanvas.d.ts +27 -2
- package/dist/workflow-canvas/edit.d.ts +9 -1
- package/dist/workflow-canvas/index.cjs +1282 -208
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.d.ts +2 -1
- package/dist/workflow-canvas/index.js +1255 -188
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workflow-canvas/trigger.d.ts +20 -1
- package/package.json +4 -4
- package/src/workflow-canvas/canvas.css +9 -0
- package/dist/chunk-5EBGRG3X.js.map +0 -1
- package/dist/chunk-F4LUD3YC.cjs.map +0 -1
- package/dist/chunk-IPGKTUF7.cjs.map +0 -1
- package/dist/chunk-LT2UORRG.js.map +0 -1
- package/dist/chunk-P2RBE3FD.cjs.map +0 -1
- package/dist/chunk-UIWLDSTF.js.map +0 -1
- package/dist/chunk-YWYVIQ7T.js.map +0 -1
- package/dist/chunk-ZWA7UUZL.cjs.map +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var documentTools = require('@arbidocs/react/document-tools');
|
|
7
|
+
var ui = require('@arbidocs/react/ui');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function SignDocumentDialog({
|
|
11
|
+
open,
|
|
12
|
+
onOpenChange,
|
|
13
|
+
documentId,
|
|
14
|
+
pdfBlob,
|
|
15
|
+
appearance
|
|
16
|
+
}) {
|
|
17
|
+
const { user, notify, openDocument, emailDocument, certificateUrl } = documentTools.useDocumentTools();
|
|
18
|
+
const [name, setName] = react.useState(() => user?.name ?? "");
|
|
19
|
+
const [includeDate, setIncludeDate] = react.useState(false);
|
|
20
|
+
const [password, setPassword] = react.useState("");
|
|
21
|
+
const [error, setError] = react.useState(null);
|
|
22
|
+
const sign = documentTools.useSignDocument();
|
|
23
|
+
const signer = { name };
|
|
24
|
+
const handleSubmit = async (e) => {
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
if (!user?.email) return;
|
|
27
|
+
setError(null);
|
|
28
|
+
try {
|
|
29
|
+
const result = await sign.mutateAsync({
|
|
30
|
+
documentId,
|
|
31
|
+
pdfBlob,
|
|
32
|
+
email: user.email,
|
|
33
|
+
password,
|
|
34
|
+
signer,
|
|
35
|
+
appearance,
|
|
36
|
+
includeDate
|
|
37
|
+
});
|
|
38
|
+
const signedId = result.doc_ext_id;
|
|
39
|
+
const certificate = documentTools.certificateLink(result.signature, certificateUrl);
|
|
40
|
+
notify(
|
|
41
|
+
`Signed. The signed copy is saved as version ${result.version}.`,
|
|
42
|
+
"success",
|
|
43
|
+
emailDocument ? { action: { label: "Email it", onClick: () => emailDocument(signedId) } } : {
|
|
44
|
+
action: {
|
|
45
|
+
label: "View certificate",
|
|
46
|
+
onClick: () => {
|
|
47
|
+
window.open(certificate, "_blank", "noopener,noreferrer");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
setPassword("");
|
|
53
|
+
onOpenChange(false);
|
|
54
|
+
openDocument?.(signedId);
|
|
55
|
+
} catch (err) {
|
|
56
|
+
setError(err instanceof Error ? err.message : "Signing failed");
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
chunkULWRNGGE_cjs.ModalScaffold,
|
|
61
|
+
{
|
|
62
|
+
open,
|
|
63
|
+
onOpenChange: (next) => !sign.isPending && onOpenChange(next),
|
|
64
|
+
title: "Sign document",
|
|
65
|
+
description: "Sign this document electronically. The signed copy is saved as a new version.",
|
|
66
|
+
showDescription: true,
|
|
67
|
+
testId: "sign-document-dialog",
|
|
68
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, children: [
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalScaffold.Body, { children: [
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
71
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "sign-name", children: "Name" }),
|
|
72
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
73
|
+
ui.Input,
|
|
74
|
+
{
|
|
75
|
+
id: "sign-name",
|
|
76
|
+
value: name,
|
|
77
|
+
onChange: (e) => setName(e.target.value),
|
|
78
|
+
"data-testid": "sign-document-name-input",
|
|
79
|
+
required: true
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
] }),
|
|
83
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 pointer-coarse:min-h-11", children: [
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
+
ui.Checkbox,
|
|
86
|
+
{
|
|
87
|
+
id: "sign-include-date",
|
|
88
|
+
checked: includeDate,
|
|
89
|
+
onCheckedChange: (checked) => setIncludeDate(checked === true),
|
|
90
|
+
"data-testid": "sign-document-include-date"
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "sign-include-date", className: "font-normal", children: "Include date" })
|
|
94
|
+
] }),
|
|
95
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", "data-testid": "sign-document-appearance-note", children: [
|
|
96
|
+
"Only your signature",
|
|
97
|
+
includeDate ? " and the date appear" : " appears",
|
|
98
|
+
" on the page. Anyone can click it to check it."
|
|
99
|
+
] }),
|
|
100
|
+
name.trim() && /* @__PURE__ */ jsxRuntime.jsx(
|
|
101
|
+
"blockquote",
|
|
102
|
+
{
|
|
103
|
+
className: "border-l-2 border-border pl-3 text-sm text-muted-foreground",
|
|
104
|
+
"data-testid": "sign-document-intent",
|
|
105
|
+
children: documentTools.intentText(signer)
|
|
106
|
+
}
|
|
107
|
+
),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
109
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "sign-password", children: "Password" }),
|
|
110
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
111
|
+
ui.Input,
|
|
112
|
+
{
|
|
113
|
+
id: "sign-password",
|
|
114
|
+
type: "password",
|
|
115
|
+
autoComplete: "current-password",
|
|
116
|
+
value: password,
|
|
117
|
+
onChange: (e) => setPassword(e.target.value),
|
|
118
|
+
"data-testid": "sign-document-password-input",
|
|
119
|
+
required: true
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
] }),
|
|
123
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-text", role: "alert", "data-testid": "sign-document-error", children: error })
|
|
124
|
+
] }),
|
|
125
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalScaffold.Footer, { children: [
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
127
|
+
ui.Button,
|
|
128
|
+
{
|
|
129
|
+
type: "button",
|
|
130
|
+
variant: "outline",
|
|
131
|
+
onClick: () => onOpenChange(false),
|
|
132
|
+
disabled: sign.isPending,
|
|
133
|
+
children: "Cancel"
|
|
134
|
+
}
|
|
135
|
+
),
|
|
136
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
137
|
+
ui.Button,
|
|
138
|
+
{
|
|
139
|
+
type: "submit",
|
|
140
|
+
disabled: sign.isPending || !name.trim() || !password,
|
|
141
|
+
"data-testid": "sign-document-submit-button",
|
|
142
|
+
children: sign.isPending ? "Signing..." : "Sign"
|
|
143
|
+
}
|
|
144
|
+
)
|
|
145
|
+
] })
|
|
146
|
+
] })
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
exports.SignDocumentDialog = SignDocumentDialog;
|
|
152
|
+
//# sourceMappingURL=chunk-ZVBPRMHJ.cjs.map
|
|
153
|
+
//# sourceMappingURL=chunk-ZVBPRMHJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/document-tools/SignDocumentDialog.tsx"],"names":["useDocumentTools","useState","useSignDocument","certificateLink","jsx","ModalScaffold","jsxs","Label","Input","Checkbox","Button"],"mappings":"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","file":"chunk-ZVBPRMHJ.cjs","sourcesContent":["/**\n * Sign a document electronically: confirm the name, choose whether the date is shown, read the\n * statement of intent, re-enter the password. Only the signature (and the date, if ticked) is drawn\n * on the page; a role, a firm or a place go on as ordinary annotation text. Anyone can click the\n * signature to check it. The signed copy is saved as a new version and opened, with an offer to\n * email it when the host gives the tools an `emailDocument`. Needs a `<DocumentToolsProvider>` with\n * a `user` (its email) and a `deploymentDomain`, inside a React Query `QueryClientProvider`.\n */\n\nimport { useState, type FormEvent, type ReactElement } from 'react'\nimport {\n certificateLink,\n intentText,\n useDocumentTools,\n useSignDocument,\n type SignatureAppearance,\n} from '@arbidocs/react/document-tools'\nimport { Button, Checkbox, Input, Label } from '@arbidocs/react/ui'\nimport { ModalScaffold } from '../settings/ModalScaffold'\n\nexport interface SignDocumentDialogProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n documentId: string\n /** The PDF the viewer is showing. */\n pdfBlob: Blob\n /** Where the signature goes; omitted = bottom of the last page. */\n appearance?: SignatureAppearance\n}\n\nexport function SignDocumentDialog({\n open,\n onOpenChange,\n documentId,\n pdfBlob,\n appearance,\n}: SignDocumentDialogProps): ReactElement {\n const { user, notify, openDocument, emailDocument, certificateUrl } = useDocumentTools()\n const [name, setName] = useState(() => user?.name ?? '')\n const [includeDate, setIncludeDate] = useState(false)\n const [password, setPassword] = useState('')\n const [error, setError] = useState<string | null>(null)\n const sign = useSignDocument()\n\n const signer = { name }\n\n const handleSubmit = async (e: FormEvent) => {\n e.preventDefault()\n if (!user?.email) return\n setError(null)\n try {\n const result = await sign.mutateAsync({\n documentId,\n pdfBlob,\n email: user.email,\n password,\n signer,\n appearance,\n includeDate,\n })\n const signedId = result.doc_ext_id\n const certificate = certificateLink(result.signature, certificateUrl)\n notify(\n `Signed. The signed copy is saved as version ${result.version}.`,\n 'success',\n emailDocument\n ? { action: { label: 'Email it', onClick: () => emailDocument(signedId) } }\n : {\n action: {\n label: 'View certificate',\n onClick: () => {\n window.open(certificate, '_blank', 'noopener,noreferrer')\n },\n },\n }\n )\n setPassword('')\n onOpenChange(false)\n openDocument?.(signedId)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Signing failed')\n }\n }\n\n return (\n <ModalScaffold\n open={open}\n onOpenChange={(next) => !sign.isPending && onOpenChange(next)}\n title=\"Sign document\"\n description=\"Sign this document electronically. The signed copy is saved as a new version.\"\n showDescription\n testId=\"sign-document-dialog\"\n >\n <form onSubmit={handleSubmit}>\n <ModalScaffold.Body>\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"sign-name\">Name</Label>\n <Input\n id=\"sign-name\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n data-testid=\"sign-document-name-input\"\n required\n />\n </div>\n <div className=\"flex items-center gap-2 pointer-coarse:min-h-11\">\n <Checkbox\n id=\"sign-include-date\"\n checked={includeDate}\n onCheckedChange={(checked) => setIncludeDate(checked === true)}\n data-testid=\"sign-document-include-date\"\n />\n <Label htmlFor=\"sign-include-date\" className=\"font-normal\">\n Include date\n </Label>\n </div>\n <p className=\"text-sm text-muted-foreground\" data-testid=\"sign-document-appearance-note\">\n Only your signature{includeDate ? ' and the date appear' : ' appears'} on the page.\n Anyone can click it to check it.\n </p>\n {name.trim() && (\n <blockquote\n className=\"border-l-2 border-border pl-3 text-sm text-muted-foreground\"\n data-testid=\"sign-document-intent\"\n >\n {intentText(signer)}\n </blockquote>\n )}\n <div className=\"space-y-1.5\">\n <Label htmlFor=\"sign-password\">Password</Label>\n <Input\n id=\"sign-password\"\n type=\"password\"\n autoComplete=\"current-password\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n data-testid=\"sign-document-password-input\"\n required\n />\n </div>\n {error && (\n <p className=\"text-sm text-red-text\" role=\"alert\" data-testid=\"sign-document-error\">\n {error}\n </p>\n )}\n </ModalScaffold.Body>\n <ModalScaffold.Footer>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={sign.isPending}\n >\n Cancel\n </Button>\n <Button\n type=\"submit\"\n disabled={sign.isPending || !name.trim() || !password}\n data-testid=\"sign-document-submit-button\"\n >\n {sign.isPending ? 'Signing...' : 'Sign'}\n </Button>\n </ModalScaffold.Footer>\n </form>\n </ModalScaffold>\n )\n}\n"]}
|
package/dist/connect/docx.cjs
CHANGED
|
@@ -1,105 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
|
|
4
|
+
var chunkTZR36PPP_cjs = require('../chunk-TZR36PPP.cjs');
|
|
5
|
+
require('../chunk-MUMH3Z6K.cjs');
|
|
6
|
+
var chunkAINNADMT_cjs = require('../chunk-AINNADMT.cjs');
|
|
7
|
+
require('../chunk-7YUFMNFW.cjs');
|
|
6
8
|
require('../chunk-7UTB4PHM.cjs');
|
|
7
9
|
require('../chunk-MHVNT4J3.cjs');
|
|
8
10
|
require('../chunk-DES3K4SD.cjs');
|
|
9
|
-
var react$1 = require('react');
|
|
10
|
-
var reactQuery = require('@tanstack/react-query');
|
|
11
|
-
var react = require('@arbidocs/react');
|
|
12
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
13
12
|
|
|
14
|
-
function ConnectedNativeDocxEditor({
|
|
15
|
-
fontBaseUrl = "/native-docx/fonts",
|
|
16
|
-
...props
|
|
17
|
-
}) {
|
|
18
|
-
const adapter = useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
19
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkZWA7UUZL_cjs.NativeDocxEditor, { ...props, adapter });
|
|
20
|
-
}
|
|
21
|
-
function useConnectedNativeDocxAdapter(fontBaseUrl = "/native-docx/fonts") {
|
|
22
|
-
const arbi = react.useArbi();
|
|
23
|
-
const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
|
|
24
|
-
const queries = reactQuery.useQueryClient();
|
|
25
|
-
const { data: members } = reactQuery.useQuery({
|
|
26
|
-
queryKey: ["native-docx-members", apiUrl, user?.externalId, workspaceId],
|
|
27
|
-
enabled: arbi.isLoggedIn && !!workspaceId,
|
|
28
|
-
queryFn: async () => {
|
|
29
|
-
await ensureWorkspaceOpen();
|
|
30
|
-
return arbi.workspaces.listUsers();
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
const adapter = react$1.useMemo(
|
|
34
|
-
() => ({
|
|
35
|
-
request: async (path, options) => {
|
|
36
|
-
await ensureWorkspaceOpen();
|
|
37
|
-
return arbi.editor.request(path, options);
|
|
38
|
-
},
|
|
39
|
-
open: async (id) => {
|
|
40
|
-
await ensureWorkspaceOpen();
|
|
41
|
-
return (await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: "POST" })).json();
|
|
42
|
-
},
|
|
43
|
-
save: async (id, state) => (await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {
|
|
44
|
-
method: "POST",
|
|
45
|
-
headers: { "Content-Type": "application/json" },
|
|
46
|
-
body: JSON.stringify({ state })
|
|
47
|
-
})).json(),
|
|
48
|
-
loadFonts: () => chunkZWA7UUZL_cjs.loadDocxFonts(fontBaseUrl),
|
|
49
|
-
baseUrl: apiUrl,
|
|
50
|
-
author: user?.name || "You",
|
|
51
|
-
onVersionSaved: async (id) => {
|
|
52
|
-
if (!workspaceId) return;
|
|
53
|
-
const key = react.arbiQueryKeys.documents(workspaceId);
|
|
54
|
-
try {
|
|
55
|
-
const documents = await arbi.documents.get([id]);
|
|
56
|
-
if (!documents.length) throw new Error("The saved version is not available yet.");
|
|
57
|
-
queries.setQueryData(key, (previous) => [
|
|
58
|
-
...documents,
|
|
59
|
-
...(previous || []).filter(
|
|
60
|
-
(doc) => !documents.some((saved) => saved.external_id === doc.external_id)
|
|
61
|
-
)
|
|
62
|
-
]);
|
|
63
|
-
} catch {
|
|
64
|
-
await queries.invalidateQueries({ queryKey: key });
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
notify: (message, kind) => react.notify[kind](message),
|
|
68
|
-
mentions: members?.map(({ user: member }) => ({
|
|
69
|
-
id: member.external_id,
|
|
70
|
-
name: [member.given_name, member.family_name].filter(Boolean).join(" "),
|
|
71
|
-
kind: member.external_id.startsWith("agt-") ? "agent" : "human"
|
|
72
|
-
})),
|
|
73
|
-
requestAgent: async (id, request) => {
|
|
74
|
-
const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {
|
|
75
|
-
method: "POST",
|
|
76
|
-
headers: { "Content-Type": "application/json" },
|
|
77
|
-
body: JSON.stringify({
|
|
78
|
-
comment_id: request.commentId,
|
|
79
|
-
instruction: request.instruction,
|
|
80
|
-
request_id: request.requestId,
|
|
81
|
-
recipient_ids: request.recipientIds
|
|
82
|
-
})
|
|
83
|
-
});
|
|
84
|
-
const delivery = await response.json();
|
|
85
|
-
react.notify.success("Mention delivered.");
|
|
86
|
-
return { responseIds: delivery.response_ids || [] };
|
|
87
|
-
},
|
|
88
|
-
getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status
|
|
89
|
-
}),
|
|
90
|
-
[arbi, apiUrl, user?.name, members, ensureWorkspaceOpen, fontBaseUrl, queries, workspaceId]
|
|
91
|
-
);
|
|
92
|
-
return adapter;
|
|
93
|
-
}
|
|
94
13
|
function ConnectedStreamedWordArtifact({
|
|
95
14
|
fontBaseUrl,
|
|
96
15
|
...props
|
|
97
16
|
}) {
|
|
98
|
-
const adapter = useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
99
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17
|
+
const adapter = chunkTZR36PPP_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
18
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkAINNADMT_cjs.StreamedWordArtifact, { ...props, adapter });
|
|
100
19
|
}
|
|
101
20
|
|
|
102
|
-
exports
|
|
21
|
+
Object.defineProperty(exports, "ConnectedNativeDocxEditor", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunkTZR36PPP_cjs.ConnectedNativeDocxEditor; }
|
|
24
|
+
});
|
|
103
25
|
exports.ConnectedStreamedWordArtifact = ConnectedStreamedWordArtifact;
|
|
104
26
|
//# sourceMappingURL=docx.cjs.map
|
|
105
27
|
//# sourceMappingURL=docx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/connection/
|
|
1
|
+
{"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":["useConnectedNativeDocxAdapter","jsx","StreamedWordArtifact"],"mappings":";;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,uBAAOC,cAAA,CAACC,sCAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.cjs","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
|
package/dist/connect/docx.js
CHANGED
|
@@ -1,94 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { useConnectedNativeDocxAdapter } from '../chunk-A24C6BNA.js';
|
|
3
|
+
export { ConnectedNativeDocxEditor } from '../chunk-A24C6BNA.js';
|
|
4
|
+
import '../chunk-OYMWV45N.js';
|
|
5
|
+
import { StreamedWordArtifact } from '../chunk-FT5FFXSJ.js';
|
|
6
|
+
import '../chunk-OPA2Y6YZ.js';
|
|
4
7
|
import '../chunk-AA3PT6KR.js';
|
|
5
8
|
import '../chunk-7F6CBP3Z.js';
|
|
6
9
|
import '../chunk-VUNV25KB.js';
|
|
7
|
-
import { useMemo } from 'react';
|
|
8
|
-
import { useQueryClient, useQuery } from '@tanstack/react-query';
|
|
9
|
-
import { useArbi, notify, arbiQueryKeys } from '@arbidocs/react';
|
|
10
10
|
import { jsx } from 'react/jsx-runtime';
|
|
11
11
|
|
|
12
|
-
function ConnectedNativeDocxEditor({
|
|
13
|
-
fontBaseUrl = "/native-docx/fonts",
|
|
14
|
-
...props
|
|
15
|
-
}) {
|
|
16
|
-
const adapter = useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
17
|
-
return /* @__PURE__ */ jsx(NativeDocxEditor, { ...props, adapter });
|
|
18
|
-
}
|
|
19
|
-
function useConnectedNativeDocxAdapter(fontBaseUrl = "/native-docx/fonts") {
|
|
20
|
-
const arbi = useArbi();
|
|
21
|
-
const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = useConnection();
|
|
22
|
-
const queries = useQueryClient();
|
|
23
|
-
const { data: members } = useQuery({
|
|
24
|
-
queryKey: ["native-docx-members", apiUrl, user?.externalId, workspaceId],
|
|
25
|
-
enabled: arbi.isLoggedIn && !!workspaceId,
|
|
26
|
-
queryFn: async () => {
|
|
27
|
-
await ensureWorkspaceOpen();
|
|
28
|
-
return arbi.workspaces.listUsers();
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const adapter = useMemo(
|
|
32
|
-
() => ({
|
|
33
|
-
request: async (path, options) => {
|
|
34
|
-
await ensureWorkspaceOpen();
|
|
35
|
-
return arbi.editor.request(path, options);
|
|
36
|
-
},
|
|
37
|
-
open: async (id) => {
|
|
38
|
-
await ensureWorkspaceOpen();
|
|
39
|
-
return (await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: "POST" })).json();
|
|
40
|
-
},
|
|
41
|
-
save: async (id, state) => (await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {
|
|
42
|
-
method: "POST",
|
|
43
|
-
headers: { "Content-Type": "application/json" },
|
|
44
|
-
body: JSON.stringify({ state })
|
|
45
|
-
})).json(),
|
|
46
|
-
loadFonts: () => loadDocxFonts(fontBaseUrl),
|
|
47
|
-
baseUrl: apiUrl,
|
|
48
|
-
author: user?.name || "You",
|
|
49
|
-
onVersionSaved: async (id) => {
|
|
50
|
-
if (!workspaceId) return;
|
|
51
|
-
const key = arbiQueryKeys.documents(workspaceId);
|
|
52
|
-
try {
|
|
53
|
-
const documents = await arbi.documents.get([id]);
|
|
54
|
-
if (!documents.length) throw new Error("The saved version is not available yet.");
|
|
55
|
-
queries.setQueryData(key, (previous) => [
|
|
56
|
-
...documents,
|
|
57
|
-
...(previous || []).filter(
|
|
58
|
-
(doc) => !documents.some((saved) => saved.external_id === doc.external_id)
|
|
59
|
-
)
|
|
60
|
-
]);
|
|
61
|
-
} catch {
|
|
62
|
-
await queries.invalidateQueries({ queryKey: key });
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
notify: (message, kind) => notify[kind](message),
|
|
66
|
-
mentions: members?.map(({ user: member }) => ({
|
|
67
|
-
id: member.external_id,
|
|
68
|
-
name: [member.given_name, member.family_name].filter(Boolean).join(" "),
|
|
69
|
-
kind: member.external_id.startsWith("agt-") ? "agent" : "human"
|
|
70
|
-
})),
|
|
71
|
-
requestAgent: async (id, request) => {
|
|
72
|
-
const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {
|
|
73
|
-
method: "POST",
|
|
74
|
-
headers: { "Content-Type": "application/json" },
|
|
75
|
-
body: JSON.stringify({
|
|
76
|
-
comment_id: request.commentId,
|
|
77
|
-
instruction: request.instruction,
|
|
78
|
-
request_id: request.requestId,
|
|
79
|
-
recipient_ids: request.recipientIds
|
|
80
|
-
})
|
|
81
|
-
});
|
|
82
|
-
const delivery = await response.json();
|
|
83
|
-
notify.success("Mention delivered.");
|
|
84
|
-
return { responseIds: delivery.response_ids || [] };
|
|
85
|
-
},
|
|
86
|
-
getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status
|
|
87
|
-
}),
|
|
88
|
-
[arbi, apiUrl, user?.name, members, ensureWorkspaceOpen, fontBaseUrl, queries, workspaceId]
|
|
89
|
-
);
|
|
90
|
-
return adapter;
|
|
91
|
-
}
|
|
92
12
|
function ConnectedStreamedWordArtifact({
|
|
93
13
|
fontBaseUrl,
|
|
94
14
|
...props
|
|
@@ -97,6 +17,6 @@ function ConnectedStreamedWordArtifact({
|
|
|
97
17
|
return /* @__PURE__ */ jsx(StreamedWordArtifact, { ...props, adapter });
|
|
98
18
|
}
|
|
99
19
|
|
|
100
|
-
export {
|
|
20
|
+
export { ConnectedStreamedWordArtifact };
|
|
101
21
|
//# sourceMappingURL=docx.js.map
|
|
102
22
|
//# sourceMappingURL=docx.js.map
|
package/dist/connect/docx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/connection/
|
|
1
|
+
{"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
|