@orion-ds/react 4.0.0 → 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 -14
- package/dist/index101.mjs.map +1 -1
- package/dist/index102.cjs +1 -1
- package/dist/index102.mjs +44 -28
- package/dist/index102.mjs.map +1 -1
- package/dist/index103.cjs +1 -1
- package/dist/index103.mjs +42 -30
- package/dist/index103.mjs.map +1 -1
- package/dist/index104.cjs +1 -1
- package/dist/index104.mjs +56 -36
- package/dist/index104.mjs.map +1 -1
- package/dist/index105.cjs +1 -1
- package/dist/index105.mjs +26 -30
- 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 -42
- package/dist/index107.mjs.map +1 -1
- package/dist/index108.cjs +1 -1
- package/dist/index108.mjs +45 -32
- package/dist/index108.mjs.map +1 -1
- package/dist/index109.cjs +1 -1
- package/dist/index109.mjs +24 -50
- 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 -12
- package/dist/index110.mjs.map +1 -1
- package/dist/index111.cjs +1 -1
- package/dist/index111.mjs +18 -33
- package/dist/index111.mjs.map +1 -1
- package/dist/index112.cjs +1 -1
- package/dist/index112.mjs +55 -28
- package/dist/index112.mjs.map +1 -1
- package/dist/index113.cjs +1 -1
- package/dist/index113.mjs +36 -20
- package/dist/index113.mjs.map +1 -1
- package/dist/index114.cjs +1 -1
- package/dist/index114.mjs +62 -24
- package/dist/index114.mjs.map +1 -1
- package/dist/index115.cjs +1 -1
- package/dist/index115.mjs +65 -33
- 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 -31
- 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 -29
- 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 -234
- 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 +184 -32
- package/dist/index120.mjs.map +1 -1
- package/dist/index121.cjs +1 -1
- package/dist/index121.cjs.map +1 -1
- package/dist/index121.mjs +24 -39
- package/dist/index121.mjs.map +1 -1
- package/dist/index122.cjs +1 -1
- package/dist/index122.cjs.map +1 -1
- package/dist/index122.mjs +78 -158
- package/dist/index122.mjs.map +1 -1
- package/dist/index123.cjs +1 -1
- package/dist/index123.cjs.map +1 -1
- package/dist/index123.mjs +47 -180
- package/dist/index123.mjs.map +1 -1
- package/dist/index124.cjs +1 -1
- package/dist/index124.cjs.map +1 -1
- package/dist/index124.mjs +64 -26
- package/dist/index124.mjs.map +1 -1
- package/dist/index125.cjs +1 -1
- package/dist/index125.cjs.map +1 -1
- package/dist/index125.mjs +115 -81
- 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 -52
- package/dist/index126.mjs.map +1 -1
- package/dist/index127.cjs +1 -1
- package/dist/index127.cjs.map +1 -1
- package/dist/index127.mjs +105 -60
- package/dist/index127.mjs.map +1 -1
- package/dist/index128.cjs +1 -1
- package/dist/index128.cjs.map +1 -1
- package/dist/index128.mjs +112 -114
- package/dist/index128.mjs.map +1 -1
- package/dist/index129.cjs +1 -1
- package/dist/index129.cjs.map +1 -1
- package/dist/index129.mjs +212 -106
- 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.cjs.map +1 -1
- package/dist/index130.mjs +44 -111
- package/dist/index130.mjs.map +1 -1
- package/dist/index131.cjs +1 -1
- package/dist/index131.cjs.map +1 -1
- package/dist/index131.mjs +40 -122
- package/dist/index131.mjs.map +1 -1
- package/dist/index132.cjs +1 -1
- package/dist/index132.cjs.map +1 -1
- package/dist/index132.mjs +106 -214
- package/dist/index132.mjs.map +1 -1
- package/dist/index133.cjs +1 -1
- package/dist/index133.mjs +22 -42
- package/dist/index133.mjs.map +1 -1
- package/dist/index134.cjs +1 -1
- package/dist/index134.mjs +30 -44
- package/dist/index134.mjs.map +1 -1
- package/dist/index135.cjs +1 -1
- package/dist/index135.mjs +46 -28
- package/dist/index135.mjs.map +1 -1
- package/dist/index136.cjs +1 -1
- package/dist/index136.mjs +12 -76
- package/dist/index136.mjs.map +1 -1
- package/dist/index137.cjs +1 -1
- package/dist/index137.mjs +32 -38
- package/dist/index137.mjs.map +1 -1
- package/dist/index138.cjs +1 -1
- package/dist/index138.mjs +27 -38
- package/dist/index138.mjs.map +1 -1
- package/dist/index139.cjs +1 -1
- package/dist/index139.mjs +33 -65
- 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 -28
- package/dist/index140.mjs.map +1 -1
- package/dist/index141.cjs +1 -1
- package/dist/index141.mjs +30 -16
- package/dist/index141.mjs.map +1 -1
- package/dist/index142.cjs +1 -1
- package/dist/index142.mjs +32 -22
- package/dist/index142.mjs.map +1 -1
- package/dist/index143.cjs +1 -1
- package/dist/index143.mjs +50 -62
- package/dist/index143.mjs.map +1 -1
- package/dist/index144.cjs +1 -1
- package/dist/index144.mjs +16 -20
- package/dist/index144.mjs.map +1 -1
- package/dist/index145.cjs +1 -1
- package/dist/index145.mjs +30 -20
- package/dist/index145.mjs.map +1 -1
- package/dist/index146.cjs +1 -1
- package/dist/index146.mjs +46 -26
- package/dist/index146.mjs.map +1 -1
- package/dist/index147.cjs +1 -1
- package/dist/index147.mjs +42 -42
- package/dist/index148.cjs +1 -1
- package/dist/index148.mjs +28 -45
- package/dist/index148.mjs.map +1 -1
- package/dist/index149.cjs +1 -1
- package/dist/index149.mjs +28 -27
- package/dist/index15.cjs +1 -1
- package/dist/index15.mjs +1 -1
- package/dist/index150.cjs +1 -1
- package/dist/index150.mjs +30 -28
- package/dist/index150.mjs.map +1 -1
- package/dist/index151.cjs +1 -1
- package/dist/index151.mjs +24 -32
- package/dist/index151.mjs.map +1 -1
- package/dist/index152.cjs +1 -1
- package/dist/index152.mjs +21 -29
- package/dist/index152.mjs.map +1 -1
- package/dist/index153.cjs +1 -1
- package/dist/index153.mjs +36 -24
- package/dist/index153.mjs.map +1 -1
- package/dist/index154.cjs +1 -1
- package/dist/index154.mjs +38 -28
- package/dist/index154.mjs.map +1 -1
- package/dist/index155.cjs +1 -1
- package/dist/index155.mjs +12 -30
- package/dist/index155.mjs.map +1 -1
- package/dist/index156.cjs +1 -1
- package/dist/index156.mjs +28 -33
- package/dist/index156.mjs.map +1 -1
- package/dist/index157.cjs +1 -1
- package/dist/index157.mjs +38 -46
- package/dist/index157.mjs.map +1 -1
- package/dist/index158.cjs +1 -1
- package/dist/index158.mjs +33 -46
- package/dist/index158.mjs.map +1 -1
- package/dist/index159.cjs +1 -1
- package/dist/index159.mjs +28 -44
- 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 +13 -39
- package/dist/index160.mjs.map +1 -1
- package/dist/index161.cjs +1 -1
- package/dist/index161.mjs +18 -22
- package/dist/index161.mjs.map +1 -1
- package/dist/index162.cjs +1 -1
- package/dist/index162.mjs +28 -18
- package/dist/index162.mjs.map +1 -1
- package/dist/index163.cjs +1 -1
- package/dist/index163.mjs +18 -40
- package/dist/index163.mjs.map +1 -1
- package/dist/index164.cjs +1 -1
- package/dist/index164.mjs +65 -16
- package/dist/index164.mjs.map +1 -1
- package/dist/index165.cjs +1 -1
- package/dist/index165.mjs +30 -24
- package/dist/index165.mjs.map +1 -1
- package/dist/index166.cjs +1 -1
- package/dist/index166.mjs +44 -64
- package/dist/index166.mjs.map +1 -1
- package/dist/index167.cjs +1 -1
- package/dist/index167.mjs +51 -52
- 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 -13
- package/dist/index168.mjs.map +1 -1
- package/dist/index169.cjs +1 -1
- package/dist/index169.mjs +28 -56
- 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 -106
- package/dist/index170.mjs.map +1 -1
- package/dist/index171.cjs +1 -1
- package/dist/index171.mjs +33 -18
- package/dist/index171.mjs.map +1 -1
- package/dist/index172.cjs +1 -1
- package/dist/index172.mjs +20 -62
- package/dist/index172.mjs.map +1 -1
- package/dist/index173.cjs +1 -1
- package/dist/index173.mjs +24 -55
- package/dist/index173.mjs.map +1 -1
- package/dist/index174.cjs +1 -1
- package/dist/index174.mjs +64 -18
- package/dist/index174.mjs.map +1 -1
- package/dist/index175.cjs +1 -1
- package/dist/index175.mjs +76 -52
- package/dist/index175.mjs.map +1 -1
- package/dist/index176.cjs +1 -1
- package/dist/index176.mjs +40 -64
- package/dist/index176.mjs.map +1 -1
- package/dist/index177.cjs +1 -1
- package/dist/index177.cjs.map +1 -1
- package/dist/index177.mjs +53 -37
- package/dist/index177.mjs.map +1 -1
- package/dist/index178.cjs +1 -1
- package/dist/index178.mjs +53 -28
- package/dist/index178.mjs.map +1 -1
- package/dist/index179.cjs +1 -1
- package/dist/index179.mjs +18 -67
- 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 -57
- package/dist/index180.mjs.map +1 -1
- package/dist/index181.cjs +1 -1
- package/dist/index181.mjs +28 -44
- package/dist/index181.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.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/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.cjs.map +1 -1
- package/dist/index43.mjs +1 -1
- package/dist/index44.cjs +1 -1
- package/dist/index44.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/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 -36
- package/dist/index99.mjs.map +1 -1
- package/dist/react.css +1 -1
- package/dist/styles.css +8 -1
- package/dist/theme.css +7 -0
- package/package.json +5 -8
package/dist/index129.mjs
CHANGED
|
@@ -1,112 +1,218 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { jsxs as l, Fragment as C, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as D, useRef as Y, useEffect as x, useMemo as S, useCallback as y } from "react";
|
|
3
|
+
import { Plus as A, X as U, Search as $, MessageSquare as T, Trash2 as q } from "lucide-react";
|
|
4
|
+
import e from "./index116.mjs";
|
|
5
|
+
const G = {
|
|
6
|
+
today: "Today",
|
|
7
|
+
yesterday: "Yesterday",
|
|
8
|
+
previous7: "Previous 7 days",
|
|
9
|
+
previous30: "Previous 30 days",
|
|
10
|
+
older: "Older"
|
|
11
|
+
}, N = [
|
|
12
|
+
"today",
|
|
13
|
+
"yesterday",
|
|
14
|
+
"previous7",
|
|
15
|
+
"previous30",
|
|
16
|
+
"older"
|
|
17
|
+
], B = (t) => {
|
|
18
|
+
const a = /* @__PURE__ */ new Date(), d = (new Date(
|
|
19
|
+
a.getFullYear(),
|
|
20
|
+
a.getMonth(),
|
|
21
|
+
a.getDate()
|
|
22
|
+
).getTime() - new Date(t.getFullYear(), t.getMonth(), t.getDate()).getTime()) / (1e3 * 60 * 60 * 24);
|
|
23
|
+
return d < 1 ? "today" : d < 2 ? "yesterday" : d < 7 ? "previous7" : d < 30 ? "previous30" : "older";
|
|
24
|
+
}, H = (t) => {
|
|
25
|
+
const a = B(t);
|
|
26
|
+
return a === "today" ? new Intl.DateTimeFormat("en-US", {
|
|
27
|
+
hour: "numeric",
|
|
28
|
+
minute: "2-digit"
|
|
29
|
+
}).format(t) : a === "yesterday" ? "Yesterday" : a === "previous7" ? new Intl.DateTimeFormat("en-US", {
|
|
30
|
+
weekday: "short"
|
|
31
|
+
}).format(t) : new Intl.DateTimeFormat("en-US", {
|
|
32
|
+
month: "short",
|
|
33
|
+
day: "numeric"
|
|
34
|
+
}).format(t);
|
|
35
|
+
}, Q = (t) => {
|
|
36
|
+
const a = /* @__PURE__ */ new Map();
|
|
37
|
+
return N.forEach((o) => a.set(o, [])), t.forEach((o) => {
|
|
38
|
+
const f = B(o.updatedAt);
|
|
39
|
+
a.get(f)?.push(o);
|
|
40
|
+
}), a;
|
|
41
|
+
}, R = ({
|
|
42
|
+
conversations: t = [],
|
|
43
|
+
activeConversationId: a,
|
|
44
|
+
onSelectConversation: o,
|
|
45
|
+
onNewConversation: f,
|
|
46
|
+
onDeleteConversation: d,
|
|
47
|
+
onSearch: g,
|
|
48
|
+
header: j,
|
|
49
|
+
footer: v,
|
|
50
|
+
collapsed: u = !1,
|
|
51
|
+
onCollapsedChange: m,
|
|
52
|
+
className: k,
|
|
53
|
+
...F
|
|
12
54
|
}) => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
duration: R,
|
|
16
|
-
audioBlob: i,
|
|
17
|
-
error: s,
|
|
18
|
-
startRecording: h,
|
|
19
|
-
stopRecording: u,
|
|
20
|
-
cancelRecording: N,
|
|
21
|
-
reset: l,
|
|
22
|
-
isSupported: f
|
|
23
|
-
} = S({
|
|
24
|
-
maxDuration: m,
|
|
25
|
-
onRecordingComplete: d,
|
|
26
|
-
onError: (g) => console.error("Recording error:", g)
|
|
27
|
-
}), p = () => {
|
|
28
|
-
o ? u() : i ? (d?.(i), l()) : h();
|
|
29
|
-
}, B = () => {
|
|
30
|
-
N(), v?.();
|
|
31
|
-
};
|
|
32
|
-
return f ? s ? /* @__PURE__ */ c(
|
|
33
|
-
"div",
|
|
34
|
-
{
|
|
35
|
-
className: [e.voiceRecorder, a].filter(Boolean).join(" "),
|
|
36
|
-
...n,
|
|
37
|
-
children: [
|
|
38
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderInfo, children: /* @__PURE__ */ r(
|
|
39
|
-
"span",
|
|
40
|
-
{
|
|
41
|
-
className: [
|
|
42
|
-
e.voiceRecorderLabel,
|
|
43
|
-
e.voiceRecorderError
|
|
44
|
-
].join(" "),
|
|
45
|
-
children: s
|
|
46
|
-
}
|
|
47
|
-
) }),
|
|
48
|
-
/* @__PURE__ */ r(
|
|
49
|
-
"button",
|
|
50
|
-
{
|
|
51
|
-
className: e.inputButton,
|
|
52
|
-
onClick: l,
|
|
53
|
-
"aria-label": "Try again",
|
|
54
|
-
children: /* @__PURE__ */ r(t, { size: 20 })
|
|
55
|
-
}
|
|
56
|
-
)
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
) : /* @__PURE__ */ c(
|
|
60
|
-
"div",
|
|
61
|
-
{
|
|
62
|
-
className: [e.voiceRecorder, a].filter(Boolean).join(" "),
|
|
63
|
-
...n,
|
|
64
|
-
children: [
|
|
65
|
-
/* @__PURE__ */ r(
|
|
66
|
-
"button",
|
|
67
|
-
{
|
|
68
|
-
className: [
|
|
69
|
-
e.voiceRecorderButton,
|
|
70
|
-
!o && !i && e.voiceRecorderButtonIdle
|
|
71
|
-
].filter(Boolean).join(" "),
|
|
72
|
-
onClick: p,
|
|
73
|
-
"aria-label": o ? "Stop recording" : i ? "Send recording" : "Start recording",
|
|
74
|
-
children: o ? /* @__PURE__ */ r(b, { size: 20 }) : i ? /* @__PURE__ */ r(C, { size: 20 }) : /* @__PURE__ */ r(j, { size: 20 })
|
|
75
|
-
}
|
|
76
|
-
),
|
|
77
|
-
/* @__PURE__ */ c("div", { className: e.voiceRecorderInfo, children: [
|
|
78
|
-
/* @__PURE__ */ r("span", { className: e.voiceRecorderDuration, children: k(R) }),
|
|
79
|
-
/* @__PURE__ */ r("span", { className: e.voiceRecorderLabel, children: o ? "Recording..." : i ? "Recording ready" : "Click to record" })
|
|
80
|
-
] }),
|
|
81
|
-
o && /* @__PURE__ */ c("div", { className: e.voiceRecorderWaveform, children: [
|
|
82
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
|
|
83
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
|
|
84
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
|
|
85
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderBar }),
|
|
86
|
-
/* @__PURE__ */ r("div", { className: e.voiceRecorderBar })
|
|
87
|
-
] }),
|
|
88
|
-
(o || i) && /* @__PURE__ */ r("div", { className: e.voiceRecorderActions, children: /* @__PURE__ */ r(
|
|
89
|
-
"button",
|
|
90
|
-
{
|
|
91
|
-
className: e.inputButton,
|
|
92
|
-
onClick: B,
|
|
93
|
-
"aria-label": "Cancel recording",
|
|
94
|
-
children: /* @__PURE__ */ r(t, { size: 20 })
|
|
95
|
-
}
|
|
96
|
-
) })
|
|
97
|
-
]
|
|
98
|
-
}
|
|
99
|
-
) : /* @__PURE__ */ r(
|
|
100
|
-
"div",
|
|
101
|
-
{
|
|
102
|
-
className: [e.voiceRecorder, a].filter(Boolean).join(" "),
|
|
103
|
-
...n,
|
|
104
|
-
children: /* @__PURE__ */ r("div", { className: e.voiceRecorderInfo, children: /* @__PURE__ */ r("span", { className: e.voiceRecorderLabel, children: "Voice recording is not supported in this browser" }) })
|
|
105
|
-
}
|
|
55
|
+
const [h, z] = D(""), [p, b] = D(null), c = Y(
|
|
56
|
+
void 0
|
|
106
57
|
);
|
|
58
|
+
x(() => () => {
|
|
59
|
+
c.current && clearTimeout(c.current);
|
|
60
|
+
}, []);
|
|
61
|
+
const w = S(() => {
|
|
62
|
+
if (!h.trim()) return t;
|
|
63
|
+
const s = h.toLowerCase();
|
|
64
|
+
return t.filter(
|
|
65
|
+
(n) => n.title.toLowerCase().includes(s) || n.preview?.toLowerCase().includes(s)
|
|
66
|
+
);
|
|
67
|
+
}, [t, h]), I = S(() => Q(w), [w]), O = y(
|
|
68
|
+
(s) => {
|
|
69
|
+
const n = s.target.value;
|
|
70
|
+
z(n), g?.(n);
|
|
71
|
+
},
|
|
72
|
+
[g]
|
|
73
|
+
), P = y(
|
|
74
|
+
(s) => {
|
|
75
|
+
o?.(s), u && m && m(!0);
|
|
76
|
+
},
|
|
77
|
+
[o, u, m]
|
|
78
|
+
), E = y(
|
|
79
|
+
(s, n) => {
|
|
80
|
+
s.stopPropagation(), p === n ? (d?.(n), b(null), c.current && clearTimeout(c.current)) : (b(n), c.current && clearTimeout(c.current), c.current = setTimeout(() => {
|
|
81
|
+
b(null);
|
|
82
|
+
}, 3e3));
|
|
83
|
+
},
|
|
84
|
+
[p, d]
|
|
85
|
+
), L = N.some(
|
|
86
|
+
(s) => (I.get(s)?.length ?? 0) > 0
|
|
87
|
+
);
|
|
88
|
+
return /* @__PURE__ */ l(C, { children: [
|
|
89
|
+
!u && /* @__PURE__ */ r(
|
|
90
|
+
"div",
|
|
91
|
+
{
|
|
92
|
+
className: e.sidebarOverlay,
|
|
93
|
+
onClick: () => m?.(!0),
|
|
94
|
+
"aria-hidden": "true"
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
/* @__PURE__ */ l(
|
|
98
|
+
"aside",
|
|
99
|
+
{
|
|
100
|
+
className: [
|
|
101
|
+
e.sidebar,
|
|
102
|
+
u && e.sidebarCollapsed,
|
|
103
|
+
!u && e.sidebarOpen,
|
|
104
|
+
k
|
|
105
|
+
].filter(Boolean).join(" "),
|
|
106
|
+
...F,
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ r("div", { className: e.sidebarHeader, children: j || /* @__PURE__ */ l(C, { children: [
|
|
109
|
+
/* @__PURE__ */ r(
|
|
110
|
+
"button",
|
|
111
|
+
{
|
|
112
|
+
className: [
|
|
113
|
+
e.inputButton,
|
|
114
|
+
e.inputButtonPrimary,
|
|
115
|
+
e.sidebarNewButton
|
|
116
|
+
].filter(Boolean).join(" "),
|
|
117
|
+
onClick: f,
|
|
118
|
+
"aria-label": "New conversation",
|
|
119
|
+
children: /* @__PURE__ */ l("span", { className: e.sidebarNewButtonInner, children: [
|
|
120
|
+
/* @__PURE__ */ r(A, { size: 18 }),
|
|
121
|
+
/* @__PURE__ */ r("span", { children: "New Chat" })
|
|
122
|
+
] })
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
/* @__PURE__ */ r(
|
|
126
|
+
"button",
|
|
127
|
+
{
|
|
128
|
+
className: [e.inputButton, e.sidebarCloseButton].join(
|
|
129
|
+
" "
|
|
130
|
+
),
|
|
131
|
+
onClick: () => m?.(!0),
|
|
132
|
+
"aria-label": "Close sidebar",
|
|
133
|
+
children: /* @__PURE__ */ r(U, { size: 20 })
|
|
134
|
+
}
|
|
135
|
+
)
|
|
136
|
+
] }) }),
|
|
137
|
+
/* @__PURE__ */ r("div", { className: e.sidebarSearch, children: /* @__PURE__ */ l("div", { className: e.sidebarSearchWrapper, children: [
|
|
138
|
+
/* @__PURE__ */ r($, { size: 16, className: e.sidebarSearchIcon }),
|
|
139
|
+
/* @__PURE__ */ r(
|
|
140
|
+
"input",
|
|
141
|
+
{
|
|
142
|
+
type: "search",
|
|
143
|
+
className: [
|
|
144
|
+
e.sidebarSearchInput,
|
|
145
|
+
e.sidebarSearchInputWithIcon
|
|
146
|
+
].join(" "),
|
|
147
|
+
placeholder: "Search conversations...",
|
|
148
|
+
value: h,
|
|
149
|
+
onChange: O,
|
|
150
|
+
"aria-label": "Search conversations"
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
] }) }),
|
|
154
|
+
/* @__PURE__ */ r(
|
|
155
|
+
"div",
|
|
156
|
+
{
|
|
157
|
+
className: e.sidebarList,
|
|
158
|
+
role: "list",
|
|
159
|
+
"aria-label": "Conversations",
|
|
160
|
+
children: L ? N.map((s) => {
|
|
161
|
+
const n = I.get(s) ?? [];
|
|
162
|
+
return n.length === 0 ? null : /* @__PURE__ */ l("div", { children: [
|
|
163
|
+
/* @__PURE__ */ r("div", { className: e.sidebarGroupHeader, children: G[s] }),
|
|
164
|
+
n.map((i) => /* @__PURE__ */ l(
|
|
165
|
+
"button",
|
|
166
|
+
{
|
|
167
|
+
className: [
|
|
168
|
+
e.sidebarItem,
|
|
169
|
+
i.id === a && e.sidebarItemActive
|
|
170
|
+
].filter(Boolean).join(" "),
|
|
171
|
+
onClick: () => P(i.id),
|
|
172
|
+
role: "listitem",
|
|
173
|
+
"aria-selected": i.id === a,
|
|
174
|
+
"aria-label": `Conversation: ${i.title}`,
|
|
175
|
+
children: [
|
|
176
|
+
/* @__PURE__ */ r(
|
|
177
|
+
T,
|
|
178
|
+
{
|
|
179
|
+
size: 18,
|
|
180
|
+
className: e.sidebarItemIcon
|
|
181
|
+
}
|
|
182
|
+
),
|
|
183
|
+
/* @__PURE__ */ l("div", { className: e.sidebarItemContent, children: [
|
|
184
|
+
/* @__PURE__ */ r("span", { className: e.sidebarItemTitle, children: i.title }),
|
|
185
|
+
i.preview && /* @__PURE__ */ r("span", { className: e.sidebarItemPreview, children: i.preview })
|
|
186
|
+
] }),
|
|
187
|
+
/* @__PURE__ */ r("span", { className: e.sidebarItemDate, children: H(i.updatedAt) }),
|
|
188
|
+
d && /* @__PURE__ */ r(
|
|
189
|
+
"button",
|
|
190
|
+
{
|
|
191
|
+
className: e.sidebarItemDelete,
|
|
192
|
+
onClick: (M) => E(M, i.id),
|
|
193
|
+
"aria-label": p === i.id ? `Confirm delete ${i.title}` : `Delete ${i.title}`,
|
|
194
|
+
children: p === i.id ? /* @__PURE__ */ r("span", { className: e.sidebarItemDeleteConfirm, children: "Delete?" }) : /* @__PURE__ */ r(q, { size: 16 })
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
i.id
|
|
200
|
+
))
|
|
201
|
+
] }, s);
|
|
202
|
+
}) : /* @__PURE__ */ l("div", { className: e.sidebarEmpty, children: [
|
|
203
|
+
/* @__PURE__ */ r(T, { size: 32, className: e.sidebarEmptyIcon }),
|
|
204
|
+
/* @__PURE__ */ r("p", { children: h ? "No conversations found" : "No conversations yet" })
|
|
205
|
+
] })
|
|
206
|
+
}
|
|
207
|
+
),
|
|
208
|
+
v && /* @__PURE__ */ r("div", { className: e.sidebarFooter, children: v })
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
] });
|
|
107
213
|
};
|
|
108
|
-
|
|
214
|
+
R.displayName = "ChatSidebar";
|
|
109
215
|
export {
|
|
110
|
-
|
|
216
|
+
R as ChatSidebar
|
|
111
217
|
};
|
|
112
218
|
//# sourceMappingURL=index129.mjs.map
|
package/dist/index129.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index129.mjs","sources":["../src/components/Chat/components/ChatVoiceRecorder.tsx"],"sourcesContent":["/**\n * ChatVoiceRecorder Component\n *\n * Voice recording UI with waveform visualization.\n */\n\nimport React from \"react\";\nimport { Mic, Square, X, Send } from \"lucide-react\";\nimport type { ChatVoiceRecorderProps } from \"../Chat.types\";\nimport { useVoiceRecorder } from \"../hooks/useVoiceRecorder\";\nimport { formatTime } from \"../utils\";\nimport styles from \"../Chat.module.css\";\n\nexport const ChatVoiceRecorder: React.FC<ChatVoiceRecorderProps> = ({\n onRecordingComplete,\n onCancel,\n maxDuration = 300,\n className,\n ...rest\n}) => {\n const {\n isRecording,\n duration,\n audioBlob,\n error,\n startRecording,\n stopRecording,\n cancelRecording,\n reset,\n isSupported,\n } = useVoiceRecorder({\n maxDuration,\n onRecordingComplete,\n onError: (err) => console.error(\"Recording error:\", err),\n });\n\n const handleMainButtonClick = () => {\n if (isRecording) {\n stopRecording();\n } else if (audioBlob) {\n // Send the recorded audio\n onRecordingComplete?.(audioBlob);\n reset();\n } else {\n startRecording();\n }\n };\n\n const handleCancel = () => {\n cancelRecording();\n onCancel?.();\n };\n\n if (!isSupported) {\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n <div className={styles.voiceRecorderInfo}>\n <span className={styles.voiceRecorderLabel}>\n Voice recording is not supported in this browser\n </span>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n <div className={styles.voiceRecorderInfo}>\n <span\n className={[\n styles.voiceRecorderLabel,\n styles.voiceRecorderError,\n ].join(\" \")}\n >\n {error}\n </span>\n </div>\n <button\n className={styles.inputButton}\n onClick={reset}\n aria-label=\"Try again\"\n >\n <X size={20} />\n </button>\n </div>\n );\n }\n\n return (\n <div\n className={[styles.voiceRecorder, className].filter(Boolean).join(\" \")}\n {...rest}\n >\n {/* Main record/stop/send button */}\n <button\n className={[\n styles.voiceRecorderButton,\n !isRecording && !audioBlob && styles.voiceRecorderButtonIdle,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={handleMainButtonClick}\n aria-label={\n isRecording\n ? \"Stop recording\"\n : audioBlob\n ? \"Send recording\"\n : \"Start recording\"\n }\n >\n {isRecording ? (\n <Square size={20} />\n ) : audioBlob ? (\n <Send size={20} />\n ) : (\n <Mic size={20} />\n )}\n </button>\n\n {/* Info section */}\n <div className={styles.voiceRecorderInfo}>\n <span className={styles.voiceRecorderDuration}>\n {formatTime(duration)}\n </span>\n <span className={styles.voiceRecorderLabel}>\n {isRecording\n ? \"Recording...\"\n : audioBlob\n ? \"Recording ready\"\n : \"Click to record\"}\n </span>\n </div>\n\n {/* Waveform visualization (only when recording) */}\n {isRecording && (\n <div className={styles.voiceRecorderWaveform}>\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n <div className={styles.voiceRecorderBar} />\n </div>\n )}\n\n {/* Cancel button */}\n {(isRecording || audioBlob) && (\n <div className={styles.voiceRecorderActions}>\n <button\n className={styles.inputButton}\n onClick={handleCancel}\n aria-label=\"Cancel recording\"\n >\n <X size={20} />\n </button>\n </div>\n )}\n </div>\n );\n};\n\nChatVoiceRecorder.displayName = \"ChatVoiceRecorder\";\n"],"names":["ChatVoiceRecorder","onRecordingComplete","onCancel","maxDuration","className","rest","isRecording","duration","audioBlob","error","startRecording","stopRecording","cancelRecording","reset","isSupported","useVoiceRecorder","err","handleMainButtonClick","handleCancel","jsxs","styles","jsx","X","Square","Send","Mic","formatTime"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index129.mjs","sources":["../src/components/Chat/components/ChatSidebar.tsx"],"sourcesContent":["/**\n * ChatSidebar Component\n *\n * Sidebar with conversation history, search, and management actions.\n * Conversations are grouped by date (Today, Yesterday, Previous 7 days, etc.)\n */\n\nimport React, {\n useState,\n useCallback,\n useMemo,\n useRef,\n useEffect,\n} from \"react\";\nimport { Plus, Search, Trash2, MessageSquare, X } from \"lucide-react\";\nimport type { ChatSidebarProps, ChatConversation } from \"../Chat.types\";\nimport styles from \"../Chat.module.css\";\n\n// Date grouping types\ntype DateGroup = \"today\" | \"yesterday\" | \"previous7\" | \"previous30\" | \"older\";\n\nconst groupLabels: Record<DateGroup, string> = {\n today: \"Today\",\n yesterday: \"Yesterday\",\n previous7: \"Previous 7 days\",\n previous30: \"Previous 30 days\",\n older: \"Older\",\n};\n\n// Order of date groups for rendering\nconst groupOrder: DateGroup[] = [\n \"today\",\n \"yesterday\",\n \"previous7\",\n \"previous30\",\n \"older\",\n];\n\n// Get the date group for a given date\nconst getDateGroup = (date: Date): DateGroup => {\n const now = new Date();\n const startOfToday = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n );\n const diff =\n startOfToday.getTime() -\n new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n const days = diff / (1000 * 60 * 60 * 24);\n\n if (days < 1) return \"today\";\n if (days < 2) return \"yesterday\";\n if (days < 7) return \"previous7\";\n if (days < 30) return \"previous30\";\n return \"older\";\n};\n\n// Format date for display (shown on individual items)\nconst formatDate = (date: Date): string => {\n const group = getDateGroup(date);\n\n if (group === \"today\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n }).format(date);\n } else if (group === \"yesterday\") {\n return \"Yesterday\";\n } else if (group === \"previous7\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n weekday: \"short\",\n }).format(date);\n } else {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n }).format(date);\n }\n};\n\n// Group conversations by date\nconst groupConversationsByDate = (\n conversations: ChatConversation[],\n): Map<DateGroup, ChatConversation[]> => {\n const groups = new Map<DateGroup, ChatConversation[]>();\n\n // Initialize all groups\n groupOrder.forEach((group) => groups.set(group, []));\n\n // Sort and group conversations\n conversations.forEach((conv) => {\n const group = getDateGroup(conv.updatedAt);\n groups.get(group)?.push(conv);\n });\n\n return groups;\n};\n\nexport const ChatSidebar: React.FC<ChatSidebarProps> = ({\n conversations = [],\n activeConversationId,\n onSelectConversation,\n onNewConversation,\n onDeleteConversation,\n onSearch,\n header,\n footer,\n collapsed = false,\n onCollapsedChange,\n className,\n ...rest\n}) => {\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [confirmDeleteId, setConfirmDeleteId] = useState<string | null>(null);\n const confirmTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n // Clear confirm timer on unmount\n useEffect(() => {\n return () => {\n if (confirmTimerRef.current) {\n clearTimeout(confirmTimerRef.current);\n }\n };\n }, []);\n\n // Filter conversations based on search\n const filteredConversations = useMemo(() => {\n if (!searchQuery.trim()) return conversations;\n\n const query = searchQuery.toLowerCase();\n return conversations.filter(\n (conv) =>\n conv.title.toLowerCase().includes(query) ||\n conv.preview?.toLowerCase().includes(query),\n );\n }, [conversations, searchQuery]);\n\n // Group filtered conversations by date\n const groupedConversations = useMemo(() => {\n return groupConversationsByDate(filteredConversations);\n }, [filteredConversations]);\n\n // Handle search input\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setSearchQuery(value);\n onSearch?.(value);\n },\n [onSearch],\n );\n\n // Handle conversation selection\n const handleSelectConversation = useCallback(\n (id: string) => {\n onSelectConversation?.(id);\n // Close sidebar on mobile after selection\n if (collapsed && onCollapsedChange) {\n onCollapsedChange(true);\n }\n },\n [onSelectConversation, collapsed, onCollapsedChange],\n );\n\n // Handle delete with inline confirmation\n const handleDelete = useCallback(\n (e: React.MouseEvent, id: string) => {\n e.stopPropagation();\n\n if (confirmDeleteId === id) {\n // Second click: actually delete\n onDeleteConversation?.(id);\n setConfirmDeleteId(null);\n if (confirmTimerRef.current) {\n clearTimeout(confirmTimerRef.current);\n }\n } else {\n // First click: show confirmation\n setConfirmDeleteId(id);\n // Auto-reset after 3 seconds\n if (confirmTimerRef.current) {\n clearTimeout(confirmTimerRef.current);\n }\n confirmTimerRef.current = setTimeout(() => {\n setConfirmDeleteId(null);\n }, 3000);\n }\n },\n [confirmDeleteId, onDeleteConversation],\n );\n\n // Check if there are any conversations to show\n const hasConversations = groupOrder.some(\n (group) => (groupedConversations.get(group)?.length ?? 0) > 0,\n );\n\n return (\n <>\n {/* Mobile overlay */}\n {!collapsed && (\n <div\n className={styles.sidebarOverlay}\n onClick={() => onCollapsedChange?.(true)}\n aria-hidden=\"true\"\n />\n )}\n\n <aside\n className={[\n styles.sidebar,\n collapsed && styles.sidebarCollapsed,\n !collapsed && styles.sidebarOpen,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...rest}\n >\n {/* Header */}\n <div className={styles.sidebarHeader}>\n {header || (\n <>\n <button\n className={[\n styles.inputButton,\n styles.inputButtonPrimary,\n styles.sidebarNewButton,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={onNewConversation}\n aria-label=\"New conversation\"\n >\n <span className={styles.sidebarNewButtonInner}>\n <Plus size={18} />\n <span>New Chat</span>\n </span>\n </button>\n\n {/* Mobile close button */}\n <button\n className={[styles.inputButton, styles.sidebarCloseButton].join(\n \" \",\n )}\n onClick={() => onCollapsedChange?.(true)}\n aria-label=\"Close sidebar\"\n >\n <X size={20} />\n </button>\n </>\n )}\n </div>\n\n {/* Search */}\n <div className={styles.sidebarSearch}>\n <div className={styles.sidebarSearchWrapper}>\n <Search size={16} className={styles.sidebarSearchIcon} />\n <input\n type=\"search\"\n className={[\n styles.sidebarSearchInput,\n styles.sidebarSearchInputWithIcon,\n ].join(\" \")}\n placeholder=\"Search conversations...\"\n value={searchQuery}\n onChange={handleSearchChange}\n aria-label=\"Search conversations\"\n />\n </div>\n </div>\n\n {/* Conversation list with date grouping */}\n <div\n className={styles.sidebarList}\n role=\"list\"\n aria-label=\"Conversations\"\n >\n {!hasConversations ? (\n <div className={styles.sidebarEmpty}>\n <MessageSquare size={32} className={styles.sidebarEmptyIcon} />\n <p>\n {searchQuery\n ? \"No conversations found\"\n : \"No conversations yet\"}\n </p>\n </div>\n ) : (\n groupOrder.map((group) => {\n const groupConvs = groupedConversations.get(group) ?? [];\n if (groupConvs.length === 0) return null;\n\n return (\n <div key={group}>\n <div className={styles.sidebarGroupHeader}>\n {groupLabels[group]}\n </div>\n {groupConvs.map((conversation) => (\n <button\n key={conversation.id}\n className={[\n styles.sidebarItem,\n conversation.id === activeConversationId &&\n styles.sidebarItemActive,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => handleSelectConversation(conversation.id)}\n role=\"listitem\"\n aria-selected={conversation.id === activeConversationId}\n aria-label={`Conversation: ${conversation.title}`}\n >\n <MessageSquare\n size={18}\n className={styles.sidebarItemIcon}\n />\n\n <div className={styles.sidebarItemContent}>\n <span className={styles.sidebarItemTitle}>\n {conversation.title}\n </span>\n {conversation.preview && (\n <span className={styles.sidebarItemPreview}>\n {conversation.preview}\n </span>\n )}\n </div>\n\n <span className={styles.sidebarItemDate}>\n {formatDate(conversation.updatedAt)}\n </span>\n\n {onDeleteConversation && (\n <button\n className={styles.sidebarItemDelete}\n onClick={(e) => handleDelete(e, conversation.id)}\n aria-label={\n confirmDeleteId === conversation.id\n ? `Confirm delete ${conversation.title}`\n : `Delete ${conversation.title}`\n }\n >\n {confirmDeleteId === conversation.id ? (\n <span className={styles.sidebarItemDeleteConfirm}>\n Delete?\n </span>\n ) : (\n <Trash2 size={16} />\n )}\n </button>\n )}\n </button>\n ))}\n </div>\n );\n })\n )}\n </div>\n\n {/* Footer */}\n {footer && <div className={styles.sidebarFooter}>{footer}</div>}\n </aside>\n </>\n );\n};\n\nChatSidebar.displayName = \"ChatSidebar\";\n"],"names":["groupLabels","groupOrder","getDateGroup","date","now","days","formatDate","group","groupConversationsByDate","conversations","groups","conv","ChatSidebar","activeConversationId","onSelectConversation","onNewConversation","onDeleteConversation","onSearch","header","footer","collapsed","onCollapsedChange","className","rest","searchQuery","setSearchQuery","useState","confirmDeleteId","setConfirmDeleteId","confirmTimerRef","useRef","useEffect","filteredConversations","useMemo","query","groupedConversations","handleSearchChange","useCallback","e","value","handleSelectConversation","id","handleDelete","hasConversations","jsxs","Fragment","jsx","styles","Plus","X","Search","groupConvs","conversation","MessageSquare","Trash2"],"mappings":"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"}
|
package/dist/index13.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),f=require("react"),B=require("lucide-react"),a=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),f=require("react"),B=require("lucide-react"),a=require("./index101.cjs"),h=({items:l,separator:c="chevron",customSeparator:u,showHomeIcon:m=!1,maxItems:n,size:i="md",className:j,linkProps:p})=>{const t=f.useMemo(()=>{if(!n||l.length<=n)return l;const e=l[0],s=l.slice(-(n-1));return[...e?[e]:[],{label:"...",href:void 0},...s]},[l,n]),b=e=>{const s=[a.default.separator,c==="chevron"&&a.default.chevron,c==="slash"&&a.default.slash].filter(Boolean).join(" ");return c==="custom"&&u?r.jsx("span",{className:a.default.separator,"aria-hidden":"true",children:u},`sep-${e}`):r.jsx("span",{className:s,"aria-hidden":"true"},`sep-${e}`)},N=()=>{switch(i){case"sm":return 14;case"lg":return 18;default:return 16}},o=()=>m?r.jsx("span",{className:a.default.homeIcon,"aria-label":"Home",children:r.jsx(B.Home,{size:N()})}):null,g=(e,s)=>{const d=s===t.length-1;return e.label==="..."?r.jsx("li",{className:a.default.item,children:r.jsx("span",{className:a.default.ellipsis,"aria-label":"More items",children:"…"})},`ellipsis-${s}`):d||!e.href?r.jsx("li",{className:a.default.item,"aria-current":d?"page":void 0,children:r.jsxs("span",{className:a.default.current,children:[s===0&&o(),e.icon&&r.jsx("span",{className:a.default.icon,children:e.icon}),e.label]})},s):r.jsx("li",{className:a.default.item,children:r.jsxs("a",{href:e.href,className:a.default.link,...p,children:[s===0&&o(),e.icon&&r.jsx("span",{className:a.default.icon,children:e.icon}),e.label]})},s)},v=[a.default.breadcrumb,a.default[i],j].filter(Boolean).join(" ");return r.jsx("nav",{"aria-label":"Breadcrumb",children:r.jsx("ol",{className:v,children:t.map((e,s)=>r.jsxs(f.Fragment,{children:[g(e,s),s<t.length-1&&b(s)]},s))})})};h.displayName="Breadcrumb";exports.Breadcrumb=h;
|
|
2
2
|
//# sourceMappingURL=index13.cjs.map
|
package/dist/index13.mjs
CHANGED
package/dist/index130.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="_container_6fdxe_13",r="_disabled_6fdxe_19",o="_label_6fdxe_27",t="_labelText_6fdxe_43",_="_optional_6fdxe_47",n="_required_6fdxe_53",s="_textarea_6fdxe_63",a="_error_6fdxe_137",i="_sm_6fdxe_157",l="_md_6fdxe_163",c="_lg_6fdxe_169",d="_resizeNone_6fdxe_179",x="_resizeVertical_6fdxe_183",f="_resizeHorizontal_6fdxe_187",u="_resizeBoth_6fdxe_191",z="_footer_6fdxe_199",b="_helperText_6fdxe_206",g="_errorMessage_6fdxe_226",m="_counter_6fdxe_241",p="_counterWarning_6fdxe_251",T="_counterError_6fdxe_255",h={container:e,disabled:r,label:o,labelText:t,optional:_,required:n,textarea:s,error:a,sm:i,md:l,lg:c,resizeNone:d,resizeVertical:x,resizeHorizontal:f,resizeBoth:u,footer:z,helperText:b,errorMessage:g,counter:m,counterWarning:p,counterError:T};exports.container=e;exports.counter=m;exports.counterError=T;exports.counterWarning=p;exports.default=h;exports.disabled=r;exports.error=a;exports.errorMessage=g;exports.footer=z;exports.helperText=b;exports.label=o;exports.labelText=t;exports.lg=c;exports.md=l;exports.optional=_;exports.required=n;exports.resizeBoth=u;exports.resizeHorizontal=f;exports.resizeNone=d;exports.resizeVertical=x;exports.sm=i;exports.textarea=s;
|
|
2
2
|
//# sourceMappingURL=index130.cjs.map
|
package/dist/index130.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index130.cjs","sources":[
|
|
1
|
+
{"version":3,"file":"index130.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index130.mjs
CHANGED
|
@@ -1,115 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
`File ${t.name} exceeds max size of ${g(r)}`
|
|
24
|
-
);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const j = s.includes("*/*"), w = s.flatMap((n) => (n.endsWith("/*"), n));
|
|
28
|
-
if (!(j || w.some((n) => {
|
|
29
|
-
if (n.endsWith("/*")) {
|
|
30
|
-
const x = n.split("/")[0];
|
|
31
|
-
return t.type.startsWith(`${x}/`);
|
|
32
|
-
}
|
|
33
|
-
return t.type === n || t.name.endsWith(n);
|
|
34
|
-
}))) {
|
|
35
|
-
console.warn(`File ${t.name} type not accepted`);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
o.push(t);
|
|
39
|
-
}), o.length > 0 && h?.(o);
|
|
40
|
-
},
|
|
41
|
-
[s, r, h]
|
|
42
|
-
), C = a((e) => {
|
|
43
|
-
e.preventDefault(), e.stopPropagation(), f(!0);
|
|
44
|
-
}, []), k = a((e) => {
|
|
45
|
-
e.preventDefault(), e.stopPropagation(), f(!1);
|
|
46
|
-
}, []), F = a(
|
|
47
|
-
(e) => {
|
|
48
|
-
e.preventDefault(), e.stopPropagation(), f(!1);
|
|
49
|
-
const { files: o } = e.dataTransfer;
|
|
50
|
-
c(o);
|
|
51
|
-
},
|
|
52
|
-
[c]
|
|
53
|
-
), N = a(
|
|
54
|
-
(e) => {
|
|
55
|
-
c(e.target.files), i.current && (i.current.value = "");
|
|
56
|
-
},
|
|
57
|
-
[c]
|
|
58
|
-
), u = a(() => {
|
|
59
|
-
i.current?.click();
|
|
60
|
-
}, []), b = a(
|
|
61
|
-
(e) => {
|
|
62
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), u());
|
|
63
|
-
},
|
|
64
|
-
[u]
|
|
65
|
-
);
|
|
66
|
-
return /* @__PURE__ */ d(
|
|
67
|
-
"div",
|
|
68
|
-
{
|
|
69
|
-
className: [
|
|
70
|
-
l.fileUpload,
|
|
71
|
-
U && l.fileUploadDragging,
|
|
72
|
-
v
|
|
73
|
-
].filter(Boolean).join(" "),
|
|
74
|
-
onDragOver: C,
|
|
75
|
-
onDragLeave: k,
|
|
76
|
-
onDrop: F,
|
|
77
|
-
onClick: u,
|
|
78
|
-
onKeyDown: b,
|
|
79
|
-
role: "button",
|
|
80
|
-
tabIndex: 0,
|
|
81
|
-
"aria-label": "Upload files",
|
|
82
|
-
...y,
|
|
83
|
-
children: [
|
|
84
|
-
/* @__PURE__ */ p(
|
|
85
|
-
"input",
|
|
86
|
-
{
|
|
87
|
-
ref: i,
|
|
88
|
-
type: "file",
|
|
89
|
-
accept: s.join(","),
|
|
90
|
-
multiple: m,
|
|
91
|
-
onChange: N,
|
|
92
|
-
style: { display: "none" },
|
|
93
|
-
"aria-hidden": "true"
|
|
94
|
-
}
|
|
95
|
-
),
|
|
96
|
-
D || /* @__PURE__ */ d(A, { children: [
|
|
97
|
-
/* @__PURE__ */ p("div", { className: l.fileUploadIcon, children: /* @__PURE__ */ p($, { size: 32 }) }),
|
|
98
|
-
/* @__PURE__ */ d("div", { className: l.fileUploadText, children: [
|
|
99
|
-
/* @__PURE__ */ p("strong", { children: "Click to upload" }),
|
|
100
|
-
" or drag and drop"
|
|
101
|
-
] }),
|
|
102
|
-
/* @__PURE__ */ d("div", { className: l.fileUploadHint, children: [
|
|
103
|
-
"Max file size: ",
|
|
104
|
-
g(r)
|
|
105
|
-
] })
|
|
106
|
-
] })
|
|
107
|
-
]
|
|
108
|
-
}
|
|
109
|
-
);
|
|
1
|
+
const e = "_container_6fdxe_13", r = "_disabled_6fdxe_19", o = "_label_6fdxe_27", t = "_labelText_6fdxe_43", _ = "_optional_6fdxe_47", n = "_required_6fdxe_53", s = "_textarea_6fdxe_63", c = "_error_6fdxe_137", a = "_sm_6fdxe_157", d = "_md_6fdxe_163", i = "_lg_6fdxe_169", l = "_resizeNone_6fdxe_179", x = "_resizeVertical_6fdxe_183", f = "_resizeHorizontal_6fdxe_187", z = "_resizeBoth_6fdxe_191", u = "_footer_6fdxe_199", b = "_helperText_6fdxe_206", g = "_errorMessage_6fdxe_226", p = "_counter_6fdxe_241", h = "_counterWarning_6fdxe_251", m = "_counterError_6fdxe_255", T = {
|
|
2
|
+
container: e,
|
|
3
|
+
disabled: r,
|
|
4
|
+
label: o,
|
|
5
|
+
labelText: t,
|
|
6
|
+
optional: _,
|
|
7
|
+
required: n,
|
|
8
|
+
textarea: s,
|
|
9
|
+
error: c,
|
|
10
|
+
sm: a,
|
|
11
|
+
md: d,
|
|
12
|
+
lg: i,
|
|
13
|
+
resizeNone: l,
|
|
14
|
+
resizeVertical: x,
|
|
15
|
+
resizeHorizontal: f,
|
|
16
|
+
resizeBoth: z,
|
|
17
|
+
footer: u,
|
|
18
|
+
helperText: b,
|
|
19
|
+
errorMessage: g,
|
|
20
|
+
counter: p,
|
|
21
|
+
counterWarning: h,
|
|
22
|
+
counterError: m
|
|
110
23
|
};
|
|
111
|
-
P.displayName = "ChatFileUpload";
|
|
112
24
|
export {
|
|
113
|
-
|
|
25
|
+
e as container,
|
|
26
|
+
p as counter,
|
|
27
|
+
m as counterError,
|
|
28
|
+
h as counterWarning,
|
|
29
|
+
T as default,
|
|
30
|
+
r as disabled,
|
|
31
|
+
c as error,
|
|
32
|
+
g as errorMessage,
|
|
33
|
+
u as footer,
|
|
34
|
+
b as helperText,
|
|
35
|
+
o as label,
|
|
36
|
+
t as labelText,
|
|
37
|
+
i as lg,
|
|
38
|
+
d as md,
|
|
39
|
+
_ as optional,
|
|
40
|
+
n as required,
|
|
41
|
+
z as resizeBoth,
|
|
42
|
+
f as resizeHorizontal,
|
|
43
|
+
l as resizeNone,
|
|
44
|
+
x as resizeVertical,
|
|
45
|
+
a as sm,
|
|
46
|
+
s as textarea
|
|
114
47
|
};
|
|
115
48
|
//# sourceMappingURL=index130.mjs.map
|
package/dist/index130.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index130.mjs","sources":[
|
|
1
|
+
{"version":3,"file":"index130.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|