@epam/ai-dial-conversation-input 1.2.0-rc.0 → 1.3.0-dev.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAalE,wIAAwI;AACxI,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAalE,wIAAwI;AACxI,eAAO,MAAM,KAAK,oGAqvCjB,CAAC"}
|
|
@@ -16,6 +16,8 @@ interface UseMentionSelectionMirrorResult {
|
|
|
16
16
|
selectionRects: DOMRect[];
|
|
17
17
|
/** Recomputes `selectionRects` from the textarea's current native selection. */
|
|
18
18
|
updateSelectionRects: () => void;
|
|
19
|
+
/** Copies the textarea's vertical scroll offset and scrollbar gutter onto the mirror; wire it to the textarea's `onScroll`. */
|
|
20
|
+
syncMirrorToTextarea: () => void;
|
|
19
21
|
}
|
|
20
22
|
export declare const useMentionSelectionMirror: ({ textareaRef, message, isMirrorActive, }: UseMentionSelectionMirrorParams) => UseMentionSelectionMirrorResult;
|
|
21
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMentionSelectionMirror.d.ts","sourceRoot":"","sources":["../../src/hooks/useMentionSelectionMirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,wDAAwD;AACxD,UAAU,+BAA+B;IACvC,6EAA6E;IAC7E,WAAW,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,yDAAyD;AACzD,UAAU,+BAA+B;IACvC,qDAAqD;IACrD,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,kFAAkF;IAClF,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,gFAAgF;IAChF,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAmBD,eAAO,MAAM,yBAAyB,GAAI,2CAIvC,+BAA+B,KAAG,+
|
|
1
|
+
{"version":3,"file":"useMentionSelectionMirror.d.ts","sourceRoot":"","sources":["../../src/hooks/useMentionSelectionMirror.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,wDAAwD;AACxD,UAAU,+BAA+B;IACvC,6EAA6E;IAC7E,WAAW,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,yDAAyD;AACzD,UAAU,+BAA+B;IACvC,qDAAqD;IACrD,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,kFAAkF;IAClF,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,gFAAgF;IAChF,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,+HAA+H;IAC/H,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAmBD,eAAO,MAAM,yBAAyB,GAAI,2CAIvC,+BAA+B,KAAG,+BAwGpC,CAAC"}
|
package/index.js
CHANGED
|
@@ -372,6 +372,11 @@ var H = {
|
|
|
372
372
|
return a.setStart(r.node, r.offset), a.setEnd(i.node, i.offset), a;
|
|
373
373
|
}, He = ({ textareaRef: e, message: t, isMirrorActive: n }) => {
|
|
374
374
|
let r = B(null), [i, a] = V([]), o = L(() => {
|
|
375
|
+
let t = e.current, n = r.current;
|
|
376
|
+
if (t == null || n == null) return;
|
|
377
|
+
let i = t.offsetWidth > t.clientWidth;
|
|
378
|
+
n.style.scrollbarGutter = i ? "stable" : "", n.scrollTop = t.scrollTop;
|
|
379
|
+
}, [e]), s = L(() => {
|
|
375
380
|
let t = e.current, i = r.current, o = t?.selectionStart, s = t?.selectionEnd;
|
|
376
381
|
if (!n || t == null || i == null || o == null || s == null || o === s) {
|
|
377
382
|
a((e) => e.length === 0 ? e : []);
|
|
@@ -383,24 +388,33 @@ var H = {
|
|
|
383
388
|
return;
|
|
384
389
|
}
|
|
385
390
|
let l = i.getBoundingClientRect();
|
|
386
|
-
a(Array.from(c.getClientRects()).map((e) => new DOMRect(e.left - l.left, e.top - l.top, e.width, e.height)));
|
|
391
|
+
a(Array.from(c.getClientRects()).map((e) => new DOMRect(e.left - l.left, e.top - l.top + i.scrollTop, e.width, e.height)));
|
|
387
392
|
}, [n, e]);
|
|
388
393
|
return De(() => {
|
|
389
|
-
o();
|
|
390
|
-
}, [
|
|
394
|
+
n && o(), s();
|
|
395
|
+
}, [
|
|
396
|
+
n,
|
|
397
|
+
o,
|
|
398
|
+
s,
|
|
399
|
+
t
|
|
400
|
+
]), R(() => {
|
|
391
401
|
if (!n) return;
|
|
392
402
|
let t = e.current;
|
|
393
403
|
if (t == null || typeof ResizeObserver > "u") return;
|
|
394
|
-
let r = new ResizeObserver(
|
|
404
|
+
let r = new ResizeObserver(() => {
|
|
405
|
+
o(), s();
|
|
406
|
+
});
|
|
395
407
|
return r.observe(t), () => r.disconnect();
|
|
396
408
|
}, [
|
|
397
409
|
n,
|
|
398
410
|
e,
|
|
399
|
-
o
|
|
411
|
+
o,
|
|
412
|
+
s
|
|
400
413
|
]), {
|
|
401
414
|
mirrorRef: r,
|
|
402
415
|
selectionRects: i,
|
|
403
|
-
updateSelectionRects:
|
|
416
|
+
updateSelectionRects: s,
|
|
417
|
+
syncMirrorToTextarea: o
|
|
404
418
|
};
|
|
405
419
|
}, Ue = ({ messageProp: e, messageRevision: t }) => {
|
|
406
420
|
let [n, r] = V(e), i = B(null);
|
|
@@ -2111,13 +2125,7 @@ var Kt = {
|
|
|
2111
2125
|
top: n.top - r.top
|
|
2112
2126
|
});
|
|
2113
2127
|
}, []);
|
|
2114
|
-
|
|
2115
|
-
dn();
|
|
2116
|
-
}, [
|
|
2117
|
-
dn,
|
|
2118
|
-
on,
|
|
2119
|
-
Y
|
|
2120
|
-
]), R(() => {
|
|
2128
|
+
R(() => {
|
|
2121
2129
|
if (on == null) return;
|
|
2122
2130
|
let e = Z.current;
|
|
2123
2131
|
if (e == null || typeof ResizeObserver > "u") return;
|
|
@@ -2290,11 +2298,19 @@ var Kt = {
|
|
|
2290
2298
|
an,
|
|
2291
2299
|
G,
|
|
2292
2300
|
nn
|
|
2293
|
-
]), Qn = It || Zn.length > 0, { mirrorRef: $n, selectionRects: er, updateSelectionRects: tr } = He({
|
|
2301
|
+
]), Qn = It || Zn.length > 0, { mirrorRef: $n, selectionRects: er, updateSelectionRects: tr, syncMirrorToTextarea: nr } = He({
|
|
2294
2302
|
textareaRef: Z,
|
|
2295
2303
|
message: Y,
|
|
2296
2304
|
isMirrorActive: Qn
|
|
2297
|
-
})
|
|
2305
|
+
});
|
|
2306
|
+
De(() => {
|
|
2307
|
+
dn();
|
|
2308
|
+
}, [
|
|
2309
|
+
dn,
|
|
2310
|
+
on,
|
|
2311
|
+
Y
|
|
2312
|
+
]);
|
|
2313
|
+
let rr = /* @__PURE__ */ P("textarea", {
|
|
2298
2314
|
className: l(K.textarea, Qn && K.textareaMentionMode, I?.fontClassName || "dial-body-paragraph-text", "relative z-0 max-h-[272px] w-full resize-none overflow-y-auto border-0 bg-transparent pe-1 ps-1 outline-none [field-sizing:content]", "disabled:cursor-not-allowed"),
|
|
2299
2315
|
ref: Z,
|
|
2300
2316
|
autoFocus: mt,
|
|
@@ -2305,6 +2321,9 @@ var Kt = {
|
|
|
2305
2321
|
Wt(e.target.value, e.target.selectionStart ?? e.target.value.length, t?.isComposing ?? !1), u?.(e.target.value);
|
|
2306
2322
|
},
|
|
2307
2323
|
onSelect: tr,
|
|
2324
|
+
onScroll: () => {
|
|
2325
|
+
nr(), on != null && dn();
|
|
2326
|
+
},
|
|
2308
2327
|
onFocus: $t,
|
|
2309
2328
|
onClick: Qt,
|
|
2310
2329
|
onKeyDown: Yn,
|
|
@@ -2319,7 +2338,7 @@ var Kt = {
|
|
|
2319
2338
|
disabled: W,
|
|
2320
2339
|
readOnly: $,
|
|
2321
2340
|
rows: 1
|
|
2322
|
-
}),
|
|
2341
|
+
}), ir = G == null ? rr : /* @__PURE__ */ F(N, { children: [rr, /* @__PURE__ */ P("div", {
|
|
2323
2342
|
"aria-hidden": !0,
|
|
2324
2343
|
className: l("pointer-events-none absolute", I?.fontClassName || "dial-body-paragraph-text"),
|
|
2325
2344
|
style: {
|
|
@@ -2353,7 +2372,7 @@ var Kt = {
|
|
|
2353
2372
|
className: "inline-block h-[1lh] w-0"
|
|
2354
2373
|
})
|
|
2355
2374
|
})
|
|
2356
|
-
})] }),
|
|
2375
|
+
})] }), ar = /* @__PURE__ */ F("div", {
|
|
2357
2376
|
ref: cn,
|
|
2358
2377
|
className: "relative -me-1 -ms-1 w-[calc(100%+8px)]",
|
|
2359
2378
|
children: [Qn && /* @__PURE__ */ F("div", {
|
|
@@ -2369,8 +2388,8 @@ var Kt = {
|
|
|
2369
2388
|
height: e.height
|
|
2370
2389
|
}
|
|
2371
2390
|
}, `selection-${t}`))]
|
|
2372
|
-
}),
|
|
2373
|
-
}),
|
|
2391
|
+
}), ir]
|
|
2392
|
+
}), or = Te ? void 0 : /* @__PURE__ */ P(pt, {
|
|
2374
2393
|
onAttachClick: Oe ? void 0 : () => Nn.current?.click(),
|
|
2375
2394
|
attachLabel: y,
|
|
2376
2395
|
addMenuTitle: C,
|
|
@@ -2388,10 +2407,10 @@ var Kt = {
|
|
|
2388
2407
|
toolsBackLabel: st,
|
|
2389
2408
|
menuOverlays: lt,
|
|
2390
2409
|
getCaretPosition: () => Z.current?.selectionStart ?? Y.length
|
|
2391
|
-
}),
|
|
2410
|
+
}), sr = ke === tt.Inline && (!Mt || je), cr = or && /* @__PURE__ */ P("div", {
|
|
2392
2411
|
className: l("flex", H.addCluster),
|
|
2393
|
-
children:
|
|
2394
|
-
}),
|
|
2412
|
+
children: or
|
|
2413
|
+
}), lr = Hn.length > 0 && it != null && /* @__PURE__ */ P("div", {
|
|
2395
2414
|
className: l("min-w-0 flex-1", H.toolsChips),
|
|
2396
2415
|
children: /* @__PURE__ */ P(ht, {
|
|
2397
2416
|
items: Hn,
|
|
@@ -2451,26 +2470,26 @@ var Kt = {
|
|
|
2451
2470
|
analyserNodeRef: On,
|
|
2452
2471
|
onStop: jn,
|
|
2453
2472
|
onDiscard: Mn,
|
|
2454
|
-
attachButton:
|
|
2473
|
+
attachButton: or,
|
|
2455
2474
|
stopLabel: ae,
|
|
2456
2475
|
discardLabel: oe,
|
|
2457
2476
|
processingLabel: Ge
|
|
2458
2477
|
}),
|
|
2459
|
-
!$ && U &&
|
|
2460
|
-
!$ && !U &&
|
|
2478
|
+
!$ && U && ar,
|
|
2479
|
+
!$ && !U && sr && lr && /* @__PURE__ */ P("div", {
|
|
2461
2480
|
className: "flex",
|
|
2462
|
-
children:
|
|
2481
|
+
children: lr
|
|
2463
2482
|
}),
|
|
2464
2483
|
!$ && !U && /* @__PURE__ */ F("div", {
|
|
2465
|
-
className: l("flex items-center gap-2",
|
|
2484
|
+
className: l("flex items-center gap-2", sr ? "flex-nowrap" : "flex-wrap", H.actionRow),
|
|
2466
2485
|
children: [
|
|
2467
|
-
|
|
2486
|
+
sr && cr,
|
|
2468
2487
|
/* @__PURE__ */ P("div", {
|
|
2469
|
-
className: l("flex min-w-0 items-center self-stretch",
|
|
2470
|
-
children:
|
|
2488
|
+
className: l("flex min-w-0 items-center self-stretch", sr ? "flex-1" : "w-full", H.textareaWrap),
|
|
2489
|
+
children: ar
|
|
2471
2490
|
}),
|
|
2472
|
-
!
|
|
2473
|
-
!
|
|
2491
|
+
!sr && cr,
|
|
2492
|
+
!sr && lr,
|
|
2474
2493
|
/* @__PURE__ */ P("div", {
|
|
2475
2494
|
className: l("ms-auto flex flex-shrink-0 items-center gap-2", H.footerActions),
|
|
2476
2495
|
children: Me ? Me({
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-conversation-input",
|
|
3
3
|
"description": "Conversation message input with model selection, attachments, voice input, and edit mode",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0-dev.5",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"react-window": "^2.2.7",
|
|
21
21
|
"@tabler/icons-react": "^3.44.0",
|
|
22
|
-
"@epam/ai-dial-attachment-input": "1.
|
|
22
|
+
"@epam/ai-dial-attachment-input": "1.3.0-dev.5"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@epam/ai-dial-chat-shared": "1.
|
|
25
|
+
"@epam/ai-dial-chat-shared": "1.3.0-dev.5",
|
|
26
26
|
"react": "^19.2.8",
|
|
27
27
|
"@epam/ai-dial-ui-kit": "^0.15.0"
|
|
28
28
|
},
|