@epam/ai-dial-quotations 1.2.0-dev.34 → 1.2.0-dev.41

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/index.css CHANGED
@@ -1,2 +1,2 @@
1
1
  ._card_1kph1_1{background:var(--cc-card-bg,var(--bg-layer-raised,#fcfcfc))}._quote_1kph1_5{color:var(--cc-quote-text,var(--text-secondary,#57647a))}._title_1kph1_9{color:var(--cc-title-text,var(--text-primary,#161b2d))}._switcher_1kph1_13{color:var(--cc-switcher-text,var(--text-secondary,#57647a))}._sourceName_1kph1_17{color:var(--cc-source-name-text,var(--text-primary,#161b2d))}._content_xzs0h_1>svg{fill:var(--cc-card-bg,var(--bg-layer-raised,#fcfcfc));stroke:#0000}
2
- /*$vite$:1*/.visible{visibility:visible}.collapse{visibility:collapse}.absolute{position:absolute}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-3{margin-bottom:.75rem}.ms-1{margin-inline-start:.25rem}.line-clamp-6{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:6}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.min-h-\[3lh\]{min-height:3lh}.w-\[400px\]{width:400px}.min-w-0{min-width:0}.\!max-w-none{max-width:none!important}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded-lg{border-radius:.5rem}.\!border-0{border-width:0!important}.\!bg-transparent{background-color:transparent!important}.\!p-0{padding:0!important}.p-4{padding:1rem}.ps-3{padding-inline-start:.75rem}.align-middle{vertical-align:middle}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[text-wrap\:pretty\]{text-wrap:pretty}.last\:mb-0:last-child{margin-bottom:0}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
2
+ /*$vite$:1*/.visible{visibility:visible}.collapse{visibility:collapse}.absolute{position:absolute}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-3{margin-bottom:.75rem}.ms-1{margin-inline-start:.25rem}.line-clamp-6{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:6}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table-cell{display:table-cell}.table-row{display:table-row}.hidden{display:none}.min-h-\[3lh\]{min-height:3lh}.w-\[400px\]{width:400px}.min-w-0{min-width:0}.\!max-w-none{max-width:none!important}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded-lg{border-radius:.5rem}.\!border-0{border-width:0!important}.\!bg-transparent{background-color:transparent!important}.\!p-0{padding:0!important}.p-4{padding:1rem}.ps-3{padding-inline-start:.75rem}.align-middle{vertical-align:middle}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[text-wrap\:pretty\]{text-wrap:pretty}.last\:mb-0:last-child{margin-bottom:0}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
package/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export type { UseCitationMarkdownComponentsCallbacks } from './hooks/useCitation
13
13
  export { gatherSameSourceAnnotations, groupAnnotations, groupAnnotationsByCitId, groupAnnotationsBySource, } from './utils/group-annotations-by-source';
14
14
  export type { AnnotationGroup } from './utils/group-annotations-by-source';
15
15
  export { annotationHighlightId, annotationsToPdfHighlights, annotationToOfficeHighlightLocations, getAnnotationPdfPage, isDocxRangeSelector, isExcelRcRangeSelector, isPptxRangeSelector, resolveMessageAnnotations, } from './utils/annotation';
16
- export type { DocxOfficeHighlightLocation, ExcelOfficeHighlightLocation, OfficeHighlightLocation, PptxOfficeHighlightLocation, } from './models/office-highlight';
16
+ export type { DocxOfficeHighlightLocation, DocxTableRowOfficeHighlightLocation, ExcelOfficeHighlightLocation, OfficeHighlightLocation, PptxOfficeHighlightLocation, PptxTableRowOfficeHighlightLocation, } from './models/office-highlight';
17
17
  export { injectCitationSentinels, replaceSentinelsInChildren, stripCitTagsWhileStreaming, } from './utils/citation-injection';
18
18
  export { isReferenceOnlyAttachment, parsePdfPageReference, getReferenceAttachmentGroups, } from './utils/reference-attachment';
19
19
  export type { PdfPageReference } from './utils/reference-attachment';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qEAAqE,CAAC;AACpH,YAAY,EAAE,sCAAsC,EAAE,MAAM,qEAAqE,CAAC;AAGlI,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACpC,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAG5F,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qEAAqE,CAAC;AACpH,YAAY,EAAE,sCAAsC,EAAE,MAAM,qEAAqE,CAAC;AAGlI,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,oCAAoC,EACpC,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,2BAA2B,EAC3B,mCAAmC,EACnC,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
package/index.js CHANGED
@@ -146,13 +146,40 @@ var T = {
146
146
  labelClassName: l
147
147
  })
148
148
  });
