chordia-ui 3.4.0 → 3.4.2

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.
Files changed (38) hide show
  1. package/dist/Timeline.cjs.js +1 -6
  2. package/dist/Timeline.cjs.js.map +1 -1
  3. package/dist/Timeline.es.js +129 -597
  4. package/dist/Timeline.es.js.map +1 -1
  5. package/dist/TranscriptCard.cjs.js +7 -0
  6. package/dist/TranscriptCard.cjs.js.map +1 -0
  7. package/dist/TranscriptCard.es.js +474 -0
  8. package/dist/TranscriptCard.es.js.map +1 -0
  9. package/dist/UpdatedInteractionRecording.cjs.js +1 -1
  10. package/dist/UpdatedInteractionRecording.cjs.js.map +1 -1
  11. package/dist/UpdatedInteractionRecording.es.js +516 -420
  12. package/dist/UpdatedInteractionRecording.es.js.map +1 -1
  13. package/dist/components/UpdatedInteractionDetails.cjs.js +2 -2
  14. package/dist/components/UpdatedInteractionDetails.cjs.js.map +1 -1
  15. package/dist/components/UpdatedInteractionDetails.es.js +304 -285
  16. package/dist/components/UpdatedInteractionDetails.es.js.map +1 -1
  17. package/dist/components/media.cjs.js +1 -1
  18. package/dist/components/media.cjs.js.map +1 -1
  19. package/dist/components/media.es.js +9 -8
  20. package/dist/components/media.es.js.map +1 -1
  21. package/dist/index.cjs.js +1 -1
  22. package/dist/index.cjs2.js +1 -1
  23. package/dist/index.cjs2.js.map +1 -1
  24. package/dist/index.cjs3.js +2 -2
  25. package/dist/index.cjs3.js.map +1 -1
  26. package/dist/index.es.js +53 -52
  27. package/dist/index.es.js.map +1 -1
  28. package/dist/index.es2.js +1 -1
  29. package/dist/index.es2.js.map +1 -1
  30. package/dist/index.es3.js +11 -4
  31. package/dist/index.es3.js.map +1 -1
  32. package/dist/pages/interactionDetails.cjs.js +2 -2
  33. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  34. package/dist/pages/interactionDetails.es.js +17 -16
  35. package/dist/pages/interactionDetails.es.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/components/UpdatedInteractionDetails/UpdatedInteractionDetails.jsx +125 -107
  38. package/src/components/UpdatedInteractionDetails/UpdatedInteractionRecording.jsx +342 -178
