@epam/ai-dial-chat-hooks 1.2.0-dev.6 → 1.2.0-dev.69

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 (32) hide show
  1. package/attachment/useAttachmentValidation/useAttachmentValidation.js +26 -19
  2. package/attachments.d.ts +10 -4
  3. package/catalog/map-deployment-to-catalog-item.js +2 -2
  4. package/catalog/map-skill-to-catalog-item.js +2 -2
  5. package/catalog/publish.js +2 -1
  6. package/catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js +39 -39
  7. package/catalog/useSkillItemDetails.js +19 -17
  8. package/catalog.d.ts +38 -5
  9. package/catalog.js +14 -14
  10. package/conversation/conversation-transfer/queue.js +8 -5
  11. package/conversation/stage.js +23 -0
  12. package/conversation/useAttachmentUpload/useAttachmentUpload.js +12 -5
  13. package/conversation/useConversationHandlers/useConversationHandlers.js +13 -17
  14. package/conversation/useConversationImport/useConversationImport.js +1 -1
  15. package/conversation/useConversationStream/apply-chunk.js +1 -1
  16. package/conversation/useConversationStream/useConversationStream.js +5 -1
  17. package/conversation-overlay.d.ts +7 -0
  18. package/conversation-overlay.js +2 -0
  19. package/conversation.d.ts +108 -5
  20. package/conversation.js +24 -23
  21. package/file-manager-canvas.d.ts +398 -0
  22. package/file-manager-canvas.js +2 -0
  23. package/file-manager.d.ts +0 -325
  24. package/file-manager.js +14 -15
  25. package/files/attachment-canvas.js +51 -13
  26. package/index.d.ts +238 -22
  27. package/index.js +111 -109
  28. package/mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js +7 -5
  29. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js +1 -1
  30. package/mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js +25 -23
  31. package/mcp-apps.d.ts +8 -6
  32. package/package.json +28 -18
package/file-manager.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { Annotation } from '@epam/ai-dial-chat-shared';
2
- import { AnnotationGroup } from '@epam/ai-dial-quotations';
3
2
  import { ArchiveItemDto } from '@epam/ai-dial-chat-api-client';
4
3
  import { Attachment } from '@epam/ai-dial-chat-shared';
5
4
  import { AttachmentDisplayResolvers } from '@epam/ai-dial-chat-shared';
@@ -8,8 +7,6 @@ import { CopyFilesResponseDto } from '@epam/ai-dial-chat-api-client';
8
7
  import { CopyItemDto } from '@epam/ai-dial-chat-api-client';
9
8
  import { CreateFolderDto } from '@epam/ai-dial-chat-api-client';
10
9
  import { CreateFolderResponseDto } from '@epam/ai-dial-chat-api-client';
11
- import { CustomVisualizer } from '@epam/ai-dial-chat-shared';
12
- import type { CustomVisualizerDataLayout } from '@epam/ai-dial-chat-shared';
13
10
  import { DeleteFilesResponseDto } from '@epam/ai-dial-chat-api-client';
14
11
  import { DeleteItemDto } from '@epam/ai-dial-chat-api-client';
15
12
  import { DialCopiedItem } from '@epam/ai-dial-react-file-manager';
@@ -35,7 +32,6 @@ import { FileUploadResponseDto } from '@epam/ai-dial-chat-api-client';
35
32
  import { FileUploadStatus } from '@epam/ai-dial-chat-shared';
36
33
  import { FileUploadValidationResult } from '@epam/ai-dial-chat-shared';
37
34
  import { getParentFolderPath } from '@epam/ai-dial-chat-shared';
38
- import type { InputHighlightData } from '@epam/pdf-highlighter-kit';
39
35
  import { ListFilesItemDto } from '@epam/ai-dial-chat-api-client';
40
36
  import { ListFilesResponseDto } from '@epam/ai-dial-chat-api-client';
41
37
  import { ListPublicFilesRequest } from '@epam/ai-dial-chat-api-client';
@@ -58,55 +54,6 @@ import { UseGridEditingScrollResult } from '@epam/ai-dial-chat-shared';
58
54
  /** Maps an annotation's source attachment to the display-only attachment model. */
59
55
  export declare const annotationToDisplayAttachment: (annotation: Annotation) => DisplayAttachment | null;
60
56
 
