@arbidocs/blocks 0.4.142 → 0.4.144

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.
Files changed (125) hide show
  1. package/dist/agents/index.cjs +435 -432
  2. package/dist/agents/index.js +7 -4
  3. package/dist/chat/index.cjs +139 -138
  4. package/dist/chat/index.js +4 -3
  5. package/dist/{chunk-N5X37J3D.js → chunk-2FJMTZNJ.js} +8 -5
  6. package/dist/chunk-2FJMTZNJ.js.map +1 -0
  7. package/dist/chunk-33ZOUJXA.js +561 -0
  8. package/dist/chunk-33ZOUJXA.js.map +1 -0
  9. package/dist/{chunk-S24XEVPS.cjs → chunk-464YPRAE.cjs} +33 -2
  10. package/dist/chunk-464YPRAE.cjs.map +1 -0
  11. package/dist/{chunk-7YLJHTDC.cjs → chunk-5A2QQAF5.cjs} +11 -11
  12. package/dist/{chunk-7YLJHTDC.cjs.map → chunk-5A2QQAF5.cjs.map} +1 -1
  13. package/dist/chunk-76L6LOP3.cjs +308 -0
  14. package/dist/chunk-76L6LOP3.cjs.map +1 -0
  15. package/dist/{chunk-FXG7TFAG.js → chunk-7NGAWGA3.js} +3 -3
  16. package/dist/{chunk-FXG7TFAG.js.map → chunk-7NGAWGA3.js.map} +1 -1
  17. package/dist/chunk-A6J2IBUG.js +1602 -0
  18. package/dist/chunk-A6J2IBUG.js.map +1 -0
  19. package/dist/{chunk-DPGFEMVT.cjs → chunk-ABUO6PIQ.cjs} +51 -1659
  20. package/dist/chunk-ABUO6PIQ.cjs.map +1 -0
  21. package/dist/chunk-AOSUHWIL.js +98 -0
  22. package/dist/chunk-AOSUHWIL.js.map +1 -0
  23. package/dist/{chunk-GBS6QVGS.cjs → chunk-BUWBXJ2N.cjs} +5 -5
  24. package/dist/{chunk-GBS6QVGS.cjs.map → chunk-BUWBXJ2N.cjs.map} +1 -1
  25. package/dist/chunk-CQCC7LE7.js +210 -0
  26. package/dist/chunk-CQCC7LE7.js.map +1 -0
  27. package/dist/{chunk-UGCKUXRV.js → chunk-CSI2B2H5.js} +3 -3
  28. package/dist/{chunk-UGCKUXRV.js.map → chunk-CSI2B2H5.js.map} +1 -1
  29. package/dist/{chunk-JO3EMZ4X.js → chunk-GWSGIZQ5.js} +3 -3
  30. package/dist/{chunk-JO3EMZ4X.js.map → chunk-GWSGIZQ5.js.map} +1 -1
  31. package/dist/{chunk-OWCEQKAR.cjs → chunk-JSTKEZBS.cjs} +21 -318
  32. package/dist/chunk-JSTKEZBS.cjs.map +1 -0
  33. package/dist/{chunk-CKCBBYTA.js → chunk-KSHKTOY2.js} +5 -205
  34. package/dist/chunk-KSHKTOY2.js.map +1 -0
  35. package/dist/chunk-LJJJ6CYH.cjs +62 -0
  36. package/dist/chunk-LJJJ6CYH.cjs.map +1 -0
  37. package/dist/chunk-MHFF5N65.cjs +101 -0
  38. package/dist/chunk-MHFF5N65.cjs.map +1 -0
  39. package/dist/{chunk-GYAUJ4KT.js → chunk-MTSKK3BN.js} +32 -3
  40. package/dist/chunk-MTSKK3BN.js.map +1 -0
  41. package/dist/chunk-O2ODDTMA.cjs +1627 -0
  42. package/dist/chunk-O2ODDTMA.cjs.map +1 -0
  43. package/dist/{chunk-3BFGL2JL.cjs → chunk-ODRHHWHY.cjs} +4 -4
  44. package/dist/{chunk-3BFGL2JL.cjs.map → chunk-ODRHHWHY.cjs.map} +1 -1
  45. package/dist/{chunk-Y5KTM3V5.js → chunk-PDKM27DF.js} +17 -295
  46. package/dist/chunk-PDKM27DF.js.map +1 -0
  47. package/dist/{chunk-OAL3B2ZU.cjs → chunk-PLJ7PHWU.cjs} +5 -5
  48. package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-PLJ7PHWU.cjs.map} +1 -1
  49. package/dist/chunk-RA3ZJ45L.cjs +574 -0
  50. package/dist/chunk-RA3ZJ45L.cjs.map +1 -0
  51. package/dist/chunk-RFIBUWLF.cjs +232 -0
  52. package/dist/chunk-RFIBUWLF.cjs.map +1 -0
  53. package/dist/{chunk-MIDXCYZB.cjs → chunk-RQ2Y7USX.cjs} +15 -235
  54. package/dist/chunk-RQ2Y7USX.cjs.map +1 -0
  55. package/dist/chunk-SV65E4QW.js +58 -0
  56. package/dist/chunk-SV65E4QW.js.map +1 -0
  57. package/dist/chunk-TZGBRLPK.js +288 -0
  58. package/dist/chunk-TZGBRLPK.js.map +1 -0
  59. package/dist/{chunk-PROK33G6.js → chunk-X3TGXEFS.js} +11 -1596
  60. package/dist/chunk-X3TGXEFS.js.map +1 -0
  61. package/dist/{chunk-HIJUXAWS.cjs → chunk-XGZX22ET.cjs} +77 -74
  62. package/dist/chunk-XGZX22ET.cjs.map +1 -0
  63. package/dist/{chunk-5BXEYYH6.js → chunk-ZM26YEOT.js} +3 -3
  64. package/dist/{chunk-5BXEYYH6.js.map → chunk-ZM26YEOT.js.map} +1 -1
  65. package/dist/connect/docx.cjs +35 -6
  66. package/dist/connect/docx.cjs.map +1 -1
  67. package/dist/connect/docx.d.ts +9 -2
  68. package/dist/connect/docx.js +29 -5
  69. package/dist/connect/docx.js.map +1 -1
  70. package/dist/connect/index.cjs +126 -339
  71. package/dist/connect/index.cjs.map +1 -1
  72. package/dist/connect/index.d.ts +1 -0
  73. package/dist/connect/index.js +15 -260
  74. package/dist/connect/index.js.map +1 -1
  75. package/dist/connection/docx/ConnectedNativeDocxComparison.d.ts +5 -0
  76. package/dist/connection/docx/ConnectedNativeDocxEditor.d.ts +16 -0
  77. package/dist/connection/{ConnectedStreamedWordArtifact.d.ts → docx/ConnectedStreamedWordArtifact.d.ts} +1 -1
  78. package/dist/connection/docx/support.d.ts +27 -0
  79. package/dist/connection/docx/useConnectedDocxReferences.d.ts +2 -0
  80. package/dist/connection/docx/useConnectedHouseTemplate.d.ts +2 -0
  81. package/dist/docx/index.cjs +17 -63
  82. package/dist/docx/index.cjs.map +1 -1
  83. package/dist/docx/index.d.ts +1 -0
  84. package/dist/docx/index.js +2 -64
  85. package/dist/docx/index.js.map +1 -1
  86. package/dist/docx/template/candidates.d.ts +16 -0
  87. package/dist/index.cjs +625 -609
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.js +13 -9
  91. package/dist/index.js.map +1 -1
  92. package/dist/lib/deep-link.d.ts +46 -0
  93. package/dist/settings/index.cjs +10 -9
  94. package/dist/settings/index.cjs.map +1 -1
  95. package/dist/settings/index.js +2 -1
  96. package/dist/settings/index.js.map +1 -1
  97. package/dist/studio/index.cjs +5 -4
  98. package/dist/studio/index.cjs.map +1 -1
  99. package/dist/studio/index.js +4 -3
  100. package/dist/studio/index.js.map +1 -1
  101. package/dist/workflow-canvas/index.cjs +58 -55
  102. package/dist/workflow-canvas/index.cjs.map +1 -1
  103. package/dist/workflow-canvas/index.js +7 -4
  104. package/dist/workflow-canvas/index.js.map +1 -1
  105. package/node_modules/@arbidocs/coedit/package.json +1 -1
  106. package/package.json +4 -4
  107. package/dist/chunk-4TR5QCCX.cjs +0 -43
  108. package/dist/chunk-4TR5QCCX.cjs.map +0 -1
  109. package/dist/chunk-7NDW4KF4.cjs +0 -112
  110. package/dist/chunk-7NDW4KF4.cjs.map +0 -1
  111. package/dist/chunk-CKCBBYTA.js.map +0 -1
  112. package/dist/chunk-DPGFEMVT.cjs.map +0 -1
  113. package/dist/chunk-ETXYVO6E.js +0 -109
  114. package/dist/chunk-ETXYVO6E.js.map +0 -1
  115. package/dist/chunk-GYAUJ4KT.js.map +0 -1
  116. package/dist/chunk-HIJUXAWS.cjs.map +0 -1
  117. package/dist/chunk-MCKOZACC.js +0 -41
  118. package/dist/chunk-MCKOZACC.js.map +0 -1
  119. package/dist/chunk-MIDXCYZB.cjs.map +0 -1
  120. package/dist/chunk-N5X37J3D.js.map +0 -1
  121. package/dist/chunk-OWCEQKAR.cjs.map +0 -1
  122. package/dist/chunk-PROK33G6.js.map +0 -1
  123. package/dist/chunk-S24XEVPS.cjs.map +0 -1
  124. package/dist/chunk-Y5KTM3V5.js.map +0 -1
  125. package/dist/connection/ConnectedNativeDocxEditor.d.ts +0 -6
