@epam/ai-dial-attachment-input 1.3.0-dev.6 → 1.3.0-dev.63
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/AttachmentCard/AttachmentCard.d.ts.map +1 -1
- package/components/AttachmentCard/Attachments/Actions.d.ts +3 -1
- package/components/AttachmentCard/Attachments/Actions.d.ts.map +1 -1
- package/components/AttachmentCard/Attachments/File.d.ts.map +1 -1
- package/components/AttachmentCard/Attachments/Image.d.ts.map +1 -1
- package/constants/attachment-group.d.ts +4 -2
- package/constants/attachment-group.d.ts.map +1 -1
- package/index.css +2 -2
- package/index.js +211 -186
- package/models/attachment-card.d.ts +7 -5
- package/models/attachment-card.d.ts.map +1 -1
- package/models/attachment-file-row.d.ts +2 -2
- package/models/attachment-file-row.d.ts.map +1 -1
- package/package.json +3 -3
- package/utils/attachment.d.ts +4 -0
- package/utils/attachment.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentCard/AttachmentCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAW,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxE,8GAA8G;AAC9G,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/AttachmentCard/AttachmentCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAW,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxE,8GAA8G;AAC9G,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyElD,CAAC"}
|
|
@@ -14,6 +14,8 @@ interface ActionProps {
|
|
|
14
14
|
onClick: (id: string) => void;
|
|
15
15
|
/** ID of the attachment the action applies to. */
|
|
16
16
|
id?: string;
|
|
17
|
+
/** Whether the button stays visible without hover or keyboard focus on the tile. */
|
|
18
|
+
isAlwaysVisible?: boolean;
|
|
17
19
|
}
|
|
18
20
|
/** Retry button for failed uploads. */
|
|
19
21
|
export declare const ReloadAction: FC<Omit<ActionProps, 'icon'>>;
|
|
@@ -21,7 +23,7 @@ export declare const ReloadAction: FC<Omit<ActionProps, 'icon'>>;
|
|
|
21
23
|
export declare const DownloadAction: FC<Omit<ActionProps, 'icon'>>;
|
|
22
24
|
/** Open-in-new-tab button for link attachments. */
|
|
23
25
|
export declare const OpenLinkAction: FC<Omit<ActionProps, 'icon'>>;
|
|
24
|
-
/** Remove button for attachments. */
|
|
26
|
+
/** Remove button for attachments; always visible below the desktop breakpoint, where there is no hover to reveal it. */
|
|
25
27
|
export declare const RemoveAction: FC<Omit<ActionProps, 'icon'>>;
|
|
26
28
|
export {};
|
|
27
29
|
//# sourceMappingURL=Actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/Actions.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAmB,MAAM,OAAO,CAAC;AAI5D,UAAU,WAAW;IACnB,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/Actions.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAmB,MAAM,OAAO,CAAC;AAI5D,UAAU,WAAW;IACnB,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmCD,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CActD,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAaxD,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAaxD,CAAC;AAEF,wHAAwH;AACxH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAiBtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/File.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/File.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,EAAE,EAMR,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAsB/E,2HAA2H;AAC3H,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyRlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentCard/Attachments/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;AASnC,OAAO,EACL,aAAa,EACb,KAAK,EAAE,EAIR,MAAM,OAAO,CAAC;AAUf,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAKzC,UAAU,oBAAoB;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,uHAAuH;IACvH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwKpD,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** Total attachment count at/above which the tile list switches from a wrapping flex row to a fixed 5-column grid. */
|
|
2
2
|
export declare const ATTACHMENT_COLLAPSE_THRESHOLD = 5;
|
|
3
|
-
/** Base Tailwind classes shared by every square attachment tile (
|
|
4
|
-
export declare const ATTACHMENT_TILE_BASE_CLASS = "flex size-[
|
|
3
|
+
/** Base Tailwind classes shared by every square attachment tile (100 × 100 px). */
|
|
4
|
+
export declare const ATTACHMENT_TILE_BASE_CLASS = "flex size-[100px] items-center justify-center rounded-xl border";
|
|
5
|
+
/** Tailwind classes drawing the 1px tile focus ring, 1px clear of the border, on keyboard focus of the tile itself. */
|
|
6
|
+
export declare const ATTACHMENT_TILE_FOCUS_RING_CLASS = "outline-1 outline-offset-1 focus-visible:outline";
|
|
5
7
|
//# sourceMappingURL=attachment-group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-group.d.ts","sourceRoot":"","sources":["../../src/constants/attachment-group.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,
|
|
1
|
+
{"version":3,"file":"attachment-group.d.ts","sourceRoot":"","sources":["../../src/constants/attachment-group.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,oEAC4B,CAAC;AACpE,uHAAuH;AACvH,eAAO,MAAM,gCAAgC,qDACO,CAAC"}
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.
|
|
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}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.end-1{inset-inline-end:.25rem}.
|
|
1
|
+
._tile_1sjdm_12{box-sizing:border-box;background:var(--ai-tile-bg,var(--bg-layer-raised,#fcfcfc));border-style:solid;border-color:var(--ai-tile-border,var(--stroke-secondary,#d1dbea))}._tile_1sjdm_12._hovered_1sjdm_18:hover{background:var(--ai-tile-bg-hover,var(--bg-control-neutral-hover-muted,#e0e6f0));border-color:var(--ai-tile-border-hover,var(--ai-tile-border,var(--stroke-secondary,#d1dbea)))}._tile_1sjdm_12{outline-color:var(--ai-tile-focus-outline,var(--stroke-focus,#161b2d))}._selected_1sjdm_28{background:var(--ai-tile-bg-selected,var(--bg-control-accent-alpha,#2764d90f));border-color:var(--ai-tile-border-selected,var(--stroke-accent-alpha,#2764d933))}._tileError_1sjdm_33{background:var(--ai-tile-bg-error,var(--bg-error,#f3d6d8));border-color:var(--ai-tile-border-error,var(--stroke-error,#ae2f2f))}._nameText_1sjdm_38{color:var(--ai-tile-name-text,var(--text-primary,#161b2d))}._typeText_1sjdm_42{color:var(--ai-tile-type-text,var(--text-primary,#161b2d))}._placeholderIcon_1sjdm_46{color:var(--ai-tile-placeholder-icon,var(--text-secondary,#57647a))}._retryIcon_1sjdm_50{color:var(--ai-tile-error-text,var(--text-error,#ae2f2f))}._track_1sjdm_54{background:var(--ai-tile-progress-track,var(--bg-backdrop,#161b2d4d))}._tile_1sjdm_12 ._actionButton_1sjdm_65{background:var(--ai-tile-hover-icon-bg,var(--ai-tile-bg,var(--bg-layer-raised,#fcfcfc)))}._tile_1sjdm_12._hovered_1sjdm_18:hover ._actionButton_1sjdm_65{background:var(--ai-tile-hover-icon-bg,var(--ai-tile-bg-hover,var(--bg-control-neutral-hover-muted,#e0e6f0)))}._tile_1sjdm_12._selected_1sjdm_28 ._actionButton_1sjdm_65{background:var(--ai-tile-hover-icon-bg,linear-gradient(var(--ai-tile-bg-selected,var(--bg-control-accent-alpha,#2764d90f)), var(--ai-tile-bg-selected,var(--bg-control-accent-alpha,#2764d90f))), var(--ai-tile-bg,var(--bg-layer-raised,#fcfcfc)))}._tile_1sjdm_12._tileError_1sjdm_33 ._actionButton_1sjdm_65{background:var(--ai-tile-bg-error,var(--bg-error,#f3d6d8));color:var(--ai-tile-error-text,var(--text-error,#ae2f2f))}._tile_1sjdm_12._loading_1sjdm_86 ._actionButton_1sjdm_65,._tile_1sjdm_12 ._imageActionButton_1sjdm_87,._tile_1sjdm_12._selected_1sjdm_28 ._imageActionButton_1sjdm_87{background:var(--ai-tile-hover-icon-bg,var(--bg-layer-base,#f5f7fa));color:var(--ai-tile-hover-icon-color,var(--text-secondary,#57647a))}._tile_1sjdm_12._proxyFocus_1sjdm_96:has(:focus-visible){outline-style:solid}._tile_1sjdm_12._proxyFocus_1sjdm_96 ._actionButton_1sjdm_65:focus-visible{outline:none}._loading_1sjdm_86{cursor:progress}._headerIcon_1dmgi_1,._headerLabel_1dmgi_2{color:var(--ai-group-text,var(--text-secondary,#57647a))}._overlay_mzpdp_1{background:var(--ai-fd-bg,var(--bg-backdrop,#161b2d4d))}._icon_mzpdp_5{color:var(--ai-fd-icon,var(--text-accent,#1d4ed8))}._deniedIcon_mzpdp_9{color:var(--ai-fd-denied-icon,var(--text-error,#ae2f2f))}
|
|
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}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.end-1{inset-inline-end:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.z-\[9999\]{z-index:9999}.-m-0\.5{margin:-.125rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.box-border{box-sizing:border-box}.line-clamp-2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.size-\[100px\]{height:100px;width:100px}.h-full{height:100%}.w-full{width:100%}.min-w-0{min-width:0}.max-w-\[424px\]{max-width:424px}.max-w-\[532px\]{max-width:532px}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-\[repeat\(5\2c 100px\)\]{grid-template-columns:repeat(5,100px)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-\[11px\]{border-radius:11px}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-3{padding:.75rem}.text-center{text-align:center}.opacity-0{opacity:0}.opacity-100{opacity:1}.outline-1{outline-width:1px}.outline-offset-1{outline-offset:1px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.focus-visible\:outline:focus-visible{outline-style:solid;outline-width:1px}.group\/attachment-tile:hover .group-hover\/attachment-tile\:opacity-100{opacity:1}.group\/attachment-tile:focus-visible .group-focus-visible\/attachment-tile\:opacity-100{opacity:1}.group\/attachment-tile:has(:focus-visible) .group-has-\[\:focus-visible\]\/attachment-tile\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:opacity-100{opacity:1}}
|
package/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { AttachmentErrorReason as e, AttachmentType as t, MIME_TYPE_EXT_MAP as n, RequestStatus as r, buildCssVars as i, getBaseMimeType as a, mergeClasses as o, normalizeMimeType as s } from "@epam/ai-dial-chat-shared";
|
|
2
2
|
import { useCallback as c, useEffect as l, useId as u, useMemo as d, useRef as f, useState as p } from "react";
|
|
3
|
-
import { IconClipboard as m, IconDownload as h, IconExternalLink as g, IconFile as _, IconFileDescription as v, IconFileTypeBmp as y, IconFileTypeCss as b, IconFileTypeCsv as x, IconFileTypeDoc as S, IconFileTypeDocx as C, IconFileTypeHtml as w, IconFileTypeJpg as T, IconFileTypeJs as E, IconFileTypeJsx as D, IconFileTypePdf as O, IconFileTypePhp as k, IconFileTypePng as A, IconFileTypePpt as j, IconFileTypeRs as M, IconFileTypeSql as N, IconFileTypeSvg as P, IconFileTypeTs as F, IconFileTypeTsx as I, IconFileTypeTxt as L, IconFileTypeVue as R, IconFileTypeXls as z, IconFileTypeXml as
|
|
4
|
-
import { DIAL_ICON_SIZE as
|
|
5
|
-
import { Fragment as
|
|
3
|
+
import { IconClipboard as m, IconDownload as h, IconExternalLink as g, IconFile as _, IconFileDescription as v, IconFileTypeBmp as y, IconFileTypeCss as b, IconFileTypeCsv as x, IconFileTypeDoc as S, IconFileTypeDocx as C, IconFileTypeHtml as w, IconFileTypeJpg as T, IconFileTypeJs as E, IconFileTypeJsx as D, IconFileTypePdf as O, IconFileTypePhp as k, IconFileTypePng as A, IconFileTypePpt as j, IconFileTypeRs as M, IconFileTypeSql as N, IconFileTypeSvg as P, IconFileTypeTs as F, IconFileTypeTsx as I, IconFileTypeTxt as L, IconFileTypeVue as R, IconFileTypeXls as z, IconFileTypeXml as ee, IconFileTypeZip as te, IconFileX as ne, IconMusic as re, IconPaperclip as B, IconPhoto as V, IconReload as ie, IconTerminal2 as ae, IconVideo as oe, IconX as se } from "@tabler/icons-react";
|
|
4
|
+
import { DIAL_ICON_SIZE as H, DIAL_KIT_ICON_STROKE as U, DialItemType as ce, ElementSize as W, FileIcon as le, GhostIconButton as ue, Highlight as de, Skeleton as fe, SkeletonVariant as pe, Spinner as me, StaticIconButton as he } from "@epam/ai-dial-ui-kit";
|
|
5
|
+
import { Fragment as ge, jsx as G, jsxs as K } from "react/jsx-runtime";
|
|
6
6
|
//#region src/utils/attachment.ts
|
|
7
|
-
var
|
|
7
|
+
var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, _e = (e) => {
|
|
8
8
|
if (e == null) return "";
|
|
9
9
|
let t = e.lastIndexOf(".");
|
|
10
10
|
return t > 0 ? e.slice(0, t) : e;
|
|
11
|
-
},
|
|
11
|
+
}, ve = {
|
|
12
12
|
image: "Image files",
|
|
13
13
|
audio: "Audio files",
|
|
14
14
|
video: "Video files",
|
|
15
15
|
text: "Text files",
|
|
16
16
|
"*": "All files"
|
|
17
|
-
},
|
|
17
|
+
}, ye = { "image/jpeg": "JPEG" }, be = (e, t = ve) => e.map((e) => {
|
|
18
18
|
let r = a(e);
|
|
19
19
|
if (r.endsWith("/*")) {
|
|
20
20
|
let e = r.slice(0, -2);
|
|
21
21
|
return t[e] ?? `${e} files`;
|
|
22
22
|
}
|
|
23
|
-
let i = s(r), o =
|
|
23
|
+
let i = s(r), o = ye[i];
|
|
24
24
|
if (o) return o;
|
|
25
25
|
let c = n[i];
|
|
26
26
|
if (c) return c.toUpperCase();
|
|
27
27
|
let l = i.split("/")[1];
|
|
28
28
|
return l == null ? e.toUpperCase() : l.toUpperCase();
|
|
29
|
-
}).join(", "),
|
|
29
|
+
}).join(", "), xe = (e, t) => {
|
|
30
30
|
if (t.length === 0) return !1;
|
|
31
31
|
let n = a(e), r = s(n);
|
|
32
32
|
return t.some((e) => {
|
|
@@ -38,7 +38,7 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
38
38
|
}
|
|
39
39
|
return r === s(t);
|
|
40
40
|
});
|
|
41
|
-
},
|
|
41
|
+
}, Se = (e) => {
|
|
42
42
|
if (!e) return _;
|
|
43
43
|
let t = s(e);
|
|
44
44
|
if (t.startsWith("image/")) switch (t) {
|
|
@@ -46,10 +46,10 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
46
46
|
case "image/png": return A;
|
|
47
47
|
case "image/svg+xml": return P;
|
|
48
48
|
case "image/bmp": return y;
|
|
49
|
-
default: return
|
|
49
|
+
default: return V;
|
|
50
50
|
}
|
|
51
|
-
if (t.startsWith("video/")) return
|
|
52
|
-
if (t.startsWith("audio/")) return
|
|
51
|
+
if (t.startsWith("video/")) return oe;
|
|
52
|
+
if (t.startsWith("audio/")) return re;
|
|
53
53
|
switch (t) {
|
|
54
54
|
case "application/pdf": return O;
|
|
55
55
|
case "application/msword": return S;
|
|
@@ -62,12 +62,12 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
62
62
|
case "application/vnd.rar":
|
|
63
63
|
case "application/x-7z-compressed":
|
|
64
64
|
case "application/gzip":
|
|
65
|
-
case "application/x-tar": return
|
|
65
|
+
case "application/x-tar": return te;
|
|
66
66
|
case "text/csv": return x;
|
|
67
67
|
case "text/plain": return L;
|
|
68
68
|
case "text/html":
|
|
69
69
|
case "application/xhtml+xml": return w;
|
|
70
|
-
case "application/xml": return
|
|
70
|
+
case "application/xml": return ee;
|
|
71
71
|
case "application/sql": return N;
|
|
72
72
|
case "text/javascript": return E;
|
|
73
73
|
case "text/jsx": return D;
|
|
@@ -79,26 +79,30 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
79
79
|
case "text/x-vue": return R;
|
|
80
80
|
default: return _;
|
|
81
81
|
}
|
|
82
|
-
},
|
|
82
|
+
}, Ce = (e) => {
|
|
83
83
|
let { type: n, contentType: r } = e;
|
|
84
|
-
return n === t.Prompt ?
|
|
85
|
-
},
|
|
84
|
+
return n === t.Prompt ? ae : n === t.Pasted ? m : n === t.Image ? V : Se(r ?? "");
|
|
85
|
+
}, we = (e) => {
|
|
86
86
|
let t = s(e), r = n[t];
|
|
87
87
|
if (r) return r;
|
|
88
88
|
let i = t.split("/")[1];
|
|
89
89
|
if (i && !i.startsWith("vnd.") && !i.includes("+")) return i;
|
|
90
|
-
},
|
|
91
|
-
let {
|
|
90
|
+
}, Te = (e) => {
|
|
91
|
+
let { name: t, contentType: n } = e;
|
|
92
|
+
if (n) {
|
|
93
|
+
let e = we(n);
|
|
94
|
+
if (e) return e;
|
|
95
|
+
}
|
|
96
|
+
if (t == null) return;
|
|
97
|
+
let r = t.lastIndexOf(".");
|
|
98
|
+
if (r > 0 && r < t.length - 1) return t.slice(r + 1).toLowerCase();
|
|
99
|
+
}, Ee = (e) => e.type !== t.Prompt && e.type !== t.Pasted, De = (e, n) => {
|
|
100
|
+
let { type: r, name: i } = e;
|
|
92
101
|
if (r === t.Prompt) return n.promptLabel ?? "Prompt";
|
|
93
102
|
if (r === t.Pasted) return n.pastedLabel ?? "Pasted";
|
|
94
103
|
if (r === t.Image) return n.imageLabel ?? "Image";
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if (e) return `.${e}`;
|
|
98
|
-
}
|
|
99
|
-
if (i == null) return "";
|
|
100
|
-
let o = i.lastIndexOf(".");
|
|
101
|
-
return o > 0 && o < i.length - 1 ? `.${i.slice(o + 1).toLowerCase()}` : i;
|
|
104
|
+
let a = Te(e);
|
|
105
|
+
return a ? `.${a}` : i ?? "";
|
|
102
106
|
}, J = (e, n = {}) => {
|
|
103
107
|
let { type: i, status: a, previewUrl: o, url: s } = e, c = a === r.Loading, l = a === r.Error, u = i === t.Image && !!(o ?? s) && !l, d = i === t.Link && !l;
|
|
104
108
|
return {
|
|
@@ -106,10 +110,10 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
106
110
|
isError: l,
|
|
107
111
|
isImage: u,
|
|
108
112
|
isLink: d,
|
|
109
|
-
BottomIcon: d ? null :
|
|
110
|
-
typeLabel: d ? null :
|
|
113
|
+
BottomIcon: d ? null : Ce(e),
|
|
114
|
+
typeLabel: d ? null : De(e, n)
|
|
111
115
|
};
|
|
112
|
-
},
|
|
116
|
+
}, Oe = 5, ke = "flex size-[100px] items-center justify-center rounded-xl border", Ae = "outline-1 outline-offset-1 focus-visible:outline", Y = {
|
|
113
117
|
tray: "dial-ai-attachment-tray",
|
|
114
118
|
trayItem: "dial-ai-attachment-tray-item",
|
|
115
119
|
tile: "dial-ai-attachment-tile",
|
|
@@ -118,131 +122,143 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
118
122
|
tileType: "dial-ai-attachment-tile-type",
|
|
119
123
|
tileAction: "dial-ai-attachment-tile-action"
|
|
120
124
|
}, X = {
|
|
121
|
-
tile: "
|
|
122
|
-
hovered: "
|
|
123
|
-
selected: "
|
|
124
|
-
tileError: "
|
|
125
|
-
nameText: "
|
|
126
|
-
typeText: "
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
125
|
+
tile: "_tile_1sjdm_12",
|
|
126
|
+
hovered: "_hovered_1sjdm_18",
|
|
127
|
+
selected: "_selected_1sjdm_28",
|
|
128
|
+
tileError: "_tileError_1sjdm_33",
|
|
129
|
+
nameText: "_nameText_1sjdm_38",
|
|
130
|
+
typeText: "_typeText_1sjdm_42",
|
|
131
|
+
placeholderIcon: "_placeholderIcon_1sjdm_46",
|
|
132
|
+
retryIcon: "_retryIcon_1sjdm_50",
|
|
133
|
+
track: "_track_1sjdm_54",
|
|
134
|
+
actionButton: "_actionButton_1sjdm_65",
|
|
135
|
+
loading: "_loading_1sjdm_86",
|
|
136
|
+
imageActionButton: "_imageActionButton_1sjdm_87",
|
|
137
|
+
proxyFocus: "_proxyFocus_1sjdm_96"
|
|
138
|
+
}, Z = ({ ariaLabel: e, errorTitle: t, errorDescId: n, onClick: r, id: i, icon: a, className: s, isAlwaysVisible: c }) => /* @__PURE__ */ G(he, {
|
|
132
139
|
icon: a,
|
|
133
|
-
size:
|
|
134
|
-
className: o("opacity-0
|
|
140
|
+
size: W.Small,
|
|
141
|
+
className: o(c ? "opacity-100" : "opacity-0 group-hover/attachment-tile:opacity-100 group-focus-visible/attachment-tile:opacity-100 group-has-[:focus-visible]/attachment-tile:opacity-100", X.actionButton, s, Y.tileAction),
|
|
135
142
|
"aria-label": e,
|
|
136
143
|
"aria-describedby": t ? n : void 0,
|
|
137
144
|
onClick: (e) => {
|
|
138
145
|
e.stopPropagation(), r(i);
|
|
139
146
|
}
|
|
140
|
-
}),
|
|
141
|
-
icon: /* @__PURE__ */
|
|
142
|
-
size:
|
|
147
|
+
}), je = ({ ...e }) => /* @__PURE__ */ G(Z, {
|
|
148
|
+
icon: /* @__PURE__ */ G(ie, {
|
|
149
|
+
size: H.SM,
|
|
143
150
|
"aria-hidden": !0,
|
|
144
|
-
stroke:
|
|
151
|
+
stroke: U
|
|
145
152
|
}),
|
|
146
153
|
className: X.retryIcon,
|
|
147
154
|
...e
|
|
148
|
-
}),
|
|
149
|
-
icon: /* @__PURE__ */
|
|
150
|
-
size:
|
|
155
|
+
}), Me = ({ ...e }) => /* @__PURE__ */ G(Z, {
|
|
156
|
+
icon: /* @__PURE__ */ G(h, {
|
|
157
|
+
size: H.SM,
|
|
151
158
|
"aria-hidden": !0,
|
|
152
|
-
stroke:
|
|
159
|
+
stroke: U
|
|
153
160
|
}),
|
|
154
161
|
...e
|
|
155
|
-
}),
|
|
156
|
-
icon: /* @__PURE__ */
|
|
157
|
-
size:
|
|
162
|
+
}), Ne = ({ ...e }) => /* @__PURE__ */ G(Z, {
|
|
163
|
+
icon: /* @__PURE__ */ G(g, {
|
|
164
|
+
size: H.SM,
|
|
158
165
|
"aria-hidden": !0,
|
|
159
|
-
stroke:
|
|
166
|
+
stroke: U
|
|
160
167
|
}),
|
|
161
168
|
...e
|
|
162
|
-
}),
|
|
163
|
-
icon: /* @__PURE__ */
|
|
164
|
-
size:
|
|
169
|
+
}), Pe = ({ className: e, ...t }) => /* @__PURE__ */ G(Z, {
|
|
170
|
+
icon: /* @__PURE__ */ G(se, {
|
|
171
|
+
size: H.SM,
|
|
165
172
|
"aria-hidden": !0,
|
|
166
|
-
stroke:
|
|
173
|
+
stroke: U
|
|
167
174
|
}),
|
|
168
|
-
|
|
169
|
-
|
|
175
|
+
className: o("mobile:opacity-100", e),
|
|
176
|
+
...t
|
|
177
|
+
}), Fe = {
|
|
170
178
|
[e.Network]: "Upload failed · network error",
|
|
171
179
|
[e.UnsupportedType]: "Upload failed · unsupported file type",
|
|
172
180
|
[e.FileTooLarge]: "Upload failed · file too large"
|
|
173
|
-
},
|
|
174
|
-
let { clickLabel: y = "Download attachment", expandLabel: b = "Expand pasted text", downloadLabel: x = "Download attachment", retryLabel: S = "Retry upload", removeLabel: C = "Remove attachment", openInNewTabLabel: w = "Open in new tab", sizeLabel: T, uploadingLabel: E = "Uploading", errorReasonLabels: D, genericErrorLabel: O = "Upload failed" } = s ?? {}, { typography: k, className: A } = l ?? {}, { id: j, name: M, status: N, errorReason: P } = t, F = N === r.Loading, I = N === r.Error, L = u(), R = I ? P && (D?.[P] ??
|
|
175
|
-
|
|
176
|
-
},
|
|
177
|
-
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(),
|
|
178
|
-
},
|
|
181
|
+
}, Ie = ({ attachment: t, searchQuery: n = "", onClick: i, onRetry: a, labels: s, styles: l, onDownload: f, isLink: p, cssVars: m, onExpand: h, isExpandable: g, onRemove: _, isSelected: v }) => {
|
|
182
|
+
let { clickLabel: y = "Download attachment", expandLabel: b = "Expand pasted text", downloadLabel: x = "Download attachment", retryLabel: S = "Retry upload", removeLabel: C = "Remove attachment", openInNewTabLabel: w = "Open in new tab", sizeLabel: T, uploadingLabel: E = "Uploading", errorReasonLabels: D, genericErrorLabel: O = "Upload failed" } = s ?? {}, { typography: k, className: A } = l ?? {}, { id: j, name: M, status: N, errorReason: P } = t, F = N === r.Loading, I = N === r.Error, L = u(), R = I ? P && (D?.[P] ?? Fe[P]) || O : "", { BottomIcon: z, typeLabel: ee } = J(t), te = Ee(t), ne = !I && !F && f && !p, re = I && !!a && P !== e.UnsupportedType && P !== e.FileTooLarge, B = !!g && h !== void 0, V = B || i !== void 0, ie = Number(!!ne) + Number(!!re) + Number(!!p) + Number(!!_), ae = !V && ie === 1, oe = () => {
|
|
183
|
+
B ? h(j) : i?.(j);
|
|
184
|
+
}, se = (e) => {
|
|
185
|
+
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), oe());
|
|
186
|
+
}, W = d(() => _e(M), [M]), ue = c(() => {
|
|
179
187
|
window.open(t.referenceUrl, "_blank", "noopener,noreferrer");
|
|
180
|
-
}, [t]),
|
|
181
|
-
title:
|
|
182
|
-
className: o(k?.nameClassName ?? "dial-
|
|
183
|
-
children: n ? /* @__PURE__ */
|
|
184
|
-
text:
|
|
188
|
+
}, [t]), fe = o(ke, "group/attachment-tile relative flex-col justify-between items-start gap-2 overflow-hidden p-3", X.tile, V && !I && !F && X.hovered, F && X.loading, v && X.selected, I && X.tileError, ae && X.proxyFocus, Y.tile, v && Y.tileSelected), pe = /* @__PURE__ */ G("div", {
|
|
189
|
+
title: W,
|
|
190
|
+
className: o(k?.nameClassName ?? "dial-tiny-text", "line-clamp-2 w-full min-w-0 break-words", X.nameText, Y.tileName),
|
|
191
|
+
children: n ? /* @__PURE__ */ G(de, {
|
|
192
|
+
text: W,
|
|
185
193
|
query: n,
|
|
186
194
|
maxLines: 2
|
|
187
|
-
}) :
|
|
188
|
-
}),
|
|
189
|
-
className: o("flex w-full items-
|
|
190
|
-
children: [/* @__PURE__ */
|
|
191
|
-
|
|
195
|
+
}) : W
|
|
196
|
+
}), he = z && /* @__PURE__ */ K("div", {
|
|
197
|
+
className: o("flex w-full items-end gap-1", Y.tileType),
|
|
198
|
+
children: [te ? /* @__PURE__ */ G(le, {
|
|
199
|
+
type: ce.File,
|
|
200
|
+
name: M ?? "",
|
|
201
|
+
fileExtension: Te(t),
|
|
202
|
+
size: H.MD,
|
|
203
|
+
decorative: !0
|
|
204
|
+
}) : /* @__PURE__ */ G(z, {
|
|
205
|
+
size: H.MD,
|
|
192
206
|
className: X.typeText,
|
|
207
|
+
stroke: U,
|
|
193
208
|
"aria-hidden": !0
|
|
194
|
-
}), /* @__PURE__ */
|
|
195
|
-
className: o(k?.metaClassName ?? "dial-
|
|
196
|
-
children: T ? `${
|
|
209
|
+
}), /* @__PURE__ */ G("span", {
|
|
210
|
+
className: o(k?.metaClassName ?? "dial-tiny-text", "min-w-0 flex-1 truncate", X.typeText),
|
|
211
|
+
children: T ? `${ee} · ${T}` : ee
|
|
197
212
|
})]
|
|
198
|
-
}),
|
|
213
|
+
}), q = V ? {
|
|
199
214
|
role: "button",
|
|
200
215
|
tabIndex: 0,
|
|
201
|
-
"aria-label":
|
|
202
|
-
onClick:
|
|
203
|
-
onKeyDown:
|
|
204
|
-
} : {},
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
F && /* @__PURE__ */
|
|
216
|
+
"aria-label": B ? b : y,
|
|
217
|
+
onClick: oe,
|
|
218
|
+
onKeyDown: se
|
|
219
|
+
} : {}, ve = /* @__PURE__ */ K(ge, { children: [
|
|
220
|
+
pe,
|
|
221
|
+
he,
|
|
222
|
+
F && /* @__PURE__ */ G("div", {
|
|
208
223
|
role: "progressbar",
|
|
209
224
|
"aria-label": E,
|
|
210
|
-
className: o("absolute
|
|
211
|
-
children: /* @__PURE__ */
|
|
225
|
+
className: o("absolute inset-0 flex items-center justify-center rounded-[11px]", X.track),
|
|
226
|
+
children: /* @__PURE__ */ G(me, { size: 32 })
|
|
212
227
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
-
className: "absolute end-1 top-1 flex
|
|
228
|
+
/* @__PURE__ */ K("div", {
|
|
229
|
+
className: "absolute end-1 top-1 flex",
|
|
215
230
|
children: [
|
|
216
|
-
|
|
231
|
+
ne && /* @__PURE__ */ G(Me, {
|
|
217
232
|
ariaLabel: x,
|
|
218
233
|
errorTitle: R,
|
|
219
234
|
errorDescId: L,
|
|
220
235
|
onClick: f,
|
|
221
236
|
id: j
|
|
222
237
|
}),
|
|
223
|
-
|
|
238
|
+
re && /* @__PURE__ */ G(je, {
|
|
224
239
|
ariaLabel: S,
|
|
225
240
|
errorTitle: R,
|
|
226
241
|
errorDescId: L,
|
|
227
242
|
onClick: a,
|
|
228
243
|
id: j
|
|
229
244
|
}),
|
|
230
|
-
p && /* @__PURE__ */
|
|
245
|
+
p && /* @__PURE__ */ G(Ne, {
|
|
231
246
|
ariaLabel: w,
|
|
232
247
|
errorTitle: R,
|
|
233
248
|
errorDescId: L,
|
|
234
|
-
onClick:
|
|
249
|
+
onClick: ue
|
|
235
250
|
}),
|
|
236
|
-
_ && /* @__PURE__ */
|
|
251
|
+
_ && /* @__PURE__ */ G(Pe, {
|
|
237
252
|
ariaLabel: C,
|
|
238
253
|
errorTitle: R,
|
|
239
254
|
errorDescId: L,
|
|
240
255
|
onClick: _,
|
|
241
|
-
id: j
|
|
256
|
+
id: j,
|
|
257
|
+
isAlwaysVisible: F
|
|
242
258
|
})
|
|
243
259
|
]
|
|
244
260
|
}),
|
|
245
|
-
I && /* @__PURE__ */
|
|
261
|
+
I && /* @__PURE__ */ G("span", {
|
|
246
262
|
id: L,
|
|
247
263
|
role: "status",
|
|
248
264
|
"aria-live": "polite",
|
|
@@ -250,20 +266,20 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
250
266
|
children: R
|
|
251
267
|
})
|
|
252
268
|
] });
|
|
253
|
-
return /* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ G("div", {
|
|
254
270
|
style: m,
|
|
255
271
|
className: o("inline-flex", A),
|
|
256
|
-
children: /* @__PURE__ */
|
|
257
|
-
...
|
|
272
|
+
children: /* @__PURE__ */ G("div", {
|
|
273
|
+
...q,
|
|
258
274
|
"aria-busy": F,
|
|
259
275
|
style: m,
|
|
260
|
-
className: o(
|
|
261
|
-
children:
|
|
276
|
+
className: o(fe, V && "cursor-pointer", Ae),
|
|
277
|
+
children: ve
|
|
262
278
|
})
|
|
263
279
|
});
|
|
264
280
|
}, Q = /* @__PURE__ */ function(e) {
|
|
265
281
|
return e.Idle = "idle", e.Loading = "loading", e.Loaded = "loaded", e.Error = "error", e;
|
|
266
|
-
}({}),
|
|
282
|
+
}({}), Le = ({ enabled: e, src: t }) => {
|
|
267
283
|
let n = f(null), [r, i] = p("idle");
|
|
268
284
|
return l(() => {
|
|
269
285
|
i(e && t ? "loading" : "idle");
|
|
@@ -278,67 +294,75 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
278
294
|
imageRef: n,
|
|
279
295
|
imageLoadStatus: r
|
|
280
296
|
};
|
|
281
|
-
},
|
|
282
|
-
let { clickLabel: f = "Open attachment", expandLabel: p = "Expand pasted text", removeLabel: m = "Remove attachment", downloadLabel: h = "Download attachment" } = i ?? {}, { className:
|
|
283
|
-
enabled:
|
|
284
|
-
src:
|
|
285
|
-
}),
|
|
286
|
-
|
|
287
|
-
},
|
|
297
|
+
}, Re = ({ attachment: e, onExpand: n, onClick: r, labels: i, onRemove: a, cssVars: s, onDownload: c, styles: l, isSelected: u }) => {
|
|
298
|
+
let { clickLabel: f = "Open attachment", expandLabel: p = "Expand pasted text", removeLabel: m = "Remove attachment", downloadLabel: h = "Download attachment", uploadingLabel: g = "Uploading" } = i ?? {}, { className: _ } = l ?? {}, { id: v, name: y } = e, b = e.previewUrl ?? e.url, x = e.type === t.Pasted && n !== void 0, { isLoading: S, isError: C, isImage: w } = d(() => J(e), [e]), T = r !== void 0 && !x && !S && !C, E = x || T, D = !!c && !S, O = !E && Number(!!a) + Number(D) === 1, { imageRef: k, imageLoadStatus: A } = Le({
|
|
299
|
+
enabled: w,
|
|
300
|
+
src: b
|
|
301
|
+
}), j = () => {
|
|
302
|
+
x && n ? n(v) : T && r && r(v);
|
|
303
|
+
}, M = E ? {
|
|
288
304
|
role: "button",
|
|
289
305
|
tabIndex: 0,
|
|
290
|
-
"aria-label":
|
|
291
|
-
onClick:
|
|
306
|
+
"aria-label": x ? p : f,
|
|
307
|
+
onClick: j,
|
|
292
308
|
onKeyDown: (e) => {
|
|
293
|
-
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(),
|
|
309
|
+
e.target === e.currentTarget && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), j());
|
|
294
310
|
}
|
|
295
311
|
} : {};
|
|
296
|
-
return /* @__PURE__ */
|
|
297
|
-
className: o(
|
|
298
|
-
...
|
|
312
|
+
return /* @__PURE__ */ G("div", {
|
|
313
|
+
className: o(ke, "group/attachment-tile", E && "cursor-pointer", X.tile, u && X.selected, S && X.loading, O && X.proxyFocus, Ae, _, Y.tile, u && Y.tileSelected),
|
|
314
|
+
...M,
|
|
315
|
+
"aria-busy": S,
|
|
299
316
|
style: s,
|
|
300
|
-
children: /* @__PURE__ */
|
|
317
|
+
children: /* @__PURE__ */ K("div", {
|
|
301
318
|
className: "relative h-full w-full overflow-hidden",
|
|
302
319
|
children: [
|
|
303
|
-
/* @__PURE__ */
|
|
304
|
-
className: "absolute end-1 top-1 z-10 flex
|
|
305
|
-
children: [a && /* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ K("div", {
|
|
321
|
+
className: "absolute end-1 top-1 z-10 flex",
|
|
322
|
+
children: [a && /* @__PURE__ */ G(Pe, {
|
|
306
323
|
ariaLabel: m,
|
|
307
324
|
onClick: a,
|
|
308
|
-
id:
|
|
309
|
-
className: X.imageActionButton
|
|
310
|
-
|
|
325
|
+
id: v,
|
|
326
|
+
className: X.imageActionButton,
|
|
327
|
+
isAlwaysVisible: S
|
|
328
|
+
}), D && /* @__PURE__ */ G(Me, {
|
|
311
329
|
ariaLabel: h,
|
|
312
330
|
onClick: c,
|
|
313
|
-
id:
|
|
331
|
+
id: v,
|
|
314
332
|
className: X.imageActionButton
|
|
315
333
|
})]
|
|
316
334
|
}),
|
|
317
|
-
|
|
318
|
-
variant:
|
|
335
|
+
A !== Q.Loaded && /* @__PURE__ */ G(fe, {
|
|
336
|
+
variant: pe.Rectangular,
|
|
319
337
|
width: "100%",
|
|
320
338
|
height: "100%",
|
|
321
|
-
active:
|
|
322
|
-
overlay: /* @__PURE__ */
|
|
323
|
-
size:
|
|
324
|
-
className: X.
|
|
339
|
+
active: A === Q.Loading,
|
|
340
|
+
overlay: /* @__PURE__ */ G(V, {
|
|
341
|
+
size: H.LG,
|
|
342
|
+
className: X.placeholderIcon,
|
|
325
343
|
"aria-hidden": !0,
|
|
326
|
-
stroke:
|
|
344
|
+
stroke: U
|
|
327
345
|
}),
|
|
328
346
|
className: "absolute inset-0 rounded-xl"
|
|
329
347
|
}),
|
|
330
|
-
/* @__PURE__ */
|
|
331
|
-
ref:
|
|
332
|
-
src:
|
|
333
|
-
alt:
|
|
348
|
+
/* @__PURE__ */ G("img", {
|
|
349
|
+
ref: k,
|
|
350
|
+
src: b,
|
|
351
|
+
alt: y,
|
|
334
352
|
loading: "lazy",
|
|
335
353
|
decoding: "async",
|
|
336
|
-
className: o("h-full w-full rounded-xl object-cover transition-opacity duration-200",
|
|
354
|
+
className: o("h-full w-full rounded-xl object-cover transition-opacity duration-200", A === Q.Loaded ? "opacity-100" : "opacity-0")
|
|
355
|
+
}),
|
|
356
|
+
S && /* @__PURE__ */ G("div", {
|
|
357
|
+
role: "progressbar",
|
|
358
|
+
"aria-label": g,
|
|
359
|
+
className: o("absolute inset-0 flex items-center justify-center rounded-xl", X.track),
|
|
360
|
+
children: /* @__PURE__ */ G(me, { size: 32 })
|
|
337
361
|
})
|
|
338
362
|
]
|
|
339
363
|
})
|
|
340
364
|
});
|
|
341
|
-
},
|
|
365
|
+
}, ze = ({ attachment: e, searchQuery: n = "", onRemove: r, onRetry: a, onExpand: o, onClick: s, onDownload: c, labels: l, styles: u, isSelected: f }) => {
|
|
342
366
|
let { colors: p } = u ?? {}, m = e.type === t.Pasted && o !== void 0, h = i({
|
|
343
367
|
"--ai-tile-bg": p?.background,
|
|
344
368
|
"--ai-tile-border": p?.border,
|
|
@@ -352,11 +376,12 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
352
376
|
"--ai-tile-error-text": p?.errorText,
|
|
353
377
|
"--ai-tile-name-text": p?.nameText,
|
|
354
378
|
"--ai-tile-type-text": p?.typeText,
|
|
379
|
+
"--ai-tile-placeholder-icon": p?.placeholderIcon,
|
|
355
380
|
"--ai-tile-hover-icon-bg": p?.hoverIconBackground,
|
|
356
381
|
"--ai-tile-hover-icon-color": p?.hoverIconColor,
|
|
357
382
|
"--ai-tile-progress-track": p?.trackBackground
|
|
358
383
|
}), { isImage: g, isLink: _ } = d(() => J(e), [e]);
|
|
359
|
-
return g ? /* @__PURE__ */
|
|
384
|
+
return g ? /* @__PURE__ */ G(Re, {
|
|
360
385
|
attachment: e,
|
|
361
386
|
labels: l,
|
|
362
387
|
onClick: s,
|
|
@@ -366,7 +391,7 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
366
391
|
cssVars: h,
|
|
367
392
|
onDownload: c,
|
|
368
393
|
isSelected: f
|
|
369
|
-
}) : /* @__PURE__ */
|
|
394
|
+
}) : /* @__PURE__ */ G(Ie, {
|
|
370
395
|
attachment: e,
|
|
371
396
|
searchQuery: n,
|
|
372
397
|
onClick: s,
|
|
@@ -381,16 +406,16 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
381
406
|
isExpandable: m,
|
|
382
407
|
isSelected: f
|
|
383
408
|
});
|
|
384
|
-
},
|
|
409
|
+
}, Be = ({ attachments: e, onRemove: t, onRetry: n, onExpand: r, onAttachmentClick: i, labels: a, styles: s }) => {
|
|
385
410
|
let { ariaLabel: c = "Attached files", removeLabel: l, retryLabel: u, clickLabel: d, expandLabel: f, uploadingLabel: p } = a ?? {}, { className: m, card: h } = s ?? {};
|
|
386
|
-
return e.length === 0 ? null : /* @__PURE__ */
|
|
411
|
+
return e.length === 0 ? null : /* @__PURE__ */ G("div", {
|
|
387
412
|
role: "list",
|
|
388
413
|
"aria-label": c,
|
|
389
|
-
className: o("
|
|
390
|
-
children: e.map((e) => /* @__PURE__ */
|
|
414
|
+
className: o("-m-0.5 box-border flex min-w-0 gap-2 overflow-x-auto p-0.5", m, Y.tray),
|
|
415
|
+
children: e.map((e) => /* @__PURE__ */ G("div", {
|
|
391
416
|
role: "listitem",
|
|
392
417
|
className: Y.trayItem,
|
|
393
|
-
children: /* @__PURE__ */
|
|
418
|
+
children: /* @__PURE__ */ G(ze, {
|
|
394
419
|
attachment: e,
|
|
395
420
|
onRemove: t,
|
|
396
421
|
onRetry: n,
|
|
@@ -407,53 +432,53 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
407
432
|
})
|
|
408
433
|
}, e.id))
|
|
409
434
|
});
|
|
410
|
-
},
|
|
435
|
+
}, Ve = {
|
|
411
436
|
headerIcon: "_headerIcon_1dmgi_1",
|
|
412
437
|
headerLabel: "_headerLabel_1dmgi_2"
|
|
413
|
-
},
|
|
414
|
-
let { ariaLabel: d = "Attachments", clickLabel: f = "Download attachment", downloadLabel: p = "Download attachment", retryLabel: m = "Retry upload", downloadAllLabel: g = "Download all", openInNewTabLabel: v, getHeaderLabel: y = (e) =>
|
|
438
|
+
}, He = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`, Ue = ({ attachments: e, onAttachmentClick: n, onDownloadAll: a, onRetry: s, labels: c, styles: l, selectedAttachmentId: u }) => {
|
|
439
|
+
let { ariaLabel: d = "Attachments", clickLabel: f = "Download attachment", downloadLabel: p = "Download attachment", retryLabel: m = "Retry upload", downloadAllLabel: g = "Download all", openInNewTabLabel: v, getHeaderLabel: y = (e) => He(e, "attachment"), promptLabel: b, pastedLabel: x, imageLabel: S } = c ?? {}, { typography: C, colors: w, className: T } = l ?? {}, E = i({ "--ai-group-text": w?.text });
|
|
415
440
|
if (e.length === 0) return null;
|
|
416
|
-
let D = e.some((e) => e.type === t.Image), O = e.some((e) => e.type !== t.Image), k = D && O, A = e.length >= 5, j = k ?
|
|
441
|
+
let D = e.some((e) => e.type === t.Image), O = e.some((e) => e.type !== t.Image), k = D && O, A = e.length >= 5, j = k ? B : D ? V : _, M = y(e.length), N = () => {
|
|
417
442
|
let t = e.filter((e) => e.status === r.Idle);
|
|
418
443
|
a ? a(t) : t.forEach((e) => n?.(e.id));
|
|
419
444
|
}, P = (t) => {
|
|
420
445
|
let n = e.find((e) => e.id === t);
|
|
421
446
|
n && a?.([n]);
|
|
422
447
|
};
|
|
423
|
-
return /* @__PURE__ */
|
|
448
|
+
return /* @__PURE__ */ K("div", {
|
|
424
449
|
role: "group",
|
|
425
450
|
"aria-label": d,
|
|
426
451
|
style: E,
|
|
427
|
-
className: o("flex flex-col gap-
|
|
428
|
-
children: [/* @__PURE__ */
|
|
452
|
+
className: o("flex flex-col gap-2", A ? "w-full min-w-0 max-w-[532px]" : "max-w-[424px]", Ve.container, T),
|
|
453
|
+
children: [/* @__PURE__ */ K("div", {
|
|
429
454
|
className: "flex items-center justify-between",
|
|
430
|
-
children: [/* @__PURE__ */
|
|
455
|
+
children: [/* @__PURE__ */ K("div", {
|
|
431
456
|
className: "flex items-center gap-1",
|
|
432
|
-
children: [/* @__PURE__ */
|
|
433
|
-
size:
|
|
434
|
-
className: o("shrink-0",
|
|
457
|
+
children: [/* @__PURE__ */ G(j, {
|
|
458
|
+
size: H.SM,
|
|
459
|
+
className: o("shrink-0", Ve.headerIcon),
|
|
435
460
|
"aria-hidden": !0
|
|
436
|
-
}), /* @__PURE__ */
|
|
437
|
-
className: o(C?.headerLabelClassName ?? "dial-tiny-semi-text",
|
|
461
|
+
}), /* @__PURE__ */ G("span", {
|
|
462
|
+
className: o(C?.headerLabelClassName ?? "dial-tiny-semi-text", Ve.headerLabel),
|
|
438
463
|
children: M
|
|
439
464
|
})]
|
|
440
|
-
}), e.length >= 2 && (a || n) && /* @__PURE__ */
|
|
441
|
-
icon: /* @__PURE__ */
|
|
442
|
-
size:
|
|
465
|
+
}), e.length >= 2 && (a || n) && /* @__PURE__ */ G(ue, {
|
|
466
|
+
icon: /* @__PURE__ */ G(h, {
|
|
467
|
+
size: H.SM,
|
|
443
468
|
"aria-hidden": !0,
|
|
444
|
-
stroke:
|
|
469
|
+
stroke: U
|
|
445
470
|
}),
|
|
446
|
-
size:
|
|
471
|
+
size: W.Small,
|
|
447
472
|
"aria-label": g,
|
|
448
473
|
onClick: N
|
|
449
474
|
})]
|
|
450
|
-
}), /* @__PURE__ */
|
|
475
|
+
}), /* @__PURE__ */ G("div", {
|
|
451
476
|
role: "list",
|
|
452
477
|
"aria-label": M,
|
|
453
|
-
className: o("gap-
|
|
454
|
-
children: e.map((e, t) => /* @__PURE__ */
|
|
478
|
+
className: o("gap-2", A ? "grid grid-cols-[repeat(5,100px)]" : "flex flex-wrap"),
|
|
479
|
+
children: e.map((e, t) => /* @__PURE__ */ G("div", {
|
|
455
480
|
role: "listitem",
|
|
456
|
-
children: /* @__PURE__ */
|
|
481
|
+
children: /* @__PURE__ */ G(ze, {
|
|
457
482
|
attachment: e,
|
|
458
483
|
onClick: n,
|
|
459
484
|
onDownload: a ? P : void 0,
|
|
@@ -472,51 +497,51 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
472
497
|
}, `${e.id}-${t}`))
|
|
473
498
|
})]
|
|
474
499
|
});
|
|
475
|
-
},
|
|
500
|
+
}, We = {
|
|
476
501
|
overlay: "_overlay_mzpdp_1",
|
|
477
502
|
icon: "_icon_mzpdp_5",
|
|
478
503
|
deniedIcon: "_deniedIcon_mzpdp_9"
|
|
479
|
-
},
|
|
504
|
+
}, Ge = ({ isVisible: e, isAttachmentsAllowed: t = !0, labels: n, styles: r }) => {
|
|
480
505
|
let { title: a, subtitle: s } = n ?? {}, { colors: c, typography: l } = r ?? {};
|
|
481
506
|
if (!e) return null;
|
|
482
507
|
let u = i({
|
|
483
508
|
"--ai-fd-bg": c?.background,
|
|
484
509
|
"--ai-fd-icon": c?.icon,
|
|
485
510
|
"--ai-fd-denied-icon": c?.deniedIcon
|
|
486
|
-
}), d = a ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ?
|
|
511
|
+
}), d = a ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ? We.icon : We.deniedIcon, m = (e) => {
|
|
487
512
|
e.preventDefault();
|
|
488
|
-
}, h = t ? v :
|
|
489
|
-
return /* @__PURE__ */
|
|
513
|
+
}, h = t ? v : ne;
|
|
514
|
+
return /* @__PURE__ */ G("div", {
|
|
490
515
|
role: "status",
|
|
491
516
|
"aria-live": "polite",
|
|
492
|
-
className: o("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm",
|
|
517
|
+
className: o("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm", We.overlay, t ? "pointer-events-none" : "pointer-events-auto cursor-not-allowed"),
|
|
493
518
|
onDragOver: t ? void 0 : m,
|
|
494
519
|
onDrop: t ? void 0 : m,
|
|
495
520
|
style: u,
|
|
496
|
-
children: /* @__PURE__ */
|
|
521
|
+
children: /* @__PURE__ */ K("div", {
|
|
497
522
|
className: "flex flex-col items-center text-center",
|
|
498
523
|
children: [
|
|
499
|
-
/* @__PURE__ */
|
|
524
|
+
/* @__PURE__ */ G(h, {
|
|
500
525
|
size: 100,
|
|
501
526
|
stroke: 1,
|
|
502
527
|
className: p,
|
|
503
528
|
"aria-hidden": !0
|
|
504
529
|
}),
|
|
505
|
-
/* @__PURE__ */
|
|
530
|
+
/* @__PURE__ */ G("span", {
|
|
506
531
|
className: o("mt-5", l?.titleClassName ?? "dial-h3-text"),
|
|
507
532
|
children: d
|
|
508
533
|
}),
|
|
509
|
-
/* @__PURE__ */
|
|
534
|
+
/* @__PURE__ */ G("span", {
|
|
510
535
|
className: o("mt-4", l?.subtitleClassName ?? "dial-small-text"),
|
|
511
536
|
children: f
|
|
512
537
|
})
|
|
513
538
|
]
|
|
514
539
|
})
|
|
515
540
|
});
|
|
516
|
-
}, $ = (e) => String(e).padStart(2, "0"),
|
|
541
|
+
}, $ = (e) => String(e).padStart(2, "0"), Ke = (e) => `${e.getFullYear()}-${$(e.getMonth() + 1)}-${$(e.getDate())} ${$(e.getHours())}-${$(e.getMinutes())}-${$(e.getSeconds())}`, qe = (e, t, n) => {
|
|
517
542
|
let r = e.lastIndexOf("."), i = r > 0, a = i ? e.slice(0, r) : e, o = i ? e.slice(r) : "", s = n === 0 ? "" : ` (${n + 1})`;
|
|
518
|
-
return `${a} ${
|
|
519
|
-
},
|
|
543
|
+
return `${a} ${Ke(t)}${s}${o}`;
|
|
544
|
+
}, Je = (e, n, i = {}) => {
|
|
520
545
|
let { screenshotName: a = "Screenshot.png", pastedTextName: o = "Pasted text" } = i;
|
|
521
546
|
return { handlePaste: c((i) => {
|
|
522
547
|
if (!i.clipboardData) return;
|
|
@@ -526,8 +551,8 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
526
551
|
for (let e of s) {
|
|
527
552
|
let i = e.getAsFile();
|
|
528
553
|
if (!i) continue;
|
|
529
|
-
let s =
|
|
530
|
-
id:
|
|
554
|
+
let s = qe(a, o, n.length), c = new File([i], s, { type: i.type }), l = {
|
|
555
|
+
id: q(),
|
|
531
556
|
name: s,
|
|
532
557
|
contentType: i.type,
|
|
533
558
|
file: c,
|
|
@@ -542,8 +567,8 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
542
567
|
}
|
|
543
568
|
let l = i.clipboardData.getData("text/plain");
|
|
544
569
|
if (l.length > n) {
|
|
545
|
-
let n = `${o} ${
|
|
546
|
-
id:
|
|
570
|
+
let n = `${o} ${Ke(/* @__PURE__ */ new Date())}.txt`, a = new File([l], n, { type: "text/plain" }), s = {
|
|
571
|
+
id: q(),
|
|
547
572
|
name: n,
|
|
548
573
|
contentType: "text/plain",
|
|
549
574
|
file: a,
|
|
@@ -558,6 +583,6 @@ var me = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, he = (e)
|
|
|
558
583
|
a,
|
|
559
584
|
o
|
|
560
585
|
]) };
|
|
561
|
-
},
|
|
586
|
+
}, Ye = 100;
|
|
562
587
|
//#endregion
|
|
563
|
-
export {
|
|
588
|
+
export { Oe as ATTACHMENT_COLLAPSE_THRESHOLD, Y as ATTACHMENT_INPUT_CLASS, ze as AttachmentCard, Ue as AttachmentGroup, Be as AttachmentTray, Ge as FileDndOverlay, Q as LazyImageLoadStatus, Ye as MAX_UPLOADS_PER_MINUTE, q as generateAttachmentId, J as getAttachmentCardState, Se as getAttachmentIcon, we as getExtFromContentType, _e as getNameWithoutExtension, xe as isMimeTypeAllowed, be as mimeTypesToExtensionLabels, Je as useClipboardPaste, Le as useLazyImageLoad };
|
|
@@ -38,21 +38,23 @@ export interface AttachmentCardColors {
|
|
|
38
38
|
backgroundSelected?: string;
|
|
39
39
|
/** Tile border color in the selected state. */
|
|
40
40
|
borderSelected?: string;
|
|
41
|
-
/** Tile focus
|
|
41
|
+
/** Tile focus ring color. Defaults to `--stroke-focus`. */
|
|
42
42
|
focusOutline?: string;
|
|
43
43
|
/** Tile background color in the error state. */
|
|
44
44
|
backgroundError?: string;
|
|
45
45
|
/** Tile border color in the error state. */
|
|
46
46
|
borderError?: string;
|
|
47
|
-
/**
|
|
47
|
+
/** Corner action icon color in the error state. Defaults to `--text-error`. */
|
|
48
48
|
errorText?: string;
|
|
49
49
|
/** File name text color. */
|
|
50
50
|
nameText?: string;
|
|
51
51
|
/** Type/meta text color. */
|
|
52
52
|
typeText?: string;
|
|
53
|
-
/**
|
|
53
|
+
/** Image placeholder icon color while the preview loads. Defaults to `--text-secondary`. */
|
|
54
|
+
placeholderIcon?: string;
|
|
55
|
+
/** Corner action button background, overriding the default of matching the tile's current background (not applied in the error state). */
|
|
54
56
|
hoverIconBackground?: string;
|
|
55
|
-
/**
|
|
57
|
+
/** Corner action icon color on image tiles and during upload. Defaults to `--text-secondary`. */
|
|
56
58
|
hoverIconColor?: string;
|
|
57
59
|
/** Upload progress track background color. */
|
|
58
60
|
trackBackground?: string;
|
|
@@ -61,7 +63,7 @@ export interface AttachmentCardColors {
|
|
|
61
63
|
export interface AttachmentCardTypography {
|
|
62
64
|
/** Utility class applied to the file name text. Defaults to `'dial-tiny-text'`. */
|
|
63
65
|
fontClassName?: string;
|
|
64
|
-
/** Utility class applied to the bottom meta label (file type / status). Defaults to `'dial-
|
|
66
|
+
/** Utility class applied to the bottom meta label (file type / status). Defaults to `'dial-tiny-text'`. */
|
|
65
67
|
metaClassName?: string;
|
|
66
68
|
}
|
|
67
69
|
/** Combined style overrides (colors, typography, and shape) for the `AttachmentCard` component. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-card.d.ts","sourceRoot":"","sources":["../../src/models/attachment-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,wGAAwG;AACxG,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"attachment-card.d.ts","sourceRoot":"","sources":["../../src/models/attachment-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,9 @@ export interface FileAttachmentLabels extends AttachmentTypeLabels {
|
|
|
26
26
|
}
|
|
27
27
|
/** Typography overrides for the `FileAttachment` component. */
|
|
28
28
|
export interface FileAttachmentTypography {
|
|
29
|
-
/** Typography class applied to the file name text. Defaults to `'dial-
|
|
29
|
+
/** Typography class applied to the file name text. Defaults to `'dial-tiny-text'`. */
|
|
30
30
|
nameClassName?: string;
|
|
31
|
-
/** Typography class applied to the bottom meta label (file type / status). Defaults to `'dial-
|
|
31
|
+
/** Typography class applied to the bottom meta label (file type / status). Defaults to `'dial-tiny-text'`. */
|
|
32
32
|
metaClassName?: string;
|
|
33
33
|
}
|
|
34
34
|
/** Style overrides for the `FileAttachment` component. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-file-row.d.ts","sourceRoot":"","sources":["../../src/models/attachment-file-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,2DAA2D;AAC3D,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oNAAoN;IACpN,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uHAAuH;IACvH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2KAA2K;IAC3K,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gJAAgJ;IAChJ,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,oIAAoI;IACpI,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACvC,
|
|
1
|
+
{"version":3,"file":"attachment-file-row.d.ts","sourceRoot":"","sources":["../../src/models/attachment-file-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,2DAA2D;AAC3D,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oNAAoN;IACpN,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uHAAuH;IACvH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2KAA2K;IAC3K,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gJAAgJ;IAChJ,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,oIAAoI;IACpI,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACvC,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8GAA8G;IAC9G,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,UAAU,EAAE,iBAAiB,CAAC;IAC9B,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,qIAAqI;IACrI,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,mCAAmC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uHAAuH;IACvH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-attachment-input",
|
|
3
3
|
"description": "File attachment input components with upload validation, drag-and-drop, and progress tracking",
|
|
4
|
-
"version": "1.3.0-dev.
|
|
4
|
+
"version": "1.3.0-dev.63",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"@tabler/icons-react": "^3.44.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@epam/ai-dial-chat-shared": "1.3.0-dev.
|
|
23
|
+
"@epam/ai-dial-chat-shared": "1.3.0-dev.63",
|
|
24
24
|
"react": "^19.2.8",
|
|
25
|
-
"@epam/ai-dial-ui-kit": "^0.15.
|
|
25
|
+
"@epam/ai-dial-ui-kit": "^0.15.4"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|
package/utils/attachment.d.ts
CHANGED
|
@@ -24,6 +24,10 @@ export declare const isMimeTypeAllowed: (mimeType: string, allowedTypes: string[
|
|
|
24
24
|
export declare const getAttachmentIcon: (rawContentType: string) => Icon;
|
|
25
25
|
/** Derives a bare file extension (no leading dot) from a MIME type, e.g. `'application/pdf'` -> `'pdf'`. */
|
|
26
26
|
export declare const getExtFromContentType: (contentType: string) => string | undefined;
|
|
27
|
+
/** Returns the attachment's bare file extension (no leading dot), from its content type first and its name second, or `undefined` when neither yields one. */
|
|
28
|
+
export declare const getAttachmentExtension: (attachment: DisplayAttachment) => string | undefined;
|
|
29
|
+
/** Returns `true` when the attachment's type glyph is a file-type icon rather than a prompt or pasted-text glyph. */
|
|
30
|
+
export declare const hasFileTypeGlyph: (attachment: DisplayAttachment) => boolean;
|
|
27
31
|
/** Derives the display state (icons, labels, color classes) an AttachmentCard needs to render a given attachment. */
|
|
28
32
|
export declare const getAttachmentCardState: (attachment: DisplayAttachment, typeLabels?: AttachmentTypeLabels) => AttachmentCardState;
|
|
29
33
|
//# sourceMappingURL=attachment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/utils/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAgChD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,QAAO,MACgB,CAAC;AAEzD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAItD,CAAC;AAcF,uHAAuH;AACvH,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,EAAE,EACf,iBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAwB,KAC5D,MAoBF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,EAChB,cAAc,MAAM,EAAE,KACrB,OAsBF,CAAC;AAEF,uJAAuJ;AACvJ,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,MAAM,KAAG,IAkF1D,CAAC;AAUF,4GAA4G;AAC5G,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,KAClB,MAAM,GAAG,SAUX,CAAC;
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/utils/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAgChD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,QAAO,MACgB,CAAC;AAEzD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAItD,CAAC;AAcF,uHAAuH;AACvH,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,EAAE,EACf,iBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAwB,KAC5D,MAoBF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,EAChB,cAAc,MAAM,EAAE,KACrB,OAsBF,CAAC;AAEF,uJAAuJ;AACvJ,eAAO,MAAM,iBAAiB,GAAI,gBAAgB,MAAM,KAAG,IAkF1D,CAAC;AAUF,4GAA4G;AAC5G,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,KAClB,MAAM,GAAG,SAUX,CAAC;AAEF,8JAA8J;AAC9J,eAAO,MAAM,sBAAsB,GACjC,YAAY,iBAAiB,KAC5B,MAAM,GAAG,SAcX,CAAC;AAEF,qHAAqH;AACrH,eAAO,MAAM,gBAAgB,GAAI,YAAY,iBAAiB,KAAG,OAEtB,CAAC;AAkB5C,qHAAqH;AACrH,eAAO,MAAM,sBAAsB,GACjC,YAAY,iBAAiB,EAC7B,aAAY,oBAAyB,KACpC,mBAiBF,CAAC"}
|