@epam/ai-dial-attachment-canvas 1.2.0-dev.3 → 1.2.0-dev.300

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 (66) hide show
  1. package/{LazyContentBoundary-CRXN6PG3.js → LazyContentBoundary-tNE1ExbI.js} +2 -1
  2. package/{PdfContent-D71LPAe3.js → PdfContent-BoAtghsO.js} +1 -1
  3. package/PdfContent.css +1 -1
  4. package/{attachment-canvas-nvhW3tKV.js → attachment-canvas-BgwyzrRC.js} +2 -2
  5. package/components/AttachmentCanvas/AttachmentCanvas.d.ts.map +1 -1
  6. package/components/AttachmentCanvasBody/AttachmentCanvasBody.d.ts.map +1 -1
  7. package/components/AttachmentCanvasContainer/AttachmentCanvasContainer.d.ts +7 -1
  8. package/components/AttachmentCanvasContainer/AttachmentCanvasContainer.d.ts.map +1 -1
  9. package/components/CodeContent/CodeContent.d.ts.map +1 -1
  10. package/components/HtmlContent/HtmlContent.d.ts.map +1 -1
  11. package/components/InlineGroupedVisualizer/InlineGroupedVisualizer.d.ts +42 -0
  12. package/components/InlineGroupedVisualizer/InlineGroupedVisualizer.d.ts.map +1 -0
  13. package/components/McpAppCanvasRenderer/McpAppCanvasRenderer.d.ts +3 -0
  14. package/components/McpAppCanvasRenderer/McpAppCanvasRenderer.d.ts.map +1 -1
  15. package/components/OoxmlContent/OoxmlContent.d.ts.map +1 -1
  16. package/components/PdfContent/PdfContent.d.ts.map +1 -1
  17. package/components/VisualizerCanvasRenderer/VisualizerCanvasRenderer.d.ts +7 -3
  18. package/components/VisualizerCanvasRenderer/VisualizerCanvasRenderer.d.ts.map +1 -1
  19. package/constants/html-preview.d.ts +9 -0
  20. package/constants/html-preview.d.ts.map +1 -0
  21. package/constants/public-class-names.d.ts +4 -0
  22. package/constants/public-class-names.d.ts.map +1 -0
  23. package/context/AttachmentCanvasContext.d.ts.map +1 -1
  24. package/hooks/useMcpAppBridge/useMcpAppBridge.d.ts.map +1 -1
  25. package/hooks/useOpenAttachmentCanvas/useOpenAttachmentCanvas.d.ts +14 -1
  26. package/hooks/useOpenAttachmentCanvas/useOpenAttachmentCanvas.d.ts.map +1 -1
  27. package/index.css +2 -1
  28. package/index.d.ts +8 -3
  29. package/index.d.ts.map +1 -1
  30. package/index.js +819 -610
  31. package/models/attachment-canvas.d.ts +79 -16
  32. package/models/attachment-canvas.d.ts.map +1 -1
  33. package/{ooxml-highlight-surfaces-CaMjx8u-.js → ooxml-highlight-surfaces-BzgOKpBV.js} +182 -74
  34. package/package.json +6 -6
  35. package/types/attachment-canvas.d.ts +6 -1
  36. package/types/attachment-canvas.d.ts.map +1 -1
  37. package/utils/content.d.ts +16 -2
  38. package/utils/content.d.ts.map +1 -1
  39. package/utils/download.d.ts.map +1 -1
  40. package/utils/ooxml-highlight-surfaces.d.ts.map +1 -1
  41. package/utils/ooxml-table-row-highlight.d.ts +8 -0
  42. package/utils/ooxml-table-row-highlight.d.ts.map +1 -0
  43. package/utils/visualizer.d.ts +35 -1
  44. package/utils/visualizer.d.ts.map +1 -1
  45. package/utils/vite-external-matcher.d.ts +5 -5
  46. package/utils/vite-external-matcher.d.ts.map +1 -1
  47. package/bounded-raw-part-cache-Cg1BsSZQ-DN8p45IK.js +0 -37900
  48. package/chart-ex-DsESBs97.js +0 -1009
  49. package/comment-occurrence-C8Y2uoVr-C1cxz2TU.js +0 -6
  50. package/comment-ui-runtime-BfE7MJZn-DhQ_eg15.js +0 -112
  51. package/comment-ui-runtime-BsK8pmUT-EgWiymew.js +0 -2
  52. package/comment-ui-runtime-DcJOYlw--B15auUq-.js +0 -170
  53. package/comments-Diid5ujN-BdQhRNjI.js +0 -282
  54. package/delimited-text-worker-host-BVY-Ecni-AimUmSn0.js +0 -25
  55. package/docx-B-VcIRoc.js +0 -29870
  56. package/line-distribute-Dtudnqhs--BYZNgzX.js +0 -1237
  57. package/line-metrics-B60C86uh-DfQUk7X1.js +0 -60
  58. package/pptx-CnoDB8Fv.js +0 -9211
  59. package/read-only-comment-decoration-Dz7eTQ4d-Cl3RKKH6.js +0 -94
  60. package/read-only-comment-margin-DkgzASAl-BbDxMI5E.js +0 -189
  61. package/render-worker-host-BfbnEChF-D2thMRGX.js +0 -7
  62. package/render-worker-host-DNL9dWRh-Bky38ZHE.js +0 -7
  63. package/render-worker-host-IkHrYOci-DbjyHK7U.js +0 -7
  64. package/renderer-module-contract-D91rkYHH-BtfSKxb4.js +0 -10063
  65. package/visible-index-BgiHEc1z-BOzE9X5U.js +0 -162
  66. package/xlsx-Dn0XSlTO.js +0 -8610