@@ -1,13 +1,13 @@
1
- import { jsxs as r, jsx as t, Fragment as X } from "react/jsx-runtime";
2
- import { forwardRef as ce, useRef as he, useState as p, useImperativeHandle as ge } from "react";
3
- import { RotateCcw as ue, Pause as pe, Play as fe, RotateCw as me, ChevronDown as ye, AudioLines as N, PauseCircle as ve, PlayCircle as be } from "lucide-react";
4
- import { a as xe, T as ke } from "./Timeline.es.js";
5
- function Y(b) {
6
- const a = Math.floor(b / 60), x = Math.round(b % 60);
7
- return `${a}:${x.toString().padStart(2, "0")}`;
1
+ import { jsxs as r, jsx as o, Fragment as ne } from "react/jsx-runtime";
2
+ import { forwardRef as Ee, useRef as H, useState as h, useCallback as oe, useEffect as ie, useImperativeHandle as Ge } from "react";
3
+ import { FileSignal as We, RotateCcw as Me, Pause as ze, Play as He, RotateCw as Pe, ChevronDown as Ae, AudioLines as re, PauseCircle as $e, PlayCircle as Be } from "lucide-react";
4
+ import { T as je } from "./Timeline.es.js";
5
+ function ae(u) {
6
+ const l = Math.floor(u / 60), D = Math.round(u % 60);
7
+ return `${l}:${D.toString().padStart(2, "0")}`;
8
8
  }
9
- const Fe = {
10
- David: [
9
+ const Le = {
10
+ Agent: [
11
11
  { start: 0, end: 0.08 },
12
12
  { start: 0.18, end: 0.22 },
13
13
  { start: 0.38, end: 0.42 },
@@ -23,490 +23,586 @@ const Fe = {
23
23
  { start: 0.6, end: 0.66 },
24
24
  { start: 0.74, end: 0.8 }
25
25
  ]
26
- }, v = [
27
- { speaker: "David", type: "agent", time: "00:04", text: "Thanks for calling Miles Point S Pensau. This is Steve. How can I help you?" },
26
+ }, C = [
27
+ { speaker: "Agent", type: "agent", time: "00:04", text: "Thanks for calling Miles Point S Pensau. This is Steve. How can I help you?" },
28
28
  { speaker: "Customer", type: "customer", time: "00:12", text: "Hi, Steve. This is Sandra with Botai Catering." },
29
- { speaker: "David", type: "agent", time: "00:18", text: "Hello. How are you?" },
29
+ { speaker: "Agent", type: "agent", time: "00:18", text: "Hello. How are you?" },
30
30
  { speaker: "Customer", type: "customer", time: "00:20", text: "I'm doing really good. Hey. I brought my vans in last week, and I call it a beeping van, the one that beeps when you back up. Makes the crunchy noise. So I just took it on Saturday after, I think I had the, the Miles. I picked it up on Saturday morning, and I went to an event. So So I don't know if it's the tire or something, but makes it a little crunchy noise. Sometimes when I do the brake, but only if I turn the wheel too." },
31
- { speaker: "David", type: "agent", time: "00:21", text: "Oh, interesting. Okay. Can you swing by with it one of these days?" }
32
- ], Ie = ce(function({
33
- audioUrl: a,
34
- timelineSegments: x = [],
35
- durationSeconds: g = 0,
36
- currentTimeSeconds: G = 0,
37
- timelinePlaying: l = !1,
38
- playbackRate: k = 1,
39
- onSeek: F,
40
- onTogglePlay: T,
41
- onSeekBack: W,
42
- onSeekForward: M,
43
- onSetPlaybackRate: R,
44
- audioRef: L,
45
- transcript: d,
46
- highlightedTurns: K = /* @__PURE__ */ new Set(),
47
- activeTurnIndex: E,
48
- activeDemoIndex: V = 1,
49
- turnObservations: Z = {},
50
- setExpandedSignals: w,
51
- onTurnPlayPause: q
52
- }, J) {
53
- var O;
54
- const S = he(null), [f, Q] = p(null), [U, ee] = p(k || 1), [D, m] = p(l), [te, z] = p(!1), [H, C] = p(V), $ = (e) => {
55
- for (let n = v.length - 1; n >= 0; n--) {
56
- const o = P(v[n].time);
57
- if (e >= o)
31
+ { speaker: "Agent", type: "agent", time: "00:21", text: "Oh, interesting. Okay. Can you swing by with it one of these days?" }
32
+ ], _e = [1, 1.25, 1.5, 2];
33
+ function se(u) {
34
+ if (!u)
35
+ return 0;
36
+ const l = u.split(":").map(Number);
37
+ return (l[0] || 0) * 60 + (l[1] || 0);
38
+ }
39
+ const Ke = Ee(function({
40
+ audioUrl: l,
41
+ timelineSegments: D = [],
42
+ durationSeconds: S = 0,
43
+ // Parent-managed audio props (optional — if not provided, component manages its own audio)
44
+ currentTimeSeconds: P,
45
+ timelinePlaying: A,
46
+ playbackRate: $,
47
+ onSeek: T,
48
+ onTogglePlay: B,
49
+ onSeekBack: j,
50
+ onSeekForward: L,
51
+ onSetPlaybackRate: _,
52
+ audioRef: X,
53
+ // Speaker names
54
+ agentName: le = "Agent",
55
+ customerName: ce = "Customer",
56
+ // Transcript props
57
+ transcript: g,
58
+ highlightedTurns: de = /* @__PURE__ */ new Set(),
59
+ activeTurnIndex: N,
60
+ activeDemoIndex: he = 1,
61
+ turnObservations: ue = {},
62
+ setExpandedSignals: R,
63
+ onTurnPlayPause: Y
64
+ }, ge) {
65
+ var te;
66
+ const q = H(null), c = H(null), v = H(null), [K, f] = h(!1), [E, V] = h(0), [fe, pe] = h(0), [me, ye] = h(1), [F, ve] = h(null), [be, ke] = h(1), [xe, w] = h(!1), [Se, Z] = h(!1), [J, G] = h(he), a = !!X, b = !l, s = l && !a, k = b ? xe : a ? A ?? !1 : K, Fe = b ? F ?? 0 : a ? P ?? 0 : E, W = b ? be : a ? $ ?? 1 : me, M = b ? S || 156 : a ? S : fe || S || 0, z = oe(() => {
67
+ const e = () => {
68
+ const n = c.current;
69
+ n && V(n.currentTime), v.current = requestAnimationFrame(e);
70
+ };
71
+ v.current = requestAnimationFrame(e);
72
+ }, []), p = oe(() => {
73
+ v.current && (cancelAnimationFrame(v.current), v.current = null);
74
+ }, []);
75
+ ie(() => () => p(), [p]), ie(() => {
76
+ if (!s)
77
+ return;
78
+ const e = c.current;
79
+ if (!e)
80
+ return;
81
+ const n = () => pe(e.duration || 0), t = () => {
82
+ f(!1), p();
83
+ };
84
+ return e.addEventListener("loadedmetadata", n), e.addEventListener("ended", t), () => {
85
+ e.removeEventListener("loadedmetadata", n), e.removeEventListener("ended", t);
86
+ };
87
+ }, [s, p]);
88
+ const O = (e) => {
89
+ for (let n = C.length - 1; n >= 0; n--) {
90
+ const t = se(C[n].time);
91
+ if (e >= t)
58
92
  return n;
59
93
  }
60
94
  return 0;
61
- }, P = (e) => {
62
- if (!e)
63
- return 0;
64
- const n = e.split(":").map(Number);
65
- return (n[0] || 0) * 60 + (n[1] || 0);
66
- }, ne = [1, 1.25, 1.5, 2], B = !a, I = B ? U : k, oe = B ? D : l;
67
- ge(J, () => ({
95
+ }, m = (e) => {
96
+ const t = Math.max(0, Math.min(e, M || 156));
97
+ if (s) {
98
+ const i = c.current;
99
+ i && (i.currentTime = t), V(t);
100
+ } else
101
+ a && T && T(t);
102
+ ve(t), G(O(t));
103
+ }, we = () => {
104
+ if (s) {
105
+ const e = c.current;
106
+ if (!e)
107
+ return;
108
+ K ? (e.pause(), p(), f(!1)) : e.play().then(() => {
109
+ f(!0), z();
110
+ }).catch(() => {
111
+ });
112
+ } else
113
+ a && B ? B() : w((e) => !e);
114
+ }, Ie = () => {
115
+ a && j ? j() : m(Math.max(0, (s ? E : F ?? 0) - 10));
116
+ }, Ce = () => {
117
+ a && L ? L() : m(Math.min(M || 156, (s ? E : F ?? 0) + 10));
118
+ }, De = (e) => {
119
+ if (s) {
120
+ const n = c.current;
121
+ n && (n.playbackRate = e), ye(e);
122
+ } else
123
+ a && _ && _(e);
124
+ ke(e), Z(!1);
125
+ };
126
+ Ge(ge, () => ({
68
127
  seekTo: (e) => {
69
- c(e), m(!0);
70
- const n = $(e);
71
- C(n), setTimeout(() => {
128
+ if (m(e), s) {
129
+ const t = c.current;
130
+ t && t.play().then(() => {
131
+ f(!0), z();
132
+ }).catch(() => {
133
+ });
134
+ } else
135
+ w(!0);
136
+ const n = O(e);
137
+ G(n), setTimeout(() => {
72
138
  var i;
73
- const o = (i = S.current) == null ? void 0 : i.children;
74
- o != null && o[n] && o[n].scrollIntoView({ behavior: "smooth", block: "nearest" });
139
+ const t = (i = q.current) == null ? void 0 : i.children;
140
+ t != null && t[n] && t[n].scrollIntoView({ behavior: "smooth", block: "nearest" });
75
141
  }, 50);
76
142
  }
77
143
  }));
78
- const c = (e) => {
79
- const n = Math.max(0, Math.min(e, g || 156));
80
- F && F(n), Q(n), C($(n));
81
- }, re = () => {
82
- T ? T() : m((e) => !e);
83
- }, ie = () => {
84
- W ? W() : c(Math.max(0, (f ?? 0) - 10));
85
- }, se = () => {
86
- M ? M() : c(Math.min(g || 156, (f ?? 0) + 10));
87
- }, ae = (e) => {
88
- R && R(e), ee(e), z(!1);
89
- }, le = (e) => {
144
+ const Te = (e) => {
90
145
  var n;
91
- if (H === e && D)
92
- m(!1);
93
- else {
94
- const o = P((n = v[e]) == null ? void 0 : n.time);
95
- C(e), m(!0), c(o);
146
+ if (J === e && k) {
147
+ if (s) {
148
+ const t = c.current;
149
+ t && t.pause(), p(), f(!1);
150
+ }
151
+ w(!1);
152
+ } else {
153
+ const t = se((n = C[e]) == null ? void 0 : n.time);
154
+ if (G(e), m(t), s) {
155
+ const i = c.current;
156
+ i && (i.currentTime = t, i.play().then(() => {
157
+ f(!0), z();
158
+ }).catch(() => {
159
+ }));
160
+ }
161
+ w(!0);
96
162
  }
97
- }, de = (e, n) => {
163
+ }, Re = (e, n) => {
98
164
  if (e == null)
99
165
  return;
100
- const o = (i) => {
101
- const s = Math.floor(i / 6e4), h = Math.floor(i % 6e4 / 1e3);
102
- return `${s.toString().padStart(2, "0")}:${h.toString().padStart(2, "0")}`;
166
+ const t = (i) => {
167
+ const d = Math.floor(i / 6e4), y = Math.floor(i % 6e4 / 1e3);
168
+ return `${d.toString().padStart(2, "0")}:${y.toString().padStart(2, "0")}`;
103
169
  };
104
- return `${o(e)}–${n != null ? o(n) : o(e)}`;
105
- }, j = (O = d == null ? void 0 : d.messages) != null && O.length ? d.messages.map((e, n) => {
106
- var o, i;
170
+ return `${t(e)}–${n != null ? t(n) : t(e)}`;
171
+ }, Q = (te = g == null ? void 0 : g.messages) != null && te.length ? g.messages.map((e, n) => {
172
+ var t, i;
107
173
  return {
108
- actor: e.actor === "agent" ? ((o = d.actor_map) == null ? void 0 : o.agent) || "Agent" : ((i = d.actor_map) == null ? void 0 : i.customer) || "Customer",
174
+ actor: e.actor === "agent" ? ((t = g.actor_map) == null ? void 0 : t.agent) || "Agent" : ((i = g.actor_map) == null ? void 0 : i.customer) || "Customer",
109
175
  actorType: e.actor === "agent" ? "agent" : "customer",
110
176
  text: e.text || "",
111
- timeRange: de(e.start ?? e.start_ms, e.end ?? e.end_ms),
112
- isHighlighted: K.has(n),
113
- highlightColor: l && E === n ? e.actor === "agent" ? "var(--rail-outcome)" : "var(--rail-discovery)" : void 0,
114
- observations: (Z[n] || []).map((s) => ({
115
- ...s,
177
+ timeRange: Re(e.start ?? e.start_ms, e.end ?? e.end_ms),
178
+ isHighlighted: de.has(n),
179
+ highlightColor: k && N === n ? e.actor === "agent" ? "var(--rail-outcome)" : "var(--rail-discovery)" : void 0,
180
+ observations: (ue[n] || []).map((d) => ({
181
+ ...d,
116
182
  onClick: () => {
117
- w == null || w((h) => /* @__PURE__ */ new Set([...h, s.signalKey])), setTimeout(() => {
118
- const h = document.getElementById(`signal-${s.signalKey}`);
119
- h && h.scrollIntoView({ behavior: "smooth", block: "nearest" });
183
+ R == null || R((y) => /* @__PURE__ */ new Set([...y, d.signalKey])), setTimeout(() => {
184
+ const y = document.getElementById(`signal-${d.signalKey}`);
185
+ y && y.scrollIntoView({ behavior: "smooth", block: "nearest" });
120
186
  }, 100);
121
187
  }
122
188
  }))
123
189
  };
124
- }) : null, y = g || 156, A = f ?? (g > 0 ? G : 0), u = y > 0 ? A / y * 100 : 0, _ = Math.round(A);
190
+ }) : null, U = b ? F ?? 0 : Fe, I = M || 156, x = I > 0 ? U / I * 100 : 0, ee = Math.round(U);
125
191
  return /* @__PURE__ */ r("div", { style: {
126
192
  display: "flex",
127
- padding: 24,
128
193
  flexDirection: "column",
129
- alignItems: "flex-start",
130
- gap: 24,
131
- borderRadius: 8,
132
- border: "1px solid var(--Grey-absent, #D9D9D9)",
133
- background: "var(--Grey-White, #FFF)"
194
+ gap: 16
134
195
  }, children: [
135
- /* @__PURE__ */ r("div", { style: { width: "100%", display: "flex", flexDirection: "column", gap: 16 }, children: [
136
- /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 24 }, children: [
137
- /* @__PURE__ */ t("span", { style: {
138
- fontSize: 15,
139
- fontWeight: 600,
140
- color: "var(--Grey-Strong, #2E3236)",
141
- lineHeight: 1.2
142
- }, children: "Recording" }),
143
- /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 12, flex: 1, justifyContent: "center" }, children: [
144
- /* @__PURE__ */ t("span", { style: { fontSize: 13, fontWeight: 400, color: "var(--Grey-Muted, #808183)", lineHeight: 1.2 }, children: "10" }),
145
- /* @__PURE__ */ t("button", { onClick: ie, style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ t(ue, { size: 20, color: "#808183", strokeWidth: 1.5 }) }),
146
- /* @__PURE__ */ t("button", { onClick: re, style: {
147
- background: "var(--Grey-Strong, #2E3236)",
148
- border: "none",
149
- cursor: "pointer",
150
- width: 32,
151
- height: 32,
152
- borderRadius: 48,
153
- padding: 0,
154
- display: "flex",
155
- alignItems: "center",
156
- justifyContent: "center"
157
- }, children: oe ? /* @__PURE__ */ t(pe, { size: 14, color: "#FFF", fill: "#FFF" }) : /* @__PURE__ */ t(fe, { size: 14, color: "#FFF", fill: "#FFF", strokeWidth: 1.5, style: { marginLeft: 2 } }) }),
158
- /* @__PURE__ */ t("button", { onClick: se, style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ t(me, { size: 20, color: "#808183", strokeWidth: 1.5 }) }),
159
- /* @__PURE__ */ t("span", { style: { fontSize: 13, fontWeight: 400, color: "var(--Grey-Muted, #808183)", lineHeight: 1.2 }, children: "10" })
196
+ /* @__PURE__ */ r("div", { style: {
197
+ display: "flex",
198
+ alignItems: "center",
199
+ gap: 16,
200
+ width: "100%"
201
+ }, children: [
202
+ /* @__PURE__ */ o("div", { style: {
203
+ display: "flex",
204
+ alignItems: "center",
205
+ justifyContent: "center",
206
+ width: 34,
207
+ height: 34,
208
+ borderRadius: 9999,
209
+ background: "var(--surface-hover, #F3F7F7)",
210
+ flexShrink: 0
211
+ }, children: /* @__PURE__ */ o(We, { size: 20, color: "#2E3236", strokeWidth: 1.5 }) }),
212
+ /* @__PURE__ */ o("span", { style: {
213
+ fontSize: 15,
214
+ fontWeight: 500,
215
+ color: "var(--Grey-Strong, #2E3236)"
216
+ }, children: "Recording" })
217
+ ] }),
218
+ /* @__PURE__ */ r("div", { style: {
219
+ display: "flex",
220
+ padding: 24,
221
+ flexDirection: "column",
222
+ alignItems: "flex-start",
223
+ gap: 24,
224
+ borderRadius: 8,
225
+ border: "1px solid var(--Grey-absent, #D9D9D9)",
226
+ background: "var(--Grey-White, #FFF)"
227
+ }, children: [
228
+ /* @__PURE__ */ r("div", { style: { width: "100%", display: "flex", flexDirection: "column", gap: 16 }, children: [
229
+ /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 24 }, children: [
230
+ /* @__PURE__ */ r("span", { style: {
231
+ fontSize: 14,
232
+ fontWeight: 500,
233
+ color: "var(--Grey-Strong, #2E3236)",
234
+ lineHeight: 1.2
235
+ }, children: [
236
+ le,
237
+ " / ",
238
+ ce
239
+ ] }),
240
+ /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
241
+ /* @__PURE__ */ o("span", { style: { fontSize: 13, fontWeight: 400, color: "var(--Grey-Muted, #808183)", lineHeight: 1.2 }, children: "10" }),
242
+ /* @__PURE__ */ o("button", { onClick: Ie, style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ o(Me, { size: 20, color: "#808183", strokeWidth: 1.5 }) }),
243
+ /* @__PURE__ */ o("button", { onClick: we, style: {
244
+ background: "var(--Grey-Strong, #2E3236)",
245
+ border: "none",
246
+ cursor: "pointer",
247
+ width: 32,
248
+ height: 32,
249
+ borderRadius: 48,
250
+ padding: 0,
251
+ display: "flex",
252
+ alignItems: "center",
253
+ justifyContent: "center"
254
+ }, children: k ? /* @__PURE__ */ o(ze, { size: 14, color: "#FFF", fill: "#FFF" }) : /* @__PURE__ */ o(He, { size: 14, color: "#FFF", fill: "#FFF", strokeWidth: 1.5, style: { marginLeft: 2 } }) }),
255
+ /* @__PURE__ */ o("button", { onClick: Ce, style: { background: "none", border: "none", cursor: "pointer", padding: 0, display: "flex", alignItems: "center" }, children: /* @__PURE__ */ o(Pe, { size: 20, color: "#808183", strokeWidth: 1.5 }) }),
256
+ /* @__PURE__ */ o("span", { style: { fontSize: 13, fontWeight: 400, color: "var(--Grey-Muted, #808183)", lineHeight: 1.2 }, children: "10" })
257
+ ] }),
258
+ /* @__PURE__ */ r("div", { style: { position: "relative" }, children: [
259
+ /* @__PURE__ */ r(
260
+ "button",
261
+ {
262
+ onClick: () => Z((e) => !e),
263
+ style: {
264
+ background: "var(--Grey-White, #FFF)",
265
+ border: "1px solid var(--Grey-absent, #D9D9D9)",
266
+ borderRadius: 20,
267
+ padding: "0 5px 0 10px",
268
+ height: 24,
269
+ minWidth: 56,
270
+ cursor: "pointer",
271
+ fontSize: 13,
272
+ fontWeight: 400,
273
+ color: "var(--Grey-Strong, #2E3236)",
274
+ fontFamily: "var(--font-sans)",
275
+ lineHeight: 1.2,
276
+ display: "flex",
277
+ alignItems: "center",
278
+ justifyContent: "center",
279
+ gap: 4
280
+ },
281
+ children: [
282
+ W,
283
+ "x",
284
+ /* @__PURE__ */ o(Ae, { size: 12, color: "#808183" })
285
+ ]
286
+ }
287
+ ),
288
+ Se && /* @__PURE__ */ o("div", { style: {
289
+ position: "absolute",
290
+ top: "100%",
291
+ right: 0,
292
+ marginTop: 4,
293
+ background: "var(--Grey-White, #FFF)",
294
+ border: "1px solid var(--Grey-absent, #D9D9D9)",
295
+ borderRadius: 8,
296
+ boxShadow: "0 4px 12px rgba(0,0,0,0.1)",
297
+ zIndex: 10,
298
+ overflow: "hidden",
299
+ minWidth: 80
300
+ }, children: _e.map((e) => /* @__PURE__ */ r(
301
+ "button",
302
+ {
303
+ onClick: () => De(e),
304
+ style: {
305
+ display: "block",
306
+ width: "100%",
307
+ padding: "8px 12px",
308
+ border: "none",
309
+ background: W === e ? "var(--surface-hover, #F3F7F7)" : "var(--Grey-White, #FFF)",
310
+ cursor: "pointer",
311
+ fontSize: 13,
312
+ fontWeight: W === e ? 600 : 400,
313
+ color: "var(--Grey-Strong, #2E3236)",
314
+ fontFamily: "var(--font-sans)",
315
+ textAlign: "left"
316
+ },
317
+ children: [
318
+ e,
319
+ "x"
320
+ ]
321
+ },
322
+ e
323
+ )) })
324
+ ] })
160
325
  ] }),
161
- /* @__PURE__ */ r("div", { style: { position: "relative" }, children: [
162
- /* @__PURE__ */ r(
163
- "button",
326
+ l && a ? /* @__PURE__ */ r(ne, { children: [
327
+ /* @__PURE__ */ o(
328
+ je,
164
329
  {
165
- onClick: () => z((e) => !e),
166
- style: {
167
- background: "var(--Grey-White, #FFF)",
168
- border: "1px solid var(--Grey-absent, #D9D9D9)",
169
- borderRadius: 20,
170
- padding: "0 5px 0 10px",
171
- height: 24,
172
- minWidth: 56,
173
- cursor: "pointer",
174
- fontSize: 13,
175
- fontWeight: 400,
176
- color: "var(--Grey-Strong, #2E3236)",
177
- fontFamily: "var(--font-sans)",
178
- lineHeight: 1.2,
179
- display: "flex",
180
- alignItems: "center",
181
- justifyContent: "center",
182
- gap: 4
183
- },
184
- children: [
185
- I,
186
- "x",
187
- /* @__PURE__ */ t(ye, { size: 12, color: "#808183" })
188
- ]
330
+ segments: D,
331
+ durationSeconds: S,
332
+ currentTimeSeconds: P,
333
+ onSeek: T,
334
+ showControls: !1,
335
+ hasRecording: !0,
336
+ timelinePlaying: A,
337
+ playbackRate: $
189
338
  }
190
339
  ),
191
- te && /* @__PURE__ */ t("div", { style: {
192
- position: "absolute",
193
- top: "100%",
194
- right: 0,
195
- marginTop: 4,
196
- background: "var(--Grey-White, #FFF)",
197
- border: "1px solid var(--Grey-absent, #D9D9D9)",
198
- borderRadius: 8,
199
- boxShadow: "0 4px 12px rgba(0,0,0,0.1)",
200
- zIndex: 10,
201
- overflow: "hidden",
202
- minWidth: 80
203
- }, children: ne.map((e) => /* @__PURE__ */ r(
204
- "button",
205
- {
206
- onClick: () => ae(e),
207
- style: {
208
- display: "block",
209
- width: "100%",
210
- padding: "8px 12px",
211
- border: "none",
212
- background: I === e ? "var(--surface-hover, #F3F7F7)" : "var(--Grey-White, #FFF)",
213
- cursor: "pointer",
214
- fontSize: 13,
215
- fontWeight: I === e ? 600 : 400,
216
- color: "var(--Grey-Strong, #2E3236)",
217
- fontFamily: "var(--font-sans)",
218
- textAlign: "left"
219
- },
220
- children: [
221
- e,
222
- "x"
223
- ]
224
- },
225
- e
226
- )) })
227
- ] })
228
- ] }),
229
- a ? /* @__PURE__ */ r(X, { children: [
230
- /* @__PURE__ */ t(
231
- xe,
232
- {
233
- segments: x,
234
- durationSeconds: g,
235
- currentTimeSeconds: G,
236
- onSeek: F,
237
- showControls: !1,
238
- hasRecording: !0,
239
- timelinePlaying: l,
240
- playbackRate: k
241
- }
242
- ),
243
- /* @__PURE__ */ t("audio", { ref: L, preload: "none", style: { display: "none" }, children: /* @__PURE__ */ t("source", { src: a, type: "audio/mpeg" }) })
244
- ] }) : /* @__PURE__ */ r("div", { style: { display: "flex", flexDirection: "column", gap: 12 }, children: [
245
- /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
246
- /* @__PURE__ */ t("span", { style: {
247
- fontSize: 13,
248
- fontWeight: 600,
249
- color: u > 0 ? "var(--Green-Primary, #00925F)" : "var(--Grey-Strong, #2E3236)",
250
- fontFamily: "var(--font-sans)",
251
- lineHeight: 1.2,
252
- minWidth: 60
253
- }, children: Y(_) }),
254
- /* @__PURE__ */ r(
255
- "div",
256
- {
257
- onClick: (e) => {
258
- const n = e.currentTarget.getBoundingClientRect(), o = e.clientX - n.left, s = Math.max(0, Math.min(1, o / n.width)) * y;
259
- c(s);
260
- },
261
- style: {
262
- flex: 1,
263
- height: 16,
264
- position: "relative",
265
- display: "flex",
266
- alignItems: "center",
267
- cursor: "pointer"
268
- },
269
- children: [
270
- /* @__PURE__ */ t("div", { style: {
271
- position: "absolute",
272
- left: 0,
273
- right: 0,
274
- height: 4,
275
- borderRadius: 2,
276
- background: "var(--rail-surface-2, #E3E1D7)",
277
- pointerEvents: "none"
278
- } }),
279
- /* @__PURE__ */ t("div", { style: {
280
- position: "absolute",
281
- left: 0,
282
- top: "50%",
283
- transform: "translateY(-50%)",
284
- width: `${u}%`,
285
- height: 4,
286
- borderRadius: 2,
287
- background: "var(--Green-Primary, #00925F)",
288
- pointerEvents: "none"
289
- } }),
290
- /* @__PURE__ */ t(
291
- "svg",
292
- {
293
- width: "16",
294
- height: "16",
295
- viewBox: "0 0 16 16",
296
- fill: "none",
297
- xmlns: "http://www.w3.org/2000/svg",
298
- style: {
299
- position: "absolute",
300
- left: `${u}%`,
301
- top: "50%",
302
- transform: "translate(-50%, -50%)",
303
- pointerEvents: "none"
304
- },
305
- children: /* @__PURE__ */ t(
306
- "path",
307
- {
308
- d: "M7.875 1C11.6572 1 14.75 4.1191 14.75 8C14.75 11.8809 11.6572 15 7.875 15C4.09284 15 1 11.8809 1 8C1 4.1191 4.09284 1 7.875 1Z",
309
- fill: "#FFF",
310
- stroke: "#00925F",
311
- strokeWidth: "2"
312
- }
313
- )
314
- }
315
- )
316
- ]
317
- }
318
- )
319
- ] }),
320
- /* @__PURE__ */ r("div", { style: { position: "relative", paddingBottom: 30, cursor: "pointer" }, children: [
321
- ["David", "Customer"].map((e, n) => /* @__PURE__ */ r("div", { style: {
322
- display: "flex",
323
- alignItems: "center",
324
- gap: 8,
325
- height: 20,
326
- marginBottom: n === 0 ? 4 : 0
327
- }, children: [
328
- /* @__PURE__ */ t("span", { style: {
340
+ /* @__PURE__ */ o("audio", { ref: X, preload: "none", style: { display: "none" }, children: /* @__PURE__ */ o("source", { src: l, type: "audio/mpeg" }) })
341
+ ] }) : /* @__PURE__ */ r("div", { style: { display: "flex", flexDirection: "column", gap: 12 }, children: [
342
+ /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
343
+ /* @__PURE__ */ o("span", { style: {
329
344
  fontSize: 13,
330
- fontWeight: 400,
331
- color: "var(--Grey-Muted, #808183)",
345
+ fontWeight: 600,
346
+ color: x > 0 ? "var(--Green-Primary, #00925F)" : "var(--Grey-Strong, #2E3236)",
332
347
  fontFamily: "var(--font-sans)",
333
348
  lineHeight: 1.2,
334
349
  minWidth: 60
335
- }, children: e }),
350
+ }, children: ae(ee) }),
336
351
  /* @__PURE__ */ r(
337
352
  "div",
338
353
  {
339
- onClick: (o) => {
340
- const i = o.currentTarget.getBoundingClientRect(), s = Math.max(0, Math.min(1, (o.clientX - i.left) / i.width));
341
- c(s * y);
354
+ onClick: (e) => {
355
+ const n = e.currentTarget.getBoundingClientRect(), t = e.clientX - n.left, i = Math.max(0, Math.min(1, t / n.width));
356
+ m(i * I);
342
357
  },
343
358
  style: {
344
359
  flex: 1,
345
- height: 6,
360
+ height: 16,
346
361
  position: "relative",
347
- borderRadius: 3,
362
+ display: "flex",
363
+ alignItems: "center",
348
364
  cursor: "pointer"
349
365
  },
350
366
  children: [
351
- /* @__PURE__ */ t("div", { style: {
367
+ /* @__PURE__ */ o("div", { style: {
352
368
  position: "absolute",
353
369
  left: 0,
354
370
  right: 0,
371
+ height: 4,
372
+ borderRadius: 2,
373
+ background: "var(--rail-surface-2, #E3E1D7)",
374
+ pointerEvents: "none"
375
+ } }),
376
+ /* @__PURE__ */ o("div", { style: {
377
+ position: "absolute",
378
+ left: 0,
355
379
  top: "50%",
356
380
  transform: "translateY(-50%)",
381
+ width: `${x}%`,
357
382
  height: 4,
358
383
  borderRadius: 2,
359
- background: "var(--rail-surface-2, #E3E1D7)"
384
+ background: "var(--Green-Primary, #00925F)",
385
+ pointerEvents: "none"
360
386
  } }),
361
- Fe[e].map((o, i) => /* @__PURE__ */ t("div", { style: {
362
- position: "absolute",
363
- left: `${o.start * 100}%`,
364
- width: `${(o.end - o.start) * 100}%`,
365
- top: 0,
366
- bottom: 0,
367
- borderRadius: 3,
368
- background: e === "David" ? "var(--Grey-Strong, #2E3236)" : "var(--Grey-Muted, #808183)"
369
- } }, i))
387
+ /* @__PURE__ */ o(
388
+ "svg",
389
+ {
390
+ width: "16",
391
+ height: "16",
392
+ viewBox: "0 0 16 16",
393
+ fill: "none",
394
+ xmlns: "http://www.w3.org/2000/svg",
395
+ style: {
396
+ position: "absolute",
397
+ left: `${x}%`,
398
+ top: "50%",
399
+ transform: "translate(-50%, -50%)",
400
+ pointerEvents: "none"
401
+ },
402
+ children: /* @__PURE__ */ o(
403
+ "path",
404
+ {
405
+ d: "M7.875 1C11.6572 1 14.75 4.1191 14.75 8C14.75 11.8809 11.6572 15 7.875 15C4.09284 15 1 11.8809 1 8C1 4.1191 4.09284 1 7.875 1Z",
406
+ fill: "#FFF",
407
+ stroke: "#00925F",
408
+ strokeWidth: "2"
409
+ }
410
+ )
411
+ }
412
+ )
370
413
  ]
371
414
  }
372
415
  )
373
- ] }, e)),
374
- /* @__PURE__ */ r("div", { style: {
375
- position: "absolute",
376
- left: 68,
377
- /* 60 label + 8 gap */
378
- right: 0,
379
- top: 0,
380
- bottom: 0,
381
- pointerEvents: "none"
382
- }, children: [
383
- /* @__PURE__ */ t("div", { style: {
416
+ ] }),
417
+ /* @__PURE__ */ r("div", { style: { position: "relative", paddingBottom: 30, cursor: "pointer" }, children: [
418
+ ["Agent", "Customer"].map((e, n) => /* @__PURE__ */ r("div", { style: {
419
+ display: "flex",
420
+ alignItems: "center",
421
+ gap: 8,
422
+ height: 20,
423
+ marginBottom: n === 0 ? 4 : 0
424
+ }, children: [
425
+ /* @__PURE__ */ o("span", { style: {
426
+ fontSize: 13,
427
+ fontWeight: 400,
428
+ color: "var(--Grey-Muted, #808183)",
429
+ fontFamily: "var(--font-sans)",
430
+ lineHeight: 1.2,
431
+ minWidth: 60
432
+ }, children: e }),
433
+ /* @__PURE__ */ r(
434
+ "div",
435
+ {
436
+ onClick: (t) => {
437
+ const i = t.currentTarget.getBoundingClientRect(), d = Math.max(0, Math.min(1, (t.clientX - i.left) / i.width));
438
+ m(d * I);
439
+ },
440
+ style: {
441
+ flex: 1,
442
+ height: 6,
443
+ position: "relative",
444
+ borderRadius: 3,
445
+ cursor: "pointer"
446
+ },
447
+ children: [
448
+ /* @__PURE__ */ o("div", { style: {
449
+ position: "absolute",
450
+ left: 0,
451
+ right: 0,
452
+ top: "50%",
453
+ transform: "translateY(-50%)",
454
+ height: 4,
455
+ borderRadius: 2,
456
+ background: "var(--rail-surface-2, #E3E1D7)"
457
+ } }),
458
+ Le[e].map((t, i) => /* @__PURE__ */ o("div", { style: {
459
+ position: "absolute",
460
+ left: `${t.start * 100}%`,
461
+ width: `${(t.end - t.start) * 100}%`,
462
+ top: 0,
463
+ bottom: 0,
464
+ borderRadius: 3,
465
+ background: e === "Agent" ? "var(--Grey-Strong, #2E3236)" : "var(--Grey-Muted, #808183)"
466
+ } }, i))
467
+ ]
468
+ }
469
+ )
470
+ ] }, e)),
471
+ /* @__PURE__ */ r("div", { style: {
384
472
  position: "absolute",
385
- left: `${u}%`,
473
+ left: 68,
474
+ /* 60 label + 8 gap */
475
+ right: 0,
386
476
  top: 0,
387
- height: 44,
388
- /* spans both rows */
389
- transform: "translateX(-50%)",
390
- borderLeft: "1.5px dashed var(--Grey-Muted, #808183)",
391
- opacity: 0.5
392
- } }),
393
- /* @__PURE__ */ t("div", { style: {
394
- position: "absolute",
395
- left: `${u}%`,
396
477
  bottom: 0,
397
- transform: "translateX(-50%)",
398
- background: "var(--Grey-Strong, #2E3236)",
399
- color: "var(--Grey-White, #FFF)",
400
- fontSize: 14,
401
- fontWeight: 600,
402
- lineHeight: 1.2,
403
- padding: "4px 6px",
404
- borderRadius: 4,
405
- whiteSpace: "nowrap"
406
- }, children: Y(_) })
407
- ] })
478
+ pointerEvents: "none"
479
+ }, children: [
480
+ /* @__PURE__ */ o("div", { style: {
481
+ position: "absolute",
482
+ left: `${x}%`,
483
+ top: 0,
484
+ height: 44,
485
+ /* spans both rows */
486
+ transform: "translateX(-50%)",
487
+ borderLeft: "1.5px dashed var(--Grey-Muted, #808183)",
488
+ opacity: 0.5
489
+ } }),
490
+ /* @__PURE__ */ o("div", { style: {
491
+ position: "absolute",
492
+ left: `${x}%`,
493
+ bottom: 0,
494
+ transform: "translateX(-50%)",
495
+ background: "var(--Grey-Strong, #2E3236)",
496
+ color: "var(--Grey-White, #FFF)",
497
+ fontSize: 14,
498
+ fontWeight: 600,
499
+ lineHeight: 1.2,
500
+ padding: "4px 6px",
501
+ borderRadius: 4,
502
+ whiteSpace: "nowrap"
503
+ }, children: ae(ee) })
504
+ ] })
505
+ ] }),
506
+ s && /* @__PURE__ */ o("audio", { ref: c, preload: "auto", style: { display: "none" }, children: /* @__PURE__ */ o("source", { src: l, type: "audio/mpeg" }) })
408
507
  ] })
409
- ] })
410
- ] }),
411
- /* @__PURE__ */ r("div", { style: {
412
- width: "100%",
413
- display: "flex",
414
- flexDirection: "column",
415
- gap: 16
416
- }, children: [
417
- /* @__PURE__ */ t("div", { style: {
418
- borderBottom: "1px solid var(--Grey-absent, #D9D9D9)",
419
- paddingBottom: 16
420
- }, children: /* @__PURE__ */ t("span", { style: {
421
- fontSize: 14,
422
- fontWeight: 400,
423
- color: "var(--Grey-Strong, #2E3236)",
424
- lineHeight: 1.2
425
- }, children: "Transcript" }) }),
426
- j ? /* @__PURE__ */ t("div", { id: "transcript-container", ref: S, style: { maxHeight: 600, overflowY: "auto" }, children: /* @__PURE__ */ t(
427
- ke,
428
- {
429
- turns: j,
430
- audioUrl: a,
431
- activeTurnIndex: E,
432
- autoScrollActiveTurn: l,
433
- isExternalPlaying: l,
434
- onTurnPlayPause: q
435
- }
436
- ) }) : /* @__PURE__ */ t("div", { ref: S, style: {
508
+ ] }),
509
+ /* @__PURE__ */ r("div", { style: {
510
+ width: "100%",
437
511
  display: "flex",
438
512
  flexDirection: "column",
439
- maxHeight: 600,
440
- overflowY: "auto"
441
- }, children: v.map((e, n) => {
442
- const o = n === H && D, i = e.type === "customer";
443
- return /* @__PURE__ */ r("div", { style: {
513
+ gap: 16
514
+ }, children: [
515
+ /* @__PURE__ */ o("div", { style: {
516
+ borderBottom: "1px solid var(--Grey-absent, #D9D9D9)",
517
+ paddingBottom: 16
518
+ }, children: /* @__PURE__ */ o("span", { style: {
519
+ fontSize: 14,
520
+ fontWeight: 400,
521
+ color: "var(--Grey-Strong, #2E3236)",
522
+ lineHeight: 1.2
523
+ }, children: "Transcript" }) }),
524
+ /* @__PURE__ */ o("div", { id: "transcript-container", ref: q, style: {
444
525
  display: "flex",
445
- padding: 16,
446
526
  flexDirection: "column",
447
- alignItems: "flex-start",
448
- gap: 16,
449
- alignSelf: "stretch",
450
- borderTop: n > 0 ? "1px solid var(--Grey-absent, #D9D9D9)" : "none",
451
- background: o ? "var(--surface-hover, #F3F7F7)" : "var(--Grey-White, #FFF)"
452
- }, children: [
453
- /* @__PURE__ */ r("div", { style: {
527
+ maxHeight: 600,
528
+ overflowY: "auto"
529
+ }, children: (Q || C.map((e) => ({
530
+ actor: e.speaker,
531
+ actorType: e.type,
532
+ text: e.text,
533
+ timeRange: e.time
534
+ }))).map((e, n) => {
535
+ const t = !!Q, i = t ? k && N === n : n === J && k, d = (e.actorType || e.type) === "customer";
536
+ return /* @__PURE__ */ r("div", { style: {
454
537
  display: "flex",
455
- alignItems: "center",
456
- justifyContent: "space-between",
457
- width: "100%",
458
- gap: 8
538
+ padding: 16,
539
+ flexDirection: "column",
540
+ alignItems: "flex-start",
541
+ gap: 16,
542
+ alignSelf: "stretch",
543
+ borderTop: n > 0 ? "1px solid var(--Grey-absent, #D9D9D9)" : "none",
544
+ background: i ? "var(--surface-hover, #F3F7F7)" : "var(--Grey-White, #FFF)"
459
545
  }, children: [
460
- /* @__PURE__ */ t("span", { style: {
461
- fontSize: 14,
462
- fontWeight: 600,
463
- lineHeight: 1.2,
464
- color: i ? "var(--Grey-Strong, #2E3236)" : "var(--Grey-Muted, #808183)"
465
- }, children: e.speaker }),
466
- /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
467
- o && /* @__PURE__ */ r(X, { children: [
468
- /* @__PURE__ */ t(N, { size: 12, color: "#2E3236" }),
469
- /* @__PURE__ */ t(N, { size: 12, color: "#2E3236" })
470
- ] }),
471
- /* @__PURE__ */ t("span", { style: {
546
+ /* @__PURE__ */ r("div", { style: {
547
+ display: "flex",
548
+ alignItems: "center",
549
+ justifyContent: "space-between",
550
+ width: "100%",
551
+ gap: 8
552
+ }, children: [
553
+ /* @__PURE__ */ o("span", { style: {
554
+ fontSize: 14,
555
+ fontWeight: 600,
556
+ lineHeight: 1.2,
557
+ color: d ? "var(--Grey-Strong, #2E3236)" : "var(--Grey-Muted, #808183)"
558
+ }, children: e.actor }),
559
+ /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
560
+ i && /* @__PURE__ */ r(ne, { children: [
561
+ /* @__PURE__ */ o(re, { size: 12, color: "#2E3236" }),
562
+ /* @__PURE__ */ o(re, { size: 12, color: "#2E3236" })
563
+ ] }),
564
+ /* @__PURE__ */ o("span", { style: {
565
+ fontSize: 13,
566
+ fontWeight: 400,
567
+ lineHeight: 1.2,
568
+ color: "var(--Grey-Muted, #808183)"
569
+ }, children: e.timeRange })
570
+ ] })
571
+ ] }),
572
+ /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "flex-start", gap: 8, width: "100%" }, children: [
573
+ /* @__PURE__ */ o(
574
+ "button",
575
+ {
576
+ onClick: () => {
577
+ t && Y ? Y(e, n) : Te(n);
578
+ },
579
+ style: {
580
+ background: "none",
581
+ border: "none",
582
+ cursor: "pointer",
583
+ padding: 0,
584
+ flexShrink: 0,
585
+ display: "flex"
586
+ },
587
+ children: i ? /* @__PURE__ */ o($e, { size: 17, color: "#2E3236", strokeWidth: 1.5 }) : /* @__PURE__ */ o(Be, { size: 17, color: "#808183", strokeWidth: 1 })
588
+ }
589
+ ),
590
+ /* @__PURE__ */ o("p", { style: {
472
591
  fontSize: 13,
473
592
  fontWeight: 400,
593
+ color: "var(--Grey-Strong, #2E3236)",
474
594
  lineHeight: 1.2,
475
- color: "var(--Grey-Muted, #808183)"
476
- }, children: e.time })
595
+ margin: 0,
596
+ flex: 1
597
+ }, children: e.text })
477
598
  ] })
478
- ] }),
479
- /* @__PURE__ */ r("div", { style: { display: "flex", alignItems: "flex-start", gap: 8, width: "100%" }, children: [
480
- /* @__PURE__ */ t(
481
- "button",
482
- {
483
- onClick: () => le(n),
484
- style: {
485
- background: "none",
486
- border: "none",
487
- cursor: "pointer",
488
- padding: 0,
489
- flexShrink: 0,
490
- display: "flex"
491
- },
492
- children: o ? /* @__PURE__ */ t(ve, { size: 17, color: "#2E3236", strokeWidth: 1.5 }) : /* @__PURE__ */ t(be, { size: 17, color: "#808183", strokeWidth: 1 })
493
- }
494
- ),
495
- /* @__PURE__ */ t("p", { style: {
496
- fontSize: 13,
497
- fontWeight: 400,
498
- color: "var(--Grey-Strong, #2E3236)",
499
- lineHeight: 1.2,
500
- margin: 0,
501
- flex: 1
502
- }, children: e.text })
503
- ] })
504
- ] }, n);
505
- }) })
599
+ ] }, n);
600
+ }) })
601
+ ] })
506
602
  ] })
507
603
  ] });
508
604
  });
509
605
  export {
510
- Ie as U
606
+ Ke as U
511
607
  };
512
608
  //# sourceMappingURL=UpdatedInteractionRecording.es.js.map