149
- }, N = {
149
+ }, N = (e) => {
150
+ let t = e.trim();
151
+ if (!t.startsWith("|") || !t.endsWith("|") || /[\r\n]/.test(t)) return;
152
+ let n = [], r = "";
153
+ for (let e = 1; e < t.length; e += 1) {
154
+ let i = t[e], a = t[e + 1];
155
+ i === "\\" && a != null && /[!-/:-@[-`{-~]/.test(a) ? (r += a, e += 1) : i === "|" ? (n.push(r.trim()), r = "") : r += i;
156
+ }
157
+ if (!(r !== "" || n.length < 2 || n.every((e) => e === "" || /^:?-{3,}:?$/.test(e)))) return n;
158
+ }, ee = (e) => {
159
+ if (e.type !== "docx_text_anchor" && e.type !== "pptx_text_anchor") return;
160
+ let { text: t, occurrence: n, slide: r } = e;
161
+ if (typeof t != "string" || typeof n != "number" || !Number.isSafeInteger(n) || n < 1) return;
162
+ let i = N(t);
163
+ if (i != null) {
164
+ if (e.type === "docx_text_anchor") return {
165
+ type: "docx_text_anchor",
166
+ cells: i,
167
+ occurrence: n
168
+ };
169
+ if (!(typeof r != "number" || !Number.isSafeInteger(r) || r < 1)) return {
170
+ type: "pptx_text_anchor",
171
+ cells: i,
172
+ occurrence: n,
173
+ slide: r
174
+ };
175
+ }
176
+ }, te = {
150
177
  backgroundColor: "transparent",
151
178
  borderColor: "var(--stroke-accent, #1D4ED8)",
152
179
  borderWidth: "2px",
153
180
  opacity: .5,
154
181
  hoverOpacity: .5
155
- }, ee = (e) => {
182
+ }, ne = (e) => {
156
183
  if (typeof e != "object" || !e) return;
157
184
  let t = e, { lt: n, wh: r } = t;
158
185
  if (Array.isArray(n) && Array.isArray(r) && n.length >= 2 && r.length >= 2) {
@@ -182,7 +209,7 @@ var T = {
182
209
  x2: i,
183
210
  y2: a
184
211
  });
185
- } else t.type === "pdf_region" && (n = ee(t.bbox));
212
+ } else t.type === "pdf_region" && (n = ne(t.bbox));
186
213
  if (n == null) return;
187
214
  let i = t.page;
188
215
  if (!(typeof i != "number" || !Number.isInteger(i) || i < 1) && [
@@ -197,7 +224,7 @@ var T = {
197
224
  x2: n.x2,
198
225
  y2: n.y2
199
226
  };
200
- }, F = (e) => e.flatMap((e, t) => {
227
+ }, re = (e) => e.flatMap((e, t) => {
201
228
  let n = e.body?.selector;
202
229
  if (n == null) return [];
203
230
  let i = (Array.isArray(n) ? n : [n]).flatMap((e) => {
@@ -208,9 +235,9 @@ var T = {
208
235
  return i.length === 0 ? [] : [{
209
236
  id: String(e.index ?? t),
210
237
  bboxes: i,
211
- style: N
238
+ style: te
212
239
  }];
213
- }), te = (e, t) => String(e.index ?? t), ne = (e) => {
240
+ }), ie = (e, t) => String(e.index ?? t), ae = (e) => {
214
241
  let t = e.body?.selector;
215
242
  if (t == null) return;
216
243
  let n = Array.isArray(t) ? t : [t];
@@ -219,26 +246,26 @@ var T = {
219
246
  let t = P(e);
220
247
  if (t != null) return t.page;
221
248
  }
222
- }, I = (e) => {
249
+ }, F = (e) => {
223
250
  let t = e.custom_content?.annotations;
224
251
  if (t?.length) return t.filter((e) => e != null && e.body?.source?.attachment?.url != null).map(a);
225
252
  let n = e.custom_fields;
226
253
  if (typeof n != "object" || !n) return [];
227
254
  let r = n.annotations;
228
255
  return !Array.isArray(r) || r.length === 0 ? [] : o(r, e.custom_content?.attachments ?? []).map(a);
229
- }, L = (e) => {
256
+ }, I = (e) => {
230
257
  if (e.type !== "docx_text_range") return !1;
231
258
  let t = e;
232
259
  return typeof t.story == "string" && Array.isArray(t.path) && t.path.every((e) => typeof e == "number") && typeof t.start == "number" && typeof t.end == "number" && typeof t.text == "string";
233
- }, R = (e) => {
260
+ }, L = (e) => {
234
261
  if (e.type !== "pptx_text_range") return !1;
235
262
  let t = e;
236
263
  return typeof t.slide == "number" && typeof t.shape_id == "string" && typeof t.start == "number" && typeof t.end == "number" && typeof t.text == "string";
237
- }, z = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", B = (e) => {
264
+ }, R = (e) => typeof e == "object" && !!e && typeof e.row == "number" && typeof e.col == "number", z = (e) => {
238
265
  if (e.type !== "excel_rc_range") return !1;
239
266
  let t = e;
240
- return typeof t.sheet == "string" && z(t.start) && (t.end === void 0 || t.end === null || z(t.end));
241
- }, re = (e) => {
267
+ return typeof t.sheet == "string" && R(t.start) && (t.end === void 0 || t.end === null || R(t.end));
268
+ }, oe = (e) => {
242
269
  let { story: t, path: n, start: r, end: i, text: a } = e;
243
270
  if (!(!n.every((e) => Number.isInteger(e)) || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
244
271
  type: "docx_text_range",
@@ -248,7 +275,7 @@ var T = {
248
275
  endExclusive: i,
249
276
  text: a
250
277
  };
251
- }, ie = (e) => {
278
+ }, se = (e) => {
252
279
  let { slide: t, shape_id: n, start: r, end: i, text: a } = e;
253
280
  if (!(!Number.isInteger(t) || t < 1 || !Number.isInteger(r) || !Number.isInteger(i) || r < 0 || i < r)) return {
254
281
  type: "pptx_text_range",
@@ -258,7 +285,7 @@ var T = {
258
285
  endExclusive: i,
259
286
  text: a
260
287
  };
261
- }, ae = (e) => {
288
+ }, ce = (e) => {
262
289
  let { sheet: t, start: n, end: r } = e;
263
290
  if (!(t.length === 0 || !Number.isInteger(n.row) || !Number.isInteger(n.col) || n.row < 1 || n.col < 1)) {
264
291
  if (r == null) return {
@@ -273,29 +300,30 @@ var T = {
273
300
  end: r
274
301
  };
275
302
  }
276
- }, oe = (e) => {
303
+ }, le = (e) => {
277
304
  let t = e.body?.selector;
278
305
  return t == null ? [] : (Array.isArray(t) ? t : [t]).flatMap((e) => {
279
306
  if (!r(e)) return [];
280
- if (L(e)) {
281
- let t = re(e);
307
+ if (I(e)) {
308
+ let t = oe(e);
282
309
  return t ? [t] : [];
283
310
  }
284
- if (R(e)) {
285
- let t = ie(e);
311
+ if (L(e)) {
312
+ let t = se(e);
286
313
  return t ? [t] : [];
287
314
  }
288
- if (B(e)) {
289
- let t = ae(e);
315
+ if (z(e)) {
316
+ let t = ce(e);
290
317
  return t ? [t] : [];
291
318
  }
292
- return [];
319
+ let t = ee(e);
320
+ return t ? [t] : [];
293
321
  });
294
- }, se = (e, t) => C(() => t ? [] : I(e), [t, e]), ce = {
322
+ }, ue = (e, t) => C(() => t ? [] : F(e), [t, e]), de = {
295
323
  openOwnerKey: null,
296
324
  activeIndexByGroup: {}
297
- }, le = () => {
298
- let [e, t] = w(ce), n = b((e) => {
325
+ }, B = () => {
326
+ let [e, t] = w(de), n = b((e) => {
299
327
  t((t) => ({
300
328
  ...t,
301
329
  openOwnerKey: e
@@ -339,7 +367,7 @@ var T = {
339
367
  }).sort((e, t) => t.pos - e.pos), r = e;
340
368
  for (let { idx: e, pos: t } of n) r = `${r.slice(0, t)}⟦C${e}⟧${r.slice(t)}`;
341
369
  return r;
342
- }, U = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, ue = /^<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>$/, de = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>|<\/?cit\b[^>]*>|<\/?cit\b[^>]*$/gi, fe = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), W = (e) => e.replace(de, (e) => ue.test(e) ? e : fe(e)), G = (e) => W(e).replace(U, ""), K = (e, t) => {
370
+ }, fe = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>/g, pe = /^<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>$/, me = /<cit\s+data-id=(?:"[^"]+"|'[^']+')\s*>\s*<\/cit>|<\/?cit\b[^>]*>|<\/?cit\b[^>]*$/gi, he = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), U = (e) => e.replace(me, (e) => pe.test(e) ? e : he(e)), W = (e) => U(e).replace(fe, ""), G = (e, t) => {
343
371
  if (typeof e == "string") {
344
372
  let n = e.split(V);
345
373
  if (n.length === 1) return e;
@@ -349,18 +377,18 @@ var T = {
349
377
  }), r;
350
378
  }
351
379
  return Array.isArray(e) ? e.flatMap((e) => {
352
- let n = K(e, t);
380
+ let n = G(e, t);
353
381
  return Array.isArray(n) ? n : [n];
354
382
  }) : e;
355
- }, pe = (e) => {
383
+ }, ge = (e) => {
356
384
  let t = e.primaryAnnotation.target?.selector;
357
385
  return t?.type === "html_tag" ? t.id : void 0;
358
- }, me = (e, t) => /* @__PURE__ */ v(g, { children: [
386
+ }, _e = (e, t) => /* @__PURE__ */ v(g, { children: [
359
387
  e == null ? "<cit>" : `<cit data-id="${e}">`,
360
388
  t,
361
389
  "</cit>"
362
- ] }), he = (e, t, n, r = !1, a = !1) => {
363
- let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = C(() => r ? G(e) : W(t.length > 0 ? H(e, t) : e), [
390
+ ] }), ve = (e, t, n, r = !1, a = !1) => {
391
+ let { onPreview: o, onOpenInBrowser: s, buildLabels: c } = n, l = C(() => r ? W(e) : U(t.length > 0 ? H(e, t) : e), [
364
392
  e,
365
393
  t,
366
394
  r
@@ -370,7 +398,7 @@ var T = {
370
398
  markdownComponents: C(() => {
371
399
  let e = /* @__PURE__ */ new Map();
372
400
  for (let n of t) {
373
- let t = pe(n);
401
+ let t = ge(n);
374
402
  t != null && e.set(t, n);
375
403
  }
376
404
  let n = (e) => {
@@ -387,19 +415,19 @@ var T = {
387
415
  return r ? n(r) : null;
388
416
  }, l = { cit: (t) => {
389
417
  let r = t["data-id"] == null ? void 0 : e.get(t["data-id"]);
390
- return r ? n(r) : me(t["data-id"], t.children);
418
+ return r ? n(r) : _e(t["data-id"], t.children);
391
419
  } };
392
420
  return t.length === 0 ? u ? l : {} : {
393
421
  ...l,
394
422
  p: ({ children: e, ...t }) => /* @__PURE__ */ _("p", {
395
423
  ...t,
396
424
  className: i(a ? "dial-small-paragraph-text" : "dial-body-paragraph-text", "mb-3 [overflow-wrap:anywhere] [text-wrap:pretty] last:mb-0"),
397
- children: K(e, r)
425
+ children: G(e, r)
398
426
  }),
399
427
  li: ({ children: e, ...t }) => /* @__PURE__ */ _("li", {
400
428
  ...t,
401
429
  className: "mb-1.5 last:mb-0",
402
- children: K(e, r)
430
+ children: G(e, r)
403
431
  })
404
432
  };
405
433
  }, [
@@ -411,26 +439,26 @@ var T = {
411
439
  u
412
440
  ])
413
441
  };
414
- }, q = (e) => {
442
+ }, K = (e) => {
415
443
  try {
416
444
  return decodeURIComponent(e);
417
445
  } catch {
418
446
  return e;
419
447
  }
420
- }, ge = (e) => {
448
+ }, q = (e) => {
421
449
  try {
422
450
  let t = new URL(e);
423
- return t.pathname.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? t.hostname;
451
+ return t.pathname.split("/").map((e) => K(e)).filter(Boolean).at(-1) ?? t.hostname;
424
452
  } catch {
425
- return e.split("/").map((e) => q(e)).filter(Boolean).at(-1) ?? e;
453
+ return e.split("/").map((e) => K(e)).filter(Boolean).at(-1) ?? e;
426
454
  }
427
- }, J = (e, t) => e.body?.source?.attachment?.title ?? ge(t), Y = (e) => {
455
+ }, J = (e, t) => e.body?.source?.attachment?.title ?? q(t), Y = (e) => {
428
456
  let t = e.target?.selector;
429
457
  return t?.type === "html_tag" ? t : void 0;
430
- }, _e = (e) => Y(e) != null, X = (e) => {
458
+ }, ye = (e) => Y(e) != null, X = (e) => {
431
459
  let t = /* @__PURE__ */ new Map();
432
460
  for (let n of e) {
433
- if (_e(n)) continue;
461
+ if (ye(n)) continue;
434
462
  let e = n.body?.source?.attachment?.url;
435
463
  if (e == null) continue;
436
464
  let r = t.get(e);
@@ -460,16 +488,16 @@ var T = {
460
488
  });
461
489
  }
462
490
  return Array.from(t.values());
463
- }, ve = (e) => [...Z(e), ...X(e)], ye = (e, t) => {
491
+ }, be = (e) => [...Z(e), ...X(e)], xe = (e, t) => {
464
492
  let n = e.body?.source?.attachment?.url;
465
493
  return n == null || !t.includes(e) ? [e] : t.filter((e) => e.body?.source?.attachment?.url === n);
466
- }, Q = (e) => e.url == null && e.reference_url != null, be = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
467
- let t = be.exec(e);
494
+ }, Q = (e) => e.url == null && e.reference_url != null, Se = /^(.*\.pdf)(?:#page=(\d+))?$/i, $ = (e) => {
495
+ let t = Se.exec(e);
468
496
  return t ? {
469
497
  baseUrl: t[1],
470
498
  page: t[2] == null ? null : Number(t[2])
471
499
  } : null;
472
- }, xe = (t) => X((t ?? []).filter(Q).map((t) => {
500
+ }, Ce = (t) => X((t ?? []).filter(Q).map((t) => {
473
501
  let n = t.reference_url, r = $(n) != null;
474
502
  return { body: {
475
503
  quote: t.data,
@@ -484,4 +512,4 @@ var T = {
484
512
  } };
485
513
  }));
486
514
  //#endregion
487
- export { E as CitationCard, k as CitationCardProvider, M as CitationDropdown, D as CitationMarker, te as annotationHighlightId, oe as annotationToOfficeHighlightLocations, F as annotationsToPdfHighlights, ye as gatherSameSourceAnnotations, ne as getAnnotationPdfPage, xe as getReferenceAttachmentGroups, ve as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, H as injectCitationSentinels, L as isDocxRangeSelector, B as isExcelRcRangeSelector, R as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, K as replaceSentinelsInChildren, I as resolveMessageAnnotations, G as stripCitTagsWhileStreaming, se as useAnnotations, le as useCitationCard, A as useCitationCardContext, he as useCitationMarkdownComponents };
515
+ export { E as CitationCard, k as CitationCardProvider, M as CitationDropdown, D as CitationMarker, ie as annotationHighlightId, le as annotationToOfficeHighlightLocations, re as annotationsToPdfHighlights, xe as gatherSameSourceAnnotations, ae as getAnnotationPdfPage, Ce as getReferenceAttachmentGroups, be as groupAnnotations, Z as groupAnnotationsByCitId, X as groupAnnotationsBySource, H as injectCitationSentinels, I as isDocxRangeSelector, z as isExcelRcRangeSelector, L as isPptxRangeSelector, Q as isReferenceOnlyAttachment, $ as parsePdfPageReference, G as replaceSentinelsInChildren, F as resolveMessageAnnotations, W as stripCitTagsWhileStreaming, ue as useAnnotations, B as useCitationCard, A as useCitationCardContext, ve as useCitationMarkdownComponents };
@@ -38,6 +38,26 @@ export interface PptxOfficeHighlightLocation {
38
38
  /** The cited text, expected to equal the text resolved over `[start, endExclusive)`. */
39
39
  text: string;
40
40
  }
41
+ /** Temporary table-row location decoded from a DOCX text anchor. */
42
+ export interface DocxTableRowOfficeHighlightLocation {
43
+ /** Wire selector type. */
44
+ type: 'docx_text_anchor';
45
+ /** Plain text of each cell, in column order. */
46
+ cells: string[];
47
+ /** 1-based matching row in the document body. */
48
+ occurrence: number;
49
+ }
50
+ /** Temporary table-row location decoded from a PPTX text anchor. */
51
+ export interface PptxTableRowOfficeHighlightLocation {
52
+ /** Wire selector type. */
53
+ type: 'pptx_text_anchor';
54
+ /** Plain text of each cell, in column order. */
55
+ cells: string[];
56
+ /** 1-based matching row on the specified slide. */
57
+ occurrence: number;
58
+ /** 1-based slide number. */
59
+ slide: number;
60
+ }
41
61
  /** A validated, normalised XLSX cell or same-row cell-range location. */
42
62
  export interface ExcelOfficeHighlightLocation {
43
63
  /** Discriminates this location within `OfficeHighlightLocation`. Mirrors the wire selector's `type`. */
@@ -58,5 +78,5 @@ export interface ExcelOfficeHighlightLocation {
58
78
  * cycle is not permitted). `libs/chat-hooks`, which already depends on both,
59
79
  * maps this into `OoxmlHighlight`/`OoxmlHighlightLocation`.
60
80
  */
61
- export type OfficeHighlightLocation = DocxOfficeHighlightLocation | PptxOfficeHighlightLocation | ExcelOfficeHighlightLocation;
81
+ export type OfficeHighlightLocation = DocxOfficeHighlightLocation | PptxOfficeHighlightLocation | DocxTableRowOfficeHighlightLocation | PptxTableRowOfficeHighlightLocation | ExcelOfficeHighlightLocation;
62
82
  //# sourceMappingURL=office-highlight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"office-highlight.d.ts","sourceRoot":"","sources":["../../src/models/office-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4GAA4G;IAC5G,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,wGAAwG;IACxG,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,iGAAiG;IACjG,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,4BAA4B,CAAC"}
1
+ {"version":3,"file":"office-highlight.d.ts","sourceRoot":"","sources":["../../src/models/office-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4GAA4G;IAC5G,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,wGAAwG;IACxG,IAAI,EAAE,iBAAiB,CAAC;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oEAAoE;AACpE,MAAM,WAAW,mCAAmC;IAClD,0BAA0B;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,mCAAmC;IAClD,0BAA0B;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,wGAAwG;IACxG,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,iGAAiG;IACjG,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,mCAAmC,GACnC,mCAAmC,GACnC,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-quotations",
3
3
  "description": "Citation and annotation components, hooks, and utilities for AI DIAL conversations",
4
- "version": "1.2.0-dev.34",
4
+ "version": "1.2.0-dev.41",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^19.2.8",
26
- "@epam/ai-dial-chat-shared": "1.2.0-dev.34",
26
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.41",
27
27
  "@epam/ai-dial-ui-kit": "^0.14.2"
28
28
  },
29
29
  "repository": {
@@ -45,7 +45,7 @@ export declare const isExcelRcRangeSelector: (selector: AnnotationSelector) => s
45
45
  /**
46
46
  * Converts an annotation's `body.selector` (scalar or array) to validated
47
47
  * `OfficeHighlightLocation` entries, skipping any selector that is not a
48
- * recognised Office range or that fails validation — never throwing.
48
+ * recognised Office range or temporary table-row anchor, or that fails validation.
49
49
  */
50
50
  export declare const annotationToOfficeHighlightLocations: (annotation: Annotation) => OfficeHighlightLocation[];
51
51
  //# sourceMappingURL=annotation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../../src/utils/annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAqG1E;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,aAAa,UAAU,EAAE,KACxB,kBAAkB,EAoBjB,CAAC;AAEL,oHAAoH;AACpH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,eAAe,MAAM,KACpB,MAAmD,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,MAAM,GAAG,SAWX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,OAAO,KAAG,UAAU,EAoBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAWd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAUd,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,oBAQd,CAAC;AA8FF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,GAC/C,YAAY,UAAU,KACrB,uBAAuB,EAsBzB,CAAC"}
1
+ {"version":3,"file":"annotation.d.ts","sourceRoot":"","sources":["../../src/utils/annotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAGV,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAsG1E;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,aAAa,UAAU,EAAE,KACxB,kBAAkB,EAoBjB,CAAC;AAEL,oHAAoH;AACpH,eAAO,MAAM,qBAAqB,GAChC,YAAY,UAAU,EACtB,eAAe,MAAM,KACpB,MAAmD,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,MAAM,GAAG,SAWX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,OAAO,KAAG,UAAU,EAoBtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAWd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,iBAUd,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,kBAAkB,KAC3B,QAAQ,IAAI,oBAQd,CAAC;AA8FF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,GAC/C,YAAY,UAAU,KACrB,uBAAuB,EAuBzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AnnotationSelector } from '@epam/ai-dial-chat-shared';
2
+ import { DocxTableRowOfficeHighlightLocation, PptxTableRowOfficeHighlightLocation } from '../models/office-highlight';
3
+ /** Returns a validated table-row location for the temporary Office anchor format. */
4
+ export declare const normalizeOfficeTableAnchor: (selector: AnnotationSelector) => DocxTableRowOfficeHighlightLocation | PptxTableRowOfficeHighlightLocation | undefined;
5
+ //# sourceMappingURL=office-table-anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"office-table-anchor.d.ts","sourceRoot":"","sources":["../../src/utils/office-table-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EACV,mCAAmC,EACnC,mCAAmC,EACpC,MAAM,4BAA4B,CAAC;AAwCpC,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,GACrC,UAAU,kBAAkB,KAE1B,mCAAmC,GACnC,mCAAmC,GACnC,SA2BH,CAAC"}