@orion-ds/react 4.0.5 → 4.2.0
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/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index10.cjs +1 -1
- package/dist/index10.mjs +1 -1
- package/dist/index100.cjs +1 -1
- package/dist/index100.mjs +20 -40
- package/dist/index100.mjs.map +1 -1
- package/dist/index101.cjs +1 -1
- package/dist/index101.mjs +28 -40
- package/dist/index101.mjs.map +1 -1
- package/dist/index102.cjs +1 -1
- package/dist/index102.mjs +46 -33
- package/dist/index102.mjs.map +1 -1
- package/dist/index103.cjs +1 -1
- package/dist/index103.mjs +42 -27
- package/dist/index103.mjs.map +1 -1
- package/dist/index104.cjs +1 -1
- package/dist/index104.mjs +56 -30
- package/dist/index104.mjs.map +1 -1
- package/dist/index105.cjs +1 -1
- package/dist/index105.mjs +25 -15
- package/dist/index105.mjs.map +1 -1
- package/dist/index106.cjs +1 -1
- package/dist/index106.mjs +64 -52
- package/dist/index106.mjs.map +1 -1
- package/dist/index107.cjs +1 -1
- package/dist/index107.mjs +20 -20
- package/dist/index108.cjs +1 -1
- package/dist/index108.mjs +45 -36
- package/dist/index108.mjs.map +1 -1
- package/dist/index109.cjs +1 -1
- package/dist/index109.mjs +24 -42
- package/dist/index109.mjs.map +1 -1
- package/dist/index11.cjs +1 -1
- package/dist/index11.mjs +1 -1
- package/dist/index110.cjs +1 -1
- package/dist/index110.mjs +40 -18
- package/dist/index110.mjs.map +1 -1
- package/dist/index111.cjs +1 -1
- package/dist/index111.mjs +18 -28
- package/dist/index111.mjs.map +1 -1
- package/dist/index112.cjs +1 -1
- package/dist/index112.mjs +55 -12
- package/dist/index112.mjs.map +1 -1
- package/dist/index114.cjs +1 -1
- package/dist/index114.mjs +62 -28
- package/dist/index114.mjs.map +1 -1
- package/dist/index115.cjs +1 -1
- package/dist/index115.mjs +65 -45
- package/dist/index115.mjs.map +1 -1
- package/dist/index116.cjs +1 -1
- package/dist/index116.mjs +234 -18
- package/dist/index116.mjs.map +1 -1
- package/dist/index117.cjs +1 -1
- package/dist/index117.cjs.map +1 -1
- package/dist/index117.mjs +34 -29
- package/dist/index117.mjs.map +1 -1
- package/dist/index118.cjs +1 -1
- package/dist/index118.cjs.map +1 -1
- package/dist/index118.mjs +44 -31
- package/dist/index118.mjs.map +1 -1
- package/dist/index119.cjs +1 -1
- package/dist/index119.cjs.map +1 -1
- package/dist/index119.mjs +170 -22
- package/dist/index119.mjs.map +1 -1
- package/dist/index12.cjs +1 -1
- package/dist/index12.mjs +1 -1
- package/dist/index120.cjs +1 -1
- package/dist/index120.cjs.map +1 -1
- package/dist/index120.mjs +186 -39
- package/dist/index120.mjs.map +1 -1
- package/dist/index121.cjs +1 -1
- package/dist/index121.cjs.map +1 -1
- package/dist/index121.mjs +29 -66
- package/dist/index121.mjs.map +1 -1
- package/dist/index122.cjs +1 -1
- package/dist/index122.cjs.map +1 -1
- package/dist/index122.mjs +90 -18
- package/dist/index122.mjs.map +1 -1
- package/dist/index123.cjs +1 -1
- package/dist/index123.cjs.map +1 -1
- package/dist/index123.mjs +53 -54
- package/dist/index123.mjs.map +1 -1
- package/dist/index124.cjs +1 -1
- package/dist/index124.cjs.map +1 -1
- package/dist/index124.mjs +66 -30
- package/dist/index124.mjs.map +1 -1
- package/dist/index125.cjs +1 -1
- package/dist/index125.cjs.map +1 -1
- package/dist/index125.mjs +124 -62
- package/dist/index125.mjs.map +1 -1
- package/dist/index126.cjs +1 -1
- package/dist/index126.cjs.map +1 -1
- package/dist/index126.mjs +108 -55
- package/dist/index126.mjs.map +1 -1
- package/dist/index127.cjs +1 -1
- package/dist/index127.cjs.map +1 -1
- package/dist/index127.mjs +111 -44
- package/dist/index127.mjs.map +1 -1
- package/dist/index128.cjs +1 -1
- package/dist/index128.cjs.map +1 -1
- package/dist/index128.mjs +122 -14
- package/dist/index128.mjs.map +1 -1
- package/dist/index129.cjs +1 -1
- package/dist/index129.cjs.map +1 -1
- package/dist/index129.mjs +214 -33
- package/dist/index129.mjs.map +1 -1
- package/dist/index13.cjs +1 -1
- package/dist/index13.mjs +1 -1
- package/dist/index130.cjs +1 -1
- package/dist/index130.mjs +42 -28
- package/dist/index130.mjs.map +1 -1
- package/dist/index131.cjs +1 -1
- package/dist/index131.mjs +40 -22
- package/dist/index131.mjs.map +1 -1
- package/dist/index132.cjs +1 -1
- package/dist/index132.mjs +106 -64
- package/dist/index132.mjs.map +1 -1
- package/dist/index133.cjs +1 -1
- package/dist/index133.mjs +20 -44
- package/dist/index133.mjs.map +1 -1
- package/dist/index134.cjs +1 -1
- package/dist/index134.mjs +30 -57
- package/dist/index134.mjs.map +1 -1
- package/dist/index135.cjs +1 -1
- package/dist/index135.mjs +46 -44
- package/dist/index135.mjs.map +1 -1
- package/dist/index136.cjs +1 -1
- package/dist/index136.mjs +12 -38
- package/dist/index136.mjs.map +1 -1
- package/dist/index137.cjs +1 -1
- package/dist/index137.mjs +32 -28
- package/dist/index137.mjs.map +1 -1
- package/dist/index138.cjs +1 -1
- package/dist/index138.mjs +27 -24
- package/dist/index138.mjs.map +1 -1
- package/dist/index139.cjs +1 -1
- package/dist/index139.mjs +33 -67
- package/dist/index139.mjs.map +1 -1
- package/dist/index14.cjs +1 -1
- package/dist/index14.mjs +1 -1
- package/dist/index140.cjs +1 -1
- package/dist/index140.mjs +57 -76
- package/dist/index140.mjs.map +1 -1
- package/dist/index141.cjs +1 -1
- package/dist/index141.mjs +30 -46
- package/dist/index141.mjs.map +1 -1
- package/dist/index142.cjs +1 -1
- package/dist/index142.mjs +32 -234
- package/dist/index142.mjs.map +1 -1
- package/dist/index143.cjs +1 -1
- package/dist/index143.cjs.map +1 -1
- package/dist/index143.mjs +51 -34
- package/dist/index143.mjs.map +1 -1
- package/dist/index144.cjs +1 -1
- package/dist/index144.cjs.map +1 -1
- package/dist/index144.mjs +17 -44
- package/dist/index144.mjs.map +1 -1
- package/dist/index145.cjs +1 -1
- package/dist/index145.cjs.map +1 -1
- package/dist/index145.mjs +30 -170
- package/dist/index145.mjs.map +1 -1
- package/dist/index146.cjs +1 -1
- package/dist/index146.cjs.map +1 -1
- package/dist/index146.mjs +47 -186
- package/dist/index146.mjs.map +1 -1
- package/dist/index147.cjs +1 -1
- package/dist/index147.cjs.map +1 -1
- package/dist/index147.mjs +43 -29
- package/dist/index147.mjs.map +1 -1
- package/dist/index148.cjs +1 -1
- package/dist/index148.cjs.map +1 -1
- package/dist/index148.mjs +28 -90
- package/dist/index148.mjs.map +1 -1
- package/dist/index149.cjs +1 -1
- package/dist/index149.cjs.map +1 -1
- package/dist/index149.mjs +29 -53
- package/dist/index149.mjs.map +1 -1
- package/dist/index15.cjs +1 -1
- package/dist/index15.mjs +1 -1
- package/dist/index150.cjs +1 -1
- package/dist/index150.cjs.map +1 -1
- package/dist/index150.mjs +30 -66
- package/dist/index150.mjs.map +1 -1
- package/dist/index151.cjs +1 -1
- package/dist/index151.cjs.map +1 -1
- package/dist/index151.mjs +24 -124
- package/dist/index151.mjs.map +1 -1
- package/dist/index152.cjs +1 -1
- package/dist/index152.cjs.map +1 -1
- package/dist/index152.mjs +22 -108
- package/dist/index152.mjs.map +1 -1
- package/dist/index153.cjs +1 -1
- package/dist/index153.cjs.map +1 -1
- package/dist/index153.mjs +36 -111
- package/dist/index153.mjs.map +1 -1
- package/dist/index154.cjs +1 -1
- package/dist/index154.cjs.map +1 -1
- package/dist/index154.mjs +38 -122
- package/dist/index154.mjs.map +1 -1
- package/dist/index155.cjs +1 -1
- package/dist/index155.cjs.map +1 -1
- package/dist/index155.mjs +12 -214
- package/dist/index155.mjs.map +1 -1
- package/dist/index156.cjs +1 -1
- package/dist/index156.mjs +27 -49
- package/dist/index156.mjs.map +1 -1
- package/dist/index157.cjs +1 -1
- package/dist/index157.mjs +38 -24
- package/dist/index157.mjs.map +1 -1
- package/dist/index158.cjs +1 -1
- package/dist/index158.mjs +33 -32
- package/dist/index158.mjs.map +1 -1
- package/dist/index159.cjs +1 -1
- package/dist/index159.mjs +30 -18
- package/dist/index159.mjs.map +1 -1
- package/dist/index16.cjs +1 -1
- package/dist/index16.mjs +1 -1
- package/dist/index160.cjs +1 -1
- package/dist/index160.mjs +14 -26
- package/dist/index160.mjs.map +1 -1
- package/dist/index161.cjs +1 -1
- package/dist/index161.mjs +18 -46
- package/dist/index161.mjs.map +1 -1
- package/dist/index162.cjs +1 -1
- package/dist/index162.mjs +28 -24
- package/dist/index162.mjs.map +1 -1
- package/dist/index163.cjs +1 -1
- package/dist/index163.mjs +18 -56
- package/dist/index163.mjs.map +1 -1
- package/dist/index164.cjs +1 -1
- package/dist/index164.mjs +65 -40
- package/dist/index164.mjs.map +1 -1
- package/dist/index165.cjs +1 -1
- package/dist/index165.mjs +30 -62
- package/dist/index165.mjs.map +1 -1
- package/dist/index166.cjs +1 -1
- package/dist/index166.mjs +44 -20
- package/dist/index166.mjs.map +1 -1
- package/dist/index167.cjs +1 -1
- package/dist/index167.mjs +52 -106
- package/dist/index167.mjs.map +1 -1
- package/dist/index168.cjs +1 -1
- package/dist/index168.cjs.map +1 -1
- package/dist/index168.mjs +37 -21
- package/dist/index168.mjs.map +1 -1
- package/dist/index169.cjs +1 -1
- package/dist/index169.mjs +28 -30
- package/dist/index169.mjs.map +1 -1
- package/dist/index17.cjs +1 -1
- package/dist/index17.mjs +1 -1
- package/dist/index170.cjs +1 -1
- package/dist/index170.mjs +18 -12
- package/dist/index170.mjs.map +1 -1
- package/dist/index171.cjs +1 -1
- package/dist/index171.mjs +33 -32
- package/dist/index171.mjs.map +1 -1
- package/dist/index172.cjs +1 -1
- package/dist/index172.mjs +20 -40
- package/dist/index172.mjs.map +1 -1
- package/dist/index173.cjs +1 -1
- package/dist/index173.cjs.map +1 -1
- package/dist/index173.mjs +25 -37
- package/dist/index173.mjs.map +1 -1
- package/dist/index174.cjs +1 -1
- package/dist/index174.mjs +64 -28
- package/dist/index174.mjs.map +1 -1
- package/dist/index175.cjs +1 -1
- package/dist/index175.mjs +76 -33
- package/dist/index175.mjs.map +1 -1
- package/dist/index176.cjs +1 -1
- package/dist/index176.mjs +40 -52
- package/dist/index176.mjs.map +1 -1
- package/dist/index177.cjs +1 -1
- package/dist/index177.mjs +52 -18
- package/dist/index177.mjs.map +1 -1
- package/dist/index178.cjs +1 -1
- package/dist/index178.mjs +53 -42
- package/dist/index178.mjs.map +1 -1
- package/dist/index179.cjs +1 -1
- package/dist/index179.mjs +18 -28
- package/dist/index179.mjs.map +1 -1
- package/dist/index18.cjs +1 -1
- package/dist/index18.mjs +1 -1
- package/dist/index180.cjs +1 -1
- package/dist/index180.mjs +42 -28
- package/dist/index180.mjs.map +1 -1
- package/dist/index181.cjs +1 -1
- package/dist/index181.mjs +28 -64
- package/dist/index181.mjs.map +1 -1
- package/dist/index182.cjs +1 -1
- package/dist/index182.mjs +17 -17
- package/dist/index182.mjs.map +1 -1
- package/dist/index183.cjs +1 -1
- package/dist/index183.mjs +17 -17
- package/dist/index183.mjs.map +1 -1
- package/dist/index185.cjs +1 -1
- package/dist/index185.mjs +1 -1
- package/dist/index19.cjs +1 -1
- package/dist/index19.mjs +2 -2
- package/dist/index20.cjs +1 -1
- package/dist/index20.mjs +14 -14
- package/dist/index21.cjs +1 -1
- package/dist/index21.cjs.map +1 -1
- package/dist/index21.mjs +1 -1
- package/dist/index22.cjs +1 -1
- package/dist/index22.mjs +1 -1
- package/dist/index23.cjs +1 -1
- package/dist/index23.mjs +1 -1
- package/dist/index24.cjs +1 -1
- package/dist/index24.mjs +1 -1
- package/dist/index25.cjs +1 -1
- package/dist/index25.mjs +1 -1
- package/dist/index26.cjs +1 -1
- package/dist/index26.cjs.map +1 -1
- package/dist/index26.mjs +1 -1
- package/dist/index27.cjs +1 -1
- package/dist/index27.mjs +1 -1
- package/dist/index28.cjs +1 -1
- package/dist/index28.mjs +1 -1
- package/dist/index29.cjs +1 -1
- package/dist/index29.mjs +1 -1
- package/dist/index30.cjs +1 -1
- package/dist/index30.mjs +1 -1
- package/dist/index31.cjs +1 -1
- package/dist/index31.mjs +1 -1
- package/dist/index32.cjs +1 -1
- package/dist/index32.mjs +1 -1
- package/dist/index33.cjs +1 -1
- package/dist/index33.mjs +1 -1
- package/dist/index34.cjs +1 -1
- package/dist/index34.mjs +1 -1
- package/dist/index35.cjs +1 -1
- package/dist/index35.mjs +1 -1
- package/dist/index36.cjs +1 -1
- package/dist/index36.mjs +1 -1
- package/dist/index37.cjs +1 -1
- package/dist/index37.mjs +1 -1
- package/dist/index38.cjs +1 -1
- package/dist/index38.mjs +1 -1
- package/dist/index39.cjs +1 -1
- package/dist/index39.mjs +1 -1
- package/dist/index40.cjs +1 -1
- package/dist/index40.mjs +1 -1
- package/dist/index42.cjs +1 -1
- package/dist/index42.mjs +1 -1
- package/dist/index43.cjs +1 -1
- package/dist/index43.mjs +1 -1
- package/dist/index46.cjs +1 -1
- package/dist/index46.mjs +1 -1
- package/dist/index47.cjs +1 -1
- package/dist/index47.mjs +1 -1
- package/dist/index49.cjs +1 -1
- package/dist/index49.mjs +1 -1
- package/dist/index5.cjs +1 -1
- package/dist/index5.mjs +1 -1
- package/dist/index50.cjs +1 -1
- package/dist/index50.mjs +1 -1
- package/dist/index51.cjs +1 -1
- package/dist/index51.mjs +1 -1
- package/dist/index52.cjs +1 -1
- package/dist/index52.mjs +1 -1
- package/dist/index53.cjs +1 -1
- package/dist/index53.mjs +1 -1
- package/dist/index54.cjs +1 -1
- package/dist/index54.mjs +1 -1
- package/dist/index55.cjs +1 -1
- package/dist/index55.mjs +1 -1
- package/dist/index56.cjs +1 -1
- package/dist/index56.mjs +1 -1
- package/dist/index57.cjs +1 -1
- package/dist/index57.mjs +1 -1
- package/dist/index58.cjs +1 -1
- package/dist/index58.mjs +1 -1
- package/dist/index59.cjs +1 -1
- package/dist/index59.mjs +1 -1
- package/dist/index6.cjs +1 -1
- package/dist/index6.mjs +1 -1
- package/dist/index60.cjs +1 -1
- package/dist/index60.mjs +1 -1
- package/dist/index61.cjs +1 -1
- package/dist/index61.mjs +1 -1
- package/dist/index62.cjs +1 -1
- package/dist/index62.mjs +1 -1
- package/dist/index63.cjs +1 -1
- package/dist/index63.mjs +1 -1
- package/dist/index64.cjs +1 -1
- package/dist/index64.mjs +1 -1
- package/dist/index65.cjs +1 -1
- package/dist/index65.mjs +1 -1
- package/dist/index66.cjs +1 -1
- package/dist/index66.mjs +1 -1
- package/dist/index67.cjs +1 -1
- package/dist/index67.mjs +1 -1
- package/dist/index68.cjs +1 -1
- package/dist/index68.mjs +1 -1
- package/dist/index69.cjs +1 -1
- package/dist/index69.mjs +1 -1
- package/dist/index7.cjs +1 -1
- package/dist/index7.mjs +1 -1
- package/dist/index70.cjs +1 -1
- package/dist/index70.mjs +1 -1
- package/dist/index71.cjs +1 -1
- package/dist/index71.mjs +1 -1
- package/dist/index72.cjs +1 -1
- package/dist/index72.mjs +1 -1
- package/dist/index73.cjs +1 -1
- package/dist/index73.mjs +1 -1
- package/dist/index75.cjs +7 -10
- package/dist/index75.cjs.map +1 -1
- package/dist/index75.mjs +18 -21
- package/dist/index75.mjs.map +1 -1
- package/dist/index76.cjs +1 -1
- package/dist/index76.mjs +1 -1
- package/dist/index77.cjs +1 -1
- package/dist/index77.mjs +1 -1
- package/dist/index78.cjs +1 -1
- package/dist/index78.mjs +1 -1
- package/dist/index79.cjs +1 -1
- package/dist/index79.mjs +1 -1
- package/dist/index8.cjs +1 -1
- package/dist/index8.mjs +1 -1
- package/dist/index80.cjs +1 -1
- package/dist/index80.mjs +1 -1
- package/dist/index81.cjs +1 -1
- package/dist/index81.mjs +1 -1
- package/dist/index82.cjs +1 -1
- package/dist/index82.mjs +2 -2
- package/dist/index9.cjs +1 -1
- package/dist/index9.mjs +1 -1
- package/dist/index97.cjs +1 -1
- package/dist/index97.cjs.map +1 -1
- package/dist/index97.mjs +62 -154
- package/dist/index97.mjs.map +1 -1
- package/dist/index98.cjs +1 -1
- package/dist/index98.cjs.map +1 -1
- package/dist/index98.mjs +138 -202
- package/dist/index98.mjs.map +1 -1
- package/dist/index99.cjs +1 -1
- package/dist/index99.cjs.map +1 -1
- package/dist/index99.mjs +218 -30
- package/dist/index99.mjs.map +1 -1
- package/package.json +1 -5
package/dist/index145.mjs
CHANGED
|
@@ -1,174 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
case "error":
|
|
17
|
-
return /* @__PURE__ */ s(R, { size: 12 });
|
|
18
|
-
default:
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
}, E = ({
|
|
22
|
-
role: a,
|
|
23
|
-
content: c,
|
|
24
|
-
timestamp: d,
|
|
25
|
-
status: r,
|
|
26
|
-
attachments: o,
|
|
27
|
-
avatar: b,
|
|
28
|
-
showAvatar: k,
|
|
29
|
-
actions: g,
|
|
30
|
-
isStreaming: B,
|
|
31
|
-
onImageClick: u,
|
|
32
|
-
onRetry: h,
|
|
33
|
-
reaction: l,
|
|
34
|
-
onReaction: m,
|
|
35
|
-
children: f,
|
|
36
|
-
className: v,
|
|
37
|
-
...p
|
|
38
|
-
}) => {
|
|
39
|
-
const t = a === "user", A = a === "system", N = a === "assistant", C = k ?? !1;
|
|
40
|
-
return A ? /* @__PURE__ */ s(
|
|
41
|
-
"div",
|
|
42
|
-
{
|
|
43
|
-
className: [e.message, v].filter(Boolean).join(" "),
|
|
44
|
-
role: "listitem",
|
|
45
|
-
...p,
|
|
46
|
-
children: /* @__PURE__ */ s("div", { className: e.messageContent, children: /* @__PURE__ */ s("div", { className: e.messageBubbleSystem, children: f || c }) })
|
|
47
|
-
}
|
|
48
|
-
) : /* @__PURE__ */ i(
|
|
49
|
-
"div",
|
|
50
|
-
{
|
|
51
|
-
className: [
|
|
52
|
-
e.message,
|
|
53
|
-
t && e.messageUser,
|
|
54
|
-
N && e.messageAssistant,
|
|
55
|
-
v
|
|
56
|
-
].filter(Boolean).join(" "),
|
|
57
|
-
role: "listitem",
|
|
58
|
-
...p,
|
|
59
|
-
children: [
|
|
60
|
-
C && /* @__PURE__ */ s(
|
|
61
|
-
"div",
|
|
62
|
-
{
|
|
63
|
-
className: [
|
|
64
|
-
e.messageAvatar,
|
|
65
|
-
t ? e.messageAvatarUser : e.messageAvatarAssistant
|
|
66
|
-
].filter(Boolean).join(" "),
|
|
67
|
-
"aria-hidden": "true",
|
|
68
|
-
children: b || (t ? /* @__PURE__ */ s(j, { size: 18 }) : /* @__PURE__ */ s(y, { size: 18 }))
|
|
69
|
-
}
|
|
70
|
-
),
|
|
71
|
-
/* @__PURE__ */ i("div", { className: e.messageContent, children: [
|
|
72
|
-
/* @__PURE__ */ i(
|
|
73
|
-
"div",
|
|
74
|
-
{
|
|
75
|
-
className: [
|
|
76
|
-
e.messageBubble,
|
|
77
|
-
t ? e.messageBubbleUser : e.messageBubbleAssistant
|
|
78
|
-
].filter(Boolean).join(" "),
|
|
79
|
-
children: [
|
|
80
|
-
f || /* @__PURE__ */ s(
|
|
81
|
-
x,
|
|
82
|
-
{
|
|
83
|
-
content: c,
|
|
84
|
-
className: t ? e.markdownUser : void 0
|
|
85
|
-
}
|
|
86
|
-
),
|
|
87
|
-
B && /* @__PURE__ */ s("span", { className: e.streamingCursor })
|
|
88
|
-
]
|
|
89
|
-
}
|
|
90
|
-
),
|
|
91
|
-
o && o.length > 0 && /* @__PURE__ */ s("div", { className: e.messageAttachments, children: o.map((n) => /* @__PURE__ */ s(
|
|
92
|
-
D,
|
|
93
|
-
{
|
|
94
|
-
attachment: n,
|
|
95
|
-
onClick: n.type === "image" && u ? () => u(n) : void 0
|
|
96
|
-
},
|
|
97
|
-
n.id
|
|
98
|
-
)) }),
|
|
99
|
-
/* @__PURE__ */ i("div", { className: e.messageFooter, children: [
|
|
100
|
-
d && /* @__PURE__ */ s("span", { className: e.messageTimestamp, children: F(d) }),
|
|
101
|
-
r && /* @__PURE__ */ i(
|
|
102
|
-
"span",
|
|
103
|
-
{
|
|
104
|
-
className: [
|
|
105
|
-
e.messageStatus,
|
|
106
|
-
r === "error" && e.messageStatusError
|
|
107
|
-
].filter(Boolean).join(" "),
|
|
108
|
-
children: [
|
|
109
|
-
M(r),
|
|
110
|
-
r === "error" && "Failed to send"
|
|
111
|
-
]
|
|
112
|
-
}
|
|
113
|
-
),
|
|
114
|
-
r === "error" && h && /* @__PURE__ */ i(
|
|
115
|
-
"button",
|
|
116
|
-
{
|
|
117
|
-
className: e.messageRetry,
|
|
118
|
-
onClick: h,
|
|
119
|
-
"aria-label": "Retry sending message",
|
|
120
|
-
children: [
|
|
121
|
-
/* @__PURE__ */ s(z, { size: 12 }),
|
|
122
|
-
"Retry"
|
|
123
|
-
]
|
|
124
|
-
}
|
|
125
|
-
),
|
|
126
|
-
g && /* @__PURE__ */ s("div", { className: e.messageActions, children: g }),
|
|
127
|
-
N && m && /* @__PURE__ */ i(
|
|
128
|
-
"div",
|
|
129
|
-
{
|
|
130
|
-
className: [
|
|
131
|
-
e.messageReactions,
|
|
132
|
-
l && e.messageReactionsVisible
|
|
133
|
-
].filter(Boolean).join(" "),
|
|
134
|
-
children: [
|
|
135
|
-
/* @__PURE__ */ s(
|
|
136
|
-
"button",
|
|
137
|
-
{
|
|
138
|
-
className: [
|
|
139
|
-
e.messageReactionButton,
|
|
140
|
-
l === "like" && e.messageReactionActive
|
|
141
|
-
].filter(Boolean).join(" "),
|
|
142
|
-
onClick: () => m("like"),
|
|
143
|
-
"aria-label": "Like this response",
|
|
144
|
-
"aria-pressed": l === "like",
|
|
145
|
-
children: /* @__PURE__ */ s(U, { size: 14 })
|
|
146
|
-
}
|
|
147
|
-
),
|
|
148
|
-
/* @__PURE__ */ s(
|
|
149
|
-
"button",
|
|
150
|
-
{
|
|
151
|
-
className: [
|
|
152
|
-
e.messageReactionButton,
|
|
153
|
-
l === "dislike" && e.messageReactionActive
|
|
154
|
-
].filter(Boolean).join(" "),
|
|
155
|
-
onClick: () => m("dislike"),
|
|
156
|
-
"aria-label": "Dislike this response",
|
|
157
|
-
"aria-pressed": l === "dislike",
|
|
158
|
-
children: /* @__PURE__ */ s(w, { size: 14 })
|
|
159
|
-
}
|
|
160
|
-
)
|
|
161
|
-
]
|
|
162
|
-
}
|
|
163
|
-
)
|
|
164
|
-
] })
|
|
165
|
-
] })
|
|
166
|
-
]
|
|
167
|
-
}
|
|
168
|
-
);
|
|
1
|
+
const e = "_selectContainer_uomk2_10", o = "_fullWidth_uomk2_16", r = "_label_uomk2_21", _ = "_optional_uomk2_31", t = "_selectWrapper_uomk2_38", l = "_select_uomk2_10", s = "_error_uomk2_115", c = "_placeholder_uomk2_132", n = "_sm_uomk2_137", a = "_md_uomk2_143", m = "_lg_uomk2_149", u = "_helperText_uomk2_156", p = "_errorMessage_uomk2_163", k = "_errorIcon_uomk2_172", d = {
|
|
2
|
+
selectContainer: e,
|
|
3
|
+
fullWidth: o,
|
|
4
|
+
label: r,
|
|
5
|
+
optional: _,
|
|
6
|
+
selectWrapper: t,
|
|
7
|
+
select: l,
|
|
8
|
+
error: s,
|
|
9
|
+
placeholder: c,
|
|
10
|
+
sm: n,
|
|
11
|
+
md: a,
|
|
12
|
+
lg: m,
|
|
13
|
+
helperText: u,
|
|
14
|
+
errorMessage: p,
|
|
15
|
+
errorIcon: k
|
|
169
16
|
};
|
|
170
|
-
E.displayName = "ChatMessage";
|
|
171
17
|
export {
|
|
172
|
-
|
|
18
|
+
d as default,
|
|
19
|
+
s as error,
|
|
20
|
+
k as errorIcon,
|
|
21
|
+
p as errorMessage,
|
|
22
|
+
o as fullWidth,
|
|
23
|
+
u as helperText,
|
|
24
|
+
r as label,
|
|
25
|
+
m as lg,
|
|
26
|
+
a as md,
|
|
27
|
+
_ as optional,
|
|
28
|
+
c as placeholder,
|
|
29
|
+
l as select,
|
|
30
|
+
e as selectContainer,
|
|
31
|
+
t as selectWrapper,
|
|
32
|
+
n as sm
|
|
173
33
|
};
|
|
174
34
|
//# sourceMappingURL=index145.mjs.map
|
package/dist/index145.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index145.mjs","sources":["../src/components/Chat/components/ChatMessage.tsx"],"sourcesContent":["/**\n * ChatMessage Component\n *\n * Individual message bubble with support for text, markdown,\n * attachments, reactions, retry, and various states.\n */\n\nimport React from \"react\";\nimport {\n User,\n Bot,\n AlertCircle,\n Check,\n Clock,\n RotateCcw,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\nimport type { ChatMessageProps } from \"../Chat.types\";\nimport { ChatMarkdown } from \"./ChatMarkdown\";\nimport { ChatAttachment } from \"./ChatAttachment\";\nimport styles from \"../Chat.module.css\";\n\n// Format timestamp\nconst formatTimestamp = (date?: Date): string => {\n if (!date) return \"\";\n return new Intl.DateTimeFormat(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n }).format(date);\n};\n\n// Get status icon\nconst getStatusIcon = (status?: string) => {\n switch (status) {\n case \"sending\":\n return <Clock size={12} />;\n case \"sent\":\n return <Check size={12} />;\n case \"error\":\n return <AlertCircle size={12} />;\n default:\n return null;\n }\n};\n\nexport const ChatMessage: React.FC<ChatMessageProps> = ({\n role,\n content,\n timestamp,\n status,\n attachments,\n avatar,\n showAvatar,\n actions,\n isStreaming,\n onImageClick,\n onRetry,\n reaction,\n onReaction,\n children,\n className,\n ...rest\n}) => {\n const isUser = role === \"user\";\n const isSystem = role === \"system\";\n const isAssistant = role === \"assistant\";\n const shouldShowAvatar = showAvatar ?? false;\n\n // System messages have a different layout\n if (isSystem) {\n return (\n <div\n className={[styles.message, className].filter(Boolean).join(\" \")}\n role=\"listitem\"\n {...rest}\n >\n <div className={styles.messageContent}>\n <div className={styles.messageBubbleSystem}>\n {children || content}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={[\n styles.message,\n isUser && styles.messageUser,\n isAssistant && styles.messageAssistant,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n role=\"listitem\"\n {...rest}\n >\n {/* Avatar */}\n {shouldShowAvatar && (\n <div\n className={[\n styles.messageAvatar,\n isUser ? styles.messageAvatarUser : styles.messageAvatarAssistant,\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-hidden=\"true\"\n >\n {avatar || (isUser ? <User size={18} /> : <Bot size={18} />)}\n </div>\n )}\n\n {/* Content */}\n <div className={styles.messageContent}>\n {/* Message bubble */}\n <div\n className={[\n styles.messageBubble,\n isUser ? styles.messageBubbleUser : styles.messageBubbleAssistant,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {children || (\n <ChatMarkdown\n content={content}\n className={isUser ? styles.markdownUser : undefined}\n />\n )}\n\n {/* Streaming cursor */}\n {isStreaming && <span className={styles.streamingCursor} />}\n </div>\n\n {/* Attachments */}\n {attachments && attachments.length > 0 && (\n <div className={styles.messageAttachments}>\n {attachments.map((attachment) => (\n <ChatAttachment\n key={attachment.id}\n attachment={attachment}\n onClick={\n attachment.type === \"image\" && onImageClick\n ? () => onImageClick(attachment)\n : undefined\n }\n />\n ))}\n </div>\n )}\n\n {/* Footer (timestamp, status, actions, reactions) */}\n <div className={styles.messageFooter}>\n {timestamp && (\n <span className={styles.messageTimestamp}>\n {formatTimestamp(timestamp)}\n </span>\n )}\n\n {status && (\n <span\n className={[\n styles.messageStatus,\n status === \"error\" && styles.messageStatusError,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n {getStatusIcon(status)}\n {status === \"error\" && \"Failed to send\"}\n </span>\n )}\n\n {/* Retry button for failed messages */}\n {status === \"error\" && onRetry && (\n <button\n className={styles.messageRetry}\n onClick={onRetry}\n aria-label=\"Retry sending message\"\n >\n <RotateCcw size={12} />\n Retry\n </button>\n )}\n\n {actions && <div className={styles.messageActions}>{actions}</div>}\n\n {/* Reactions for assistant messages */}\n {isAssistant && onReaction && (\n <div\n className={[\n styles.messageReactions,\n reaction && styles.messageReactionsVisible,\n ]\n .filter(Boolean)\n .join(\" \")}\n >\n <button\n className={[\n styles.messageReactionButton,\n reaction === \"like\" && styles.messageReactionActive,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => onReaction(\"like\")}\n aria-label=\"Like this response\"\n aria-pressed={reaction === \"like\"}\n >\n <ThumbsUp size={14} />\n </button>\n <button\n className={[\n styles.messageReactionButton,\n reaction === \"dislike\" && styles.messageReactionActive,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => onReaction(\"dislike\")}\n aria-label=\"Dislike this response\"\n aria-pressed={reaction === \"dislike\"}\n >\n <ThumbsDown size={14} />\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nChatMessage.displayName = \"ChatMessage\";\n"],"names":["formatTimestamp","date","getStatusIcon","status","jsx","Clock","Check","AlertCircle","ChatMessage","role","content","timestamp","attachments","avatar","showAvatar","actions","isStreaming","onImageClick","onRetry","reaction","onReaction","children","className","rest","isUser","isSystem","isAssistant","shouldShowAvatar","styles","jsxs","User","Bot","ChatMarkdown","attachment","ChatAttachment","RotateCcw","ThumbsUp","ThumbsDown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index145.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
package/dist/index146.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_fieldContainer_aewgj_9",r="_fullWidth_aewgj_15",t="_disabled_aewgj_19",n="_label_aewgj_24",o="_labelText_aewgj_40",a="_optional_aewgj_44",_="_required_aewgj_50",s="_inputWrapper_aewgj_57",l="_input_aewgj_57",c="_error_aewgj_133",i="_leftIcon_aewgj_150",g="_rightIcon_aewgj_151",I="_rightIconInteractive_aewgj_171",d="_errorIconInline_aewgj_202",h="_errorIconMessage_aewgj_208",p="_sm_aewgj_213",j="_md_aewgj_222",u="_lg_aewgj_231",w="_hasLeftIcon_aewgj_241",f="_hasRightIcon_aewgj_245",b="_helperText_aewgj_250",M="_errorMessage_aewgj_259",m={fieldContainer:e,fullWidth:r,disabled:t,label:n,labelText:o,optional:a,required:_,inputWrapper:s,input:l,error:c,leftIcon:i,rightIcon:g,rightIconInteractive:I,errorIconInline:d,errorIconMessage:h,sm:p,md:j,lg:u,hasLeftIcon:w,hasRightIcon:f,helperText:b,errorMessage:M};exports.default=m;exports.disabled=t;exports.error=c;exports.errorIconInline=d;exports.errorIconMessage=h;exports.errorMessage=M;exports.fieldContainer=e;exports.fullWidth=r;exports.hasLeftIcon=w;exports.hasRightIcon=f;exports.helperText=b;exports.input=l;exports.inputWrapper=s;exports.label=n;exports.labelText=o;exports.leftIcon=i;exports.lg=u;exports.md=j;exports.optional=a;exports.required=_;exports.rightIcon=g;exports.rightIconInteractive=I;exports.sm=p;
|
|
2
2
|
//# sourceMappingURL=index146.cjs.map
|
package/dist/index146.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index146.cjs","sources":["../src/components/Chat/components/ChatInput.tsx"],"sourcesContent":["/**\n * ChatInput Component\n *\n * Multi-line input with attachment support, voice recording,\n * and send functionality.\n */\n\nimport React, { forwardRef, useCallback, useState, useRef } from \"react\";\nimport { Send, Paperclip, Mic, X, Image, File } from \"lucide-react\";\nimport type { ChatInputProps } from \"../Chat.types\";\nimport { useChatInput } from \"../hooks/useChatInput\";\nimport { ChatVoiceRecorder } from \"./ChatVoiceRecorder\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\n// Get file icon\nconst getFileIcon = (file: File) => {\n if (file.type.startsWith(\"image/\")) {\n return <Image size={14} />;\n }\n return <File size={14} />;\n};\n\nexport const ChatInput = forwardRef<HTMLTextAreaElement, ChatInputProps>(\n (\n {\n onSend,\n placeholder = \"Type a message...\",\n allowAttachments = true,\n allowVoiceRecording = true,\n allowAudioUpload: _allowAudioUpload = true,\n disabled = false,\n maxLength,\n acceptedFileTypes = [\n \"image/*\",\n \"audio/*\",\n \".pdf\",\n \".doc\",\n \".docx\",\n \".txt\",\n ],\n isLoading = false,\n pendingAttachments: externalAttachments,\n onRemoveAttachment: externalOnRemove,\n className,\n ...rest\n },\n forwardedRef,\n ) => {\n const [showVoiceRecorder, setShowVoiceRecorder] = useState(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const {\n value,\n setValue,\n attachments,\n addAttachments,\n removeAttachment,\n handleSubmit: internalSubmit,\n handleKeyDown,\n textareaRef,\n isEmpty,\n } = useChatInput({\n maxLength,\n onSend,\n disabled: disabled || isLoading,\n });\n\n // Use external attachments if provided, otherwise internal\n const displayAttachments = externalAttachments || attachments;\n const handleRemoveAttachment = externalOnRemove || removeAttachment;\n\n // Combine refs via callback ref\n const combinedRef = useCallback(\n (node: HTMLTextAreaElement | null) => {\n // Set internal ref\n (\n textareaRef as React.MutableRefObject<HTMLTextAreaElement | null>\n ).current = node;\n // Forward ref\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef, textareaRef],\n );\n\n // Handle file selection\n const handleFileSelect = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (files && files.length > 0) {\n addAttachments(Array.from(files));\n }\n // Reset input\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n },\n [addAttachments],\n );\n\n // Handle paste for images\n const handlePaste = useCallback(\n (e: React.ClipboardEvent) => {\n const items = e.clipboardData.items;\n const imageFiles: File[] = [];\n\n for (const item of items) {\n if (item.type.startsWith(\"image/\")) {\n const file = item.getAsFile();\n if (file) {\n imageFiles.push(file);\n }\n }\n }\n\n if (imageFiles.length > 0) {\n e.preventDefault();\n addAttachments(imageFiles);\n }\n },\n [addAttachments],\n );\n\n // Handle voice recording complete\n const handleVoiceRecordingComplete = useCallback(\n (blob: Blob) => {\n // Create a file-like object from the blob\n const file = Object.assign(blob, {\n name: `voice-${Date.now()}.webm`,\n lastModified: Date.now(),\n }) as File;\n addAttachments([file]);\n setShowVoiceRecorder(false);\n },\n [addAttachments],\n );\n\n // Handle submit\n const handleSubmit = useCallback(() => {\n if (disabled || isLoading) return;\n internalSubmit();\n }, [disabled, isLoading, internalSubmit]);\n\n const canSend = !isEmpty || displayAttachments.length > 0;\n\n return (\n <div\n className={[styles.inputContainer, className].filter(Boolean).join(\" \")}\n >\n <div className={styles.inputWrapper}>\n {/* Pending attachments */}\n {displayAttachments.length > 0 && (\n <div className={styles.pendingAttachments}>\n {displayAttachments.map((file, index) => (\n <div key={index} className={styles.pendingAttachment}>\n {getFileIcon(file)}\n <span>{file.name}</span>\n <span className={styles.pendingAttachmentSize}>\n ({formatFileSize(file.size)})\n </span>\n <button\n className={styles.pendingAttachmentRemove}\n onClick={() => handleRemoveAttachment(index)}\n aria-label={`Remove ${file.name}`}\n >\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n )}\n\n {/* Voice recorder overlay */}\n {showVoiceRecorder && (\n <ChatVoiceRecorder\n onRecordingComplete={handleVoiceRecordingComplete}\n onCancel={() => setShowVoiceRecorder(false)}\n />\n )}\n\n {/* Main input box */}\n {!showVoiceRecorder && (\n <div className={styles.inputBox}>\n {/* Left actions (attachments) */}\n {allowAttachments && (\n <div className={styles.inputActions}>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={acceptedFileTypes.join(\",\")}\n multiple\n onChange={handleFileSelect}\n style={{ display: \"none\" }}\n aria-hidden=\"true\"\n />\n <button\n className={styles.inputButton}\n onClick={() => fileInputRef.current?.click()}\n disabled={disabled || isLoading}\n aria-label=\"Attach file\"\n title=\"Attach file\"\n >\n <Paperclip size={20} />\n </button>\n </div>\n )}\n\n {/* Textarea */}\n <textarea\n ref={combinedRef}\n className={styles.inputTextarea}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n placeholder={placeholder}\n disabled={disabled || isLoading}\n maxLength={maxLength}\n rows={1}\n aria-label=\"Message input\"\n {...rest}\n />\n\n {/* Right actions (voice, send) */}\n <div className={styles.inputActions}>\n {/* Voice recording button */}\n {allowVoiceRecording &&\n !value &&\n displayAttachments.length === 0 && (\n <button\n className={styles.inputButton}\n onClick={() => setShowVoiceRecorder(true)}\n disabled={disabled || isLoading}\n aria-label=\"Record voice message\"\n title=\"Record voice message\"\n >\n <Mic size={20} />\n </button>\n )}\n\n {/* Send button */}\n <button\n className={[\n styles.inputButton,\n canSend && styles.inputButtonPrimary,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={handleSubmit}\n disabled={disabled || isLoading || !canSend}\n aria-label=\"Send message\"\n title=\"Send message\"\n >\n {isLoading ? (\n <span className={styles.inputSpinner} />\n ) : (\n <Send size={20} />\n )}\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nChatInput.displayName = \"ChatInput\";\n"],"names":["getFileIcon","file","jsx","Image","File","ChatInput","forwardRef","onSend","placeholder","allowAttachments","allowVoiceRecording","_allowAudioUpload","disabled","maxLength","acceptedFileTypes","isLoading","externalAttachments","externalOnRemove","className","rest","forwardedRef","showVoiceRecorder","setShowVoiceRecorder","useState","fileInputRef","useRef","value","setValue","attachments","addAttachments","removeAttachment","internalSubmit","handleKeyDown","textareaRef","isEmpty","useChatInput","displayAttachments","handleRemoveAttachment","combinedRef","useCallback","node","handleFileSelect","e","files","handlePaste","items","imageFiles","item","handleVoiceRecordingComplete","blob","handleSubmit","canSend","styles","jsxs","index","formatFileSize","X","ChatVoiceRecorder","Paperclip","Mic","Send"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index146.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index146.mjs
CHANGED
|
@@ -1,189 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
isLoading: i = !1,
|
|
26
|
-
pendingAttachments: x,
|
|
27
|
-
onRemoveAttachment: B,
|
|
28
|
-
className: j,
|
|
29
|
-
...k
|
|
30
|
-
}, o) => {
|
|
31
|
-
const [g, h] = O(!1), m = X(null), {
|
|
32
|
-
value: v,
|
|
33
|
-
setValue: D,
|
|
34
|
-
attachments: F,
|
|
35
|
-
addAttachments: l,
|
|
36
|
-
removeAttachment: I,
|
|
37
|
-
handleSubmit: A,
|
|
38
|
-
handleKeyDown: V,
|
|
39
|
-
textareaRef: b,
|
|
40
|
-
isEmpty: P
|
|
41
|
-
} = Y({
|
|
42
|
-
maxLength: f,
|
|
43
|
-
onSend: p,
|
|
44
|
-
disabled: s || i
|
|
45
|
-
}), u = x || F, M = B || I, W = r(
|
|
46
|
-
(e) => {
|
|
47
|
-
b.current = e, typeof o == "function" ? o(e) : o && (o.current = e);
|
|
48
|
-
},
|
|
49
|
-
[o, b]
|
|
50
|
-
), K = r(
|
|
51
|
-
(e) => {
|
|
52
|
-
const a = e.target.files;
|
|
53
|
-
a && a.length > 0 && l(Array.from(a)), m.current && (m.current.value = "");
|
|
54
|
-
},
|
|
55
|
-
[l]
|
|
56
|
-
), T = r(
|
|
57
|
-
(e) => {
|
|
58
|
-
const a = e.clipboardData.items, d = [];
|
|
59
|
-
for (const C of a)
|
|
60
|
-
if (C.type.startsWith("image/")) {
|
|
61
|
-
const N = C.getAsFile();
|
|
62
|
-
N && d.push(N);
|
|
63
|
-
}
|
|
64
|
-
d.length > 0 && (e.preventDefault(), l(d));
|
|
65
|
-
},
|
|
66
|
-
[l]
|
|
67
|
-
), U = r(
|
|
68
|
-
(e) => {
|
|
69
|
-
const a = Object.assign(e, {
|
|
70
|
-
name: `voice-${Date.now()}.webm`,
|
|
71
|
-
lastModified: Date.now()
|
|
72
|
-
});
|
|
73
|
-
l([a]), h(!1);
|
|
74
|
-
},
|
|
75
|
-
[l]
|
|
76
|
-
), $ = r(() => {
|
|
77
|
-
s || i || A();
|
|
78
|
-
}, [s, i, A]), y = !P || u.length > 0;
|
|
79
|
-
return /* @__PURE__ */ t(
|
|
80
|
-
"div",
|
|
81
|
-
{
|
|
82
|
-
className: [n.inputContainer, j].filter(Boolean).join(" "),
|
|
83
|
-
children: /* @__PURE__ */ c("div", { className: n.inputWrapper, children: [
|
|
84
|
-
u.length > 0 && /* @__PURE__ */ t("div", { className: n.pendingAttachments, children: u.map((e, a) => /* @__PURE__ */ c("div", { className: n.pendingAttachment, children: [
|
|
85
|
-
ee(e),
|
|
86
|
-
/* @__PURE__ */ t("span", { children: e.name }),
|
|
87
|
-
/* @__PURE__ */ c("span", { className: n.pendingAttachmentSize, children: [
|
|
88
|
-
"(",
|
|
89
|
-
L(e.size),
|
|
90
|
-
")"
|
|
91
|
-
] }),
|
|
92
|
-
/* @__PURE__ */ t(
|
|
93
|
-
"button",
|
|
94
|
-
{
|
|
95
|
-
className: n.pendingAttachmentRemove,
|
|
96
|
-
onClick: () => M(a),
|
|
97
|
-
"aria-label": `Remove ${e.name}`,
|
|
98
|
-
children: /* @__PURE__ */ t(_, { size: 14 })
|
|
99
|
-
}
|
|
100
|
-
)
|
|
101
|
-
] }, a)) }),
|
|
102
|
-
g && /* @__PURE__ */ t(
|
|
103
|
-
Z,
|
|
104
|
-
{
|
|
105
|
-
onRecordingComplete: U,
|
|
106
|
-
onCancel: () => h(!1)
|
|
107
|
-
}
|
|
108
|
-
),
|
|
109
|
-
!g && /* @__PURE__ */ c("div", { className: n.inputBox, children: [
|
|
110
|
-
R && /* @__PURE__ */ c("div", { className: n.inputActions, children: [
|
|
111
|
-
/* @__PURE__ */ t(
|
|
112
|
-
"input",
|
|
113
|
-
{
|
|
114
|
-
ref: m,
|
|
115
|
-
type: "file",
|
|
116
|
-
accept: w.join(","),
|
|
117
|
-
multiple: !0,
|
|
118
|
-
onChange: K,
|
|
119
|
-
style: { display: "none" },
|
|
120
|
-
"aria-hidden": "true"
|
|
121
|
-
}
|
|
122
|
-
),
|
|
123
|
-
/* @__PURE__ */ t(
|
|
124
|
-
"button",
|
|
125
|
-
{
|
|
126
|
-
className: n.inputButton,
|
|
127
|
-
onClick: () => m.current?.click(),
|
|
128
|
-
disabled: s || i,
|
|
129
|
-
"aria-label": "Attach file",
|
|
130
|
-
title: "Attach file",
|
|
131
|
-
children: /* @__PURE__ */ t(q, { size: 20 })
|
|
132
|
-
}
|
|
133
|
-
)
|
|
134
|
-
] }),
|
|
135
|
-
/* @__PURE__ */ t(
|
|
136
|
-
"textarea",
|
|
137
|
-
{
|
|
138
|
-
ref: W,
|
|
139
|
-
className: n.inputTextarea,
|
|
140
|
-
value: v,
|
|
141
|
-
onChange: (e) => D(e.target.value),
|
|
142
|
-
onKeyDown: V,
|
|
143
|
-
onPaste: T,
|
|
144
|
-
placeholder: S,
|
|
145
|
-
disabled: s || i,
|
|
146
|
-
maxLength: f,
|
|
147
|
-
rows: 1,
|
|
148
|
-
"aria-label": "Message input",
|
|
149
|
-
...k
|
|
150
|
-
}
|
|
151
|
-
),
|
|
152
|
-
/* @__PURE__ */ c("div", { className: n.inputActions, children: [
|
|
153
|
-
z && !v && u.length === 0 && /* @__PURE__ */ t(
|
|
154
|
-
"button",
|
|
155
|
-
{
|
|
156
|
-
className: n.inputButton,
|
|
157
|
-
onClick: () => h(!0),
|
|
158
|
-
disabled: s || i,
|
|
159
|
-
"aria-label": "Record voice message",
|
|
160
|
-
title: "Record voice message",
|
|
161
|
-
children: /* @__PURE__ */ t(G, { size: 20 })
|
|
162
|
-
}
|
|
163
|
-
),
|
|
164
|
-
/* @__PURE__ */ t(
|
|
165
|
-
"button",
|
|
166
|
-
{
|
|
167
|
-
className: [
|
|
168
|
-
n.inputButton,
|
|
169
|
-
y && n.inputButtonPrimary
|
|
170
|
-
].filter(Boolean).join(" "),
|
|
171
|
-
onClick: $,
|
|
172
|
-
disabled: s || i || !y,
|
|
173
|
-
"aria-label": "Send message",
|
|
174
|
-
title: "Send message",
|
|
175
|
-
children: i ? /* @__PURE__ */ t("span", { className: n.inputSpinner }) : /* @__PURE__ */ t(H, { size: 20 })
|
|
176
|
-
}
|
|
177
|
-
)
|
|
178
|
-
] })
|
|
179
|
-
] })
|
|
180
|
-
] })
|
|
181
|
-
}
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
);
|
|
185
|
-
te.displayName = "ChatInput";
|
|
1
|
+
const e = "_fieldContainer_aewgj_9", n = "_fullWidth_aewgj_15", t = "_disabled_aewgj_19", o = "_label_aewgj_24", _ = "_labelText_aewgj_40", r = "_optional_aewgj_44", a = "_required_aewgj_50", s = "_inputWrapper_aewgj_57", c = "_input_aewgj_57", l = "_error_aewgj_133", g = "_leftIcon_aewgj_150", i = "_rightIcon_aewgj_151", I = "_rightIconInteractive_aewgj_171", j = "_errorIconInline_aewgj_202", w = "_errorIconMessage_aewgj_208", h = "_sm_aewgj_213", d = "_md_aewgj_222", p = "_lg_aewgj_231", f = "_hasLeftIcon_aewgj_241", u = "_hasRightIcon_aewgj_245", b = "_helperText_aewgj_250", x = "_errorMessage_aewgj_259", m = {
|
|
2
|
+
fieldContainer: e,
|
|
3
|
+
fullWidth: n,
|
|
4
|
+
disabled: t,
|
|
5
|
+
label: o,
|
|
6
|
+
labelText: _,
|
|
7
|
+
optional: r,
|
|
8
|
+
required: a,
|
|
9
|
+
inputWrapper: s,
|
|
10
|
+
input: c,
|
|
11
|
+
error: l,
|
|
12
|
+
leftIcon: g,
|
|
13
|
+
rightIcon: i,
|
|
14
|
+
rightIconInteractive: I,
|
|
15
|
+
errorIconInline: j,
|
|
16
|
+
errorIconMessage: w,
|
|
17
|
+
sm: h,
|
|
18
|
+
md: d,
|
|
19
|
+
lg: p,
|
|
20
|
+
hasLeftIcon: f,
|
|
21
|
+
hasRightIcon: u,
|
|
22
|
+
helperText: b,
|
|
23
|
+
errorMessage: x
|
|
24
|
+
};
|
|
186
25
|
export {
|
|
187
|
-
|
|
26
|
+
m as default,
|
|
27
|
+
t as disabled,
|
|
28
|
+
l as error,
|
|
29
|
+
j as errorIconInline,
|
|
30
|
+
w as errorIconMessage,
|
|
31
|
+
x as errorMessage,
|
|
32
|
+
e as fieldContainer,
|
|
33
|
+
n as fullWidth,
|
|
34
|
+
f as hasLeftIcon,
|
|
35
|
+
u as hasRightIcon,
|
|
36
|
+
b as helperText,
|
|
37
|
+
c as input,
|
|
38
|
+
s as inputWrapper,
|
|
39
|
+
o as label,
|
|
40
|
+
_ as labelText,
|
|
41
|
+
g as leftIcon,
|
|
42
|
+
p as lg,
|
|
43
|
+
d as md,
|
|
44
|
+
r as optional,
|
|
45
|
+
a as required,
|
|
46
|
+
i as rightIcon,
|
|
47
|
+
I as rightIconInteractive,
|
|
48
|
+
h as sm
|
|
188
49
|
};
|
|
189
50
|
//# sourceMappingURL=index146.mjs.map
|
package/dist/index146.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index146.mjs","sources":["../src/components/Chat/components/ChatInput.tsx"],"sourcesContent":["/**\n * ChatInput Component\n *\n * Multi-line input with attachment support, voice recording,\n * and send functionality.\n */\n\nimport React, { forwardRef, useCallback, useState, useRef } from \"react\";\nimport { Send, Paperclip, Mic, X, Image, File } from \"lucide-react\";\nimport type { ChatInputProps } from \"../Chat.types\";\nimport { useChatInput } from \"../hooks/useChatInput\";\nimport { ChatVoiceRecorder } from \"./ChatVoiceRecorder\";\nimport { formatFileSize } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\n// Get file icon\nconst getFileIcon = (file: File) => {\n if (file.type.startsWith(\"image/\")) {\n return <Image size={14} />;\n }\n return <File size={14} />;\n};\n\nexport const ChatInput = forwardRef<HTMLTextAreaElement, ChatInputProps>(\n (\n {\n onSend,\n placeholder = \"Type a message...\",\n allowAttachments = true,\n allowVoiceRecording = true,\n allowAudioUpload: _allowAudioUpload = true,\n disabled = false,\n maxLength,\n acceptedFileTypes = [\n \"image/*\",\n \"audio/*\",\n \".pdf\",\n \".doc\",\n \".docx\",\n \".txt\",\n ],\n isLoading = false,\n pendingAttachments: externalAttachments,\n onRemoveAttachment: externalOnRemove,\n className,\n ...rest\n },\n forwardedRef,\n ) => {\n const [showVoiceRecorder, setShowVoiceRecorder] = useState(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const {\n value,\n setValue,\n attachments,\n addAttachments,\n removeAttachment,\n handleSubmit: internalSubmit,\n handleKeyDown,\n textareaRef,\n isEmpty,\n } = useChatInput({\n maxLength,\n onSend,\n disabled: disabled || isLoading,\n });\n\n // Use external attachments if provided, otherwise internal\n const displayAttachments = externalAttachments || attachments;\n const handleRemoveAttachment = externalOnRemove || removeAttachment;\n\n // Combine refs via callback ref\n const combinedRef = useCallback(\n (node: HTMLTextAreaElement | null) => {\n // Set internal ref\n (\n textareaRef as React.MutableRefObject<HTMLTextAreaElement | null>\n ).current = node;\n // Forward ref\n if (typeof forwardedRef === \"function\") {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef, textareaRef],\n );\n\n // Handle file selection\n const handleFileSelect = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (files && files.length > 0) {\n addAttachments(Array.from(files));\n }\n // Reset input\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n },\n [addAttachments],\n );\n\n // Handle paste for images\n const handlePaste = useCallback(\n (e: React.ClipboardEvent) => {\n const items = e.clipboardData.items;\n const imageFiles: File[] = [];\n\n for (const item of items) {\n if (item.type.startsWith(\"image/\")) {\n const file = item.getAsFile();\n if (file) {\n imageFiles.push(file);\n }\n }\n }\n\n if (imageFiles.length > 0) {\n e.preventDefault();\n addAttachments(imageFiles);\n }\n },\n [addAttachments],\n );\n\n // Handle voice recording complete\n const handleVoiceRecordingComplete = useCallback(\n (blob: Blob) => {\n // Create a file-like object from the blob\n const file = Object.assign(blob, {\n name: `voice-${Date.now()}.webm`,\n lastModified: Date.now(),\n }) as File;\n addAttachments([file]);\n setShowVoiceRecorder(false);\n },\n [addAttachments],\n );\n\n // Handle submit\n const handleSubmit = useCallback(() => {\n if (disabled || isLoading) return;\n internalSubmit();\n }, [disabled, isLoading, internalSubmit]);\n\n const canSend = !isEmpty || displayAttachments.length > 0;\n\n return (\n <div\n className={[styles.inputContainer, className].filter(Boolean).join(\" \")}\n >\n <div className={styles.inputWrapper}>\n {/* Pending attachments */}\n {displayAttachments.length > 0 && (\n <div className={styles.pendingAttachments}>\n {displayAttachments.map((file, index) => (\n <div key={index} className={styles.pendingAttachment}>\n {getFileIcon(file)}\n <span>{file.name}</span>\n <span className={styles.pendingAttachmentSize}>\n ({formatFileSize(file.size)})\n </span>\n <button\n className={styles.pendingAttachmentRemove}\n onClick={() => handleRemoveAttachment(index)}\n aria-label={`Remove ${file.name}`}\n >\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n )}\n\n {/* Voice recorder overlay */}\n {showVoiceRecorder && (\n <ChatVoiceRecorder\n onRecordingComplete={handleVoiceRecordingComplete}\n onCancel={() => setShowVoiceRecorder(false)}\n />\n )}\n\n {/* Main input box */}\n {!showVoiceRecorder && (\n <div className={styles.inputBox}>\n {/* Left actions (attachments) */}\n {allowAttachments && (\n <div className={styles.inputActions}>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={acceptedFileTypes.join(\",\")}\n multiple\n onChange={handleFileSelect}\n style={{ display: \"none\" }}\n aria-hidden=\"true\"\n />\n <button\n className={styles.inputButton}\n onClick={() => fileInputRef.current?.click()}\n disabled={disabled || isLoading}\n aria-label=\"Attach file\"\n title=\"Attach file\"\n >\n <Paperclip size={20} />\n </button>\n </div>\n )}\n\n {/* Textarea */}\n <textarea\n ref={combinedRef}\n className={styles.inputTextarea}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n placeholder={placeholder}\n disabled={disabled || isLoading}\n maxLength={maxLength}\n rows={1}\n aria-label=\"Message input\"\n {...rest}\n />\n\n {/* Right actions (voice, send) */}\n <div className={styles.inputActions}>\n {/* Voice recording button */}\n {allowVoiceRecording &&\n !value &&\n displayAttachments.length === 0 && (\n <button\n className={styles.inputButton}\n onClick={() => setShowVoiceRecorder(true)}\n disabled={disabled || isLoading}\n aria-label=\"Record voice message\"\n title=\"Record voice message\"\n >\n <Mic size={20} />\n </button>\n )}\n\n {/* Send button */}\n <button\n className={[\n styles.inputButton,\n canSend && styles.inputButtonPrimary,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={handleSubmit}\n disabled={disabled || isLoading || !canSend}\n aria-label=\"Send message\"\n title=\"Send message\"\n >\n {isLoading ? (\n <span className={styles.inputSpinner} />\n ) : (\n <Send size={20} />\n )}\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nChatInput.displayName = \"ChatInput\";\n"],"names":["getFileIcon","file","jsx","Image","File","ChatInput","forwardRef","onSend","placeholder","allowAttachments","allowVoiceRecording","_allowAudioUpload","disabled","maxLength","acceptedFileTypes","isLoading","externalAttachments","externalOnRemove","className","rest","forwardedRef","showVoiceRecorder","setShowVoiceRecorder","useState","fileInputRef","useRef","value","setValue","attachments","addAttachments","removeAttachment","internalSubmit","handleKeyDown","textareaRef","isEmpty","useChatInput","displayAttachments","handleRemoveAttachment","combinedRef","useCallback","node","handleFileSelect","files","handlePaste","items","imageFiles","item","handleVoiceRecordingComplete","blob","handleSubmit","canSend","styles","jsxs","index","formatFileSize","X","ChatVoiceRecorder","Paperclip","Mic","Send"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index146.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index147.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_overlay_1qwde_8",e="_commandBar_1qwde_29",o="_inputWrapper_1qwde_55",i="_searchIcon_1qwde_63",n="_input_1qwde_55",_="_shortcutHint_1qwde_82",r="_results_1qwde_96",c="_empty_1qwde_102",s="_group_1qwde_114",m="_groupTitle_1qwde_122",d="_item_1qwde_136",u="_itemSelected_1qwde_154",p="_itemDisabled_1qwde_158",a="_itemIcon_1qwde_163",l="_itemContent_1qwde_177",q="_itemLabel_1qwde_185",w="_itemDescription_1qwde_192",h="_itemShortcut_1qwde_200",b="_footer_1qwde_215",f="_footerHint_1qwde_224",g={overlay:t,commandBar:e,inputWrapper:o,searchIcon:i,input:n,shortcutHint:_,results:r,empty:c,group:s,groupTitle:m,item:d,itemSelected:u,itemDisabled:p,itemIcon:a,itemContent:l,itemLabel:q,itemDescription:w,itemShortcut:h,footer:b,footerHint:f};exports.commandBar=e;exports.default=g;exports.empty=c;exports.footer=b;exports.footerHint=f;exports.group=s;exports.groupTitle=m;exports.input=n;exports.inputWrapper=o;exports.item=d;exports.itemContent=l;exports.itemDescription=w;exports.itemDisabled=p;exports.itemIcon=a;exports.itemLabel=q;exports.itemSelected=u;exports.itemShortcut=h;exports.overlay=t;exports.results=r;exports.searchIcon=i;exports.shortcutHint=_;
|
|
2
2
|
//# sourceMappingURL=index147.cjs.map
|
package/dist/index147.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index147.cjs","sources":[
|
|
1
|
+
{"version":3,"file":"index147.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|