@arbidocs/blocks 0.4.168 → 0.4.169
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/{ConnectedCallDock-J5JU3KKO.js → ConnectedCallDock-7IUGEVSF.js} +13 -12
- package/dist/ConnectedCallDock-7IUGEVSF.js.map +1 -0
- package/dist/{ConnectedCallDock-ESH665DH.cjs → ConnectedCallDock-W7OWNQEB.cjs} +22 -21
- package/dist/{ConnectedCallDock-J5JU3KKO.js.map → ConnectedCallDock-W7OWNQEB.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-XBEO7VXT.js → ConnectedCallRoom-7CUZBW6C.js} +13 -12
- package/dist/{ConnectedCallRoom-XBEO7VXT.js.map → ConnectedCallRoom-7CUZBW6C.js.map} +1 -1
- package/dist/{ConnectedCallRoom-AFMVICHG.cjs → ConnectedCallRoom-N6JBHP6P.cjs} +14 -13
- package/dist/{ConnectedCallRoom-AFMVICHG.cjs.map → ConnectedCallRoom-N6JBHP6P.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-TFAA5Z6J.cjs → ConnectedNativeDocxComparison-OJWVE6L4.cjs} +15 -15
- package/dist/{ConnectedNativeDocxComparison-TFAA5Z6J.cjs.map → ConnectedNativeDocxComparison-OJWVE6L4.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-DJBFRFCK.js → ConnectedNativeDocxComparison-VC5SPVCR.js} +14 -14
- package/dist/{ConnectedNativeDocxComparison-DJBFRFCK.js.map → ConnectedNativeDocxComparison-VC5SPVCR.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-AFECVTCH.cjs → ConnectedNativeDocxEditor-BTF426RO.cjs} +15 -15
- package/dist/{ConnectedNativeDocxEditor-AFECVTCH.cjs.map → ConnectedNativeDocxEditor-BTF426RO.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-2MSUQTE2.js → ConnectedNativeDocxEditor-EMSFPHRB.js} +13 -13
- package/dist/{ConnectedNativeDocxEditor-2MSUQTE2.js.map → ConnectedNativeDocxEditor-EMSFPHRB.js.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-3OUYXRP2.js → ConnectedStreamedWordArtifact-2OYI4U4W.js} +14 -14
- package/dist/ConnectedStreamedWordArtifact-2OYI4U4W.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-IEGLOEEZ.cjs → ConnectedStreamedWordArtifact-XY6QMCXF.cjs} +15 -15
- package/dist/ConnectedStreamedWordArtifact-XY6QMCXF.cjs.map +1 -0
- package/dist/NativeDocxEditor-ATPL3Q3O.js +1 -1
- package/dist/NativeDocxEditor-R4EIHWNL.cjs +1 -1
- package/dist/{WorkspaceTableView-733WL4DA.cjs → WorkspaceTableView-4O3O47ES.cjs} +12 -12
- package/dist/{WorkspaceTableView-733WL4DA.cjs.map → WorkspaceTableView-4O3O47ES.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-GYIHAEIB.js → WorkspaceTableView-IF5UQRZP.js} +10 -10
- package/dist/{WorkspaceTableView-GYIHAEIB.js.map → WorkspaceTableView-IF5UQRZP.js.map} +1 -1
- package/dist/agents/index.cjs +403 -403
- package/dist/agents/index.js +12 -12
- package/dist/calls/index.cjs +136 -136
- package/dist/calls/index.js +13 -13
- package/dist/chat/index.cjs +156 -155
- package/dist/chat/index.js +5 -4
- package/dist/chat/thread-diagram.d.ts +3 -1
- package/dist/chunk-22ENWLSI.js +356 -0
- package/dist/chunk-22ENWLSI.js.map +1 -0
- package/dist/{chunk-IFE4MZXD.js → chunk-3H4UW7A2.js} +3 -3
- package/dist/{chunk-IFE4MZXD.js.map → chunk-3H4UW7A2.js.map} +1 -1
- package/dist/{chunk-LPUQHIVP.cjs → chunk-3VW7ZXQ6.cjs} +4 -4
- package/dist/{chunk-LPUQHIVP.cjs.map → chunk-3VW7ZXQ6.cjs.map} +1 -1
- package/dist/{chunk-NNPFFPBF.js → chunk-45R356CO.js} +4 -4
- package/dist/{chunk-NNPFFPBF.js.map → chunk-45R356CO.js.map} +1 -1
- package/dist/{chunk-HJQLVCIK.cjs → chunk-6BBZP4ES.cjs} +3 -3
- package/dist/{chunk-HJQLVCIK.cjs.map → chunk-6BBZP4ES.cjs.map} +1 -1
- package/dist/{chunk-ZBTJWS3M.cjs → chunk-6L4SOUDT.cjs} +4 -4
- package/dist/{chunk-ZBTJWS3M.cjs.map → chunk-6L4SOUDT.cjs.map} +1 -1
- package/dist/{chunk-QE7MS7NA.js → chunk-B35WPZOB.js} +5 -5
- package/dist/{chunk-QE7MS7NA.js.map → chunk-B35WPZOB.js.map} +1 -1
- package/dist/{chunk-SJVIBMVQ.js → chunk-CZ3T3TLT.js} +4 -4
- package/dist/{chunk-SJVIBMVQ.js.map → chunk-CZ3T3TLT.js.map} +1 -1
- package/dist/{chunk-DRIMPELS.cjs → chunk-DPIWB4DF.cjs} +9 -9
- package/dist/{chunk-DRIMPELS.cjs.map → chunk-DPIWB4DF.cjs.map} +1 -1
- package/dist/{chunk-CEAUPIRB.cjs → chunk-DVGKBEZH.cjs} +5 -5
- package/dist/{chunk-CEAUPIRB.cjs.map → chunk-DVGKBEZH.cjs.map} +1 -1
- package/dist/{chunk-ZAVEMQ37.cjs → chunk-DWZXSPMB.cjs} +3 -3
- package/dist/{chunk-ZAVEMQ37.cjs.map → chunk-DWZXSPMB.cjs.map} +1 -1
- package/dist/{chunk-CSUKLEQH.js → chunk-EZRXRCQT.js} +3 -3
- package/dist/{chunk-CSUKLEQH.js.map → chunk-EZRXRCQT.js.map} +1 -1
- package/dist/{chunk-U6B6LPIG.cjs → chunk-EZS4RBYU.cjs} +5 -5
- package/dist/{chunk-U6B6LPIG.cjs.map → chunk-EZS4RBYU.cjs.map} +1 -1
- package/dist/{chunk-FTLNYE2X.cjs → chunk-F66OH26L.cjs} +4 -96
- package/dist/chunk-F66OH26L.cjs.map +1 -0
- package/dist/{chunk-D7MDBDN7.js → chunk-F6GZCQ5I.js} +3 -3
- package/dist/{chunk-D7MDBDN7.js.map → chunk-F6GZCQ5I.js.map} +1 -1
- package/dist/{chunk-TBRX5RNH.js → chunk-FHCXWMR7.js} +3 -3
- package/dist/{chunk-TBRX5RNH.js.map → chunk-FHCXWMR7.js.map} +1 -1
- package/dist/{chunk-HTOYFP3D.js → chunk-FOGNAIDQ.js} +7 -7
- package/dist/{chunk-HTOYFP3D.js.map → chunk-FOGNAIDQ.js.map} +1 -1
- package/dist/{chunk-QK2HR3LC.js → chunk-GTAUDUAZ.js} +6 -6
- package/dist/{chunk-QK2HR3LC.js.map → chunk-GTAUDUAZ.js.map} +1 -1
- package/dist/{chunk-ADL5A6FR.js → chunk-H226UFOX.js} +3 -3
- package/dist/{chunk-ADL5A6FR.js.map → chunk-H226UFOX.js.map} +1 -1
- package/dist/chunk-HIEGVZB3.cjs +376 -0
- package/dist/chunk-HIEGVZB3.cjs.map +1 -0
- package/dist/{chunk-QEE4DOEU.cjs → chunk-HTHEAOEW.cjs} +17 -17
- package/dist/{chunk-QEE4DOEU.cjs.map → chunk-HTHEAOEW.cjs.map} +1 -1
- package/dist/{chunk-YMBDPI7X.js → chunk-ICP2IQW5.js} +3 -3
- package/dist/{chunk-YMBDPI7X.js.map → chunk-ICP2IQW5.js.map} +1 -1
- package/dist/{chunk-WT2AGQYY.cjs → chunk-JQPYE3TT.cjs} +5 -5
- package/dist/{chunk-WT2AGQYY.cjs.map → chunk-JQPYE3TT.cjs.map} +1 -1
- package/dist/{chunk-XHJAYCPQ.js → chunk-JTJCCL2E.js} +3 -3
- package/dist/{chunk-XHJAYCPQ.js.map → chunk-JTJCCL2E.js.map} +1 -1
- package/dist/{chunk-CVJ2ZMA4.cjs → chunk-KEV5G3S4.cjs} +4 -4
- package/dist/{chunk-CVJ2ZMA4.cjs.map → chunk-KEV5G3S4.cjs.map} +1 -1
- package/dist/chunk-KJXJRX33.js +94 -0
- package/dist/chunk-KJXJRX33.js.map +1 -0
- package/dist/{chunk-6TEYZRY5.cjs → chunk-LUKMLQYG.cjs} +3 -3
- package/dist/{chunk-6TEYZRY5.cjs.map → chunk-LUKMLQYG.cjs.map} +1 -1
- package/dist/{chunk-U6QJB3G4.js → chunk-NXSQRRFY.js} +3 -3
- package/dist/{chunk-U6QJB3G4.js.map → chunk-NXSQRRFY.js.map} +1 -1
- package/dist/{chunk-JBG5MFVX.cjs → chunk-OAFJGXJC.cjs} +5 -5
- package/dist/{chunk-JBG5MFVX.cjs.map → chunk-OAFJGXJC.cjs.map} +1 -1
- package/dist/{chunk-ZWNUK3A2.cjs → chunk-OJDQ3TBF.cjs} +20 -20
- package/dist/{chunk-ZWNUK3A2.cjs.map → chunk-OJDQ3TBF.cjs.map} +1 -1
- package/dist/chunk-OK3UJMO4.cjs +98 -0
- package/dist/chunk-OK3UJMO4.cjs.map +1 -0
- package/dist/{chunk-2RSUVU5V.js → chunk-OK4HKHV4.js} +3 -3
- package/dist/{chunk-2RSUVU5V.js.map → chunk-OK4HKHV4.js.map} +1 -1
- package/dist/{chunk-O7FVBTBT.js → chunk-RD6M6J3N.js} +3 -3
- package/dist/{chunk-O7FVBTBT.js.map → chunk-RD6M6J3N.js.map} +1 -1
- package/dist/{chunk-J6JED6TA.cjs → chunk-RI52SNGX.cjs} +51 -51
- package/dist/{chunk-J6JED6TA.cjs.map → chunk-RI52SNGX.cjs.map} +1 -1
- package/dist/{chunk-BMFXDDJG.cjs → chunk-RSIYQNV6.cjs} +7 -7
- package/dist/{chunk-BMFXDDJG.cjs.map → chunk-RSIYQNV6.cjs.map} +1 -1
- package/dist/{chunk-ZSW6FZG5.cjs → chunk-S5KBZHX6.cjs} +11 -11
- package/dist/{chunk-ZSW6FZG5.cjs.map → chunk-S5KBZHX6.cjs.map} +1 -1
- package/dist/{chunk-AU6ZSYW6.js → chunk-SM774TX7.js} +3 -3
- package/dist/{chunk-AU6ZSYW6.js.map → chunk-SM774TX7.js.map} +1 -1
- package/dist/{chunk-QSC6Y55X.cjs → chunk-TKBFWHOH.cjs} +75 -75
- package/dist/{chunk-QSC6Y55X.cjs.map → chunk-TKBFWHOH.cjs.map} +1 -1
- package/dist/{chunk-DRLRR44Q.js → chunk-TTH6LLQQ.js} +8 -8
- package/dist/{chunk-DRLRR44Q.js.map → chunk-TTH6LLQQ.js.map} +1 -1
- package/dist/{chunk-XUUKUIKH.js → chunk-ULQV2NJT.js} +5 -94
- package/dist/chunk-ULQV2NJT.js.map +1 -0
- package/dist/{chunk-E4AOCI46.cjs → chunk-V7XKIJHO.cjs} +4 -4
- package/dist/{chunk-E4AOCI46.cjs.map → chunk-V7XKIJHO.cjs.map} +1 -1
- package/dist/{chunk-ECERC6TI.js → chunk-VHJHY7TT.js} +3 -3
- package/dist/{chunk-ECERC6TI.js.map → chunk-VHJHY7TT.js.map} +1 -1
- package/dist/{chunk-ZHQBNOZQ.js → chunk-VRTR6OQA.js} +4 -4
- package/dist/{chunk-ZHQBNOZQ.js.map → chunk-VRTR6OQA.js.map} +1 -1
- package/dist/{chunk-7JIMJEB5.cjs → chunk-W3UDZRRL.cjs} +6 -6
- package/dist/{chunk-7JIMJEB5.cjs.map → chunk-W3UDZRRL.cjs.map} +1 -1
- package/dist/{chunk-KRNX2PVC.js → chunk-WSI5W5GN.js} +3 -3
- package/dist/{chunk-KRNX2PVC.js.map → chunk-WSI5W5GN.js.map} +1 -1
- package/dist/{chunk-UIZZFZ5Z.cjs → chunk-XAS4VRBY.cjs} +3 -3
- package/dist/{chunk-UIZZFZ5Z.cjs.map → chunk-XAS4VRBY.cjs.map} +1 -1
- package/dist/{chunk-UF2GRQQF.js → chunk-XHPCH3QQ.js} +6 -6
- package/dist/{chunk-UF2GRQQF.js.map → chunk-XHPCH3QQ.js.map} +1 -1
- package/dist/{chunk-G4O5AKUO.js → chunk-YDJQFVEW.js} +5 -5
- package/dist/{chunk-G4O5AKUO.js.map → chunk-YDJQFVEW.js.map} +1 -1
- package/dist/{chunk-IFAIUKQQ.cjs → chunk-Z3U6ZBUK.cjs} +5 -5
- package/dist/{chunk-IFAIUKQQ.cjs.map → chunk-Z3U6ZBUK.cjs.map} +1 -1
- package/dist/{chunk-YBB3KRTU.cjs → chunk-ZW7RH5ET.cjs} +3 -3
- package/dist/{chunk-YBB3KRTU.cjs.map → chunk-ZW7RH5ET.cjs.map} +1 -1
- package/dist/citations/index.cjs +1 -1
- package/dist/citations/index.js +1 -1
- package/dist/collaboration/index.cjs +69 -69
- package/dist/collaboration/index.js +3 -3
- package/dist/connect/docx.cjs +17 -17
- package/dist/connect/docx.js +13 -13
- package/dist/connect/index.cjs +2373 -2590
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +62 -305
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +84 -82
- package/dist/connect/viewer.cjs.map +1 -1
- package/dist/connect/viewer.js +25 -23
- package/dist/connect/viewer.js.map +1 -1
- package/dist/connection/viewer/parsed/ParsedPassage.d.ts +2 -1
- package/dist/document-tools/index.cjs +20 -20
- package/dist/document-tools/index.js +3 -3
- package/dist/docx/index.cjs +1 -1
- package/dist/docx/index.js +1 -1
- package/dist/facts/index.cjs +4 -4
- package/dist/facts/index.js +4 -4
- package/dist/files/index.cjs +225 -225
- package/dist/files/index.js +5 -5
- package/dist/home/index.cjs +31 -31
- package/dist/home/index.js +6 -6
- package/dist/index.cjs +1643 -1642
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +28 -27
- package/dist/index.js.map +1 -1
- package/dist/retrieval/index.cjs +1 -1
- package/dist/retrieval/index.js +1 -1
- package/dist/settings/index.cjs +161 -161
- package/dist/settings/index.js +6 -6
- package/dist/shell/index.cjs +77 -77
- package/dist/shell/index.js +6 -6
- package/dist/studio/index.cjs +10 -10
- package/dist/studio/index.js +9 -9
- package/dist/workflow-canvas/index.cjs +25 -25
- package/dist/workflow-canvas/index.js +12 -12
- package/dist/workspaces/index.cjs +1 -1
- package/dist/workspaces/index.js +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedCallDock-ESH665DH.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-3OUYXRP2.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-IEGLOEEZ.cjs.map +0 -1
- package/dist/chunk-3PEUP4CH.cjs +0 -109
- package/dist/chunk-3PEUP4CH.cjs.map +0 -1
- package/dist/chunk-FTLNYE2X.cjs.map +0 -1
- package/dist/chunk-LLEI5I5C.js +0 -102
- package/dist/chunk-LLEI5I5C.js.map +0 -1
- package/dist/chunk-XUUKUIKH.js.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// src/chat/doc-links.ts
|
|
5
|
+
var DOC_ID_IN_HREF = /\b(doc-[a-zA-Z0-9]{8})\b/;
|
|
6
|
+
function workspaceDocIdFromHref(href, deploymentDomain) {
|
|
7
|
+
if (!href) return null;
|
|
8
|
+
const match = DOC_ID_IN_HREF.exec(href);
|
|
9
|
+
if (!match) return null;
|
|
10
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(href)) {
|
|
11
|
+
try {
|
|
12
|
+
const target = new URL(href);
|
|
13
|
+
const isDeployment = !!deploymentDomain && target.protocol === "https:" && target.hostname === deploymentDomain;
|
|
14
|
+
if (target.origin !== window.location.origin && !isDeployment) return null;
|
|
15
|
+
} catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return match[1];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/chat/rehype-doc-entity-pills.ts
|
|
23
|
+
var DOC_ID_PATTERN = /\b((?:doc|eml)-[a-zA-Z0-9]+)\b/;
|
|
24
|
+
var MAX_CACHE_ENTRIES = 512;
|
|
25
|
+
var textCache = /* @__PURE__ */ new Map();
|
|
26
|
+
function cacheGet(key) {
|
|
27
|
+
if (!textCache.has(key)) return void 0;
|
|
28
|
+
const value = textCache.get(key);
|
|
29
|
+
textCache.delete(key);
|
|
30
|
+
textCache.set(key, value);
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
function cacheSet(key, value) {
|
|
34
|
+
if (textCache.size >= MAX_CACHE_ENTRIES) {
|
|
35
|
+
const oldest = textCache.keys().next().value;
|
|
36
|
+
if (oldest !== void 0) textCache.delete(oldest);
|
|
37
|
+
}
|
|
38
|
+
textCache.set(key, value);
|
|
39
|
+
}
|
|
40
|
+
function buildReplacementNodes(text) {
|
|
41
|
+
if (!DOC_ID_PATTERN.test(text)) return null;
|
|
42
|
+
const globalPattern = /\b((?:doc|eml)-[a-zA-Z0-9]+)\b/g;
|
|
43
|
+
const newNodes = [];
|
|
44
|
+
let lastIndex = 0;
|
|
45
|
+
let m;
|
|
46
|
+
while ((m = globalPattern.exec(text)) !== null) {
|
|
47
|
+
if (m.index > lastIndex) {
|
|
48
|
+
newNodes.push({ type: "text", value: text.slice(lastIndex, m.index) });
|
|
49
|
+
}
|
|
50
|
+
newNodes.push({
|
|
51
|
+
type: "element",
|
|
52
|
+
tagName: "span",
|
|
53
|
+
properties: m[1].startsWith("eml-") ? { dataMailId: m[1] } : { dataDocId: m[1] },
|
|
54
|
+
children: []
|
|
55
|
+
});
|
|
56
|
+
lastIndex = m.index + m[0].length;
|
|
57
|
+
}
|
|
58
|
+
if (lastIndex < text.length) {
|
|
59
|
+
newNodes.push({ type: "text", value: text.slice(lastIndex) });
|
|
60
|
+
}
|
|
61
|
+
return newNodes;
|
|
62
|
+
}
|
|
63
|
+
function transformChildren(parent) {
|
|
64
|
+
const children = parent.children;
|
|
65
|
+
if (!children) return;
|
|
66
|
+
const inCode = parent.tagName === "code" || parent.tagName === "pre";
|
|
67
|
+
for (let index = 0; index < children.length; index++) {
|
|
68
|
+
const node = children[index];
|
|
69
|
+
if (node.type !== "text") {
|
|
70
|
+
transformChildren(node);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (inCode) continue;
|
|
74
|
+
const text = node.value ?? "";
|
|
75
|
+
let replacement = cacheGet(text);
|
|
76
|
+
if (replacement === void 0) {
|
|
77
|
+
replacement = buildReplacementNodes(text);
|
|
78
|
+
cacheSet(text, replacement);
|
|
79
|
+
}
|
|
80
|
+
if (replacement === null) continue;
|
|
81
|
+
const cloned = replacement.map(
|
|
82
|
+
(n) => typeof n === "object" && n !== null ? { ...n } : n
|
|
83
|
+
);
|
|
84
|
+
children.splice(index, 1, ...cloned);
|
|
85
|
+
index += cloned.length - 1;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function rehypeDocEntityPills() {
|
|
89
|
+
return (tree) => {
|
|
90
|
+
transformChildren(tree);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
exports.DOC_ID_IN_HREF = DOC_ID_IN_HREF;
|
|
95
|
+
exports.rehypeDocEntityPills = rehypeDocEntityPills;
|
|
96
|
+
exports.workspaceDocIdFromHref = workspaceDocIdFromHref;
|
|
97
|
+
//# sourceMappingURL=chunk-OK3UJMO4.cjs.map
|
|
98
|
+
//# sourceMappingURL=chunk-OK3UJMO4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/chat/doc-links.ts","../src/chat/rehype-doc-entity-pills.ts"],"names":[],"mappings":"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","file":"chunk-OK3UJMO4.cjs","sourcesContent":["/**\n * Recognising workspace-document links inside rendered markdown hrefs.\n */\n\n/**\n * A workspace document id in an href — `doc-` plus EXACTLY eight alphanumerics,\n * the format every model in the backend pins (`^doc-[a-zA-Z0-9]{8}$`).\n *\n * `{8,}` would swallow an unrelated external URL that merely contains a `doc-…`\n * segment (`https://example.com/doc-download1234`) and route it to a viewer that\n * has nothing to show.\n */\nexport const DOC_ID_IN_HREF = /\\b(doc-[a-zA-Z0-9]{8})\\b/\n\n/**\n * The document id an href points at, or null if it does not address one of OURS.\n *\n * Absolute URLs qualify only for this origin or the deployment (`deploymentDomain`, the blocks\n * environment's `runtimeConfig.deploymentDomain`).\n * Development UI and API hosts can differ. Unrelated origins remain external. The\n * observed shape is the bare id (`[title](doc-35ce54e8)`), which is relative.\n */\nexport function workspaceDocIdFromHref(\n href: string | undefined,\n deploymentDomain?: string | null\n): string | null {\n if (!href) return null\n const match = DOC_ID_IN_HREF.exec(href)\n if (!match) return null\n if (/^[a-z][a-z0-9+.-]*:/i.test(href)) {\n try {\n const target = new URL(href)\n const isDeployment =\n !!deploymentDomain && target.protocol === 'https:' && target.hostname === deploymentDomain\n if (target.origin !== window.location.origin && !isDeployment) return null\n } catch {\n return null\n }\n }\n return match[1]\n}\n","// A document (doc-…) or an email of the person's own mailbox (eml-…): both render as entity pills.\nconst DOC_ID_PATTERN = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/\n\n/**\n * Per-text-node transform cache.\n *\n * Keyed by the raw text-node value. For the vast majority of text nodes — those\n * without any `doc-…` substring — we memoize the \"no match\" decision so a repeat\n * render of an unchanged message skips the regex entirely. When a node does\n * contain doc IDs we also cache the pre-built replacement children, so repeated\n * renders of a finished message don't re-scan or re-allocate.\n *\n * Uses a bounded LRU-ish Map — oldest entries are evicted when we exceed the\n * cap. This is a module singleton; across the app the hottest entries (tool\n * responses, common answer fragments) end up cached permanently for the session.\n */\nconst MAX_CACHE_ENTRIES = 512\nconst textCache = new Map<string, ReadonlyArray<unknown> | null>()\n\nfunction cacheGet(key: string): ReadonlyArray<unknown> | null | undefined {\n if (!textCache.has(key)) return undefined\n const value = textCache.get(key)\n // Touch to move it to the end of the insertion order (LRU).\n textCache.delete(key)\n textCache.set(key, value as ReadonlyArray<unknown> | null)\n return value\n}\n\nfunction cacheSet(key: string, value: ReadonlyArray<unknown> | null): void {\n if (textCache.size >= MAX_CACHE_ENTRIES) {\n const oldest = textCache.keys().next().value\n if (oldest !== undefined) textCache.delete(oldest)\n }\n textCache.set(key, value)\n}\n\n/**\n * Test-only helper to reset the memoization cache.\n * @internal\n */\nexport function __resetDocEntityPillCache(): void {\n textCache.clear()\n}\n\nfunction buildReplacementNodes(text: string): ReadonlyArray<unknown> | null {\n if (!DOC_ID_PATTERN.test(text)) return null\n\n const globalPattern = /\\b((?:doc|eml)-[a-zA-Z0-9]+)\\b/g\n const newNodes: unknown[] = []\n let lastIndex = 0\n let m: RegExpExecArray | null\n\n while ((m = globalPattern.exec(text)) !== null) {\n if (m.index > lastIndex) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex, m.index) })\n }\n newNodes.push({\n type: 'element',\n tagName: 'span',\n properties: m[1].startsWith('eml-') ? { dataMailId: m[1] } : { dataDocId: m[1] },\n children: [],\n })\n lastIndex = m.index + m[0].length\n }\n\n if (lastIndex < text.length) {\n newNodes.push({ type: 'text', value: text.slice(lastIndex) })\n }\n\n return newNodes\n}\n\n/**\n * Rehype plugin that detects doc external IDs in text nodes and converts them to\n * <span data-doc-id=\"...\"> elements for rendering as entity pills in MarkdownRenderer.\n *\n * Skips text inside code/pre elements so IDs in code blocks are left as plain text.\n *\n * Results are memoized per text-node value — stable messages re-use the cached\n * decision instead of re-running the regex on every render.\n */\n/** A node of the HTML tree (hast), as far as the transform reads it. */\ninterface TreeNode {\n type: string\n tagName?: string\n value?: string\n children?: unknown[]\n}\n\n/** Replace the doc/mail ids in the text nodes under `parent` (code and pre are left alone). */\nfunction transformChildren(parent: TreeNode): void {\n const children = parent.children\n if (!children) return\n const inCode = parent.tagName === 'code' || parent.tagName === 'pre'\n for (let index = 0; index < children.length; index++) {\n const node = children[index] as TreeNode\n if (node.type !== 'text') {\n transformChildren(node)\n continue\n }\n if (inCode) continue\n const text = node.value ?? ''\n let replacement = cacheGet(text)\n if (replacement === undefined) {\n replacement = buildReplacementNodes(text)\n cacheSet(text, replacement)\n }\n if (replacement === null) continue\n // Clone cached nodes so each tree gets its own object identity. AST transforms by other\n // plugins may otherwise mutate shared references.\n const cloned = replacement.map((n) =>\n typeof n === 'object' && n !== null ? { ...(n as object) } : n\n )\n children.splice(index, 1, ...cloned)\n index += cloned.length - 1\n }\n}\n\nexport function rehypeDocEntityPills() {\n return (tree: TreeNode) => {\n transformChildren(tree)\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { RowNavigatorControls, LabelPickerList } from './chunk-JMQLTMJ7.js';
|
|
3
3
|
import { DetailLoading, DetailBody, DetailSection, DetailFields, DetailField, DetailLinkList, DetailLinkItem, DetailEmpty } from './chunk-ZCOVDK2E.js';
|
|
4
4
|
import { page, minuteUtc, cell, paragraph, documentXml, docxPackage, TABLE_DOCUMENT_STYLES, groupDefinitions, compareDefinitions } from './chunk-DIB4JYUY.js';
|
|
5
|
-
import { taskActivityHeadline, DEFAULT_TASK_ACTIVITY_LABELS } from './chunk-
|
|
5
|
+
import { taskActivityHeadline, DEFAULT_TASK_ACTIVITY_LABELS } from './chunk-TTH6LLQQ.js';
|
|
6
6
|
import { DocumentPicker } from './chunk-NUSBINUM.js';
|
|
7
7
|
import { ModalHeader } from './chunk-TX2ZICS7.js';
|
|
8
8
|
import { VisibilityToggle, cn, Textarea, Input, Button, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuItem, Checkbox, getEntityLabel, tagKindNouns, tagKindTitle, Popover, PopoverTrigger, PopoverContent, getEntityColor, isImageDocument, getDocumentTitle, Dialog, DialogContent, DialogTitle, DialogDescription } from '@arbidocs/react/ui';
|
|
@@ -2042,5 +2042,5 @@ function ExtractEntitiesDialog({
|
|
|
2042
2042
|
}
|
|
2043
2043
|
|
|
2044
2044
|
export { DEFAULT_GLOSSARY_LABELS, DEFAULT_TAG_COLUMNS_EDITOR_LABELS, DEFAULT_TAG_DETAIL_LABELS, DEFAULT_TAG_TABLE_DOCX_LABELS, DEFAULT_TAG_TABLE_LABELS, DEFAULT_THREAD_FOLLOW_LABELS, DEFAULT_WORKSPACE_ACTIVITY_LABELS, DEFAULT_WORKSPACE_NOTIFICATION_MENU_LABELS, EXTRACT_LIMIT, EntityIdentityBar, EntityTooltip, EntityTooltipHeader, EntityTooltipHint, EntityTooltipSection, EntityTooltipStats, ExtractEntitiesDialog, GridRowNavigator, IDENTITY_NAME_MAX_LENGTH, LoadingIndicator, SharedCell, TAG_TABLE_DOCX_LANDSCAPE_AFTER, TagColumnsEditor, TagDetail, TagPicker, TagTable, TagTableCell, ThreadFollowButton, ThreadFollowMenuItem, WorkspaceActivityList, WorkspaceNotificationMenu, cellText, cellValue, documentCount, entitiesPhrase, fieldWrites, glossaryDocumentXml, glossaryDocx, glossaryEntries, glossaryFileName, glossaryMarkdown, isGap, parseCell, rowLinks, tagDetailLabels, tagKindDescription, tagNoteLabel, tagTableDocumentXml, tagTableDocx, tagTableLabels, tagTableMarkdown, tagsPageNouns, workspaceActivityHeadline, workspaceActivityTarget };
|
|
2045
|
-
//# sourceMappingURL=chunk-
|
|
2046
|
-
//# sourceMappingURL=chunk-
|
|
2045
|
+
//# sourceMappingURL=chunk-OK4HKHV4.js.map
|
|
2046
|
+
//# sourceMappingURL=chunk-OK4HKHV4.js.map
|