61
- /**
62
- * Builds an `OoxmlCanvasContent` for a DOCX/PPTX/XLSX citation annotation,
63
- * including highlights for every annotation sharing the clicked one's source
64
- * document. Returns `null` when the annotation has no source attachment,
65
- * the source is not a format `@silurus/ooxml` renders as DOCX/XLSX/PPTX (a
66
- * CSV source returns `null` — citation highlighting targets Office documents
67
- * only), or no URL resolves.
68
- */
69
- export declare const annotationToOoxmlCanvasContent: (annotation: Annotation, annotations: Annotation[], resolvers: AttachmentCanvasUrlResolvers) => OoxmlCanvasContent | null;
70
-
71
- /**
72
- * Builds a `PdfCanvasContent` for a PDF citation annotation, including highlights
73
- * for the clicked annotation's document within its citation group.
74
- * Returns `null` if the annotation has no PDF source attachment.
75
- */
76
- export declare const annotationToPdfCanvasContent: (annotation: Annotation, groups: AnnotationGroup[], resolvers: AttachmentCanvasUrlResolvers) => PdfCanvasContent | null;
77
-
78
- /**
79
- * DIAL-file URL resolution injected by the host into every attachment-canvas
80
- * content resolver below. Host-owned — encodes the app's own
81
- * file-download endpoint.
82
- */
83
- export declare interface AttachmentCanvasUrlResolvers {
84
- /** Resolves a DIAL Core file id to a downloadable URL. */
85
- resolveDialFileDownloadUrl: (fileId: string) => string | undefined;
86
- /** Resolves the best downloadable DIAL-file URL from an attachment's `url` or `referenceUrl`. */
87
- resolveDialUrl: (attachment: DisplayAttachment) => string | undefined;
88
- /** Resolves a DIAL Core file id to a fetchable metadata URL (used for cache-freshness validation). */
89
- resolveDialFileMetadataUrl: (fileId: string) => string | undefined;
90
- }
91
-
92
- /** The type of content the canvas can display. */
93
- declare enum AttachmentContentType {
94
- PlainText = 'plain_text',
95
- Image = 'image',
96
- Audio = 'audio',
97
- Markdown = 'markdown',
98
- MarkdownTable = 'markdown_table',
99
- Json = 'json',
100
- Pdf = 'pdf',
101
- Ooxml = 'ooxml',
102
- Code = 'code',
103
- Html = 'html',
104
- Visualizer = 'visualizer',
105
- McpApp = 'mcp_app',
106
- Unsupported = 'unsupported',
107
- Error = 'error',
108
- }
109
-
110
57
  /** Maps Chat API attachment DTOs to display-only attachment models. */
111
58
  export declare const attachmentDtosToDisplayAttachments: (dtos: MessageAttachment[] | undefined, resolvers: AttachmentDisplayResolvers) => DisplayAttachment[];
112
59
 