@@ -1,109 +0,0 @@
1
- "use client";
2
- import { useConnection } from './chunk-US3S4DCB.js';
3
- import { loadDocxFonts } from './chunk-GYAUJ4KT.js';
4
- import { NativeDocxEditor } from './chunk-2FL7QJKJ.js';
5
- import { useRegisterOpenDocument } from './chunk-YBLIKTJK.js';
6
- import { useBlocksEnvironment } from './chunk-YNIBUKV5.js';
7
- import { useMemo } from 'react';
8
- import { useQueryClient, useQuery } from '@tanstack/react-query';
9
- import { useArbi, arbiQueryKeys } from '@arbidocs/react';
10
- import { jsx } from 'react/jsx-runtime';
11
-
12
- function ConnectedNativeDocxEditor({
13
- fontBaseUrl = "/native-docx/fonts",
14
- ...props
15
- }) {
16
- const adapter = useConnectedNativeDocxAdapter(fontBaseUrl);
17
- const { workspaceId } = useConnection();
18
- const live = !props.snapshot && !props.stream && !props.draftContent && !props.compact;
19
- useRegisterOpenDocument({ documentId: live ? props.documentId : null, workspaceId });
20
- return /* @__PURE__ */ jsx(NativeDocxEditor, { ...props, adapter });
21
- }
22
- function useConnectedNativeDocxAdapter(fontBaseUrl = "/native-docx/fonts") {
23
- const arbi = useArbi();
24
- const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = useConnection();
25
- const queries = useQueryClient();
26
- const { notify } = useBlocksEnvironment();
27
- const { data: members } = useQuery({
28
- queryKey: ["native-docx-members", apiUrl, user?.externalId, workspaceId],
29
- enabled: arbi.isLoggedIn && !!workspaceId,
30
- queryFn: async () => {
31
- await ensureWorkspaceOpen();
32
- return arbi.workspaces.listUsers();
33
- }
34
- });
35
- const adapter = useMemo(
36
- () => ({
37
- request: async (path, options) => {
38
- await ensureWorkspaceOpen();
39
- return arbi.editor.request(path, options);
40
- },
41
- open: async (id) => {
42
- await ensureWorkspaceOpen();
43
- return (await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: "POST" })).json();
44
- },
45
- save: async (id, state) => (await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {
46
- method: "POST",
47
- headers: { "Content-Type": "application/json" },
48
- body: JSON.stringify({ state })
49
- })).json(),
50
- loadFonts: () => loadDocxFonts(fontBaseUrl),
51
- baseUrl: apiUrl,
52
- author: user?.name || "You",
53
- onVersionSaved: async (id) => {
54
- if (!workspaceId) return;
55
- const key = arbiQueryKeys.documents(workspaceId);
56
- try {
57
- const documents = await arbi.documents.get([id]);
58
- if (!documents.length) throw new Error("The saved version is not available yet.");
59
- queries.setQueryData(key, (previous) => [
60
- ...documents,
61
- ...(previous || []).filter(
62
- (doc) => !documents.some((saved) => saved.external_id === doc.external_id)
63
- )
64
- ]);
65
- } catch {
66
- await queries.invalidateQueries({ queryKey: key });
67
- }
68
- },
69
- notify,
70
- mentions: members?.map(({ user: member }) => ({
71
- id: member.external_id,
72
- name: [member.given_name, member.family_name].filter(Boolean).join(" "),
73
- kind: member.external_id.startsWith("agt-") ? "agent" : "human"
74
- })),
75
- requestAgent: async (id, request) => {
76
- const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {
77
- method: "POST",
78
- headers: { "Content-Type": "application/json" },
79
- body: JSON.stringify({
80
- comment_id: request.commentId,
81
- instruction: request.instruction,
82
- request_id: request.requestId,
83
- recipient_ids: request.recipientIds
84
- })
85
- });
86
- const delivery = await response.json();
87
- notify("Mention delivered.", "success");
88
- return { responseIds: delivery.response_ids || [] };
89
- },
90
- getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status
91
- }),
92
- [
93
- arbi,
94
- apiUrl,
95
- user?.name,
96
- members,
97
- ensureWorkspaceOpen,
98
- fontBaseUrl,
99
- queries,
100
- workspaceId,
101
- notify
102
- ]
103
- );
104
- return adapter;
105
- }
106
-
107
- export { ConnectedNativeDocxEditor, useConnectedNativeDocxAdapter };
108
- //# sourceMappingURL=chunk-ETXYVO6E.js.map
109
- //# sourceMappingURL=chunk-ETXYVO6E.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/connection/ConnectedNativeDocxEditor.tsx"],"names":[],"mappings":"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","file":"chunk-ETXYVO6E.js","sourcesContent":["import { useMemo } from 'react'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useArbi, arbiQueryKeys } from '@arbidocs/react'\nimport { useConnection } from './ConnectionProvider'\nimport {\n NativeDocxEditor,\n type NativeDocxAdapter,\n type NativeDocxEditorProps,\n} from '../docx/NativeDocxEditor'\nimport { loadDocxFonts } from '../docx/fonts'\nimport { useRegisterOpenDocument } from '../chat/open-document'\nimport { useBlocksEnvironment } from '../provider/BlocksProvider'\n\n/** Native Word widget bound to the standard blocks connection and SDK session. */\nexport function ConnectedNativeDocxEditor({\n fontBaseUrl = '/native-docx/fonts',\n ...props\n}: Omit<NativeDocxEditorProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n const { workspaceId } = useConnection()\n // Drafting mode: the saved Word document being edited is what the chat is about. A history\n // snapshot, a streamed preview, an unsaved draft and an embedded body field are not.\n const live = !props.snapshot && !props.stream && !props.draftContent && !props.compact\n useRegisterOpenDocument({ documentId: live ? props.documentId : null, workspaceId })\n return <NativeDocxEditor {...props} adapter={adapter} />\n}\n\nexport function useConnectedNativeDocxAdapter(fontBaseUrl = '/native-docx/fonts') {\n const arbi = useArbi()\n const { workspaceId, apiUrl, user, ensureWorkspaceOpen } = useConnection()\n const queries = useQueryClient()\n const { notify } = useBlocksEnvironment()\n const { data: members } = useQuery({\n queryKey: ['native-docx-members', apiUrl, user?.externalId, workspaceId],\n enabled: arbi.isLoggedIn && !!workspaceId,\n queryFn: async () => {\n await ensureWorkspaceOpen()\n return arbi.workspaces.listUsers()\n },\n })\n const adapter = useMemo<NativeDocxAdapter>(\n () => ({\n request: async (path, options) => {\n await ensureWorkspaceOpen()\n return arbi.editor.request(path, options)\n },\n open: async (id) => {\n await ensureWorkspaceOpen()\n return (\n await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: 'POST' })\n ).json()\n },\n save: async (id, state) =>\n (\n await arbi.editor.request(`/${encodeURIComponent(id)}/save`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ state }),\n })\n ).json(),\n loadFonts: () => loadDocxFonts(fontBaseUrl),\n baseUrl: apiUrl,\n author: user?.name || 'You',\n onVersionSaved: async (id) => {\n if (!workspaceId) return\n const key = arbiQueryKeys.documents(workspaceId)\n try {\n const documents = await arbi.documents.get([id])\n if (!documents.length) throw new Error('The saved version is not available yet.')\n queries.setQueryData<Awaited<ReturnType<typeof arbi.documents.list>>>(key, (previous) => [\n ...documents,\n ...(previous || []).filter(\n (doc) => !documents.some((saved) => saved.external_id === doc.external_id)\n ),\n ])\n } catch {\n await queries.invalidateQueries({ queryKey: key })\n }\n },\n notify,\n mentions: members?.map(({ user: member }) => ({\n id: member.external_id,\n name: [member.given_name, member.family_name].filter(Boolean).join(' '),\n kind: member.external_id.startsWith('agt-') ? 'agent' : 'human',\n })),\n requestAgent: async (id, request) => {\n const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n comment_id: request.commentId,\n instruction: request.instruction,\n request_id: request.requestId,\n recipient_ids: request.recipientIds,\n }),\n })\n const delivery = (await response.json()) as { response_ids: string[] }\n notify('Mention delivered.', 'success')\n return { responseIds: delivery.response_ids || [] }\n },\n getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status,\n }),\n [\n arbi,\n apiUrl,\n user?.name,\n members,\n ensureWorkspaceOpen,\n fontBaseUrl,\n queries,\n workspaceId,\n notify,\n ]\n )\n return adapter\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/docx/fonts.ts"],"names":[],"mappings":"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","file":"chunk-GYAUJ4KT.js","sourcesContent":["import { createFontSource, type FontConfiguration } from '@docx-editor.dev/react'\nconst loaded = new Map<string, Promise<FontConfiguration>>()\nexport function loadDocxFonts(baseUrl = '/native-docx/fonts'): Promise<FontConfiguration> {\n let promise = loaded.get(baseUrl)\n if (!promise) {\n promise = loadFonts(baseUrl).catch((error) => {\n loaded.delete(baseUrl)\n throw error\n })\n loaded.set(baseUrl, promise)\n }\n return promise\n}\nasync function loadFonts(baseUrl: string): Promise<FontConfiguration> {\n const families = ['Liberation Serif', 'Liberation Sans', 'Liberation Mono']\n const variants = [\n { suffix: 'Regular', weight: 400, style: 'normal' },\n { suffix: 'Bold', weight: 700, style: 'normal' },\n { suffix: 'Italic', weight: 400, style: 'italic' },\n { suffix: 'BoldItalic', weight: 700, style: 'italic' },\n ] as const\n const sources = await Promise.all(\n families.flatMap((family) =>\n variants.map(async (face) => {\n const r = await fetch(\n `${baseUrl.replace(/\\/$/, '')}/${family.replace(' ', '')}-${face.suffix}.ttf`\n )\n if (!r.ok) throw new Error(`Could not load the document font ${family}.`)\n const result = createFontSource(new Uint8Array(await r.arrayBuffer()), {\n family,\n weight: face.weight,\n style: face.style,\n })\n if ('failure' in result)\n throw new Error(`Could not initialize the document font ${family}.`)\n return result.source\n })\n )\n )\n const aliases: Record<string, string> = {\n 'Times New Roman': 'Liberation Serif',\n Cambria: 'Liberation Serif',\n 'DejaVu Serif': 'Liberation Serif',\n Calibri: 'Liberation Sans',\n Aptos: 'Liberation Sans',\n Arial: 'Liberation Sans',\n Helvetica: 'Liberation Sans',\n 'Courier New': 'Liberation Mono',\n 'DejaVu Sans Mono': 'Liberation Mono',\n }\n return {\n epoch: 1,\n maxFontBytes: 12 * 1024 * 1024,\n sources,\n defaultFont: { family: 'Liberation Serif', sizeHalfPoints: 22 },\n supportedFamilies: [...families, ...Object.keys(aliases)],\n substitutions: Object.entries(aliases).flatMap(([from, to]) =>\n variants.map((face) => ({\n from: { family: from, weight: face.weight, style: face.style },\n to: { family: to, weight: face.weight, style: face.style },\n }))\n ),\n }\n}\n"]}