@epam/ai-dial-chat-shared 1.2.0-dev.164 → 1.2.0-dev.173
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/components/TextRefinementField/TextRefinementField.js +54 -52
- package/constants/resizable-fields.js +2 -2
- package/file-manager/DialFileManagerShell/DialFileManagerShell.js +229 -231
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.js +6 -3
- package/file-manager/upload-batch.js +2 -2
- package/file-manager/upload-queue.js +17 -0
- package/file-manager.d.ts +16 -11
- package/file-manager.js +4 -3
- package/index.css +1 -1
- package/index.d.ts +32 -28
- package/index.js +56 -56
- package/package.json +2 -2
- package/utils/entity-field-limits.js +4 -0
- package/file-manager/UploadProgressModal/UploadProgressModal.js +0 -47
|
@@ -1,84 +1,86 @@
|
|
|
1
1
|
import { mergeClasses as e } from "../../utils/merge-class.js";
|
|
2
2
|
import { TextRefinementState as t } from "../../hooks/useTextRefinement.js";
|
|
3
|
-
import {
|
|
4
|
-
import { useRef as
|
|
5
|
-
import { Fragment as
|
|
6
|
-
import { IconSparkles as
|
|
3
|
+
import { CaptionText as n, DIAL_ICON_SIZE as r, DIAL_KIT_ICON_STROKE as i, ElementSize as a, ErrorText as o, GhostButton as s, Label as c, Spinner as l } from "@epam/ai-dial-ui-kit";
|
|
4
|
+
import { useRef as u } from "react";
|
|
5
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
6
|
+
import { IconSparkles as m } from "@tabler/icons-react";
|
|
7
7
|
//#region src/components/TextRefinementField/TextRefinementField.tsx
|
|
8
|
-
var
|
|
9
|
-
let
|
|
10
|
-
if (!
|
|
11
|
-
let
|
|
8
|
+
var h = ({ isEnabled: h, fieldId: g, label: _, labelClassName: v, required: y, labels: b, refinement: x, disabled: S, feedbackClassName: C, errorClassName: w, children: T }) => {
|
|
9
|
+
let E = u(null);
|
|
10
|
+
if (!h) return /* @__PURE__ */ f(d, { children: T });
|
|
11
|
+
let D = x.state === t.Error, O = {
|
|
12
12
|
[t.Idle]: "",
|
|
13
|
-
[t.Pending]:
|
|
14
|
-
[t.Success]:
|
|
15
|
-
[t.Restored]:
|
|
16
|
-
[t.Unchanged]:
|
|
13
|
+
[t.Pending]: b?.refinePendingAriaLabel ?? "Refining text",
|
|
14
|
+
[t.Success]: b?.refineSuccessAriaLabel ?? "Text refined. Undo is available.",
|
|
15
|
+
[t.Restored]: b?.refineUndoAriaLabel ?? "Original text restored.",
|
|
16
|
+
[t.Unchanged]: b?.refineUnchangedAriaLabel ?? "No changes were needed.",
|
|
17
17
|
[t.Error]: ""
|
|
18
|
-
}[
|
|
19
|
-
return /* @__PURE__ */
|
|
18
|
+
}[x.state];
|
|
19
|
+
return /* @__PURE__ */ p("div", {
|
|
20
20
|
className: "flex min-w-0 flex-col gap-1",
|
|
21
21
|
role: "group",
|
|
22
|
-
"aria-labelledby":
|
|
23
|
-
"aria-describedby":
|
|
22
|
+
"aria-labelledby": g + "-label",
|
|
23
|
+
"aria-describedby": D ? g + "-refinement-error" : void 0,
|
|
24
24
|
children: [
|
|
25
|
-
/* @__PURE__ */
|
|
25
|
+
/* @__PURE__ */ p("div", {
|
|
26
26
|
className: "flex min-w-0 flex-wrap items-center gap-x-3",
|
|
27
|
-
children: [/* @__PURE__ */
|
|
28
|
-
id:
|
|
29
|
-
htmlFor:
|
|
30
|
-
className:
|
|
31
|
-
label:
|
|
32
|
-
required:
|
|
33
|
-
}), /* @__PURE__ */
|
|
34
|
-
ref:
|
|
27
|
+
children: [/* @__PURE__ */ f(c, {
|
|
28
|
+
id: g + "-label",
|
|
29
|
+
htmlFor: g,
|
|
30
|
+
className: v,
|
|
31
|
+
label: _,
|
|
32
|
+
required: y
|
|
33
|
+
}), /* @__PURE__ */ p("div", {
|
|
34
|
+
ref: E,
|
|
35
35
|
className: "ms-auto flex min-w-0 flex-wrap items-center",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
37
|
-
size:
|
|
38
|
-
label:
|
|
39
|
-
disabled:
|
|
36
|
+
children: [/* @__PURE__ */ f(s, {
|
|
37
|
+
size: a.Small,
|
|
38
|
+
label: b?.refineWithAiLabel ?? "Refine with AI",
|
|
39
|
+
disabled: S || !x.canRefine,
|
|
40
40
|
onClick: () => {
|
|
41
|
-
|
|
41
|
+
x.refine();
|
|
42
42
|
},
|
|
43
|
-
iconBefore:
|
|
43
|
+
iconBefore: x.isPending ? /* @__PURE__ */ f("span", {
|
|
44
44
|
"aria-hidden": !0,
|
|
45
|
-
children: /* @__PURE__ */
|
|
46
|
-
size:
|
|
45
|
+
children: /* @__PURE__ */ f(l, {
|
|
46
|
+
size: r.SM,
|
|
47
47
|
ariaLabel: ""
|
|
48
48
|
})
|
|
49
|
-
}) : /* @__PURE__ */
|
|
50
|
-
size:
|
|
51
|
-
stroke:
|
|
49
|
+
}) : /* @__PURE__ */ f(m, {
|
|
50
|
+
size: r.SM,
|
|
51
|
+
stroke: i,
|
|
52
52
|
"aria-hidden": !0
|
|
53
53
|
})
|
|
54
|
-
}),
|
|
55
|
-
size:
|
|
56
|
-
label:
|
|
57
|
-
disabled:
|
|
54
|
+
}), x.canUndo && /* @__PURE__ */ f(s, {
|
|
55
|
+
size: a.Small,
|
|
56
|
+
label: b?.refineUndoLabel ?? "Undo",
|
|
57
|
+
disabled: S,
|
|
58
58
|
onClick: () => {
|
|
59
|
-
|
|
59
|
+
x.undo(), E.current?.querySelector("button")?.focus();
|
|
60
60
|
}
|
|
61
61
|
})]
|
|
62
62
|
})]
|
|
63
63
|
}),
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
"aria-busy":
|
|
66
|
-
children:
|
|
64
|
+
/* @__PURE__ */ f("div", {
|
|
65
|
+
"aria-busy": x.isPending,
|
|
66
|
+
children: T
|
|
67
67
|
}),
|
|
68
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ f("div", {
|
|
69
69
|
role: "status",
|
|
70
70
|
"aria-live": "polite",
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
children: /* @__PURE__ */ f(n, {
|
|
72
|
+
text: O,
|
|
73
|
+
className: C
|
|
74
|
+
})
|
|
73
75
|
}),
|
|
74
|
-
|
|
76
|
+
D && /* @__PURE__ */ f(o, {
|
|
75
77
|
role: "alert",
|
|
76
|
-
id:
|
|
77
|
-
className: e(
|
|
78
|
-
text:
|
|
78
|
+
id: g + "-refinement-error",
|
|
79
|
+
className: e(C, w),
|
|
80
|
+
text: b?.refineErrorLabel ?? "Could not refine this text. Please try again."
|
|
79
81
|
})
|
|
80
82
|
]
|
|
81
83
|
});
|
|
82
84
|
};
|
|
83
85
|
//#endregion
|
|
84
|
-
export {
|
|
86
|
+
export { h as TextRefinementField };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
//#region src/constants/resizable-fields.ts
|
|
2
|
-
var e = "max-h-[50vh]", t = "--resizable-field-max-height", n = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]";
|
|
2
|
+
var e = "max-h-[50vh]", t = "--resizable-field-max-height", n = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]", r = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:!h-[var(--resizable-field-max-height,70vh)] [&_.w-md-editor-bar]:hidden";
|
|
3
3
|
//#endregion
|
|
4
|
-
export { n as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, t as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, e as RESIZABLE_TEXTAREA_CLASS_NAME };
|
|
4
|
+
export { r as MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME, n as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, t as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, e as RESIZABLE_TEXTAREA_CLASS_NAME };
|
|
@@ -1,309 +1,307 @@
|
|
|
1
1
|
import { DialFileManagerActionProfile as e, DialFileManagerVariant as t } from "../file-manager-variant.js";
|
|
2
2
|
import { getParentFolderPath as ee } from "../path.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { DialFileManager as le, DialFileManagerActions as c, DialFileManagerTabs as ue, GridSelectionMode as de } from "@epam/ai-dial-react-file-manager";
|
|
3
|
+
import { useGridEditingScroll as n } from "../useGridEditingScroll/useGridEditingScroll.js";
|
|
4
|
+
import { OperationLoaderModal as te } from "../OperationLoaderModal/OperationLoaderModal.js";
|
|
5
|
+
import { toUploadQueueItems as ne } from "../upload-queue.js";
|
|
6
|
+
import { NOT_ALLOWED_SYMBOLS_REGEXP as re, PrimaryButton as ie, Spinner as ae, TransferQueue as oe } from "@epam/ai-dial-ui-kit";
|
|
7
|
+
import { memo as r, useCallback as se, useEffect as ce, useMemo as i, useState as le } from "react";
|
|
8
|
+
import { Fragment as ue, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
9
|
+
import { DialFileManager as de, DialFileManagerActions as s, DialFileManagerTabs as fe, GridSelectionMode as pe } from "@epam/ai-dial-react-file-manager";
|
|
11
10
|
//#region src/file-manager/DialFileManagerShell/DialFileManagerShell.tsx
|
|
12
|
-
var
|
|
11
|
+
var c = (e, t) => {
|
|
13
12
|
if (e.isDownloading) return t.downloadingLabel;
|
|
14
13
|
if (e.isDeleting) return t.deletingLabel;
|
|
15
14
|
if (e.isRenaming && !e.isMoving) return t.renamingLabel;
|
|
16
15
|
if (e.isUnsharing) return t.unsharingLabel;
|
|
17
16
|
if (e.isRemovingAccess) return t.removingAccessLabel;
|
|
18
|
-
},
|
|
19
|
-
let { items:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, [
|
|
23
|
-
let
|
|
17
|
+
}, l = ({ controller: r, labels: l, activeTab: u, tabs: d, onTabChange: f, selectedPaths: p, onSelectedPathsChange: me, variant: he, actionProfile: ge, autoSelectUploadedItems: _e = !1, allowedFileTypes: ve, maxSelectableFileSize: m, oversizedUploadMessage: h, isRowSelectable: g, getDisabledTooltip: ye, unsupportedFileTypeTooltip: be }) => {
|
|
18
|
+
let { items: xe, isLoading: Se, error: Ce, path: _, onPathChange: we, retry: Te, onSearchFiles: Ee, isSearching: v, searchResults: y, clearSearchResults: De, expandedPaths: b, loadedPaths: x, onExpandedPathsChange: S, onFolderPopupPathChange: Oe, folderPopupLoadingPaths: C, onUploadFiles: w, onUploadArchive: T, onValidateUpload: ke, uploadBatchState: E, cancelUpload: D, cancelUploadFile: Ae, clearUploadBatch: O, onCreateFolder: je, onCreateFolderValidate: Me, onDownloadFiles: Ne, isDownloading: k, onDeleteFiles: Pe, isDeleting: Fe, onMoveToFiles: Ie, onRenameValidate: Le, isRenaming: Re, onCopyFiles: ze, isCopying: Be, isMoving: A, cancelCopyMove: Ve, uploadEnabled: j, isNewButtonDisabled: M, disabledNewButtonTooltip: N, visibleColumns: P, dateLocale: F, dateOptions: I, actionLabels: L, sharedWithMeIds: He, sharedByMePaths: R, onUnshareFiles: Ue, isUnsharing: We, onRemoveFilesAccess: Ge, isRemovingAccess: Ke, fileMetadata: z, isFileMetadataLoading: B, onGetInfo: qe, clearMetadata: V } = r, [H, Je] = le(void 0), { handleGridApiChange: Ye, reset: U } = n();
|
|
19
|
+
ce(() => {
|
|
20
|
+
U();
|
|
21
|
+
}, [u, U]);
|
|
22
|
+
let W = i(() => {
|
|
24
23
|
let e = {};
|
|
25
|
-
return
|
|
24
|
+
return s.Download in L && (e[s.Download] = l.downloadLabel), s.Delete in L && (e[s.Delete] = l.deleteLabel), s.Rename in L && (e[s.Rename] = l.renameLabel), s.Copy in L && (e[s.Copy] = l.copyLabel), s.Move in L && (e[s.Move] = l.moveLabel), s.Duplicate in L && (e[s.Duplicate] = l.duplicateLabel), s.Unshare in L && (e[s.Unshare] = l.unshareLabel), s.RemoveAccess in L && (e[s.RemoveAccess] = l.removeAccessLabel), e;
|
|
26
25
|
}, [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
]),
|
|
37
|
-
...
|
|
38
|
-
[
|
|
39
|
-
} :
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
]),
|
|
44
|
-
if (
|
|
45
|
-
for (let e of
|
|
26
|
+
L,
|
|
27
|
+
l.downloadLabel,
|
|
28
|
+
l.deleteLabel,
|
|
29
|
+
l.renameLabel,
|
|
30
|
+
l.copyLabel,
|
|
31
|
+
l.moveLabel,
|
|
32
|
+
l.duplicateLabel,
|
|
33
|
+
l.unshareLabel,
|
|
34
|
+
l.removeAccessLabel
|
|
35
|
+
]), G = i(() => s.Info in L ? {
|
|
36
|
+
...W,
|
|
37
|
+
[s.Info]: l.infoLabel
|
|
38
|
+
} : W, [
|
|
39
|
+
W,
|
|
40
|
+
L,
|
|
41
|
+
l.infoLabel
|
|
42
|
+
]), K = i(() => {
|
|
43
|
+
if (p.size === 0) return !1;
|
|
44
|
+
for (let e of p) if (!R.has(e)) return !1;
|
|
46
45
|
return !0;
|
|
47
|
-
}, [
|
|
48
|
-
if (
|
|
49
|
-
let { [
|
|
46
|
+
}, [p, R]), q = i(() => {
|
|
47
|
+
if (K) return W;
|
|
48
|
+
let { [s.RemoveAccess]: e, ...t } = W;
|
|
50
49
|
return t;
|
|
51
|
-
}, [
|
|
52
|
-
selectionMode:
|
|
53
|
-
visibleColumns:
|
|
54
|
-
dateLocale:
|
|
55
|
-
dateOptions:
|
|
50
|
+
}, [W, K]), Xe = i(() => ({
|
|
51
|
+
selectionMode: pe.MULTIPLE,
|
|
52
|
+
visibleColumns: P,
|
|
53
|
+
dateLocale: F,
|
|
54
|
+
dateOptions: I,
|
|
56
55
|
additionalGridOptions: {
|
|
57
56
|
domLayout: "normal",
|
|
58
57
|
rowSelection: {
|
|
59
58
|
mode: "multiRow",
|
|
60
|
-
isRowSelectable:
|
|
59
|
+
isRowSelectable: g ?? (() => !0)
|
|
61
60
|
}
|
|
62
61
|
},
|
|
63
|
-
actionLabels:
|
|
62
|
+
actionLabels: G
|
|
64
63
|
}), [
|
|
64
|
+
P,
|
|
65
65
|
F,
|
|
66
66
|
I,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
actionLabels: G
|
|
67
|
+
G,
|
|
68
|
+
g
|
|
69
|
+
]), Ze = i(() => ({
|
|
70
|
+
header: l.treeHeaderByTab[u],
|
|
71
|
+
tabs: d,
|
|
72
|
+
activeTab: u,
|
|
73
|
+
onTabChange: f,
|
|
74
|
+
expandedPaths: b,
|
|
75
|
+
loadedPaths: x,
|
|
76
|
+
loadingPaths: C,
|
|
77
|
+
onExpandedPathsChange: S,
|
|
78
|
+
actionLabels: W
|
|
80
79
|
}), [
|
|
81
|
-
|
|
82
|
-
f,
|
|
80
|
+
l.treeHeaderByTab,
|
|
83
81
|
d,
|
|
84
|
-
|
|
82
|
+
u,
|
|
83
|
+
f,
|
|
84
|
+
b,
|
|
85
85
|
x,
|
|
86
|
-
S,
|
|
87
|
-
T,
|
|
88
86
|
C,
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
S,
|
|
88
|
+
W
|
|
89
|
+
]), J = he === t.Standalone && ge === e.Full && u === fe.MyFiles && j, Qe = i(() => ({
|
|
91
90
|
showHiddenFilesToggle: !0,
|
|
92
|
-
hiddenFilesSwitcherLabel:
|
|
93
|
-
showHiddenFilesLabel:
|
|
94
|
-
hideHiddenFilesLabel:
|
|
95
|
-
isNewButtonDisabled:
|
|
96
|
-
disabledNewButtonTooltip:
|
|
91
|
+
hiddenFilesSwitcherLabel: l.hiddenFilesLabel,
|
|
92
|
+
showHiddenFilesLabel: l.showHiddenFilesLabel,
|
|
93
|
+
hideHiddenFilesLabel: l.hideHiddenFilesLabel,
|
|
94
|
+
isNewButtonDisabled: M,
|
|
95
|
+
disabledNewButtonTooltip: N,
|
|
97
96
|
newActions: {
|
|
98
97
|
uploadFiles: {
|
|
99
|
-
label:
|
|
98
|
+
label: l.uploadFilesLabel,
|
|
100
99
|
icon: null
|
|
101
100
|
},
|
|
102
101
|
newFolder: {
|
|
103
|
-
label:
|
|
102
|
+
label: l.newFolderLabel,
|
|
104
103
|
icon: null
|
|
105
104
|
},
|
|
106
|
-
...
|
|
107
|
-
label:
|
|
105
|
+
...J ? { uploadArchive: {
|
|
106
|
+
label: l.uploadArchiveAction,
|
|
108
107
|
icon: null
|
|
109
108
|
} } : {}
|
|
110
109
|
}
|
|
111
110
|
}), [
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
l.hiddenFilesLabel,
|
|
112
|
+
l.showHiddenFilesLabel,
|
|
113
|
+
l.hideHiddenFilesLabel,
|
|
114
|
+
M,
|
|
115
115
|
N,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
contentRenderer: u.deleteConfirmBody
|
|
116
|
+
l.uploadFilesLabel,
|
|
117
|
+
l.newFolderLabel,
|
|
118
|
+
J,
|
|
119
|
+
l.uploadArchiveAction
|
|
120
|
+
]), $e = i(() => ({
|
|
121
|
+
getSelectionLabel: l.getSelectionLabel,
|
|
122
|
+
actionLabels: q
|
|
123
|
+
}), [l.getSelectionLabel, q]), et = i(() => ({
|
|
124
|
+
cancelLabel: l.deleteCancelLabel,
|
|
125
|
+
confirmLabel: l.deleteConfirmLabel,
|
|
126
|
+
titleRenderer: l.deleteConfirmTitle,
|
|
127
|
+
contentRenderer: l.deleteConfirmBody
|
|
129
128
|
}), [
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
]),
|
|
129
|
+
l.deleteCancelLabel,
|
|
130
|
+
l.deleteConfirmLabel,
|
|
131
|
+
l.deleteConfirmTitle,
|
|
132
|
+
l.deleteConfirmBody
|
|
133
|
+
]), tt = i(() => {
|
|
135
134
|
let e;
|
|
136
|
-
for (let t of
|
|
135
|
+
for (let t of p) {
|
|
137
136
|
let n = ee(t);
|
|
138
137
|
if (e === void 0) e = n;
|
|
139
138
|
else if (e !== n) return;
|
|
140
139
|
}
|
|
141
140
|
return e;
|
|
142
|
-
}, [
|
|
143
|
-
copyLabel:
|
|
144
|
-
moveLabel:
|
|
145
|
-
addFolderLabel:
|
|
146
|
-
hiddenFilesSwitcherLabel:
|
|
147
|
-
getCopyHeader:
|
|
148
|
-
getMoveHeader:
|
|
149
|
-
disabledPathTooltip:
|
|
150
|
-
emptyStateTitle:
|
|
151
|
-
emptyStateDescription:
|
|
152
|
-
sourceFolder:
|
|
153
|
-
destinationFolderPath:
|
|
154
|
-
setDestinationFolderPath:
|
|
155
|
-
filesLoading:
|
|
141
|
+
}, [p]), Y = H != null && C.has(H), X = Y ? H : tt, nt = i(() => ({
|
|
142
|
+
copyLabel: l.copyLabel,
|
|
143
|
+
moveLabel: l.moveLabel,
|
|
144
|
+
addFolderLabel: l.addFolderLabel,
|
|
145
|
+
hiddenFilesSwitcherLabel: l.hiddenFilesSwitcherLabel,
|
|
146
|
+
getCopyHeader: l.getCopyHeader,
|
|
147
|
+
getMoveHeader: l.getMoveHeader,
|
|
148
|
+
disabledPathTooltip: Y ? l.folderPickerLoadingTooltip : l.moveSourceDisabledTooltip,
|
|
149
|
+
emptyStateTitle: l.folderPickerEmptyStateTitle,
|
|
150
|
+
emptyStateDescription: l.folderPickerEmptyStateDescription,
|
|
151
|
+
sourceFolder: X,
|
|
152
|
+
destinationFolderPath: H,
|
|
153
|
+
setDestinationFolderPath: Je,
|
|
154
|
+
filesLoading: Y
|
|
156
155
|
}), [
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
156
|
+
l.copyLabel,
|
|
157
|
+
l.moveLabel,
|
|
158
|
+
l.addFolderLabel,
|
|
159
|
+
l.hiddenFilesSwitcherLabel,
|
|
160
|
+
l.getCopyHeader,
|
|
161
|
+
l.getMoveHeader,
|
|
162
|
+
l.folderPickerLoadingTooltip,
|
|
163
|
+
l.moveSourceDisabledTooltip,
|
|
164
|
+
l.folderPickerEmptyStateTitle,
|
|
165
|
+
l.folderPickerEmptyStateDescription,
|
|
166
|
+
Y,
|
|
167
167
|
X,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
authorLabel: u.metadataAuthorLabel
|
|
168
|
+
H
|
|
169
|
+
]), rt = se(() => {
|
|
170
|
+
D(), O();
|
|
171
|
+
}, [D, O]), Z = i(() => ne(E?.files ?? []), [E]), it = i(() => ({
|
|
172
|
+
fileMetadata: z,
|
|
173
|
+
loading: B,
|
|
174
|
+
clearMetadata: V,
|
|
175
|
+
header: l.metadataHeader,
|
|
176
|
+
nameLabel: l.metadataNameLabel,
|
|
177
|
+
pathLabel: l.metadataPathLabel,
|
|
178
|
+
modifiedDateLabel: l.metadataModifiedDateLabel,
|
|
179
|
+
sizeLabel: l.metadataSizeLabel,
|
|
180
|
+
authorLabel: l.metadataAuthorLabel
|
|
182
181
|
}), [
|
|
182
|
+
z,
|
|
183
183
|
B,
|
|
184
184
|
V,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (k == null) return "";
|
|
201
|
-
let e = k.files.filter((e) => e.status !== n.Uploading).length;
|
|
202
|
-
return u.getUploadProgressText(e, k.files.length);
|
|
203
|
-
}, [k, u]), $ = a(() => b != null && !y ? {
|
|
204
|
-
title: u.searchEmptyStateTitle,
|
|
185
|
+
l.metadataHeader,
|
|
186
|
+
l.metadataNameLabel,
|
|
187
|
+
l.metadataPathLabel,
|
|
188
|
+
l.metadataModifiedDateLabel,
|
|
189
|
+
l.metadataSizeLabel,
|
|
190
|
+
l.metadataAuthorLabel
|
|
191
|
+
]), Q = c({
|
|
192
|
+
isDownloading: k,
|
|
193
|
+
isDeleting: Fe,
|
|
194
|
+
isRenaming: Re,
|
|
195
|
+
isMoving: A,
|
|
196
|
+
isUnsharing: We,
|
|
197
|
+
isRemovingAccess: Ke
|
|
198
|
+
}, l), $ = i(() => y != null && !v ? {
|
|
199
|
+
title: l.searchEmptyStateTitle,
|
|
205
200
|
description: ""
|
|
206
|
-
} :
|
|
207
|
-
title:
|
|
201
|
+
} : _.split("/").filter(Boolean).length > 1 ? {
|
|
202
|
+
title: l.folderEmptyStateTitle,
|
|
208
203
|
description: ""
|
|
209
|
-
} :
|
|
210
|
-
b,
|
|
204
|
+
} : l.emptyStateByTab[u], [
|
|
211
205
|
y,
|
|
212
206
|
v,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
207
|
+
_,
|
|
208
|
+
l.searchEmptyStateTitle,
|
|
209
|
+
l.folderEmptyStateTitle,
|
|
210
|
+
l.emptyStateByTab,
|
|
211
|
+
u
|
|
217
212
|
]);
|
|
218
|
-
return /* @__PURE__ */
|
|
219
|
-
|
|
213
|
+
return /* @__PURE__ */ o(ue, { children: [
|
|
214
|
+
Ce == null ? /* @__PURE__ */ o("div", {
|
|
220
215
|
className: "relative flex min-h-0 w-full grow overflow-auto bg-layer-sunken",
|
|
221
|
-
children: [/* @__PURE__ */
|
|
216
|
+
children: [/* @__PURE__ */ a(de, {
|
|
222
217
|
className: "min-h-0 w-full grow bg-layer-sunken",
|
|
223
218
|
gridClassName: "size-full",
|
|
224
|
-
items:
|
|
225
|
-
path:
|
|
226
|
-
onPathChange:
|
|
227
|
-
onGridApiChange:
|
|
228
|
-
filesLoading:
|
|
229
|
-
allowedFileTypes:
|
|
230
|
-
maxSelectableFileSize:
|
|
231
|
-
maxFileSize:
|
|
232
|
-
uploadValidationMessages:
|
|
233
|
-
selectedPaths:
|
|
234
|
-
onSelectedPathsChange:
|
|
219
|
+
items: xe,
|
|
220
|
+
path: _,
|
|
221
|
+
onPathChange: we,
|
|
222
|
+
onGridApiChange: Ye,
|
|
223
|
+
filesLoading: Se,
|
|
224
|
+
allowedFileTypes: ve,
|
|
225
|
+
maxSelectableFileSize: m,
|
|
226
|
+
maxFileSize: m,
|
|
227
|
+
uploadValidationMessages: h == null ? void 0 : { oversizedFiles: h },
|
|
228
|
+
selectedPaths: p,
|
|
229
|
+
onSelectedPathsChange: me,
|
|
235
230
|
navigationPanelOptions: { searchable: !0 },
|
|
236
231
|
hideSearchPathItemName: !0,
|
|
237
|
-
onSearchFiles:
|
|
238
|
-
searchInProgress:
|
|
239
|
-
searchResults:
|
|
240
|
-
clearSearchResults:
|
|
241
|
-
gridOptions:
|
|
242
|
-
treeOptions:
|
|
243
|
-
onFolderPopupPathChange:
|
|
244
|
-
toolbarOptions:
|
|
245
|
-
bulkActionsToolbarOptions:
|
|
246
|
-
autoSelectUploadedItems:
|
|
232
|
+
onSearchFiles: Ee,
|
|
233
|
+
searchInProgress: v,
|
|
234
|
+
searchResults: y ?? [],
|
|
235
|
+
clearSearchResults: De,
|
|
236
|
+
gridOptions: Xe,
|
|
237
|
+
treeOptions: Ze,
|
|
238
|
+
onFolderPopupPathChange: Oe,
|
|
239
|
+
toolbarOptions: Qe,
|
|
240
|
+
bulkActionsToolbarOptions: $e,
|
|
241
|
+
autoSelectUploadedItems: _e,
|
|
247
242
|
emptyStateTitle: $.title,
|
|
248
243
|
emptyStateDescription: $.description,
|
|
249
|
-
uploadEnabled:
|
|
250
|
-
sharedWithMeIds:
|
|
251
|
-
sharedByMePaths:
|
|
252
|
-
onUnshareFiles:
|
|
253
|
-
onRemoveFilesAccess:
|
|
254
|
-
fileMetadataPopupOptions:
|
|
255
|
-
onGetInfo:
|
|
256
|
-
onUploadFiles:
|
|
257
|
-
onUploadArchive:
|
|
258
|
-
onValidateUpload:
|
|
259
|
-
onCreateFolder:
|
|
260
|
-
onCreateFolderValidate:
|
|
261
|
-
onDownloadFiles:
|
|
262
|
-
onDeleteFiles:
|
|
263
|
-
onMoveToFiles:
|
|
264
|
-
onCopyFiles:
|
|
265
|
-
onRenameValidate:
|
|
266
|
-
renameValidationMessages:
|
|
267
|
-
isRenameFileAvailable:
|
|
268
|
-
deleteConfirmationOptions:
|
|
269
|
-
conflictResolutionPopupOptions:
|
|
270
|
-
destinationFolderPopupOptions:
|
|
271
|
-
forbiddenSymbolsRegExp:
|
|
272
|
-
forbiddenSymbolsTooltip:
|
|
273
|
-
getDisabledTooltip:
|
|
274
|
-
unsupportedFileTypeTooltip:
|
|
275
|
-
}), Q != null && /* @__PURE__ */
|
|
244
|
+
uploadEnabled: j,
|
|
245
|
+
sharedWithMeIds: He,
|
|
246
|
+
sharedByMePaths: R,
|
|
247
|
+
onUnshareFiles: Ue,
|
|
248
|
+
onRemoveFilesAccess: Ge,
|
|
249
|
+
fileMetadataPopupOptions: it,
|
|
250
|
+
onGetInfo: qe,
|
|
251
|
+
onUploadFiles: w,
|
|
252
|
+
onUploadArchive: T,
|
|
253
|
+
onValidateUpload: ke,
|
|
254
|
+
onCreateFolder: je,
|
|
255
|
+
onCreateFolderValidate: Me,
|
|
256
|
+
onDownloadFiles: Ne,
|
|
257
|
+
onDeleteFiles: Pe,
|
|
258
|
+
onMoveToFiles: Ie,
|
|
259
|
+
onCopyFiles: ze,
|
|
260
|
+
onRenameValidate: Le,
|
|
261
|
+
renameValidationMessages: l.renameValidationMessages,
|
|
262
|
+
isRenameFileAvailable: j,
|
|
263
|
+
deleteConfirmationOptions: et,
|
|
264
|
+
conflictResolutionPopupOptions: l.conflictResolutionPopupOptions,
|
|
265
|
+
destinationFolderPopupOptions: nt,
|
|
266
|
+
forbiddenSymbolsRegExp: re,
|
|
267
|
+
forbiddenSymbolsTooltip: l.forbiddenSymbolsTooltip,
|
|
268
|
+
getDisabledTooltip: ye,
|
|
269
|
+
unsupportedFileTypeTooltip: be
|
|
270
|
+
}), Q != null && /* @__PURE__ */ a("div", {
|
|
276
271
|
"aria-live": "polite",
|
|
277
272
|
className: "absolute inset-0 z-[52] flex items-center justify-center bg-backdrop desktop:p-4",
|
|
278
|
-
children: /* @__PURE__ */
|
|
273
|
+
children: /* @__PURE__ */ a(ae, {
|
|
279
274
|
size: 32,
|
|
280
275
|
fullWidth: !1,
|
|
281
276
|
ariaLabel: Q
|
|
282
277
|
})
|
|
283
278
|
})]
|
|
284
|
-
}) : /* @__PURE__ */
|
|
279
|
+
}) : /* @__PURE__ */ o("div", {
|
|
285
280
|
role: "alert",
|
|
286
281
|
className: "flex flex-col items-center gap-4 p-6",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
288
|
-
label:
|
|
289
|
-
onClick:
|
|
282
|
+
children: [/* @__PURE__ */ a("p", { children: l.errorMessage }), /* @__PURE__ */ a(ie, {
|
|
283
|
+
label: l.retryLabel,
|
|
284
|
+
onClick: Te
|
|
290
285
|
})]
|
|
291
286
|
}),
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
287
|
+
/* @__PURE__ */ a("div", {
|
|
288
|
+
className: "fixed bottom-4 end-4 z-[70]",
|
|
289
|
+
children: /* @__PURE__ */ a(oe, {
|
|
290
|
+
title: l.getUploadQueueTitle(Z.length),
|
|
291
|
+
items: Z,
|
|
292
|
+
onClose: rt,
|
|
293
|
+
onCancelItem: Ae,
|
|
294
|
+
labels: l.uploadQueueLabels
|
|
295
|
+
})
|
|
298
296
|
}),
|
|
299
|
-
(
|
|
300
|
-
title:
|
|
301
|
-
text:
|
|
302
|
-
cancelLabel:
|
|
303
|
-
onCancel:
|
|
297
|
+
(Be || A) && /* @__PURE__ */ a(te, {
|
|
298
|
+
title: A ? l.operationLoaderMoveTitle : l.operationLoaderCopyTitle,
|
|
299
|
+
text: A ? l.movingLabel : l.copyingLabel,
|
|
300
|
+
cancelLabel: l.operationLoaderCancelLabel,
|
|
301
|
+
onCancel: Ve
|
|
304
302
|
})
|
|
305
303
|
] });
|
|
306
304
|
};
|
|
307
|
-
|
|
305
|
+
r(l);
|
|
308
306
|
//#endregion
|
|
309
|
-
export {
|
|
307
|
+
export { l as DialFileManagerShell };
|
|
@@ -62,9 +62,12 @@ var d = a(({ isOpen: a, onClose: d, onAttach: f, onSkippedUnsupportedFiles: p, o
|
|
|
62
62
|
]), { title: U, attachLabel: W, headerDescription: G, ...K } = b;
|
|
63
63
|
return /* @__PURE__ */ c(r, {
|
|
64
64
|
open: a,
|
|
65
|
-
header: /* @__PURE__ */ l("div", {
|
|
66
|
-
className: "flex flex-col gap-1",
|
|
67
|
-
children: [/* @__PURE__ */ c("
|
|
65
|
+
header: G == null ? U : /* @__PURE__ */ l("div", {
|
|
66
|
+
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
67
|
+
children: [/* @__PURE__ */ c("h3", {
|
|
68
|
+
className: "dial-h1-text truncate text-primary",
|
|
69
|
+
children: U
|
|
70
|
+
}), /* @__PURE__ */ c("p", {
|
|
68
71
|
className: "dial-small-text text-start",
|
|
69
72
|
children: G
|
|
70
73
|
})]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/file-manager/upload-batch.ts
|
|
2
2
|
var e = /* @__PURE__ */ function(e) {
|
|
3
3
|
return e.Queued = "queued", e.Uploading = "uploading", e.Completed = "completed", e.Failed = "failed", e.Cancelled = "cancelled", e;
|
|
4
|
-
}({});
|
|
4
|
+
}({}), t = (e) => e?.files.some((e) => e.status === "queued" || e.status === "uploading") ?? !1;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { e as FileUploadStatus };
|
|
6
|
+
export { e as FileUploadStatus, t as isUploadInProgress };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FileUploadStatus as e } from "./upload-batch.js";
|
|
2
|
+
import { TransferQueueItemStatus as t } from "@epam/ai-dial-ui-kit";
|
|
3
|
+
//#region src/file-manager/upload-queue.ts
|
|
4
|
+
var n = {
|
|
5
|
+
[e.Queued]: t.InProgress,
|
|
6
|
+
[e.Uploading]: t.InProgress,
|
|
7
|
+
[e.Completed]: t.Success,
|
|
8
|
+
[e.Failed]: t.Failed,
|
|
9
|
+
[e.Cancelled]: t.Canceled
|
|
10
|
+
}, r = (e) => e.map((e) => ({
|
|
11
|
+
id: e.id,
|
|
12
|
+
name: e.name,
|
|
13
|
+
status: n[e.status],
|
|
14
|
+
percent: e.percent
|
|
15
|
+
}));
|
|
16
|
+
//#endregion
|
|
17
|
+
export { r as toUploadQueueItems };
|
package/file-manager.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { FileManagerColumnKey } from '@epam/ai-dial-react-file-manager';
|
|
|
13
13
|
import { FileManagerGridRow } from '@epam/ai-dial-react-file-manager';
|
|
14
14
|
import { FileTreeOptions } from '@epam/ai-dial-react-file-manager';
|
|
15
15
|
import { ReactNode } from 'react';
|
|
16
|
+
import { TransferQueueItem } from '@epam/ai-dial-ui-kit';
|
|
17
|
+
import { TransferQueueLabels } from '@epam/ai-dial-ui-kit';
|
|
16
18
|
|
|
17
19
|
/** Result returned by the file-manager attach modal when the user confirms a selection. */
|
|
18
20
|
declare interface AttachResult {
|
|
@@ -62,7 +64,7 @@ declare interface DialFileManagerShellLabels {
|
|
|
62
64
|
showHiddenFilesLabel: string;
|
|
63
65
|
/** Label shown when hidden files are currently hidden. */
|
|
64
66
|
hideHiddenFilesLabel: string;
|
|
65
|
-
/** Returns
|
|
67
|
+
/** Returns the text shown after the selection-count badge; the file manager renders the count itself, so omit it (e.g. "items selected"). */
|
|
66
68
|
getSelectionLabel: (count: number) => string;
|
|
67
69
|
/** Label for the "Upload files" action in the New menu. */
|
|
68
70
|
uploadFilesLabel: string;
|
|
@@ -122,12 +124,10 @@ declare interface DialFileManagerShellLabels {
|
|
|
122
124
|
deleteConfirmLabel: string;
|
|
123
125
|
/** Cancel-button label in the delete confirmation dialog. */
|
|
124
126
|
deleteCancelLabel: string;
|
|
125
|
-
/**
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
/** Returns upload progress text (e.g. "3 of 5 uploaded"). */
|
|
130
|
-
getUploadProgressText: (done: number, total: number) => string;
|
|
127
|
+
/** Returns the upload queue heading for the number of files in it (e.g. "Uploading 5 files"). */
|
|
128
|
+
getUploadQueueTitle: (count: number) => string;
|
|
129
|
+
/** Translated strings for the upload `TransferQueue`; unset ones fall back to the kit's English defaults. */
|
|
130
|
+
uploadQueueLabels?: Partial<TransferQueueLabels>;
|
|
131
131
|
/** Empty-state title when a search yields no results. */
|
|
132
132
|
searchEmptyStateTitle: string;
|
|
133
133
|
/** Empty-state title for an empty subfolder. */
|
|
@@ -372,7 +372,9 @@ declare interface FileManagerController {
|
|
|
372
372
|
uploadBatchState: FileUploadBatchState | null;
|
|
373
373
|
/** Upload: abort all in-flight and queued uploads. */
|
|
374
374
|
cancelUpload: () => void;
|
|
375
|
-
/** Upload:
|
|
375
|
+
/** Upload: abort one queued or in-flight upload by its entry id. */
|
|
376
|
+
cancelUploadFile: (id: string) => void;
|
|
377
|
+
/** Upload: empty the upload queue. */
|
|
376
378
|
clearUploadBatch: () => void;
|
|
377
379
|
/** Folder creation: called when user confirms a new folder name. */
|
|
378
380
|
onCreateFolder: (file: DialUploadFileItem, folderPath: string, fileId: string) => Promise<void>;
|
|
@@ -452,11 +454,11 @@ declare interface FileManagerSelectableNode {
|
|
|
452
454
|
contentLength?: number;
|
|
453
455
|
}
|
|
454
456
|
|
|
455
|
-
/** State of
|
|
457
|
+
/** State of the upload queue, as returned by `useDialFileUploadBatch`. */
|
|
456
458
|
declare interface FileUploadBatchState {
|
|
457
|
-
/**
|
|
459
|
+
/** Every file uploaded since the queue was last cleared, settled ones included. */
|
|
458
460
|
files: FileUploadEntry[];
|
|
459
|
-
/** Whether the upload
|
|
461
|
+
/** Whether the upload queue should be visible. */
|
|
460
462
|
isOpen: boolean;
|
|
461
463
|
}
|
|
462
464
|
|
|
@@ -492,4 +494,7 @@ declare interface FileUploadValidationResult {
|
|
|
492
494
|
/** Validation messages shown during inline rename editing. */
|
|
493
495
|
declare type RenameValidationMessages = NonNullable<DialFileManagerComponentProps['renameValidationMessages']>;
|
|
494
496
|
|
|
497
|
+
/** Maps upload entries onto the UI kit's `TransferQueue` rows. */
|
|
498
|
+
export declare const toUploadQueueItems: (files: FileUploadEntry[]) => TransferQueueItem[];
|
|
499
|
+
|
|
495
500
|
export { }
|
package/file-manager.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { toUploadQueueItems as e } from "./file-manager/upload-queue.js";
|
|
2
|
+
import { DialFileManagerShell as t } from "./file-manager/DialFileManagerShell/DialFileManagerShell.js";
|
|
3
|
+
import { FileManagerAttachModal as n } from "./file-manager/FileManagerAttachModal/FileManagerAttachModal.js";
|
|
4
|
+
export { t as DialFileManagerShell, n as FileManagerAttachModal, e as toUploadQueueItems };
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._badge_1ko75_1{background:var(--ia-bg,var(--bg-visual-green-1,#cde8e5))}._initials_1ko75_5{color:var(--ia-fg,var(--text-visual-green-2,#0d6e72))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._container_sqe5k_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_sqe5k_6{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc))}._header_sqe5k_10{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._languageLabel_sqe5k_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_sqe5k_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_sqe5k_23 .token.table,._scrollContainer_sqe5k_23 .token.table-header-row,._scrollContainer_sqe5k_23 .token.table-line,._scrollContainer_sqe5k_23 .token.table-data-rows{display:inline}._scrollContainer_sqe5k_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_sqe5k_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_sqe5k_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_sqe5k_23::-webkit-scrollbar-thumb{background-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}@keyframes _cm-shimmer_1g29w_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1g29w_9{background:linear-gradient(270deg, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 0%, var(--cm-thinking-secondary,var(--text-secondary,#57647a)) 40%, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 80%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite _cm-shimmer_1g29w_1}._h6_1g29w_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1g29w_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1g29w_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1g29w_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1g29w_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1g29w_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus-black,#161b2d))}._scrollContainer_1f433_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1f433_1::-webkit-scrollbar{height:4px}._scrollContainer_1f433_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1f433_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_1f433_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus-black,#161b2d));outline-offset:2px}._mathContent_1f433_24{width:max-content;min-width:100%;display:block}._tableContainer_1fwnj_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._tableContainerLight_1fwnj_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_1fwnj_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_1fwnj_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1fwnj_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_1fwnj_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1fwnj_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_1fwnj_30{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));height:3rem;color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_1fwnj_37 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_1fwnj_41{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_1fwnj_41:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}[dir=rtl] ._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}._tableScrollFadeBoth_1fwnj_67{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableHeader_1qvg8_1{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._label_12p89_1{color:var(--pes-label-color,var(--text-primary,#161b2d))}._row_1csuq_1{border-color:var(--rs-border,var(--stroke-tertiary,#e0e6f0));background:var(--rs-bg,var(--bg-layer-sunken,#eef1f7))}._versionTag_1csuq_7{border-color:var(--rs-version-tag-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--rs-version-tag-bg,var(--bg-control-accent-alpha,#2764d90f))!important;color:var(--rs-version-tag-text,var(--text-accent,#1d4ed8))!important}
|
|
2
|
-
/*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-full{height:100%;width:100%}.\!h-\[min\(800px\2c 100dvh\)\]{height:min(800px,100dvh)!important}.\!h-fit{height:-moz-fit-content!important;height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.
|
|
2
|
+
/*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-4{bottom:1rem}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.end-4{inset-inline-end:1rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.z-\[70\]{z-index:70}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-full{height:100%;width:100%}.\!h-\[min\(800px\2c 100dvh\)\]{height:min(800px,100dvh)!important}.\!h-fit{height:-moz-fit-content!important;height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[7px\]{padding-bottom:7px;padding-top:7px}.ps-4{padding-inline-start:1rem}.ps-\[2em\]{padding-inline-start:2em}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-primary{color:var(--text-primary,#161b2d)}.text-secondary{color:var(--text-secondary,#57647a)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-chat-button{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--shadow-xs-1,#2764d933),0 2px 6px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 2px 12px 0 var(--tw-shadow-color),0 2px 6px 0 var(--tw-shadow-color)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--shadow-xs-1,#2764d933),0 1px 2px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 1px 4px 0 var(--tw-shadow-color),0 1px 2px 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)}.outline{outline-style:solid;outline-width:1px}.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)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow\:clip\]{overflow:clip}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}.hover\:decoration-current:hover{text-decoration-color:currentColor}.focus-visible\:outline:focus-visible{outline-style:solid;outline-width:1px}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.group\/table:hover .group-hover\/table\:opacity-100{opacity:1}@media (min-width:1280px){.desktop\:p-4{padding:1rem}}.\[\&_\.w-md-editor-bar\]\:hidden .w-md-editor-bar{display:none}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:\!h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){height:var(--resizable-field-max-height,70vh)!important}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}
|
package/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { IRowNode } from 'ag-grid-community';
|
|
|
20
20
|
import { Options } from 'react-markdown';
|
|
21
21
|
import { ReactNode } from 'react';
|
|
22
22
|
import { RefObject } from 'react';
|
|
23
|
+
import { TransferQueueLabels } from '@epam/ai-dial-ui-kit';
|
|
23
24
|
|
|
24
25
|
/** A single annotation attached to an assistant message, optionally citing a source document. */
|
|
25
26
|
export declare interface Annotation {
|
|
@@ -681,7 +682,7 @@ export declare interface DialFileManagerShellLabels {
|
|
|
681
682
|
showHiddenFilesLabel: string;
|
|
682
683
|
/** Label shown when hidden files are currently hidden. */
|
|
683
684
|
hideHiddenFilesLabel: string;
|
|
684
|
-
/** Returns
|
|
685
|
+
/** Returns the text shown after the selection-count badge; the file manager renders the count itself, so omit it (e.g. "items selected"). */
|
|
685
686
|
getSelectionLabel: (count: number) => string;
|
|
686
687
|
/** Label for the "Upload files" action in the New menu. */
|
|
687
688
|
uploadFilesLabel: string;
|
|
@@ -741,12 +742,10 @@ export declare interface DialFileManagerShellLabels {
|
|
|
741
742
|
deleteConfirmLabel: string;
|
|
742
743
|
/** Cancel-button label in the delete confirmation dialog. */
|
|
743
744
|
deleteCancelLabel: string;
|
|
744
|
-
/**
|
|
745
|
-
|
|
746
|
-
/**
|
|
747
|
-
|
|
748
|
-
/** Returns upload progress text (e.g. "3 of 5 uploaded"). */
|
|
749
|
-
getUploadProgressText: (done: number, total: number) => string;
|
|
745
|
+
/** Returns the upload queue heading for the number of files in it (e.g. "Uploading 5 files"). */
|
|
746
|
+
getUploadQueueTitle: (count: number) => string;
|
|
747
|
+
/** Translated strings for the upload `TransferQueue`; unset ones fall back to the kit's English defaults. */
|
|
748
|
+
uploadQueueLabels?: Partial<TransferQueueLabels>;
|
|
750
749
|
/** Empty-state title when a search yields no results. */
|
|
751
750
|
searchEmptyStateTitle: string;
|
|
752
751
|
/** Empty-state title for an empty subfolder. */
|
|
@@ -881,6 +880,15 @@ export declare interface EmptyStateCopy {
|
|
|
881
880
|
*/
|
|
882
881
|
export declare const ensureDownloadFilename: (name: string, url: string | undefined, contentType: string | undefined) => string;
|
|
883
882
|
|
|
883
|
+
/** Maximum length of an entity's description. */
|
|
884
|
+
export declare const ENTITY_DESCRIPTION_MAX_LENGTH = 2000;
|
|
885
|
+
|
|
886
|
+
/** Maximum length of an entity's instructions (prompt body, system prompt, skill instructions). */
|
|
887
|
+
export declare const ENTITY_INSTRUCTIONS_MAX_LENGTH = 50000;
|
|
888
|
+
|
|
889
|
+
/** Maximum length of an entity's name or display name. */
|
|
890
|
+
export declare const ENTITY_NAME_MAX_LENGTH = 256;
|
|
891
|
+
|
|
884
892
|
/** Background color per entity type — used for the featured chip surface. */
|
|
885
893
|
export declare const ENTITY_TYPE_BG_COLOR: Record<CatalogEntityType, string>;
|
|
886
894
|
|
|
@@ -951,6 +959,9 @@ export declare interface EntityTypeLabelProps {
|
|
|
951
959
|
className?: string;
|
|
952
960
|
}
|
|
953
961
|
|
|
962
|
+
/** Whether `value` is longer than `maxLength` characters. */
|
|
963
|
+
export declare const exceedsMaxLength: (value: string, maxLength: number) => boolean;
|
|
964
|
+
|
|
954
965
|
/** A 1-based cell address on an XLSX sheet. */
|
|
955
966
|
export declare interface ExcelCellAddress {
|
|
956
967
|
/** 1-based row number. */
|
|
@@ -1099,7 +1110,9 @@ export declare interface FileManagerController {
|
|
|
1099
1110
|
uploadBatchState: FileUploadBatchState | null;
|
|
1100
1111
|
/** Upload: abort all in-flight and queued uploads. */
|
|
1101
1112
|
cancelUpload: () => void;
|
|
1102
|
-
/** Upload:
|
|
1113
|
+
/** Upload: abort one queued or in-flight upload by its entry id. */
|
|
1114
|
+
cancelUploadFile: (id: string) => void;
|
|
1115
|
+
/** Upload: empty the upload queue. */
|
|
1103
1116
|
clearUploadBatch: () => void;
|
|
1104
1117
|
/** Folder creation: called when user confirms a new folder name. */
|
|
1105
1118
|
onCreateFolder: (file: DialUploadFileItem, folderPath: string, fileId: string) => Promise<void>;
|
|
@@ -1179,11 +1192,11 @@ export declare interface FileManagerSelectableNode {
|
|
|
1179
1192
|
contentLength?: number;
|
|
1180
1193
|
}
|
|
1181
1194
|
|
|
1182
|
-
/** State of
|
|
1195
|
+
/** State of the upload queue, as returned by `useDialFileUploadBatch`. */
|
|
1183
1196
|
export declare interface FileUploadBatchState {
|
|
1184
|
-
/**
|
|
1197
|
+
/** Every file uploaded since the queue was last cleared, settled ones included. */
|
|
1185
1198
|
files: FileUploadEntry[];
|
|
1186
|
-
/** Whether the upload
|
|
1199
|
+
/** Whether the upload queue should be visible. */
|
|
1187
1200
|
isOpen: boolean;
|
|
1188
1201
|
}
|
|
1189
1202
|
|
|
@@ -1283,6 +1296,9 @@ export declare interface GroupedAttachmentsData {
|
|
|
1283
1296
|
layout: CustomVisualizerDataLayout;
|
|
1284
1297
|
}
|
|
1285
1298
|
|
|
1299
|
+
/** Whether `value` contains a control character (line break, tab, NUL, …) that a single-line name must not carry. */
|
|
1300
|
+
export declare const hasControlCharacters: (value: string) => boolean;
|
|
1301
|
+
|
|
1286
1302
|
/** Minimal hast shapes this plugin reads and writes. */
|
|
1287
1303
|
declare interface HastNode {
|
|
1288
1304
|
type: string;
|
|
@@ -1342,6 +1358,9 @@ export declare const isSkillSelectionUnsupported: (skillUrl: string | null | und
|
|
|
1342
1358
|
/** Returns `true` when `msg` is a `StatusMessage`. */
|
|
1343
1359
|
export declare const isStatusMessage: (msg: Message | StatusMessage) => msg is StatusMessage;
|
|
1344
1360
|
|
|
1361
|
+
/** Returns whether any file in the batch is still queued or uploading. */
|
|
1362
|
+
export declare const isUploadInProgress: (batchState: FileUploadBatchState | null) => boolean;
|
|
1363
|
+
|
|
1345
1364
|
/** Item title header with optional numeric or string postfix and trailing slot. */
|
|
1346
1365
|
export declare const ItemHeader: FC<ItemHeaderProps>;
|
|
1347
1366
|
|
|
@@ -1379,6 +1398,8 @@ export declare interface ItemHeaderProps {
|
|
|
1379
1398
|
shouldTruncateTitle?: boolean;
|
|
1380
1399
|
}
|
|
1381
1400
|
|
|
1401
|
+
export declare const MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:!h-[var(--resizable-field-max-height,70vh)] [&_.w-md-editor-bar]:hidden";
|
|
1402
|
+
|
|
1382
1403
|
export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]";
|
|
1383
1404
|
|
|
1384
1405
|
export declare const MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME = "[&_.wmde-markdown>ol]:list-decimal [&_.wmde-markdown_ul]:list-disc [&_.wmde-markdown_ul_ul]:list-[circle] [&_.wmde-markdown_ul_ul_ul]:list-[square]";
|
|
@@ -2609,23 +2630,6 @@ export declare interface UploadedAttachmentResult {
|
|
|
2609
2630
|
name: string;
|
|
2610
2631
|
}
|
|
2611
2632
|
|
|
2612
|
-
/** Modal showing per-file upload progress with a cancel action. */
|
|
2613
|
-
export declare const UploadProgressModal: FC<UploadProgressModalProps>;
|
|
2614
|
-
|
|
2615
|
-
/** Props for the upload-progress modal. */
|
|
2616
|
-
export declare interface UploadProgressModalProps {
|
|
2617
|
-
/** Current batch state with per-file entries and open flag. */
|
|
2618
|
-
batchState: FileUploadBatchState;
|
|
2619
|
-
/** Title shown in the modal header (e.g. "Uploading files"). */
|
|
2620
|
-
uploadProgressTitle: string;
|
|
2621
|
-
/** Summary text below the title (e.g. "3 of 5 uploaded"). */
|
|
2622
|
-
uploadProgressText: string;
|
|
2623
|
-
/** Label for the cancel button. */
|
|
2624
|
-
cancelLabel: string;
|
|
2625
|
-
/** Called when the user clicks Cancel. */
|
|
2626
|
-
onCancel: () => void;
|
|
2627
|
-
}
|
|
2628
|
-
|
|
2629
2633
|
/**
|
|
2630
2634
|
* Writes the height still available below an element into a CSS custom
|
|
2631
2635
|
* property, so a user-resizable control inside it can be capped at the space
|
package/index.js
CHANGED
|
@@ -10,59 +10,59 @@ import { MIME_TYPE_ALIASES as v, MIME_TYPE_AUDIO_PREFIX as y, MIME_TYPE_EXT_MAP
|
|
|
10
10
|
import { getAttachmentTypeFromMime as S, getBaseMimeType as C, inferMimeTypeFromPath as w, normalizeMimeType as T, stripUrlQueryAndFragment as E } from "./utils/mime-type.js";
|
|
11
11
|
import { isAnnotationSelector as D, normalizePersistedHtmlTagAttachmentType as O, normalizeRawAnnotations as k } from "./utils/annotation.js";
|
|
12
12
|
import { PROHIBITED_CONVERSATION_NAME_CHARS_RE as A, getUtf8ByteLength as j, sanitizeConversationName as M, stripTrailingDots as N, truncateToUtf8Bytes as P } from "./utils/string-utils.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import {
|
|
56
|
-
import {
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import { isSkillSelectionUnsupported as
|
|
68
|
-
export { f as AttachmentErrorReason, p as AttachmentType,
|
|
13
|
+
import { ENTITY_DESCRIPTION_MAX_LENGTH as F, ENTITY_INSTRUCTIONS_MAX_LENGTH as I, ENTITY_NAME_MAX_LENGTH as L, exceedsMaxLength as R, hasControlCharacters as z } from "./utils/entity-field-limits.js";
|
|
14
|
+
import { mergeClasses as B } from "./utils/merge-class.js";
|
|
15
|
+
import { buildCssVars as V } from "./utils/build-css-vars.js";
|
|
16
|
+
import { isStatusMessage as H } from "./utils/message.js";
|
|
17
|
+
import { messageAttachmentToDisplayAttachment as U, messageAttachmentsToDisplayAttachments as W } from "./utils/message-attachment-to-display.js";
|
|
18
|
+
import { isAudioTranscriptionSupported as G } from "./utils/is-audio-transcription-supported.js";
|
|
19
|
+
import { copyMarkdownAsRichText as K, copyToClipboard as q, markdownToRichTextHtml as J } from "./utils/copy-to-clipboard.js";
|
|
20
|
+
import { formatLastUsed as Y } from "./utils/format-last-used.js";
|
|
21
|
+
import { formatFileSize as X } from "./utils/format-file-size.js";
|
|
22
|
+
import { formatCost as Z, formatPrice as Q, formatUnitPrice as $ } from "./utils/format-price.js";
|
|
23
|
+
import { base64ToBlob as ee, downloadTextFile as te, ensureDownloadFilename as ne, getFileExtensionForLanguage as re, triggerAnchorDownload as ie, triggerBlobDownload as ae, tryBase64ToBytes as oe } from "./utils/file-download.js";
|
|
24
|
+
import { ENTITY_TYPE_BG_COLOR as se, ENTITY_TYPE_COLOR as ce } from "./constants/entity-colors.js";
|
|
25
|
+
import { PROMPT_PARAM_DEFAULT_SEPARATOR as le, PROMPT_PARAM_PATTERN as ue, PROMPT_VARIABLE_CLASS_NAME as de, buildPromptParamDefaults as fe, extractPromptParams as pe, rehypePromptVariables as me, resolvePromptParams as he } from "./utils/prompt-variables.js";
|
|
26
|
+
import { generateUUID as ge } from "./utils/generate-uuid.js";
|
|
27
|
+
import { BASE_LG_ICON_PROPS as _e, BASE_MD_ICON_PROPS as ve } from "./constants/icon.js";
|
|
28
|
+
import { HIDDEN_FILE as ye, PUBLIC_BUCKET as be } from "./constants/dial.js";
|
|
29
|
+
import { TAG_INPUT_TAG_CLASS_NAME as xe } from "./constants/tag-input.js";
|
|
30
|
+
import { MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME as Se, MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME as Ce, RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE as we, RESIZABLE_TEXTAREA_CLASS_NAME as Te } from "./constants/resizable-fields.js";
|
|
31
|
+
import { MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME as Ee } from "./constants/markdown-editor.js";
|
|
32
|
+
import { SELECT_LIST_MAX_HEIGHT_CLASS_NAME as De, SELECT_LIST_MAX_HEIGHT_PX as Oe } from "./constants/select-list.js";
|
|
33
|
+
import { DESKTOP_BREAKPOINT_PX as ke, DESKTOP_MEDIA_QUERY as Ae, MOBILE_MAX_WIDTH_PX as je, MOBILE_MEDIA_QUERY as Me } from "./constants/breakpoint.js";
|
|
34
|
+
import { pickAvatarColor as Ne } from "./utils/avatar-color.js";
|
|
35
|
+
import { extractInitials as Pe } from "./utils/initials.js";
|
|
36
|
+
import { InitialsAvatar as Fe } from "./components/InitialsAvatar/InitialsAvatar.js";
|
|
37
|
+
import { DeploymentIcon as Ie } from "./components/DeploymentIcon/DeploymentIcon.js";
|
|
38
|
+
import { CopyButton as Le, CopyIconButton as Re } from "./components/CopyButton/CopyButton.js";
|
|
39
|
+
import { PanelEmptyState as ze } from "./components/PanelEmptyState/PanelEmptyState.js";
|
|
40
|
+
import { ItemHeader as Be } from "./components/ItemHeader/ItemHeader.js";
|
|
41
|
+
import { EntityTypeLabel as Ve } from "./components/EntityTypeLabel/EntityTypeLabel.js";
|
|
42
|
+
import { FeaturedChip as He } from "./components/FeaturedChip/FeaturedChip.js";
|
|
43
|
+
import { EntityHeader as Ue } from "./components/EntityHeader/EntityHeader.js";
|
|
44
|
+
import { ResourceSummary as We } from "./components/ResourceSummary/ResourceSummary.js";
|
|
45
|
+
import { TableHeader as Ge } from "./components/MarkdownRenderer/Table/TableHeader.js";
|
|
46
|
+
import { TextRefinementState as Ke, useTextRefinement as qe } from "./hooks/useTextRefinement.js";
|
|
47
|
+
import { TextRefinementField as Je } from "./components/TextRefinementField/TextRefinementField.js";
|
|
48
|
+
import { CHAT_SHARED_CLASS as Ye } from "./constants/public-class-names.js";
|
|
49
|
+
import { useCodeCopy as Xe } from "./hooks/useCodeCopy.js";
|
|
50
|
+
import { restrainedSyntaxTheme as Ze } from "./components/MarkdownRenderer/CodeBlock/syntax-theme.js";
|
|
51
|
+
import { MarkdownCodeBlock as Qe } from "./components/MarkdownRenderer/CodeBlock/CodeBlock.js";
|
|
52
|
+
import { DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME as $e, MARKDOWN_TABLE_CSV_MIME_TYPE as et, MarkdownTableCopyFormat as tt, serializeMarkdownTableRows as nt } from "./components/MarkdownRenderer/Table/table-serialization.js";
|
|
53
|
+
import { MarkdownTable as rt } from "./components/MarkdownRenderer/Table/MarkdownTable.js";
|
|
54
|
+
import { MarkdownRenderer as it, defaultMarkdownComponents as at } from "./components/MarkdownRenderer/MarkdownRenderer.js";
|
|
55
|
+
import { COMPACT_MARKDOWN_CLASS_NAMES as ot, DEFAULT_MARKDOWN_CLASS_NAMES as st } from "./components/MarkdownRenderer/markdown-class-names.js";
|
|
56
|
+
import { PlainTextRenderer as ct } from "./components/MarkdownRenderer/PlainTextRenderer.js";
|
|
57
|
+
import { MDMessageViewer as lt } from "./components/MarkdownRenderer/MDMessageViewer.js";
|
|
58
|
+
import { MarkdownWithPlaceholders as ut } from "./components/MarkdownWithPlaceholders/MarkdownWithPlaceholders.js";
|
|
59
|
+
import { useCollapsedText as dt } from "./hooks/useCollapsedText.js";
|
|
60
|
+
import { useAvailableHeightCap as ft } from "./hooks/useAvailableHeightCap.js";
|
|
61
|
+
import { useIsMobile as pt } from "./hooks/useIsMobile.js";
|
|
62
|
+
import { DialFileManagerActionProfile as mt, DialFileManagerVariant as ht } from "./file-manager/file-manager-variant.js";
|
|
63
|
+
import { getParentFolderPath as gt, isHiddenPath as _t } from "./file-manager/path.js";
|
|
64
|
+
import { FileUploadStatus as vt, isUploadInProgress as yt } from "./file-manager/upload-batch.js";
|
|
65
|
+
import { useGridEditingScroll as bt } from "./file-manager/useGridEditingScroll/useGridEditingScroll.js";
|
|
66
|
+
import { OperationLoaderModal as xt } from "./file-manager/OperationLoaderModal/OperationLoaderModal.js";
|
|
67
|
+
import { isSkillSelectionUnsupported as St } from "./utils/is-skill-selection-unsupported.js";
|
|
68
|
+
export { f as AttachmentErrorReason, p as AttachmentType, _e as BASE_LG_ICON_PROPS, ve as BASE_MD_ICON_PROPS, Ye as CHAT_SHARED_CLASS, ot as COMPACT_MARKDOWN_CLASS_NAMES, m as CatalogEntityType, _ as CodeBlockTheme, e as ConversationTransferErrorCode, t as ConversationTransferJobStatus, n as ConversationTransferSubjectKind, r as ConversationTransferUnitKind, i as ConversationTransferWarningCode, Le as CopyButton, Re as CopyIconButton, st as DEFAULT_MARKDOWN_CLASS_NAMES, $e as DEFAULT_MARKDOWN_TABLE_DOWNLOAD_FILENAME, ke as DESKTOP_BREAKPOINT_PX, Ae as DESKTOP_MEDIA_QUERY, Ie as DeploymentIcon, mt as DialFileManagerActionProfile, ht as DialFileManagerVariant, F as ENTITY_DESCRIPTION_MAX_LENGTH, I as ENTITY_INSTRUCTIONS_MAX_LENGTH, L as ENTITY_NAME_MAX_LENGTH, se as ENTITY_TYPE_BG_COLOR, ce as ENTITY_TYPE_COLOR, Ue as EntityHeader, Ve as EntityTypeLabel, He as FeaturedChip, h as FileExtension, vt as FileUploadStatus, a as FilterTab, ye as HIDDEN_FILE, Fe as InitialsAvatar, Be as ItemHeader, Se as MARKDOWN_EDITOR_FILL_HEIGHT_CLASS_NAME, Ce as MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME, Ee as MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME, et as MARKDOWN_TABLE_CSV_MIME_TYPE, lt as MDMessageViewer, g as MIMEType, v as MIME_TYPE_ALIASES, y as MIME_TYPE_AUDIO_PREFIX, b as MIME_TYPE_EXT_MAP, x as MIME_TYPE_WILDCARD, je as MOBILE_MAX_WIDTH_PX, Me as MOBILE_MEDIA_QUERY, Qe as MarkdownCodeBlock, it as MarkdownRenderer, rt as MarkdownTable, tt as MarkdownTableCopyFormat, ut as MarkdownWithPlaceholders, o as MessageRating, s as MessageRole, xt as OperationLoaderModal, A as PROHIBITED_CONVERSATION_NAME_CHARS_RE, le as PROMPT_PARAM_DEFAULT_SEPARATOR, ue as PROMPT_PARAM_PATTERN, de as PROMPT_VARIABLE_CLASS_NAME, be as PUBLIC_BUCKET, ze as PanelEmptyState, ct as PlainTextRenderer, we as RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE, Te as RESIZABLE_TEXTAREA_CLASS_NAME, c as RequestStatus, We as ResourceSummary, d as ResponseFormat, De as SELECT_LIST_MAX_HEIGHT_CLASS_NAME, Oe as SELECT_LIST_MAX_HEIGHT_PX, l as StageStatus, u as StatusEvent, xe as TAG_INPUT_TAG_CLASS_NAME, Ge as TableHeader, Je as TextRefinementField, Ke as TextRefinementState, ee as base64ToBlob, V as buildCssVars, fe as buildPromptParamDefaults, K as copyMarkdownAsRichText, q as copyToClipboard, at as defaultMarkdownComponents, te as downloadTextFile, ne as ensureDownloadFilename, R as exceedsMaxLength, Pe as extractInitials, pe as extractPromptParams, Z as formatCost, X as formatFileSize, Y as formatLastUsed, Q as formatPrice, $ as formatUnitPrice, ge as generateUUID, S as getAttachmentTypeFromMime, C as getBaseMimeType, re as getFileExtensionForLanguage, gt as getParentFolderPath, j as getUtf8ByteLength, z as hasControlCharacters, w as inferMimeTypeFromPath, D as isAnnotationSelector, G as isAudioTranscriptionSupported, _t as isHiddenPath, St as isSkillSelectionUnsupported, H as isStatusMessage, yt as isUploadInProgress, J as markdownToRichTextHtml, B as mergeClasses, U as messageAttachmentToDisplayAttachment, W as messageAttachmentsToDisplayAttachments, T as normalizeMimeType, O as normalizePersistedHtmlTagAttachmentType, k as normalizeRawAnnotations, Ne as pickAvatarColor, me as rehypePromptVariables, he as resolvePromptParams, Ze as restrainedSyntaxTheme, M as sanitizeConversationName, nt as serializeMarkdownTableRows, N as stripTrailingDots, E as stripUrlQueryAndFragment, ie as triggerAnchorDownload, ae as triggerBlobDownload, P as truncateToUtf8Bytes, oe as tryBase64ToBytes, ft as useAvailableHeightCap, Xe as useCodeCopy, dt as useCollapsedText, bt as useGridEditingScroll, pt as useIsMobile, qe as useTextRefinement };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-chat-shared",
|
|
3
3
|
"description": "Shared domain models, utilities, and UI components for AI DIAL Chat libraries",
|
|
4
|
-
"version": "1.2.0-dev.
|
|
4
|
+
"version": "1.2.0-dev.173",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": "^19.2.8",
|
|
35
|
-
"@epam/ai-dial-ui-kit": "^0.15.0-dev.
|
|
35
|
+
"@epam/ai-dial-ui-kit": "^0.15.0-dev.21",
|
|
36
36
|
"@epam/ai-dial-react-file-manager": "^0.3.0-dev.13",
|
|
37
37
|
"ag-grid-community": "^35.3.0"
|
|
38
38
|
},
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region src/utils/entity-field-limits.ts
|
|
2
|
+
var e = 256, t = 2e3, n = 5e4, r = /\p{Cc}/u, i = (e, t) => e.length > t, a = (e) => r.test(e);
|
|
3
|
+
//#endregion
|
|
4
|
+
export { t as ENTITY_DESCRIPTION_MAX_LENGTH, n as ENTITY_INSTRUCTIONS_MAX_LENGTH, e as ENTITY_NAME_MAX_LENGTH, i as exceedsMaxLength, a as hasControlCharacters };
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { DialFileName as e, ElementSize as t, Popup as n, ProgressBar as r } from "@epam/ai-dial-ui-kit";
|
|
2
|
-
import { memo as i, useCallback as a } from "react";
|
|
3
|
-
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
|
-
//#region src/file-manager/UploadProgressModal/UploadProgressModal.tsx
|
|
5
|
-
var c = ({ batchState: i, uploadProgressTitle: c, uploadProgressText: l, cancelLabel: u, onCancel: d }) => {
|
|
6
|
-
let { files: f } = i, p = a((e, n) => n === void 0 ? null : /* @__PURE__ */ o(r, {
|
|
7
|
-
value: n,
|
|
8
|
-
size: t.Small,
|
|
9
|
-
"aria-label": e,
|
|
10
|
-
"data-qa": "uploading-indicator"
|
|
11
|
-
}), []);
|
|
12
|
-
return /* @__PURE__ */ o(n, {
|
|
13
|
-
className: "!h-fit !max-h-full !w-[400px] mobile:!w-full desktop:!max-h-[693px]",
|
|
14
|
-
open: i.isOpen,
|
|
15
|
-
closeOnOutsideClick: !1,
|
|
16
|
-
hideClose: !0,
|
|
17
|
-
onClose: d,
|
|
18
|
-
mainButtons: [{
|
|
19
|
-
label: u,
|
|
20
|
-
onClick: d
|
|
21
|
-
}],
|
|
22
|
-
header: /* @__PURE__ */ s("div", {
|
|
23
|
-
className: "flex flex-col gap-2",
|
|
24
|
-
children: [/* @__PURE__ */ o("div", { children: c }), /* @__PURE__ */ o("div", {
|
|
25
|
-
className: "dial-small-text text-secondary",
|
|
26
|
-
"data-qa": "uploading-items-count",
|
|
27
|
-
children: l
|
|
28
|
-
})]
|
|
29
|
-
}),
|
|
30
|
-
children: /* @__PURE__ */ o("div", {
|
|
31
|
-
className: "flex h-full max-h-full flex-col gap-4 px-6",
|
|
32
|
-
children: /* @__PURE__ */ o("div", {
|
|
33
|
-
className: "flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto",
|
|
34
|
-
children: f.map((t) => /* @__PURE__ */ o("div", {
|
|
35
|
-
className: "rounded bg-layer-sunken px-3 py-2",
|
|
36
|
-
children: /* @__PURE__ */ o(e, {
|
|
37
|
-
name: t.name,
|
|
38
|
-
details: p(t.name, t.percent)
|
|
39
|
-
})
|
|
40
|
-
}, t.id))
|
|
41
|
-
})
|
|
42
|
-
})
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
i(c);
|
|
46
|
-
//#endregion
|
|
47
|
-
export { c as UploadProgressModal };
|