@@ -115,14 +62,6 @@ export declare const attachmentDtosToDisplayAttachments: (dtos: MessageAttachmen
115
62
  */
116
63
  export declare const attachmentDtoToDisplayAttachment: (dto: MessageAttachment, resolvers: AttachmentDisplayResolvers) => DisplayAttachment;
117
64
 
118
- /** The kind of failure that produced an `ErrorCanvasContent`. */
119
- declare enum AttachmentErrorType {
120
- /** The file failed to load (network error or a non-`403` non-OK response). */
121
- LoadFailed = 'load_failed',
122
- /** The file request failed with HTTP `403` — the user lacks permission to access it. */
123
- Forbidden = 'forbidden',
124
- }
125
-
126
65
  export declare const buildFromCache: (cache: Map<string, ListFilesItemDto[]>, listingPermissionsCache: Map<string, string[] | undefined>, apiPath: string, virtualBasePath: string, folderId: string) => DialFile[];
127
66
 
128
67
  /**
@@ -136,19 +75,6 @@ export declare const buildFromCache: (cache: Map<string, ListFilesItemDto[]>, li
136
75
  */
137
76
  export declare const buildSharedItemVirtualPath: (relativePath: string, rootLabel: string, isFolder: boolean) => string;
138
77
 
139
- /** Clears all cached fetch results. Call this when leaving a conversation. */
140
- export declare const clearAttachmentCache: () => void;
141
-
142
- /** Content payload for syntax-highlighted source-code or text file attachments. */
143
- declare interface CodeCanvasContent {
144
- /** Discriminates the content type to select the correct renderer. */
145
- type: AttachmentContentType.Code;
146
- /** The raw source text to display. */
147
- text: string;
148
- /** `react-syntax-highlighter` language identifier (e.g. `'typescript'`). `undefined` renders plain monospace. */
149
- language?: string;
150
- }
151
-
152
78
  export declare const COLUMNS_WITH_AUTHOR: FileManagerColumnKey[];
153
79
 
154
80
  export declare const COLUMNS_WITHOUT_AUTHOR: FileManagerColumnKey[];
@@ -335,18 +261,6 @@ export declare enum DownloadDestinationType {
335
261
  Cancelled = "cancelled"
336
262
  }
337
263
 
338
- /** Content payload for attachments whose file failed to load or that the user cannot access. */
339
- declare interface ErrorCanvasContent {
340
- /** Discriminates the content type to select the correct renderer. */
341
- type: AttachmentContentType.Error;
342
- /** The kind of failure that occurred. */
343
- errorType: AttachmentErrorType;
344
- /** Remote URL of the file, if known. Ignored for download purposes when `errorType` is `Forbidden`. */
345
- url?: string;
346
- /** Overrides the default `loadErrorLabel`/`forbiddenErrorLabel` message, for callers whose failed content isn't a generic "file" (e.g. an MCP App). */
347
- label?: string;
348
- }
349
-
350
264
  export declare const fetchByTab: (filesApi: DialFilesApi, tab: DialFileManagerTabs, bucket: string, folderPath: string, sharedRootMeta: Map<string, SharedRootMeta>) => Promise<{
351
265
  items: ListFilesItemDto[];
352
266
  permissions?: string[];
@@ -570,36 +484,10 @@ export declare const getUrlFileName: (url: string) => string;
570
484
 
571
485
  export declare const getVirtualPathName: (virtualPath: string, fallback: string) => string;
572
486
 
573
- /**
574
- * Whether the attachment carries text `resolveAttachmentText` can resolve —
575
- * inline data, a DIAL download URL, or a locally-picked file. Mirrors that
576
- * function's source list, so a `null` resolver result can be read as "the text
577
- * was fetched and rejected" rather than "there was no text to fetch".
578
- */
579
- export declare const hasAttachmentTextSource: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => boolean;
580
-
581
487
  export declare const hasDialFileWritePermission: (folder?: DialFile) => boolean;
582
488
 
583
489
  export declare const hasForbiddenNameSymbols: (name: string, forbiddenSymbolsRegExp?: RegExp) => boolean;
584
490
 
585
- /** Content payload for HTML file attachments or external HTML URL sources. */
586
- declare interface HtmlCanvasContent {
587
- /** Discriminates the content type to select the correct renderer. */
588
- type: AttachmentContentType.Html;
589
- /** Full HTML text rendered via `srcdoc` in a sandboxed iframe. Used for file attachments. */
590
- srcdoc?: string;
591
- /** External URL rendered via `src` in a sandboxed iframe. Used for external link sources. */
592
- url?: string;
593
- }
594
-
595
- /** Content payload for image attachments. */
596
- declare interface ImageCanvasContent {
597
- /** Discriminates the content type to select the correct renderer. */
598
- type: AttachmentContentType.Image;
599
- /** URL of the image to display (object URL or resolved download URL). */
600
- url: string;
601
- }
602
-
603
491
  /** Copy/Move/Duplicate are Browse/Full-only — the attach picker excludes them. */
604
492
  export declare const isCopyMoveDuplicateAllowed: (actionProfile: DialFileManagerActionProfile) => boolean;
605
493
 
@@ -615,14 +503,6 @@ export declare const isExternalSourcePreviewable: (contentType: string, url: str
615
503
  /** Share/Unshare/Remove access are Full-only — Browse and Attach never expose them. */
616
504
  export declare const isShareActionsAllowed: (actionProfile: DialFileManagerActionProfile) => boolean;
617
505
 
618
- /** Content payload for JSON file attachments. */
619
- declare interface JsonCanvasContent {
620
- /** Discriminates the content type to select the correct renderer. */
621
- type: AttachmentContentType.Json;
622
- /** Already-parsed JSON value. The lib never calls JSON.parse. */
623
- value: unknown;
624
- }
625
-
626
506
  export declare const mapCorePermissions: (permissions?: string[]) => DialFile["permissions"] | undefined;
627
507
 
628
508
  /**
@@ -636,14 +516,6 @@ export declare const mapFileMetadataToDialFile: (metadata: FileMetadataResponseD
636
516
 
637
517
  export declare const mapSearchItem: (item: ListFilesItemDto, fallbackBucket: string, rootLabel: string) => DialFile;
638
518
 
639
- /** Content payload for Markdown file attachments. */
640
- declare interface MarkdownCanvasContent {
641
- /** Discriminates the content type to select the correct renderer. */
642
- type: AttachmentContentType.Markdown;
643
- /** Raw Markdown string to render. */
644
- text: string;
645
- }
646
-
647
519
  export declare const mergeCreatedFolderIntoCache: (cache: Map<string, ListFilesItemDto[]>, parentApiPath: string, created: CreateFolderResponseDto, inheritedPermissions?: string[]) => Map<string, ListFilesItemDto[]>;
648
520
 
649
521
  /** Formats MIME types as a human-readable, comma-separated list of dotted extensions (or the MIME type itself for wildcards). */
@@ -661,104 +533,6 @@ export declare const mimeTypesToFileAccept: (types?: string[]) => string | undef
661
533
 
662
534
  export declare const normalizeVirtualPath: (value: string) => string;
663
535
 
664
- /** Content payload for OOXML document and CSV spreadsheet attachments. */
665
- declare interface OoxmlCanvasContent {
666
- /** Discriminates the content type to select the correct renderer. */
667
- type: AttachmentContentType.Ooxml;
668
- /** Resolved download URL or object URL for the source file. */
669
- url: string;
670
- /** The document format used to select and configure the format-specific renderer. */
671
- format: OoxmlFileType;
672
- /** Cited locations to draw over the document. Omitted, never `[]`, when there is nothing to highlight. */
673
- highlights?: OoxmlHighlight[];
674
- /** Id of the highlight to navigate to and emphasise. Omitted when the clicked citation resolved to no location. */
675
- selectedHighlightId?: string;
676
- }
677
-
678
- /** A 1-based cell address, matching `@silurus/ooxml`'s own `CellAddress`. */
679
- declare interface OoxmlCellAddress {
680
- /** 1-based row number. */
681
- row: number;
682
- /** 1-based column number. */
683
- col: number;
684
- }
685
-
686
- /** A cited character range inside a DOCX story, addressed by story name and source-tree path. */
687
- declare interface OoxmlDocxHighlightLocation {
688
- /** Discriminates this location within `OoxmlHighlightLocation`. */
689
- kind: OoxmlHighlightKind.DocxTextRange;
690
- /** Name of the DOCX story the range lives in, as an opaque string (only `'body'` is confirmed upstream). */
691
- story: string;
692
- /** Source-tree element indices identifying the paragraph, matched element-wise. */
693
- path: number[];
694
- /** Inclusive start character offset within the story's matched text. */
695
- start: number;
696
- /** Exclusive end character offset, already converted from the wire's inclusive `end`. */
697
- endExclusive: number;
698
- /** The cited text, compared against the text resolved over `[start, endExclusive)`. */
699
- text: string;
700
- }
701
-
702
- /** Supported document formats rendered by the bundled `@silurus/ooxml` runtime. */
703
- declare enum OoxmlFileType {
704
- Docx = 'docx',
705
- Xlsx = 'xlsx',
706
- Pptx = 'pptx',
707
- Csv = 'csv',
708
- }
709
-
710
- /** One citation's highlight: the locations it resolved to, under a stable id. */
711
- declare interface OoxmlHighlight {
712
- /** Stable id, used to mark exactly one highlight selected. */
713
- id: string;
714
- /** One or more locations — a single citation may carry several selectors. */
715
- locations: OoxmlHighlightLocation[];
716
- }
717
-
718
- /** Discriminates the Office highlight location descriptors an `OoxmlCanvasContent` can carry. */
719
- declare enum OoxmlHighlightKind {
720
- /** A character range inside a DOCX story, addressed by story name and source-tree path. */
721
- DocxTextRange = 'docxTextRange',
722
- /** A character range inside a single PPTX shape on one slide. */
723
- PptxTextRange = 'pptxTextRange',
724
- /** One cell, or a contiguous same-row cell range, on a named XLSX sheet. */
725
- XlsxCellRange = 'xlsxCellRange',
726
- }
727
-
728
- /** A cited location inside an Office document, in document coordinates. */
729
- declare type OoxmlHighlightLocation =
730
- | OoxmlDocxHighlightLocation
731
- | OoxmlPptxHighlightLocation
732
- | OoxmlXlsxHighlightLocation;
733
-
734
- /** A cited character range inside a single shape on one PPTX slide. */
735
- declare interface OoxmlPptxHighlightLocation {
736
- /** Discriminates this location within `OoxmlHighlightLocation`. */
737
- kind: OoxmlHighlightKind.PptxTextRange;
738
- /** 1-based slide number. */
739
- slide: number;
740
- /** Shape identifier, compared as a string against the run's own `shapeId`. */
741
- shapeId: string;
742
- /** Inclusive start character offset within the shape's matched text. */
743
- start: number;
744
- /** Exclusive end character offset, already converted from the wire's inclusive `end`. */
745
- endExclusive: number;
746
- /** The cited text, compared against the text resolved over `[start, endExclusive)`. */
747
- text: string;
748
- }
749
-
750
- /** A cited cell, or contiguous same-row cell range, on a named XLSX sheet. */
751
- declare interface OoxmlXlsxHighlightLocation {
752
- /** Discriminates this location within `OoxmlHighlightLocation`. */
753
- kind: OoxmlHighlightKind.XlsxCellRange;
754
- /** Sheet name, matched exactly against the workbook's own sheet names. */
755
- sheet: string;
756
- /** First cell of the range. 1-based, passed to the viewer unconverted. */
757
- start: OoxmlCellAddress;
758
- /** Last cell of the range, on the same row as `start`. Omitted for a single cell. */
759
- end?: OoxmlCellAddress;
760
- }
761
-
762
536
  /**
763
537
  * Opens a cited/referenced attachment: triggers a browser download for
764
538
  * DIAL-hosted files (`files/...` ids) via the injected `resolveDownloadUrl`,
@@ -774,28 +548,6 @@ export declare const parseNewFolderVirtualPath: (newFolderVirtualPath: string, r
774
548
 
775
549
  export declare const PATH_SEPARATOR_REGEXP: RegExp;
776
550
 
777
- /** Content payload for PDF file attachments. */
778
- declare interface PdfCanvasContent {
779
- /** Discriminates the content type to select the correct renderer. */
780
- type: AttachmentContentType.Pdf;
781
- /** Resolved download URL or object URL for the PDF file. */
782
- url: string;
783
- /** Highlight regions to render over the PDF pages. */
784
- highlights?: InputHighlightData[];
785
- /** ID of the highlight to scroll to and select on initial load. */
786
- selectedHighlightId?: string;
787
- /** 1-based page to navigate to on initial load, independent of highlight geometry. */
788
- page?: number;
789
- }
790
-
791
- /** Content payload for plain-text attachments. */
792
- declare interface PlainTextCanvasContent {
793
- /** Discriminates the content type to select the correct renderer. */
794
- type: AttachmentContentType.PlainText;
795
- /** The raw text to display. */
796
- text: string;
797
- }
798
-
799
551
  /** Builds the `copyFiles` DTOs (with their destination display name) for `onCopyFiles`. */
800
552
  export declare const prepareCopyItems: (copiedItems: DialCopiedItem[], bucket: string, rootLabel: string) => PreparedCopyMoveItem<CopyItemDto>[];
801
553
 
@@ -821,21 +573,9 @@ export declare const prepareMoveRenameItems: (copiedItems: DialCopiedItem[], buc
821
573
  preparedMoveItems: PreparedCopyMoveItem<MoveItemDto>[];
822
574
  };
823
575
 
824
- /**
825
- * Builds a `PdfCanvasContent` for a reference-only attachment whose
826
- * `reference_url` points at a PDF file (optionally with a `#page=N`
827
- * fragment), so it can be opened in the canvas and scrolled to the
828
- * referenced page the same way a regular PDF citation is. Returns `null`
829
- * when the attachment's `url` does not target a PDF.
830
- */
831
- export declare const referenceAttachmentToPdfCanvasContent: (attachment: AttachmentResource, resolvers: AttachmentCanvasUrlResolvers) => PdfCanvasContent | null;
832
-
833
576
  /** Name reserved for the hidden marker file used to create empty folders. */
834
577
  export declare const RESERVED_MARKER_NAME = ".dial_folder";
835
578
 
836
- /** Resolves a syntax-highlighted code canvas content payload from a DisplayAttachment, or `null` if unavailable. */
837
- export declare const resolveCodeCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers, language?: string) => Promise<CodeCanvasContent | ErrorCanvasContent | null>;
838
-
839
579
  /**
840
580
  * Resolves a DialFile to the bucket-relative API path used by files BFF endpoints.
841
581
  * Prefers DIAL resource ids when present; otherwise converts DialFile.path virtual paths.
@@ -870,35 +610,6 @@ declare type ResolveDownloadUrl = (fileId: string) => string | undefined;
870
610
  */
871
611
  export declare const resolveExternalSourceContentType: (contentType: string, url: string) => string;
872
612
 
873
- /**
874
- * Resolves an HTML canvas content payload from a DisplayAttachment.
875
- * Fetches and inlines the HTML as `srcdoc` when the attachment has a download URL or inline data.
876
- * Returns `null` if no source is available, or an `ErrorCanvasContent` on fetch failure.
877
- * Rejects `srcdoc` payloads larger than 1 MiB to prevent browser truncation.
878
- */
879
- export declare const resolveHtmlCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<HtmlCanvasContent | ErrorCanvasContent | null>;
880
-
881
- /**
882
- * Resolves an image canvas content payload from a DisplayAttachment without
883
- * fetching — returns the BFF download URL (or a local/inline blob URL)
884
- * directly so the browser cache can be shared with the conversation view's
885
- * `<img>` element. Error detection is delegated to `<img onError>` in the
886
- * canvas renderer. Returns `null` if no URL source is available.
887
- */
888
- export declare const resolveImageCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => ImageCanvasContent | null;
889
-
890
- /**
891
- * Resolves a JSON canvas content payload from a DisplayAttachment, or `null` if unavailable.
892
- * Falls back to `PlainTextCanvasContent` when the fetched text is not valid JSON.
893
- */
894
- export declare const resolveJsonCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<JsonCanvasContent | PlainTextCanvasContent | ErrorCanvasContent | null>;
895
-
896
- /** Resolves a Markdown canvas content payload from a DisplayAttachment, or `null` if unavailable. */
897
- export declare const resolveMarkdownCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<MarkdownCanvasContent | ErrorCanvasContent | null>;
898
-
899
- /** Resolves an OOXML or CSV renderer payload from a DisplayAttachment, or `null` if unavailable. */
900
- export declare const resolveOoxmlCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers, format: OoxmlFileType) => Promise<OoxmlCanvasContent | ErrorCanvasContent | null>;
901
-
902
613
  /**
903
614
  * Resolves the effective bucket and path for a write operation on the Shared tab.
904
615
  * For Shared tab items, the first segment of apiPath is the shared root folder name
@@ -909,30 +620,12 @@ export declare const resolveOwnerCoords: (apiPath: string, sharedRootMeta: Map<s
909
620
  path: string;
910
621
  };
911
622
 
912
- /** Resolves a PDF canvas content payload from a DisplayAttachment, or `null` if unavailable. */
913
- export declare const resolvePdfCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<PdfCanvasContent | ErrorCanvasContent | null>;
914
-
915
623
  /**
916
624
  * Converts a DIAL file ID or full resource path to the relative bucket path
917
625
  * expected by the files download API.
918
626
  */
919
627
  export declare const resolveRelativeDialFilePath: (pathOrFileId: string, bucket: string) => string;
920
628
 
921
- /** Resolves a plain-text canvas content payload from a DisplayAttachment, or `null` if unavailable. */
922
- export declare const resolveTextCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<PlainTextCanvasContent | ErrorCanvasContent | null>;
923
-
924
- /**
925
- * Fetches the attachment payload and builds a `VisualizerCanvasContent` for the
926
- * given registry entry and theme. Returns `null` when the payload cannot be
927
- * fetched (caller should fall through to default content-type handling).
928
- *
929
- * Only JSON payloads are parsed into `data`. Non-JSON payloads (plain text,
930
- * CSV, binary, …) resolve with `data: {}` — the visualizer still receives
931
- * `mimeType` and `layout`, just no payload body. This is intentional: only
932
- * JSON attachment content is forwarded to visualizers in this version.
933
- */
934
- export declare const resolveVisualizerCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers, entry: CustomVisualizer, themeId: string) => Promise<VisualizerCanvasContent | null>;
935
-
936
629
  /**
937
630
  * Sanitizes a filename for upload by replacing forbidden characters with `_`,
938
631
  * trimming trailing dots/whitespace from the base name, and capping the result
@@ -1420,22 +1113,4 @@ export { UseGridEditingScrollResult }
1420
1113
  */