@@ -1,9 +1,9 @@
1
- import { CodeBlockTheme, CustomVisualizerDataLayout } from '@epam/ai-dial-chat-shared';
1
+ import { CodeBlockTheme, CustomVisualizerDataLayout, GroupedAttachmentItem } from '@epam/ai-dial-chat-shared';
2
2
  import { SidebarPanelStyles } from '@epam/ai-dial-sidebar';
3
3
  import { InputHighlightData } from '@epam/pdf-highlighter-kit';
4
4
  import { McpUiHostContext } from '@mcp-ui/client';
5
- import { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
6
- import { CSSProperties } from 'react';
5
+ import { CallToolResult, Implementation } from '@modelcontextprotocol/sdk/types.js';
6
+ import { CSSProperties, ReactNode } from 'react';
7
7
  import { AttachmentContentType, AttachmentErrorType, OoxmlFileType, OoxmlHighlightKind } from '../types/attachment-canvas';
8
8
  /** Content payload for plain-text attachments. */
9
9
  export interface PlainTextCanvasContent {
@@ -63,7 +63,7 @@ export interface OoxmlDocxHighlightLocation {
63
63
  path: number[];
64
64
  /** Inclusive start character offset within the story's matched text. */
65
65
  start: number;
66
- /** Exclusive end character offset, already converted from the wire's inclusive `end`. */
66
+ /** Exclusive end character offset — the wire's `end`, already exclusive, copied through unchanged. */
67
67
  endExclusive: number;
68
68
  /** The cited text, compared against the text resolved over `[start, endExclusive)`. */
69
69
  text: string;
@@ -78,11 +78,31 @@ export interface OoxmlPptxHighlightLocation {
78
78
  shapeId: string;
79
79
  /** Inclusive start character offset within the shape's matched text. */
80
80
  start: number;
81
- /** Exclusive end character offset, already converted from the wire's inclusive `end`. */
81
+ /** Exclusive end character offset — the wire's `end`, already exclusive, copied through unchanged. */
82
82
  endExclusive: number;
83
83
  /** The cited text, compared against the text resolved over `[start, endExclusive)`. */
84
84
  text: string;
85
85
  }
86
+ /** A complete table row in the DOCX body, matched by cell text. */
87
+ export interface OoxmlDocxTableRowLocation {
88
+ /** Location kind. */
89
+ kind: OoxmlHighlightKind.DocxTableRow;
90
+ /** Plain text of each cell, in column order. */
91
+ cells: string[];
92
+ /** 1-based matching row in document order. */
93
+ occurrence: number;
94
+ }
95
+ /** A complete table row on one PPTX slide, matched by cell text. */
96
+ export interface OoxmlPptxTableRowLocation {
97
+ /** Location kind. */
98
+ kind: OoxmlHighlightKind.PptxTableRow;
99
+ /** Plain text of each cell, in column order. */
100
+ cells: string[];
101
+ /** 1-based matching row on the specified slide. */
102
+ occurrence: number;
103
+ /** 1-based slide number. */
104
+ slide: number;
105
+ }
86
106
  /** A 1-based cell address, matching `@silurus/ooxml`'s own `CellAddress`. */
87
107
  export interface OoxmlCellAddress {
88
108
  /** 1-based row number. */
@@ -102,7 +122,7 @@ export interface OoxmlXlsxHighlightLocation {
102
122
  end?: OoxmlCellAddress;
103
123
  }
104
124
  /** A cited location inside an Office document, in document coordinates. */
105
- export type OoxmlHighlightLocation = OoxmlDocxHighlightLocation | OoxmlPptxHighlightLocation | OoxmlXlsxHighlightLocation;
125
+ export type OoxmlHighlightLocation = OoxmlDocxHighlightLocation | OoxmlPptxHighlightLocation | OoxmlDocxTableRowLocation | OoxmlPptxTableRowLocation | OoxmlXlsxHighlightLocation;
106
126
  /** One citation's highlight: the locations it resolved to, under a stable id. */
107
127
  export interface OoxmlHighlight {
108
128
  /** Stable id, used to mark exactly one highlight selected. */
@@ -145,10 +165,16 @@ export interface CodeCanvasContent {
145
165
  export interface HtmlCanvasContent {
146
166
  /** Discriminates the content type to select the correct renderer. */
147
167
  type: AttachmentContentType.Html;
148
- /** Full HTML text rendered via `srcdoc` in a sandboxed iframe. Used for file attachments. */
168
+ /** Full HTML text rendered via `srcdoc` in a sandboxed iframe. Populated only when no `url` is available (local, non-downloadable file attachments); when `url` is set, "View source" instead calls `resolveSourceText`. */
149
169
  srcdoc?: string;
150
- /** External URL rendered via `src` in a sandboxed iframe. Used for external link sources. */
170
+ /** URL rendered via `src` in a sandboxed iframe when `srcdoc` is absent, or in preference to `srcdoc` when `isSameOriginUrl` is set. Also used as the download-button/"Open in new tab" target. */
151
171
  url?: string;
172
+ /** True when `url`'s origin matches the embedding document's own origin. Forces the iframe sandbox to omit `allow-same-origin` — granting it would let a same-origin framed document reach this page's own cookies/storage — and makes `src` take precedence over `srcdoc`; also skips the `contentDocument` block-detection check, since the iframe is intentionally opaque-origin either way. */
173
+ isSameOriginUrl?: boolean;
174
+ /** Lazily fetches the full HTML source text for the "View source" toggle. Used instead of an eagerly-populated `srcdoc` when `url` is set; absent when `srcdoc` is already populated. */
175
+ resolveSourceText?: () => Promise<string>;
176
+ /** Host-served bootstrap document used to render `srcdoc` without inheriting the embedding page's CSP. When set alongside `srcdoc`, the iframe loads this URL via `src` (still `sandbox="allow-scripts"`) and posts `{ type: HTML_PREVIEW_FRAME_RENDER_MESSAGE, html: srcdoc }` to it once loaded, so the HTML renders under that response's own policy. Ignored when `srcdoc` is absent or `isSameOriginUrl` selects `url`. */
177
+ srcdocHostUrl?: string;
152
178
  }
153
179
  /** Content payload for a custom-visualizer attachment rendered inside a sandboxed iframe. */
154
180
  export interface VisualizerCanvasContent {
@@ -167,6 +193,21 @@ export interface VisualizerCanvasContent {
167
193
  /** Milliseconds to wait for a `send()` request's response before rejecting. From the registry entry; does NOT bound the handshake. */
168
194
  requestTimeout?: number;
169
195
  }
196
+ /** Content payload for an application-scoped grouped visualizer: every attachment a message's visualizer claims, rendered together inside one sandboxed iframe. */
197
+ export interface GroupedVisualizerCanvasContent {
198
+ /** Discriminates the content type to select the correct renderer. */
199
+ type: AttachmentContentType.GroupedVisualizer;
200
+ /** Iframe `src`, resolved from the matching registry entry's `url`. */
201
+ url: string;
202
+ /** One item per claimed attachment, in the message's attachment order. Each `url` is absolute, resolved by the host. */
203
+ attachments: GroupedAttachmentItem[];
204
+ /** Presentation layout hints (`themeId`, `width`, `height`, `mobileHeight`) shared by every item. */
205
+ layout: CustomVisualizerDataLayout;
206
+ /** postMessage protocol namespace — MUST equal the registry entry's `title`, or the iframe never receives data. */
207
+ visualizerName: string;
208
+ /** Milliseconds to wait for a `send()` request's response before rejecting. From the registry entry; does NOT bound the handshake. */
209
+ requestTimeout?: number;
210
+ }
170
211
  /** Display mode an MCP App can ask the host to switch to via `ui/request-display-mode` — the MCP UI protocol's `inline`/`fullscreen`/`pip` union. */
171
212
  export type McpAppDisplayMode = NonNullable<McpUiHostContext['displayMode']>;
172
213
  /** Content payload for an MCP App's `ui://` resource, rendered in a sandboxed iframe via an isolated-origin sandbox proxy. */
@@ -183,6 +224,8 @@ export interface McpAppCanvasContent {
183
224
  toolResult?: CallToolResult;
184
225
  /** UI context delivered to the View during the `ui/initialize` handshake; built by the app layer from the active theme, locale, and CSS design tokens. */
185
226
  hostContext?: McpUiHostContext;
227
+ /** Host identity (`name`/`version`) delivered during the `ui/initialize` handshake. Defaults to a generic `'MCP-UI Host'` identity when omitted. */
228
+ hostInfo?: Implementation;
186
229
  /** Forwards a `tools/call` request issued by the mounted app to the owning MCP session via the app layer. */
187
230
  onToolCall: (name: string, args: unknown) => Promise<CallToolResult>;
188
231
  /** Handles the mounted app's `ui/open-link` request. Return `false` when the URL must not be opened — the app then receives an error result. When omitted, the renderer itself opens http(s) URLs in a new browser tab (other schemes are rejected). */
@@ -211,7 +254,7 @@ export interface ErrorCanvasContent {
211
254
  label?: string;
212
255
  }
213
256
  /** The content payload passed to AttachmentCanvas. */
214
- export type AttachmentCanvasContent = PlainTextCanvasContent | ImageCanvasContent | AudioCanvasContent | MarkdownCanvasContent | MarkdownTableCanvasContent | JsonCanvasContent | PdfCanvasContent | OoxmlCanvasContent | CodeCanvasContent | HtmlCanvasContent | VisualizerCanvasContent | McpAppCanvasContent | UnsupportedCanvasContent | ErrorCanvasContent;
257
+ export type AttachmentCanvasContent = PlainTextCanvasContent | ImageCanvasContent | AudioCanvasContent | MarkdownCanvasContent | MarkdownTableCanvasContent | JsonCanvasContent | PdfCanvasContent | OoxmlCanvasContent | CodeCanvasContent | HtmlCanvasContent | VisualizerCanvasContent | GroupedVisualizerCanvasContent | McpAppCanvasContent | UnsupportedCanvasContent | ErrorCanvasContent;
215
258
  /** Themeable color overrides for the AttachmentCanvas content body. */
216
259
  export interface AttachmentCanvasColors {
217
260
  /** Primary text color for the content body. */
@@ -260,6 +303,10 @@ export interface AttachmentCanvasColors {
260
303
  jsonCollapsedText?: string;
261
304
  /** Background color of the collapsed-content ellipsis. Defaults to `--bg-layer-raised`. */
262
305
  jsonCollapsedBackground?: string;
306
+ /** Divider color between the file name and the MCP App name in the panel title. Defaults to `--text-secondary`. */
307
+ mcpAppDividerColor?: string;
308
+ /** MCP App version text color in the panel title. Defaults to `--text-secondary`. */
309
+ mcpAppVersionColor?: string;
263
310
  }
264
311
  /** Themeable typography overrides for the AttachmentCanvas plain-text content body. */
265
312
  export interface AttachmentCanvasTypography {
@@ -282,6 +329,8 @@ export interface AttachmentCanvasTypography {
282
329
  jsonClassName?: string;
283
330
  /** CSS utility class applied to the decorative XLSX `fx` label. Defaults to `'dial-italic-text'`. */
284
331
  xlsxFormulaLabelClassName?: string;
332
+ /** CSS utility class applied to the MCP App version text in the panel title. Defaults to `'dial-caption-text'`. */
333
+ mcpAppVersionClassName?: string;
285
334
  }
286
335
  /** Style override prop for `AttachmentCanvasBody`'s content-rendering area. */
287
336
  export interface AttachmentCanvasBodyStyles {
@@ -366,16 +415,22 @@ export interface AttachmentCanvasLabels {
366
415
  codeContentErrorLabel?: string;
367
416
  /** Label and accessible name for the retry control shown alongside `codeContentErrorLabel`. Defaults to `'Retry'`. */
368
417
  codeContentRetryLabel?: string;
369
- /** Label for copying a Markdown table as CSV. */
370
- tableCopyCsvLabel?: string;
371
- /** Label for copying a Markdown table as text. */
372
- tableCopyTxtLabel?: string;
373
- /** Label for copying a Markdown table as Markdown. */
374
- tableCopyMarkdownLabel?: string;
418
+ /** Label for the copy action on a Markdown table (copies as Markdown format). */
419
+ tableCopyLabel?: string;
375
420
  /** Status announced after a Markdown table has been copied. */
376
421
  tableCopiedLabel?: string;
377
422
  /** Label for downloading a Markdown table as CSV. */
378
423
  tableDownloadCsvLabel?: string;
424
+ /** Accessible label for the copy button on fenced code blocks inside `Markdown`/`MarkdownTable` content. Defaults to `'Copy code'`. */
425
+ codeBlockCopyLabel?: string;
426
+ /** Status announced after a fenced code block inside `Markdown`/`MarkdownTable` content has been copied. Defaults to `'Copied!'`. */
427
+ codeBlockCopiedLabel?: string;
428
+ /** Accessible label for the download button on fenced code blocks inside `Markdown`/`MarkdownTable` content. Defaults to `'Download code'`. */
429
+ codeBlockDownloadLabel?: string;
430
+ /** Accessible label for a table's horizontally scrollable region inside `Markdown`/`MarkdownTable` content. Defaults to `'Scrollable table'`. */
431
+ tableScrollRegionAriaLabel?: string;
432
+ /** Accessible label for a block formula's horizontally scrollable region inside `Markdown`/`MarkdownTable` content. Defaults to `'Scrollable formula'`. */
433
+ mathScrollRegionAriaLabel?: string;
379
434
  /** Accessible name for the OOXML citation-highlights overlay region. Defaults to `'Cited locations'`. */
380
435
  ooxmlHighlightsLabel?: string;
381
436
  /** Status announced once navigation to the selected OOXML citation highlight completes. Defaults to `'Scrolled to the cited location'`. */
@@ -393,6 +448,8 @@ export interface AttachmentCanvasProps {
393
448
  content: AttachmentCanvasContent;
394
449
  /** File name displayed as the panel title. */
395
450
  fileName?: string;
451
+ /** Host-supplied controls rendered in the header before the title. */
452
+ leftActions?: ReactNode;
396
453
  /** User-visible strings. */
397
454
  labels: AttachmentCanvasLabels;
398
455
  /** Called when the user activates the download button. When omitted the download button is hidden. Hidden automatically when content type is `Unsupported`. */
@@ -437,9 +494,11 @@ export interface AttachmentCanvasProps {
437
494
  * bundled worker asset.
438
495
  */
439
496
  configurePdfWorker?: () => void | Promise<void>;
497
+ /** Called with the message text when a `Visualizer` or `GroupedVisualizer` iframe posts `SEND_MESSAGE`. Forwarded to `VisualizerCanvasRenderer` as `onSendMessage`; when omitted, those messages are ignored. */
498
+ onVisualizerSendMessage?: (content: string) => void;
440
499
  }
441
500
  /** User-visible strings for `AttachmentCanvasBody`'s content states. */
442
- export type AttachmentCanvasBodyLabels = Pick<AttachmentCanvasLabels, 'unsupportedLabel' | 'loadErrorLabel' | 'forbiddenErrorLabel' | 'visualizerErrorLabel' | 'htmlFrameBlockedLabel' | 'htmlOpenInNewTabLabel' | 'pdfThumbnailsLabel' | 'pdfShowThumbnailsLabel' | 'pdfHideThumbnailsLabel' | 'pdfPageNumberLabel' | 'pdfContentLoadingLabel' | 'pdfContentErrorLabel' | 'pdfContentRetryLabel' | 'xlsxFormulaLabel' | 'codeContentLoadingLabel' | 'codeContentErrorLabel' | 'codeContentRetryLabel' | 'tableCopyCsvLabel' | 'tableCopyTxtLabel' | 'tableCopyMarkdownLabel' | 'tableCopiedLabel' | 'tableDownloadCsvLabel' | 'ooxmlHighlightsLabel' | 'ooxmlHighlightNavigatedLabel'>;
501
+ export type AttachmentCanvasBodyLabels = Pick<AttachmentCanvasLabels, 'unsupportedLabel' | 'loadErrorLabel' | 'forbiddenErrorLabel' | 'visualizerErrorLabel' | 'htmlFrameBlockedLabel' | 'htmlOpenInNewTabLabel' | 'pdfThumbnailsLabel' | 'pdfShowThumbnailsLabel' | 'pdfHideThumbnailsLabel' | 'pdfPageNumberLabel' | 'pdfContentLoadingLabel' | 'pdfContentErrorLabel' | 'pdfContentRetryLabel' | 'xlsxFormulaLabel' | 'codeContentLoadingLabel' | 'codeContentErrorLabel' | 'codeContentRetryLabel' | 'tableCopyLabel' | 'tableCopiedLabel' | 'tableDownloadCsvLabel' | 'codeBlockCopyLabel' | 'codeBlockCopiedLabel' | 'codeBlockDownloadLabel' | 'tableScrollRegionAriaLabel' | 'mathScrollRegionAriaLabel' | 'ooxmlHighlightsLabel' | 'ooxmlHighlightNavigatedLabel'>;
443
502
  /** Props for the `AttachmentCanvasBody` component. */
444
503
  export interface AttachmentCanvasBodyProps {
445
504
  /** The attachment content to render. */
@@ -463,6 +522,8 @@ export interface AttachmentCanvasBodyProps {
463
522
  codeBlockTheme?: CodeBlockTheme;
464
523
  /** Filename used when downloading a `MarkdownTable`'s content as CSV. Defaults to `'table.csv'`. Only relevant when content type is `MarkdownTable`. */
465
524
  tableDownloadFilename?: string;
525
+ /** Called once a mounted `McpApp` completes its `ui/initialize` handshake, with its declared name/version. Only relevant when content type is `McpApp`; omitted when the app didn't declare an `appInfo`. */
526
+ onAppInfo?: (appInfo: Implementation) => void;
466
527
  /**
467
528
  * Fetches a PDF file by URL and returns its bytes as a `Blob`. Used when
468
529
  * content type is `Pdf` to load the file before rendering. Defaults to a
@@ -487,5 +548,7 @@ export interface AttachmentCanvasBodyProps {
487
548
  * bundled worker asset.
488
549
  */
489
550
  configurePdfWorker?: () => void | Promise<void>;
551
+ /** Called with the message text when a `Visualizer` or `GroupedVisualizer` iframe posts `SEND_MESSAGE`. Forwarded to `VisualizerCanvasRenderer` as `onSendMessage`; when omitted, those messages are ignored. */
552
+ onVisualizerSendMessage?: (content: string) => void;
490
553
  }
491
554
  //# sourceMappingURL=attachment-canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-canvas.d.ts","sourceRoot":"","sources":["../../src/models/attachment-canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-canvas.d.ts","sourceRoot":"","sources":["../../src/models/attachment-canvas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { a as e, i as t } from "./attachment-canvas-nvhW3tKV.js";
1
+ import { a as e, i as t } from "./attachment-canvas-BgwyzrRC.js";
2
2
  //#region src/utils/ooxml-highlight-geometry.ts
3
3
  var n = 4 / 3, r = 9525, i = 2, a = 1, o = 0, s = 16, c = .25, l = () => {
4
4
  let e = document.createElement("canvas").getContext("2d");
@@ -161,10 +161,93 @@ var n = 4 / 3, r = 9525, i = 2, a = 1, o = 0, s = 16, c = .25, l = () => {
161
161
  width: Math.max(0, l),
162
162
  isClippedAtEnd: !0
163
163
  }];
164
- }, E = (e) => {
164
+ }, E = (e) => e.replace(/\s+/g, " ").trim(), D = (e, t, n) => t.length > 1 && t.some((e) => E(e) !== "") && [...e.keys()].every((e) => e >= 0 && e < t.length) && t.every((t, r) => E(n(e.get(r) ?? [])) === E(t)), O = (e, t, n, r) => {
165
+ let i = e.get(t);
166
+ i ?? (i = /* @__PURE__ */ new Map(), e.set(t, i));
167
+ let a = i.get(n);
168
+ a == null ? i.set(n, [r]) : a.push(r);
169
+ }, k = (e) => {
170
+ let t = "", n;
171
+ for (let r of e) n != null && (r.pageIndex !== n.pageIndex || r.run.y !== n.run.y || r.run.source?.path.at(-1) !== n.run.source?.path.at(-1)) && (t += " "), t += r.run.text, n = r;
172
+ return t;
173
+ }, A = (e, n) => {
174
+ if (!Number.isSafeInteger(e.occurrence) || e.occurrence < 1) return [];
175
+ let r = /* @__PURE__ */ new Map();
176
+ for (let { pageIndex: e, runs: t } of n) for (let n of t) {
177
+ let t = n.source;
178
+ if (t?.story !== "body" || n.sourceRunIndex == null || t.path.length < 4 || (t.path.length - 1) % 3 != 0) continue;
179
+ let i = JSON.stringify([t.storyInstance, t.path.slice(0, -2)]), a = t.path.at(-2);
180
+ a != null && O(r, i, a, {
181
+ run: n,
182
+ pageIndex: e
183
+ });
184
+ }
185
+ let i = 0;
186
+ for (let a of r.values()) {
187
+ if (!D(a, e.cells, k) || (i += 1, i !== e.occurrence)) continue;
188
+ let r = /* @__PURE__ */ new Map();
189
+ for (let e of [...a.keys()].sort((e, t) => e - t)) for (let { run: t } of a.get(e) ?? []) {
190
+ let e = JSON.stringify(t.source?.path), n = r.get(e);
191
+ n == null ? r.set(e, [t]) : n.push(t);
192
+ }
193
+ let o = /* @__PURE__ */ new Map();
194
+ for (let e of r.values()) {
195
+ let r = e[0].source;
196
+ if (r == null) continue;
197
+ let i = e.map((e) => e.text).join(""), a = new Set(e);
198
+ for (let e of b({
199
+ location: {
200
+ kind: t.DocxTextRange,
201
+ story: r.story,
202
+ path: [...r.path],
203
+ start: 0,
204
+ endExclusive: i.length,
205
+ text: i
206
+ },
207
+ pages: n.map((e) => ({
208
+ ...e,
209
+ runs: e.runs.filter((e) => a.has(e))
210
+ }))
211
+ })) {
212
+ let t = o.get(e.pageIndex);
213
+ t == null ? o.set(e.pageIndex, e) : t.rects.push(...e.rects);
214
+ }
215
+ }
216
+ return [...o.values()].sort((e, t) => e.pageIndex - t.pageIndex);
217
+ }
218
+ return [];
219
+ }, j = (e) => {
220
+ let t = "", n;
221
+ for (let r of e) n != null && r.inShapeY !== n.inShapeY && (t += " "), t += r.text, n = r;
222
+ return t;
223
+ }, M = (e, n) => {
224
+ if (!Number.isSafeInteger(e.occurrence) || e.occurrence < 1) return [];
225
+ let r = /* @__PURE__ */ new Map();
226
+ for (let e of n) e.tableCell == null || e.shapeId == null || e.origin === "master" || e.origin === "layout" || O(r, JSON.stringify([
227
+ e.elementIndex,
228
+ e.shapeId,
229
+ e.tableCell.row
230
+ ]), e.tableCell.column, e);
231
+ let i = 0;
232
+ for (let n of r.values()) if (D(n, e.cells, j) && (i += 1, i === e.occurrence)) return [...n.values()].flatMap((n) => {
233
+ let r = n.map((e) => e.text).join("");
234
+ return S({
235
+ location: {
236
+ kind: t.PptxTextRange,
237
+ slide: e.slide,
238
+ shapeId: String(n[0].shapeId),
239
+ start: 0,
240
+ endExclusive: r.length,
241
+ text: r
242
+ },
243
+ runs: n
244
+ });
245
+ });
246
+ return [];
247
+ }, N = (e) => {
165
248
  for (let t of e.querySelectorAll("div")) if (t.style.overflow === "auto") return t;
166
249
  return null;
167
- }, D = (e) => {
250
+ }, P = (e) => {
168
251
  let t = e.querySelector("canvas");
169
252
  if (t == null) return {
170
253
  left: 0,
@@ -175,117 +258,142 @@ var n = 4 / 3, r = 9525, i = 2, a = 1, o = 0, s = 16, c = .25, l = () => {
175
258
  left: n.left - r.left,
176
259
  top: n.top - r.top
177
260
  };
178
- }, O = (e, t) => {
261
+ }, F = (e, t) => {
179
262
  let n = Math.min(e.length, t.length);
180
263
  for (let r = 0; r < n; r += 1) if (e[r] !== t[r]) return e[r] - t[r];
181
264
  return e.length - t.length;
182
- }, k = (n, r, i, a) => {
183
- let o = l(), s = /* @__PURE__ */ new Map(), c = 0, d = (e) => u(r.pageSize(e), i.getScale()), m = (e) => u(r.pageSize(e), 1), h = async (e) => {
265
+ }, I = (n, r, i, a) => {
266
+ let o = l(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), d = 0, m = (e) => u(r.pageSize(e), i.getScale()), h = (e) => u(r.pageSize(e), 1), g = async (e) => {
184
267
  let t = s.get(e);
185
268
  if (t != null) return t;
186
- let n = await r.collectPageRuns(e, { width: m(e).width });
269
+ let n = await r.collectPageRuns(e, { width: h(e).width });
187
270
  return a() ? [] : (s.set(e, n), n);
188
- }, g = async (e, t = a) => {
271
+ }, _ = async (e, t = a) => {
189
272
  let n = [];
190
273
  for (let i = 0; i < r.pageCount; i += 1) {
191
- let r = await h(i);
274
+ let r = await g(i);
192
275
  if (t()) return [];
193
276
  let a = r.filter((t) => t.source != null && t.source.story === e.story);
194
- if (a.some((t) => t.source != null && O(t.source.path, e.path) === 0)) {
277
+ if (a.some((t) => t.source != null && F(t.source.path, e.path) === 0)) {
195
278
  n.push({
196
279
  pageIndex: i,
197
280
  runs: r,
198
- pageBox: m(i)
281
+ pageBox: h(i)
199
282
  });
200
283
  continue;
201
284
  }
202
- let o = a.length > 0 && a.every((t) => t.source != null && O(t.source.path, e.path) > 0);
285
+ let o = a.length > 0 && a.every((t) => t.source != null && F(t.source.path, e.path) > 0);
203
286
  if (n.length > 0 || o) break;
204
287
  }
205
288
  return n;
289
+ }, v = async (e, n = a) => {
290
+ if (e.kind === t.DocxTextRange) {
291
+ let t = await _(e, n);
292
+ return {
293
+ firstPageIndex: t.at(0)?.pageIndex,
294
+ pageRects: b({
295
+ location: e,
296
+ pages: t,
297
+ measure: o
298
+ })
299
+ };
300
+ }
301
+ let i = JSON.stringify([e.cells, e.occurrence]), s = c.get(i);
302
+ if (s == null) {
303
+ try {
304
+ await r.waitUntilLayoutComplete();
305
+ } catch {
306
+ return { pageRects: [] };
307
+ }
308
+ if (n()) return { pageRects: [] };
309
+ let t = [];
310
+ for (let e = 0; e < r.pageCount; e += 1) {
311
+ let r = await g(e);
312
+ if (n()) return { pageRects: [] };
313
+ t.push({
314
+ pageIndex: e,
315
+ runs: r,
316
+ pageBox: h(e)
317
+ });
318
+ }
319
+ s = A(e, t), c.set(i, s);
320
+ }
321
+ return {
322
+ firstPageIndex: s.at(0)?.pageIndex,
323
+ pageRects: s
324
+ };
206
325
  };
207
326
  return {
208
327
  measure: async (e) => {
209
- let r = E(n);
328
+ let r = N(n);
210
329
  if (r == null) return [];
211
330
  let i = [];
212
331
  for (let n of e) for (let e of n.locations) {
213
- if (e.kind !== t.DocxTextRange) continue;
214
- let s = await g(e);
332
+ if (e.kind !== t.DocxTextRange && e.kind !== t.DocxTableRow) continue;
333
+ let o = await v(e);
215
334
  if (a()) return [];
216
- for (let { pageIndex: t, rects: a } of b({
217
- location: e,
218
- pages: s,
219
- measure: o
220
- })) {
221
- let e = f({
222
- index: t,
223
- sizeAt: d,
335
+ for (let { pageIndex: e, rects: t } of o.pageRects) {
336
+ let a = f({
337
+ index: e,
338
+ sizeAt: m,
224
339
  hostClientWidth: r.clientWidth
225
- }), o = d(t);
226
- for (let t of a) i.push({
227
- left: e.left + t.left * o.width - r.scrollLeft,
228
- top: e.top + t.top * o.height - r.scrollTop,
229
- width: t.width * o.width,
230
- height: t.height * o.height,
340
+ }), o = m(e);
341
+ for (let e of t) i.push({
342
+ left: a.left + e.left * o.width - r.scrollLeft,
343
+ top: a.top + e.top * o.height - r.scrollTop,
344
+ width: e.width * o.width,
345
+ height: e.height * o.height,
231
346
  highlightId: n.id
232
347
  });
233
348
  }
234
349
  }
235
350
  return i;
236
351
  },
237
- navigate: async (s) => {
238
- if (s.kind !== t.DocxTextRange) return e.Unresolved;
239
- c += 1;
240
- let l = c, u = () => a() || l !== c;
352
+ navigate: async (o) => {
353
+ if (o.kind !== t.DocxTextRange && o.kind !== t.DocxTableRow) return e.Unresolved;
354
+ d += 1;
355
+ let s = d, c = () => a() || s !== d;
241
356
  try {
242
357
  await r.waitUntilLayoutComplete();
243
358
  } catch {
244
359
  return e.Unresolved;
245
360
  }
246
- if (u()) return e.Superseded;
247
- let f = await g(s, u);
248
- if (u()) return e.Superseded;
249
- let m = f.at(0);
250
- if (m == null) return e.Unresolved;
251
- let h = E(n);
252
- if (h == null) return e.Unresolved;
253
- let _ = b({
254
- location: s,
255
- pages: f,
256
- measure: o
257
- });
258
- if (u()) return e.Superseded;
259
- let v = _.find((e) => e.pageIndex === m.pageIndex)?.rects.at(0);
260
- if (v == null) return i.scrollToPage(m.pageIndex), e.Navigated;
261
- let y = p({
262
- pageIndex: m.pageIndex,
263
- rect: v,
264
- sizeAt: d,
361
+ if (c()) return e.Superseded;
362
+ let { firstPageIndex: l, pageRects: u } = await v(o, c);
363
+ if (c()) return e.Superseded;
364
+ if (l == null) return e.Unresolved;
365
+ let f = N(n);
366
+ if (f == null) return e.Unresolved;
367
+ let h = u.find((e) => e.pageIndex === l)?.rects.at(0);
368
+ if (h == null) return i.scrollToPage(l), e.Navigated;
369
+ let g = p({
370
+ pageIndex: l,
371
+ rect: h,
372
+ sizeAt: m,
265
373
  host: {
266
- clientWidth: h.clientWidth,
267
- clientHeight: h.clientHeight,
268
- scrollWidth: h.scrollWidth,
269
- scrollHeight: h.scrollHeight,
270
- scrollLeft: h.scrollLeft
374
+ clientWidth: f.clientWidth,
375
+ clientHeight: f.clientHeight,
376
+ scrollWidth: f.scrollWidth,
377
+ scrollHeight: f.scrollHeight,
378
+ scrollLeft: f.scrollLeft
271
379
  }
272
380
  });
273
- return typeof h.scrollTo == "function" ? h.scrollTo({
274
- top: y.top,
275
- left: y.left,
381
+ return typeof f.scrollTo == "function" ? f.scrollTo({
382
+ top: g.top,
383
+ left: g.left,
276
384
  behavior: "auto"
277
- }) : (h.scrollTop = y.top, h.scrollLeft = y.left), e.Navigated;
385
+ }) : (f.scrollTop = g.top, f.scrollLeft = g.left), e.Navigated;
278
386
  }
279
387
  };
280
- }, A = (n, r, i, a) => {
388
+ }, L = (n, r, i, a) => {
281
389
  let o = l(), s = () => d(r.slideWidth, r.slideHeight, i.getScale()), c = (e) => e < 1 || e > r.slideCount ? null : e - 1;
282
390
  return {
283
391
  measure: async (e) => {
284
- let i = E(n);
392
+ let i = N(n);
285
393
  if (i == null) return [];
286
394
  let l = [];
287
395
  for (let n of e) for (let e of n.locations) {
288
- if (e.kind !== t.PptxTextRange) continue;
396
+ if (e.kind !== t.PptxTextRange && e.kind !== t.PptxTableRow) continue;
289
397
  let u = c(e.slide);
290
398
  if (u == null) continue;
291
399
  let d = await r.collectSlideRuns(u, s().width);
@@ -294,29 +402,29 @@ var n = 4 / 3, r = 9525, i = 2, a = 1, o = 0, s = 16, c = .25, l = () => {
294
402
  index: u,
295
403
  sizeAt: s,
296
404
  hostClientWidth: i.clientWidth
297
- });
298
- for (let t of S({
405
+ }), m = e.kind === t.PptxTableRow ? M(e, d) : S({
299
406
  location: e,
300
407
  runs: d,
301
408
  measure: o
302
- })) l.push({
303
- ...t,
304
- left: p.left + t.left - i.scrollLeft,
305
- top: p.top + t.top - i.scrollTop,
409
+ });
410
+ for (let e of m) l.push({
411
+ ...e,
412
+ left: p.left + e.left - i.scrollLeft,
413
+ top: p.top + e.top - i.scrollTop,
306
414
  highlightId: n.id
307
415
  });
308
416
  }
309
417
  return l;
310
418
  },
311
419
  navigate: async (n) => {
312
- if (n.kind !== t.PptxTextRange) return e.Unresolved;
420
+ if (n.kind !== t.PptxTextRange && n.kind !== t.PptxTableRow) return e.Unresolved;
313
421
  let r = c(n.slide);
314
422
  return r == null ? e.Unresolved : (i.scrollToSlide(r), e.Navigated);
315
423
  }
316
424
  };
317
- }, j = (n, r, i) => ({
425
+ }, R = (n, r, i) => ({
318
426
  measure: async (e) => {
319
- let i = D(n), a = n.clientWidth - i.left, o = [];
427
+ let i = P(n), a = n.clientWidth - i.left, o = [];
320
428
  for (let n of e) for (let e of n.locations) {
321
429
  if (e.kind !== t.XlsxCellRange) continue;
322
430
  let s = C(e.sheet, r.sheetNames);
@@ -348,4 +456,4 @@ var n = 4 / 3, r = 9525, i = 2, a = 1, o = 0, s = 16, c = .25, l = () => {
348
456
  }
349
457
  });
350
458
  //#endregion
351
- export { e as OoxmlNavigationOutcome, k as createDocxHighlightSurface, A as createPptxHighlightSurface, j as createXlsxHighlightSurface };
459
+ export { e as OoxmlNavigationOutcome, I as createDocxHighlightSurface, L as createPptxHighlightSurface, R as createXlsxHighlightSurface };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-attachment-canvas",
3
3
  "description": "Canvas viewer for rendering attachment content — images, PDFs, Office documents, CSV, JSON, markdown, and plain text",
4
- "version": "1.2.0-dev.3",
4
+ "version": "1.2.0-dev.300",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -21,19 +21,19 @@
21
21
  "@tabler/icons-react": "^3.44.0",
22
22
  "react-json-view-lite": "^2.5.0",
23
23
  "react-syntax-highlighter": "^16.1.1",
24
- "@epam/ai-dial-react-pdf-highlighter": "0.2.0",
24
+ "@epam/ai-dial-react-pdf-highlighter": "0.3.0-dev.1",
25
25
  "@epam/ai-dial-shared": "0.48.0",
26
26
  "@epam/ai-dial-visualizer-connector": "0.48.0",
27
27
  "@epam/pdf-highlighter-kit": "^0.0.19",
28
28
  "@mcp-ui/client": "^7.1.1",
29
- "@modelcontextprotocol/sdk": "^1.29.0",
29
+ "@modelcontextprotocol/sdk": "^1.32.1",
30
30
  "@modelcontextprotocol/ext-apps": "1.7.5",
31
31
  "pdfjs-dist": "^5.4.149",
32
- "@epam/ai-dial-sidebar": "1.2.0-dev.3"
32
+ "@epam/ai-dial-sidebar": "1.2.0-dev.300"
33
33
  },
34
34
  "peerDependencies": {
35
- "@epam/ai-dial-chat-shared": "1.2.0-dev.3",
36
- "@epam/ai-dial-ui-kit": "^0.14.2",
35
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.300",
36
+ "@epam/ai-dial-ui-kit": "^0.15.0-dev.39",
37
37
  "react": "^19.2.8"
38
38
  },
39
39
  "repository": {