1421
1114
  export declare const virtualPathToApiPath: (virtualPath: string, rootLabel: string) => string;
1422
1115
 
1423
- /** Content payload for a custom-visualizer attachment rendered inside a sandboxed iframe. */
1424
- declare interface VisualizerCanvasContent {
1425
- /** Discriminates the content type to select the correct renderer. */
1426
- type: AttachmentContentType.Visualizer;
1427
- /** Iframe `src`, resolved from the matching registry entry's `url`. */
1428
- url: string;
1429
- /** The attachment's own MIME type (not the registry entry's raw, possibly comma-separated, `contentType`). */
1430
- mimeType: string;
1431
- /** Opaque attachment payload consumed by the visualizer. */
1432
- data: unknown;
1433
- /** Presentation layout hints (`themeId`, `width`, `height`, `mobileHeight`). */
1434
- layout: CustomVisualizerDataLayout;
1435
- /** postMessage protocol namespace — MUST equal the registry entry's `title`, or the iframe never receives data. */
1436
- visualizerName: string;
1437
- /** Milliseconds to wait for a `send()` request's response before rejecting. From the registry entry; does NOT bound the handshake. */
1438
- requestTimeout?: number;
1439
- }
1440
-
1441
1116
  export { }
package/file-manager.js CHANGED
@@ -12,18 +12,17 @@ import { buildFromCache as H, fetchByTab as U, fetchForSearch as W, findFirstSuc
12
12
  import { createFilesApiClient as Z } from "./files/create-files-api.js";
13
13
  import { createUploadFileWithProgress as Q } from "./files/create-upload-file-with-progress.js";
14
14
  import { openAnnotationAttachment as $ } from "./files/annotation.js";
15
- import { annotationToOoxmlCanvasContent as ee, annotationToPdfCanvasContent as te, clearAttachmentCache as ne, hasAttachmentTextSource as re, referenceAttachmentToPdfCanvasContent as ie, resolveCodeCanvasContent as ae, resolveHtmlCanvasContent as oe, resolveImageCanvasContent as se, resolveJsonCanvasContent as ce, resolveMarkdownCanvasContent as le, resolveOoxmlCanvasContent as ue, resolvePdfCanvasContent as de, resolveTextCanvasContent as fe, resolveVisualizerCanvasContent as pe } from "./files/attachment-canvas.js";
16
- import { getUrlFileName as me, isExternalSourcePreviewable as he, resolveExternalSourceContentType as ge } from "./files/source-content.js";
17
- import { annotationToDisplayAttachment as _e, attachmentDtoToDisplayAttachment as ve, attachmentDtosToDisplayAttachments as ye } from "./files/attachment-dto-to-display.js";
18
- import { dialFileToAttachment as be, dialFilesToAttachments as xe, dialFolderPathToAttachment as Se } from "./files/dial-file-to-attachment.js";
19
- import { DownloadDestinationType as Ce } from "./files/download-destination.js";
20
- import { prepareDownloadDestination as we } from "./files/prepare-download-destination.js";
21
- import { useDialFileListing as Te } from "./files/useDialFileListing/useDialFileListing.js";
22
- import { useDialFileMetadata as Ee } from "./files/useDialFileMetadata/useDialFileMetadata.js";
23
- import { useDialFileMutations as De } from "./files/useDialFileMutations/useDialFileMutations.js";
24
- import { useDialFileSharing as Oe } from "./files/useDialFileSharing/useDialFileSharing.js";
25
- import { useDialFileUploadBatch as ke } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
26
- import { useDialFileManager as Ae } from "./files/useDialFileManager/useDialFileManager.js";
27
- import { useDialFileManagerTabConfig as je } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
28
- import { useGridEditingScroll as Me } from "@epam/ai-dial-chat-shared";
29
- export { m as COLUMNS_WITHOUT_AUTHOR, h as COLUMNS_WITH_AUTHOR, g as CORE_PERMISSION_MAP, _ as DATE_OPTIONS, x as DialFileManagerActionProfile, S as DialFileManagerVariant, u as DialFilesApiUploadMode, Ce as DownloadDestinationType, d as FileManagerNotificationReason, f as FileNameValidationErrorReason, p as FileOperationKind, v as PATH_SEPARATOR_REGEXP, y as RESERVED_MARKER_NAME, b as UPLOAD_CONCURRENCY, _e as annotationToDisplayAttachment, ee as annotationToOoxmlCanvasContent, te as annotationToPdfCanvasContent, ve as attachmentDtoToDisplayAttachment, ye as attachmentDtosToDisplayAttachments, H as buildFromCache, w as buildSharedItemVirtualPath, ne as clearAttachmentCache, Z as createFilesApiClient, Q as createUploadFileWithProgress, C as deriveActionProfile, T as dialCorePathToRelative, be as dialFileToAttachment, xe as dialFilesToAttachments, Se as dialFolderPathToAttachment, U as fetchByTab, W as fetchForSearch, E as findDialFileByPath, G as findFirstSuccessfulCopyMoveItem, D as findFolderByVirtualPath, O as formatOperationFolderName, L as getParentFolderPath, me as getUrlFileName, k as getVirtualPathName, re as hasAttachmentTextSource, A as hasDialFileWritePermission, j as hasForbiddenNameSymbols, M as isCopyMoveDuplicateAllowed, r as isDialFileAcceptType, e as isDialFileId, he as isExternalSourcePreviewable, N as isShareActionsAllowed, K as mapCorePermissions, q as mapFileMetadataToDialFile, J as mapSearchItem, Y as mergeCreatedFolderIntoCache, i as mimeTypesToAttachmentExtensionLabels, a as mimeTypesToDialFileAcceptTypes, o as mimeTypesToFileAccept, P as normalizeVirtualPath, $ as openAnnotationAttachment, F as parseNewFolderVirtualPath, B as prepareCopyItems, we as prepareDownloadDestination, V as prepareMoveRenameItems, ie as referenceAttachmentToPdfCanvasContent, ae as resolveCodeCanvasContent, R as resolveDialFileApiPath, t as resolveDialFileBucketAndPath, ge as resolveExternalSourceContentType, oe as resolveHtmlCanvasContent, se as resolveImageCanvasContent, ce as resolveJsonCanvasContent, le as resolveMarkdownCanvasContent, ue as resolveOoxmlCanvasContent, I as resolveOwnerCoords, de as resolvePdfCanvasContent, n as resolveRelativeDialFilePath, fe as resolveTextCanvasContent, pe as resolveVisualizerCanvasContent, s as sanitizeFileName, c as splitFileNameExtension, l as trimFileNameToByteLimit, X as updateEntry, Te as useDialFileListing, Ae as useDialFileManager, je as useDialFileManagerTabConfig, Ee as useDialFileMetadata, De as useDialFileMutations, Oe as useDialFileSharing, ke as useDialFileUploadBatch, Me as useGridEditingScroll, z as virtualPathToApiPath };
15
+ import { getUrlFileName as ee, isExternalSourcePreviewable as te, resolveExternalSourceContentType as ne } from "./files/source-content.js";
16
+ import { annotationToDisplayAttachment as re, attachmentDtoToDisplayAttachment as ie, attachmentDtosToDisplayAttachments as ae } from "./files/attachment-dto-to-display.js";
17
+ import { dialFileToAttachment as oe, dialFilesToAttachments as se, dialFolderPathToAttachment as ce } from "./files/dial-file-to-attachment.js";
18
+ import { DownloadDestinationType as le } from "./files/download-destination.js";
19
+ import { prepareDownloadDestination as ue } from "./files/prepare-download-destination.js";
20
+ import { useDialFileListing as de } from "./files/useDialFileListing/useDialFileListing.js";
21
+ import { useDialFileMetadata as fe } from "./files/useDialFileMetadata/useDialFileMetadata.js";
22
+ import { useDialFileMutations as pe } from "./files/useDialFileMutations/useDialFileMutations.js";
23
+ import { useDialFileSharing as me } from "./files/useDialFileSharing/useDialFileSharing.js";
24
+ import { useDialFileUploadBatch as he } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
25
+ import { useDialFileManager as ge } from "./files/useDialFileManager/useDialFileManager.js";
26
+ import { useDialFileManagerTabConfig as _e } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
27
+ import { useGridEditingScroll as ve } from "@epam/ai-dial-chat-shared";
28
+ export { m as COLUMNS_WITHOUT_AUTHOR, h as COLUMNS_WITH_AUTHOR, g as CORE_PERMISSION_MAP, _ as DATE_OPTIONS, x as DialFileManagerActionProfile, S as DialFileManagerVariant, u as DialFilesApiUploadMode, le as DownloadDestinationType, d as FileManagerNotificationReason, f as FileNameValidationErrorReason, p as FileOperationKind, v as PATH_SEPARATOR_REGEXP, y as RESERVED_MARKER_NAME, b as UPLOAD_CONCURRENCY, re as annotationToDisplayAttachment, ie as attachmentDtoToDisplayAttachment, ae as attachmentDtosToDisplayAttachments, H as buildFromCache, w as buildSharedItemVirtualPath, Z as createFilesApiClient, Q as createUploadFileWithProgress, C as deriveActionProfile, T as dialCorePathToRelative, oe as dialFileToAttachment, se as dialFilesToAttachments, ce as dialFolderPathToAttachment, U as fetchByTab, W as fetchForSearch, E as findDialFileByPath, G as findFirstSuccessfulCopyMoveItem, D as findFolderByVirtualPath, O as formatOperationFolderName, L as getParentFolderPath, ee as getUrlFileName, k as getVirtualPathName, A as hasDialFileWritePermission, j as hasForbiddenNameSymbols, M as isCopyMoveDuplicateAllowed, r as isDialFileAcceptType, e as isDialFileId, te as isExternalSourcePreviewable, N as isShareActionsAllowed, K as mapCorePermissions, q as mapFileMetadataToDialFile, J as mapSearchItem, Y as mergeCreatedFolderIntoCache, i as mimeTypesToAttachmentExtensionLabels, a as mimeTypesToDialFileAcceptTypes, o as mimeTypesToFileAccept, P as normalizeVirtualPath, $ as openAnnotationAttachment, F as parseNewFolderVirtualPath, B as prepareCopyItems, ue as prepareDownloadDestination, V as prepareMoveRenameItems, R as resolveDialFileApiPath, t as resolveDialFileBucketAndPath, ne as resolveExternalSourceContentType, I as resolveOwnerCoords, n as resolveRelativeDialFilePath, s as sanitizeFileName, c as splitFileNameExtension, l as trimFileNameToByteLimit, X as updateEntry, de as useDialFileListing, ge as useDialFileManager, _e as useDialFileManagerTabConfig, fe as useDialFileMetadata, pe as useDialFileMutations, me as useDialFileSharing, he as useDialFileUploadBatch, ve as useGridEditingScroll, z as virtualPathToApiPath };
@@ -69,14 +69,14 @@ var g = (e, t) => URL.createObjectURL(s(e, t)), _ = (e) => {
69
69
  if (t.url != null && e(t.url)) return E(t.url);
70
70
  if (t.referenceUrl != null && e(t.referenceUrl)) return E(t.referenceUrl);
71
71
  }, O = async (e, t) => {
72
- if ("file" in e) return URL.createObjectURL(e.file);
73
- let n = t.resolveDialUrl(e);
74
- if (n != null) try {
75
- let r = await w(n, D(e) ?? "", t);
76
- return URL.createObjectURL(r);
72
+ let n = "file" in e ? e.file : void 0, r = n != null && n.size === 0, i = n != null && !r ? void 0 : t.resolveDialUrl(e);
73
+ if (n != null && i == null) return URL.createObjectURL(n);
74
+ if (i != null) try {
75
+ let n = await w(i, D(e) ?? "", t);
76
+ return URL.createObjectURL(n);
77
77
  } catch (e) {
78
78
  let t = e.status;
79
- return t == null ? y(n) : v(t, n);
79
+ return t == null ? y(i) : v(t, i);
80
80
  }
81
81
  if (e.previewUrl != null) return e.previewUrl;
82
82
  if (e.data != null) return g(e.data, e.contentType);
@@ -91,12 +91,11 @@ var g = (e, t) => URL.createObjectURL(s(e, t)), _ = (e) => {
91
91
  }
92
92
  if ("file" in e) return e.file.text();
93
93
  }, A = (e, t) => e.data != null || t.resolveDialUrl(e) != null || "file" in e, j = (e, n) => {
94
- if ("file" in e) return {
94
+ let r = "file" in e ? e.file : void 0, i = r != null && r.size === 0, a = r != null && !i ? void 0 : n.resolveDialUrl(e);
95
+ return r != null && a == null ? {
95
96
  type: t.Image,
96
- url: URL.createObjectURL(e.file)
97
- };
98
- let r = n.resolveDialUrl(e);
99
- return r == null ? e.previewUrl == null ? e.data == null ? null : {
97
+ url: URL.createObjectURL(r)
98
+ } : a == null ? e.previewUrl == null ? e.data == null ? null : {
100
99
  type: t.Image,
101
100
  url: g(e.data, e.contentType)
102
101
  } : {
@@ -104,7 +103,7 @@ var g = (e, t) => URL.createObjectURL(s(e, t)), _ = (e) => {
104
103
  url: e.previewUrl
105
104
  } : {
106
105
  type: t.Image,
107
- url: r
106
+ url: a
108
107
  };
109
108
  }, M = async (e, n) => {
110
109
  let r = await k(e, n);
@@ -151,6 +150,17 @@ var g = (e, t) => URL.createObjectURL(s(e, t)), _ = (e) => {
151
150
  };
152
151
  }, R = (e) => {
153
152
  switch (e.type) {
153
+ case "docx_text_anchor": return {
154
+ kind: i.DocxTableRow,
155
+ cells: e.cells,
156
+ occurrence: e.occurrence
157
+ };
158
+ case "pptx_text_anchor": return {
159
+ kind: i.PptxTableRow,
160
+ cells: e.cells,
161
+ occurrence: e.occurrence,
162
+ slide: e.slide
163
+ };
154
164
  case "docx_text_range": return {
155
165
  kind: i.DocxTextRange,
156
166
  story: e.story,
@@ -298,6 +308,34 @@ var g = (e, t) => URL.createObjectURL(s(e, t)), _ = (e) => {
298
308
  visualizerName: r.title,
299
309
  requestTimeout: r.requestTimeout
300
310
  };
311
+ }, q = (e, n, r, i) => {
312
+ let a = {
313
+ width: r.width,
314
+ height: r.height,
315
+ mobileHeight: r.mobileHeight,
316
+ themeId: i
317
+ }, o = [], s = [];
318
+ return e.forEach((e) => {
319
+ let t = n(e);
320
+ t != null && (s.push(e), o.push({
321
+ url: t,
322
+ mimeType: e.contentType,
323
+ visualizerData: { layout: a }
324
+ }));
325
+ }), o.length === 0 ? {
326
+ content: null,
327
+ resolved: []
328
+ } : {
329
+ content: {
330
+ type: t.GroupedVisualizer,
331
+ url: r.url,
332
+ attachments: o,
333
+ layout: a,
334
+ visualizerName: r.title,
335
+ requestTimeout: r.requestTimeout
336
+ },
337
+ resolved: s
338
+ };
301
339
  };
302
340
  //#endregion
303
- export { z as annotationToOoxmlCanvasContent, L as annotationToPdfCanvasContent, S as clearAttachmentCache, A as hasAttachmentTextSource, B as referenceAttachmentToPdfCanvasContent, F as resolveCodeCanvasContent, I as resolveHtmlCanvasContent, j as resolveImageCanvasContent, G as resolveJsonCanvasContent, N as resolveMarkdownCanvasContent, W as resolveOoxmlCanvasContent, U as resolvePdfCanvasContent, M as resolveTextCanvasContent, K as resolveVisualizerCanvasContent };
341
+ export { z as annotationToOoxmlCanvasContent, L as annotationToPdfCanvasContent, S as clearAttachmentCache, A as hasAttachmentTextSource, B as referenceAttachmentToPdfCanvasContent, F as resolveCodeCanvasContent, q as resolveGroupedVisualizerCanvasContent, I as resolveHtmlCanvasContent, j as resolveImageCanvasContent, G as resolveJsonCanvasContent, N as resolveMarkdownCanvasContent, W as resolveOoxmlCanvasContent, U as resolvePdfCanvasContent, M as resolveTextCanvasContent, K as resolveVisualizerCanvasContent };