@epam/ai-dial-conversation-panel 1.1.0-dev.49 → 1.1.0-dev.491

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 (46) hide show
  1. package/components/ConversationGroupHeader/ConversationGroupHeader.d.ts +2 -2
  2. package/components/ConversationGroupHeader/ConversationGroupHeader.d.ts.map +1 -1
  3. package/components/ConversationPanel/ConversationPanel.d.ts.map +1 -1
  4. package/components/ConversationPanel/utils.d.ts +1 -1
  5. package/components/ConversationPanel/utils.d.ts.map +1 -1
  6. package/components/{ConversationGroup → ConversationRow}/ConversationRow.d.ts +5 -1
  7. package/components/ConversationRow/ConversationRow.d.ts.map +1 -0
  8. package/components/FilterTabs/FilterTabs.d.ts +6 -2
  9. package/components/FilterTabs/FilterTabs.d.ts.map +1 -1
  10. package/components/ImportExportQueue/ImportExportQueue.d.ts +6 -0
  11. package/components/ImportExportQueue/ImportExportQueue.d.ts.map +1 -0
  12. package/components/ImportExportQueueHeader/ImportExportQueueHeader.d.ts +24 -0
  13. package/components/ImportExportQueueHeader/ImportExportQueueHeader.d.ts.map +1 -0
  14. package/components/ImportExportQueueRow/ImportExportQueueRow.d.ts +17 -0
  15. package/components/ImportExportQueueRow/ImportExportQueueRow.d.ts.map +1 -0
  16. package/components/NewChatButton/NewChatButton.d.ts.map +1 -1
  17. package/components/RenameConversationPopup/RenameConversationPopup.d.ts +5 -0
  18. package/components/RenameConversationPopup/RenameConversationPopup.d.ts.map +1 -0
  19. package/components/RowRenderer/RowRenderer.d.ts +1 -1
  20. package/components/RowRenderer/RowRenderer.d.ts.map +1 -1
  21. package/constants/import-export-queue.d.ts +4 -0
  22. package/constants/import-export-queue.d.ts.map +1 -0
  23. package/index.css +1 -1
  24. package/index.d.ts +5 -2
  25. package/index.d.ts.map +1 -1
  26. package/index.js +777 -481
  27. package/models/import-export-queue.d.ts +113 -0
  28. package/models/import-export-queue.d.ts.map +1 -0
  29. package/models/panel-props.d.ts +53 -18
  30. package/models/panel-props.d.ts.map +1 -1
  31. package/models/rename-conversation-popup.d.ts +47 -0
  32. package/models/rename-conversation-popup.d.ts.map +1 -0
  33. package/models/virtual-row.d.ts +9 -5
  34. package/models/virtual-row.d.ts.map +1 -1
  35. package/package.json +7 -8
  36. package/utils/conversation-row.d.ts +8 -1
  37. package/utils/conversation-row.d.ts.map +1 -1
  38. package/utils/drag.d.ts +1 -1
  39. package/utils/drag.d.ts.map +1 -1
  40. package/utils/transfer-file.d.ts +10 -0
  41. package/utils/transfer-file.d.ts.map +1 -0
  42. package/components/ConversationGroup/ConversationGroup.d.ts +0 -27
  43. package/components/ConversationGroup/ConversationGroup.d.ts.map +0 -1
  44. package/components/ConversationGroup/ConversationRow.d.ts.map +0 -1
  45. package/types/conversation-classification.d.ts +0 -9
  46. package/types/conversation-classification.d.ts.map +0 -1
package/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { DeploymentIcon as e, Highlight as t, buildCssVars as n, mergeClasses as r } from "@epam/ai-dial-chat-shared";
2
- import { PanelEmpty as i, PanelNoResults as a, SearchInput as o, SidebarOrientation as s, SidebarPanel as c } from "@epam/ai-dial-sidebar";
3
- import { ButtonAppearance as l, DIAL_ICON_SIZE as u, DialButton as d, DialDropdown as f, DialEllipsisTooltip as p, DialIconButton as m, DialSkeleton as h, DialSkeletonVariant as g, DialTag as _, ElementSize as v, mergeClasses as y } from "@epam/ai-dial-ui-kit";
4
- import { createElement as b, memo as x, useCallback as S, useEffect as C, useId as w, useImperativeHandle as T, useLayoutEffect as E, useMemo as D, useRef as O, useState as k } from "react";
5
- import { jsx as A, jsxs as j } from "react/jsx-runtime";
6
- import { IconCaretDownFilled as M, IconCaretRightFilled as N, IconDotsVertical as P, IconPlus as F } from "@tabler/icons-react";
1
+ import { ConversationTransferJobStatus as e, DeploymentIcon as t, FilterTab as n, buildCssVars as r, getUtf8ByteLength as i, mergeClasses as a, sanitizeConversationName as o, stripTrailingDots as s } from "@epam/ai-dial-chat-shared";
2
+ import { PanelEmpty as c, PanelNoResults as l, SidebarOrientation as u, SidebarPanel as d } from "@epam/ai-dial-sidebar";
3
+ import { Button as f, ButtonVariant as p, ConfirmationPopup as m, ConfirmationPopupVariant as h, DIAL_ICON_SIZE as g, DIAL_KIT_ICON_STROKE as _, Dropdown as v, ElementSize as y, EllipsisTooltip as b, GhostIconButton as x, Highlight as S, Input as C, Popup as w, PopupSize as T, ProgressBar as E, Search as D, Skeleton as O, SkeletonVariant as k, Spinner as A, Tag as j, TagAppearance as M, Tooltip as ee, mergeClasses as N } from "@epam/ai-dial-ui-kit";
4
+ import { createElement as te, memo as P, useCallback as F, useEffect as I, useId as ne, useImperativeHandle as re, useLayoutEffect as ie, useMemo as L, useRef as R, useState as z } from "react";
5
+ import { Fragment as ae, jsx as B, jsxs as V } from "react/jsx-runtime";
6
+ import { IconAlertCircleFilled as H, IconAlertTriangleFilled as oe, IconCaretDownFilled as se, IconCaretRightFilled as ce, IconCheck as U, IconChevronDown as le, IconChevronUp as ue, IconClock as de, IconDotsVertical as W, IconFile as fe, IconFileZip as pe, IconJson as me, IconPlus as he, IconSparkles as ge, IconX as _e } from "@tabler/icons-react";
7
7
  //#region ../../node_modules/react-window/dist/react-window.js
8
- var I = typeof window < "u" ? E : C;
9
- function L(e) {
8
+ var G = typeof window < "u" ? ie : I;
9
+ function ve(e) {
10
10
  if (e !== void 0) switch (typeof e) {
11
11
  case "number": return e;
12
12
  case "string":
@@ -14,15 +14,15 @@ function L(e) {
14
14
  break;
15
15
  }
16
16
  }
17
- function R({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
18
- let { styleHeight: s, styleWidth: c } = D(() => ({
19
- styleHeight: L(o?.height),
20
- styleWidth: L(o?.width)
21
- }), [o?.height, o?.width]), [l, u] = k({
17
+ function ye({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
18
+ let { styleHeight: s, styleWidth: c } = L(() => ({
19
+ styleHeight: ve(o?.height),
20
+ styleWidth: ve(o?.width)
21
+ }), [o?.height, o?.width]), [l, u] = z({
22
22
  height: t,
23
23
  width: n
24
24
  }), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
25
- return I(() => {
25
+ return G(() => {
26
26
  if (i === null || d) return;
27
27
  let t = new ResizeObserver((e) => {
28
28
  for (let t of e) {
@@ -42,7 +42,7 @@ function R({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i,
42
42
  i,
43
43
  s,
44
44
  c
45
- ]), D(() => ({
45
+ ]), L(() => ({
46
46
  height: s ?? l.height,
47
47
  width: c ?? l.width
48
48
  }), [
@@ -51,26 +51,26 @@ function R({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i,
51
51
  c
52
52
  ]);
53
53
  }
54
- function ee(e) {
55
- let t = O(() => {
54
+ function be(e) {
55
+ let t = R(() => {
56
56
  throw Error("Cannot call during render.");
57
57
  });
58
- return I(() => {
58
+ return G(() => {
59
59
  t.current = e;
60
- }, [e]), S((e) => t.current?.(e), [t]);
60
+ }, [e]), F((e) => t.current?.(e), [t]);
61
61
  }
62
- var z = null;
63
- function B(e = !1) {
64
- if (z === null || e) {
62
+ var K = null;
63
+ function xe(e = !1) {
64
+ if (K === null || e) {
65
65
  let e = document.createElement("div"), t = e.style;
66
66
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
67
67
  let n = document.createElement("div"), r = n.style;
68
- return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? z = "positive-descending" : (e.scrollLeft = 1, z = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), z;
68
+ return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? K = "positive-descending" : (e.scrollLeft = 1, K = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), K;
69
69
  }
70
- return z;
70
+ return K;
71
71
  }
72
- function V({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
73
- if (t === "horizontal" && n) switch (B()) {
72
+ function Se({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
73
+ if (t === "horizontal" && n) switch (xe()) {
74
74
  case "negative": return -r;
75
75
  case "positive-descending":
76
76
  if (e) {
@@ -81,26 +81,26 @@ function V({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
81
81
  }
82
82
  return r;
83
83
  }
84
- function H(e, t = "Assertion error") {
84
+ function q(e, t = "Assertion error") {
85
85
  if (!e) throw console.error(t), Error(t);
86
86
  }
87
- function U(e, t) {
87
+ function J(e, t) {
88
88
  if (e === t) return !0;
89
- if (!!e != !!t || (H(e !== void 0), H(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
89
+ if (!!e != !!t || (q(e !== void 0), q(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
90
90
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
91
91
  return !0;
92
92
  }
93
- function te({ cachedBounds: e, itemCount: t, itemSize: n }) {
93
+ function Ce({ cachedBounds: e, itemCount: t, itemSize: n }) {
94
94
  if (t === 0) return 0;
95
95
  if (typeof n == "number") return t * n;
96
96
  {
97
97
  let n = e.get(e.size === 0 ? 0 : e.size - 1);
98
- return H(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
98
+ return q(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
99
99
  }
100
100
  }
101
- function W({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
101
+ function we({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
102
102
  if (n < 0 || n >= r) throw RangeError(`Invalid index specified: ${n}`, { cause: `Index ${n} is not within the range of 0 - ${r - 1}` });
103
- let s = te({
103
+ let s = Ce({
104
104
  cachedBounds: t,
105
105
  itemCount: r,
106
106
  itemSize: i
@@ -112,7 +112,7 @@ function W({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, con
112
112
  default: return a >= u && a <= l ? a : a < u ? u : l;
113
113
  }
114
114
  }
115
- function G({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
115
+ function Te({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
116
116
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
117
117
  for (; u < a;) {
118
118
  let n = e.get(u);
@@ -131,11 +131,11 @@ function G({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCo
131
131
  stopIndexOverscan: l
132
132
  };
133
133
  }
134
- function K({ itemCount: e, itemProps: t, itemSize: n }) {
134
+ function Ee({ itemCount: e, itemProps: t, itemSize: n }) {
135
135
  let r = /* @__PURE__ */ new Map();
136
136
  return {
137
137
  get(i) {
138
- for (H(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
138
+ for (q(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
139
139
  let e = r.size, a;
140
140
  switch (typeof n) {
141
141
  case "function":
@@ -151,14 +151,14 @@ function K({ itemCount: e, itemProps: t, itemSize: n }) {
151
151
  });
152
152
  else {
153
153
  let t = r.get(e - 1);
154
- H(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
154
+ q(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
155
155
  scrollOffset: t.scrollOffset + t.size,
156
156
  size: a
157
157
  });
158
158
  }
159
159
  }
160
160
  let a = r.get(i);
161
- return H(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
161
+ return q(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
162
162
  },
163
163
  set(e, t) {
164
164
  r.set(e, t);
@@ -168,8 +168,8 @@ function K({ itemCount: e, itemProps: t, itemSize: n }) {
168
168
  }
169
169
  };
170
170
  }
171
- function q({ itemCount: e, itemProps: t, itemSize: n }) {
172
- return D(() => K({
171
+ function De({ itemCount: e, itemProps: t, itemSize: n }) {
172
+ return L(() => Ee({
173
173
  itemCount: e,
174
174
  itemProps: t,
175
175
  itemSize: n
@@ -179,11 +179,11 @@ function q({ itemCount: e, itemProps: t, itemSize: n }) {
179
179
  n
180
180
  ]);
181
181
  }
182
- function J({ containerSize: e, itemSize: t }) {
182
+ function Oe({ containerSize: e, itemSize: t }) {
183
183
  let n;
184
184
  switch (typeof t) {
185
185
  case "string":
186
- H(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), H(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
186
+ q(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), q(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
187
187
  break;
188
188
  default:
189
189
  n = t;
@@ -191,21 +191,21 @@ function J({ containerSize: e, itemSize: t }) {
191
191
  }
192
192
  return n;
193
193
  }
194
- function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
195
- let { height: u = n, width: d = n } = R({
194
+ function ke({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
195
+ let { height: u = n, width: d = n } = ye({
196
196
  defaultHeight: r === "vertical" ? n : void 0,
197
197
  defaultWidth: r === "horizontal" ? n : void 0,
198
198
  element: e,
199
199
  mode: r === "vertical" ? "only-height" : "only-width",
200
200
  style: t
201
- }), f = O({
201
+ }), f = R({
202
202
  height: 0,
203
203
  width: 0
204
- }), p = r === "vertical" ? u : d, m = J({
204
+ }), p = r === "vertical" ? u : d, m = Oe({
205
205
  containerSize: p,
206
206
  itemSize: s
207
207
  });
208
- E(() => {
208
+ ie(() => {
209
209
  if (typeof c == "function") {
210
210
  let e = f.current;
211
211
  (e.height !== u || e.width !== d) && (c({
@@ -218,22 +218,22 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
218
218
  c,
219
219
  d
220
220
  ]);
221
- let h = q({
221
+ let h = De({
222
222
  itemCount: a,
223
223
  itemProps: o,
224
224
  itemSize: m
225
- }), g = S((e) => h.get(e), [h]), [_, v] = k(() => G({
225
+ }), g = F((e) => h.get(e), [h]), [_, v] = z(() => Te({
226
226
  cachedBounds: h,
227
227
  containerScrollOffset: 0,
228
228
  containerSize: p,
229
229
  itemCount: a,
230
230
  overscanCount: l
231
- })), { startIndexVisible: y, startIndexOverscan: b, stopIndexVisible: x, stopIndexOverscan: C } = {
231
+ })), { startIndexVisible: y, startIndexOverscan: b, stopIndexVisible: x, stopIndexOverscan: S } = {
232
232
  startIndexVisible: Math.min(a - 1, _.startIndexVisible),
233
233
  startIndexOverscan: Math.min(a - 1, _.startIndexOverscan),
234
234
  stopIndexVisible: Math.min(a - 1, _.stopIndexVisible),
235
235
  stopIndexOverscan: Math.min(a - 1, _.stopIndexOverscan)
236
- }, w = S(() => te({
236
+ }, C = F(() => Ce({
237
237
  cachedBounds: h,
238
238
  itemCount: a,
239
239
  itemSize: m
@@ -241,9 +241,9 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
241
241
  h,
242
242
  a,
243
243
  m
244
- ]), T = S((t) => G({
244
+ ]), w = F((t) => Te({
245
245
  cachedBounds: h,
246
- containerScrollOffset: V({
246
+ containerScrollOffset: Se({
247
247
  containerElement: e,
248
248
  direction: r,
249
249
  isRtl: i,
@@ -261,19 +261,19 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
261
261
  a,
262
262
  l
263
263
  ]);
264
- return I(() => {
265
- v(T((r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0));
264
+ return G(() => {
265
+ v(w((r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0));
266
266
  }, [
267
267
  e,
268
268
  r,
269
- T
270
- ]), I(() => {
269
+ w
270
+ ]), G(() => {
271
271
  if (!e) return;
272
272
  let t = () => {
273
273
  v((t) => {
274
- let { scrollLeft: n, scrollTop: o } = e, s = G({
274
+ let { scrollLeft: n, scrollTop: o } = e, s = Te({
275
275
  cachedBounds: h,
276
- containerScrollOffset: V({
276
+ containerScrollOffset: Se({
277
277
  containerElement: e,
278
278
  direction: r,
279
279
  isRtl: i,
@@ -283,7 +283,7 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
283
283
  itemCount: a,
284
284
  overscanCount: l
285
285
  });
286
- return U(s, t) ? t : s;
286
+ return J(s, t) ? t : s;
287
287
  });
288
288
  };
289
289
  return e.addEventListener("scroll", t), () => {
@@ -298,9 +298,9 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
298
298
  l
299
299
  ]), {
300
300
  getCellBounds: g,
301
- getEstimatedSize: w,
302
- scrollToIndex: ee(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
303
- let s = W({
301
+ getEstimatedSize: C,
302
+ scrollToIndex: be(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
303
+ let s = we({
304
304
  align: t,
305
305
  cachedBounds: h,
306
306
  containerScrollOffset: n,
@@ -310,53 +310,53 @@ function ne({ containerElement: e, containerStyle: t, defaultContainerSize: n =
310
310
  itemSize: m
311
311
  });
312
312
  if (e) {
313
- if (s = V({
313
+ if (s = Se({
314
314
  containerElement: e,
315
315
  direction: r,
316
316
  isRtl: i,
317
317
  scrollOffset: s
318
318
  }), typeof e.scrollTo != "function") {
319
- let e = T(s);
320
- U(_, e) || v(e);
319
+ let e = w(s);
320
+ J(_, e) || v(e);
321
321
  }
322
322
  return s;
323
323
  }
324
324
  }),
325
325
  startIndexOverscan: b,
326
326
  startIndexVisible: y,
327
- stopIndexOverscan: C,
327
+ stopIndexOverscan: S,
328
328
  stopIndexVisible: x
329
329
  };
330
330
  }
331
- function re(e) {
332
- return D(() => e, Object.values(e));
331
+ function Ae(e) {
332
+ return L(() => e, Object.values(e));
333
333
  }
334
- function ie(e, t) {
334
+ function je(e, t) {
335
335
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
336
- return U(n, a) && U(r, o) && U(i, s);
336
+ return J(n, a) && J(r, o) && J(i, s);
337
337
  }
338
- function ae(e) {
338
+ function Me(e) {
339
339
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
340
340
  }
341
- var oe = "data-react-window-index";
342
- function se({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: a, overscanCount: o = 3, rowComponent: s, rowCount: c, rowHeight: l, rowProps: u, tagName: d = "div", style: f, ...p }) {
343
- let m = re(u), h = D(() => x(s, ie), [s]), [g, _] = k(null), v = ae(l), { getCellBounds: y, getEstimatedSize: S, scrollToIndex: w, startIndexOverscan: E, startIndexVisible: O, stopIndexOverscan: j, stopIndexVisible: M } = ne({
341
+ var Y = "data-react-window-index";
342
+ function Ne({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: a, overscanCount: o = 3, rowComponent: s, rowCount: c, rowHeight: l, rowProps: u, tagName: d = "div", style: f, ...p }) {
343
+ let m = Ae(u), h = L(() => P(s, je), [s]), [g, _] = z(null), v = Me(l), { getCellBounds: y, getEstimatedSize: b, scrollToIndex: x, startIndexOverscan: S, startIndexVisible: C, stopIndexOverscan: w, stopIndexVisible: T } = ke({
344
344
  containerElement: g,
345
345
  containerStyle: f,
346
346
  defaultContainerSize: n,
347
347
  direction: "vertical",
348
348
  itemCount: c,
349
349
  itemProps: m,
350
- itemSize: D(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
350
+ itemSize: L(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
351
351
  onResize: i,
352
352
  overscanCount: o
353
353
  });
354
- T(r, () => ({
354
+ re(r, () => ({
355
355
  get element() {
356
356
  return g;
357
357
  },
358
358
  scrollToRow({ align: e = "auto", behavior: t = "auto", index: n }) {
359
- let r = w({
359
+ let r = x({
360
360
  align: e,
361
361
  containerScrollOffset: g?.scrollTop ?? 0,
362
362
  index: n
@@ -366,40 +366,40 @@ function se({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
366
366
  top: r
367
367
  });
368
368
  }
369
- }), [g, w]), I(() => {
369
+ }), [g, x]), G(() => {
370
370
  if (!g) return;
371
371
  let e = Array.from(g.children).filter((e, t) => {
372
372
  if (e.hasAttribute("aria-hidden")) return !1;
373
- let n = `${E + t}`;
374
- return e.setAttribute(oe, n), !0;
373
+ let n = `${S + t}`;
374
+ return e.setAttribute(Y, n), !0;
375
375
  });
376
376
  if (v) return l.observeRowElements(e);
377
377
  }, [
378
378
  g,
379
379
  v,
380
380
  l,
381
- E,
382
- j
383
- ]), C(() => {
384
- E >= 0 && j >= 0 && a && a({
385
- startIndex: O,
386
- stopIndex: M
381
+ S,
382
+ w
383
+ ]), I(() => {
384
+ S >= 0 && w >= 0 && a && a({
385
+ startIndex: C,
386
+ stopIndex: T
387
387
  }, {
388
- startIndex: E,
389
- stopIndex: j
388
+ startIndex: S,
389
+ stopIndex: w
390
390
  });
391
391
  }, [
392
392
  a,
393
- E,
394
- O,
395
- j,
396
- M
393
+ S,
394
+ C,
395
+ w,
396
+ T
397
397
  ]);
398
- let N = D(() => {
398
+ let E = L(() => {
399
399
  let e = [];
400
- if (c > 0) for (let t = E; t <= j; t++) {
400
+ if (c > 0) for (let t = S; t <= w; t++) {
401
401
  let n = y(t);
402
- e.push(/* @__PURE__ */ b(h, {
402
+ e.push(/* @__PURE__ */ te(h, {
403
403
  ...m,
404
404
  ariaAttributes: {
405
405
  "aria-posinset": t + 1,
@@ -424,17 +424,17 @@ function se({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
424
424
  v,
425
425
  c,
426
426
  m,
427
- E,
428
- j
429
- ]), P = /* @__PURE__ */ A("div", {
427
+ S,
428
+ w
429
+ ]), D = /* @__PURE__ */ B("div", {
430
430
  "aria-hidden": !0,
431
431
  style: {
432
- height: S(),
432
+ height: b(),
433
433
  width: "100%",
434
434
  zIndex: -1
435
435
  }
436
436
  });
437
- return b(d, {
437
+ return te(d, {
438
438
  role: "list",
439
439
  ...p,
440
440
  className: t,
@@ -446,216 +446,108 @@ function se({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
446
446
  overflowY: "auto",
447
447
  ...f
448
448
  }
449
- }, N, e, P);
449
+ }, E, e, D);
450
450
  }
451
451
  //#endregion
452
452
  //#region src/types/virtual-row.ts
453
- var Y = /* @__PURE__ */ function(e) {
453
+ var X = /* @__PURE__ */ function(e) {
454
454
  return e.Header = "header", e.Item = "item", e;
455
- }({}), X = /* @__PURE__ */ function(e) {
456
- return e.All = "all", e.Pinned = "pinned", e.MyChats = "my-chats", e.Shared = "shared", e.Organization = "organization", e;
457
- }({}), ce = (e) => `${60 + e * 23 % 35}%`, le = (e, t) => e ? t ? "pe-9" : "pe-2 group-hover/conversation:pe-9" : "pe-3", ue = (e, t) => t.rows[e].kind === Y.Item ? 36 : e === 0 ? 24 : 56, de = (e) => {
455
+ }({}), Pe = (e) => `${60 + e * 23 % 35}%`, Fe = (e, t) => e ? t ? "pe-9" : "pe-2 group-focus-within/conversation:pe-9 group-hover/conversation:pe-9" : "pe-3", Ie = (e, t) => t.rows[e].kind === X.Item ? 36 : e === 0 ? 24 : 56, Le = (e) => {
458
456
  switch (e) {
459
- case X.Shared: return X.Shared;
460
- case X.Organization: return X.Organization;
461
- default: return X.MyChats;
457
+ case n.Shared: return n.Shared;
458
+ case n.Organization: return n.Organization;
459
+ default: return n.MyChats;
462
460
  }
463
- }, fe = (e, t) => {
461
+ }, Re = (e, t) => {
464
462
  let n = null;
465
- for (let r of e) if (r.kind === Y.Header) n = r.groupKey;
463
+ for (let r of e) if (r.kind === X.Header) n = r.groupKey;
466
464
  else if (r.item.id === t) return n;
467
465
  return null;
468
- }, pe = (e, t, n) => {
469
- let r = /* @__PURE__ */ new Set();
470
- if (t != null && r.add(t), t === X.Pinned) {
471
- let t = n.find((t) => t.id === e);
472
- t && r.add(de(t.source));
473
- } else r.add(X.Pinned);
474
- return r;
475
- }, me = (e, t, n, r) => {
466
+ }, ze = (e, t, r) => {
467
+ let i = /* @__PURE__ */ new Set();
468
+ if (t != null && i.add(t), t === n.Pinned) {
469
+ let t = r.find((t) => t.id === e);
470
+ t && i.add(Le(t.source));
471
+ } else i.add(n.Pinned);
472
+ return i;
473
+ }, Be = (e, t, n, r) => {
476
474
  let i = e.currentTarget.getBoundingClientRect();
477
475
  if (e.clientY >= i.top + i.height / 2) return t;
478
476
  let a = null, o = !1;
479
- for (let e of n) if (e.kind === Y.Header) o = e.groupKey === r;
477
+ for (let e of n) if (e.kind === X.Header) o = e.groupKey === r;
480
478
  else if (o) {
481
479
  if (e.item.id === t) return a;
482
480
  a = e.item.id;
483
481
  }
484
482
  return null;
485
- }, he = {
486
- tabContainer: "_tabContainer_rzv03_1",
487
- tabActive: "_tabActive_rzv03_13"
488
- }, ge = x(({ tabs: e, activeTabId: t, onTabChange: n, styles: i }) => {
489
- let { tabClassName: a = "dial-tiny-semi-text" } = i?.typography ?? {};
490
- return /* @__PURE__ */ A("div", {
491
- className: "flex flex-nowrap gap-1",
492
- role: "tablist",
493
- children: e.map((e) => {
494
- let i = t === e.id;
495
- return /* @__PURE__ */ A("div", {
496
- role: "tab",
497
- "aria-selected": i,
498
- className: "contents",
499
- children: /* @__PURE__ */ A(_, {
500
- label: e.label,
501
- selected: i,
502
- onClick: () => n(e.id),
503
- className: r("box-border h-auto shrink-0 justify-center rounded-full p-2 text-center", a, he.tabContainer, i && he.tabActive)
504
- })
505
- }, e.id);
506
- })
507
- });
508
- }), _e = [
483
+ }, Ve = [
509
484
  {
510
- value: X.All,
485
+ value: n.All,
511
486
  labelKey: "all"
512
487
  },
513
488
  {
514
- value: X.MyChats,
489
+ value: n.MyChats,
515
490
  labelKey: "myChats"
516
491
  },
517
492
  {
518
- value: X.Shared,
493
+ value: n.Shared,
519
494
  labelKey: "shared"
520
495
  },
521
496
  {
522
- value: X.Organization,
497
+ value: n.Organization,
523
498
  labelKey: "organization"
524
499
  }
525
- ], ve = x(({ activeTab: e, labels: t, onChange: n, tabClassName: r = "dial-tiny-semi-text" }) => /* @__PURE__ */ A("div", {
526
- className: "mx-3 my-2",
527
- children: /* @__PURE__ */ A(ge, {
528
- tabs: _e.map(({ value: e, labelKey: n }) => ({
529
- id: e,
530
- label: t[n]
531
- })),
532
- activeTabId: e,
533
- onTabChange: (e) => n(e),
534
- styles: { typography: { tabClassName: y(r, "flex-1") } }
535
- })
536
- })), ye = { button: "_button_hbyrw_1" }, be = x(({ label: e, onClick: t, labelClassName: i = "dial-small-semi-text", colors: a }) => /* @__PURE__ */ A("div", {
500
+ ], He = P(({ activeTab: e, labels: t, onChange: n, tabClassName: r = "dial-tiny-semi-text", hiddenSources: i }) => {
501
+ let a = Ve.filter(({ value: e }) => !i?.includes(e));
502
+ return /* @__PURE__ */ B("div", {
503
+ role: "group",
504
+ "aria-label": t.groupAriaLabel ?? "Filter chats",
505
+ className: "flex flex-nowrap gap-1 px-3 py-2",
506
+ children: a.map(({ value: i, labelKey: a }) => /* @__PURE__ */ B(j, {
507
+ label: t[a],
508
+ appearance: M.Selectable,
509
+ selected: e === i,
510
+ onClick: () => n(i),
511
+ className: N("flex-1 justify-center rounded-full", r)
512
+ }, i))
513
+ });
514
+ }), Ue = { button: "_button_1vksy_1" }, We = P(({ label: e, onClick: t, labelClassName: n = "dial-small-semi-text", colors: i }) => /* @__PURE__ */ B("div", {
537
515
  className: "px-3 py-2",
538
- style: n({
539
- "--cp-new-chat-bg": a?.background,
540
- "--cp-new-chat-hover": a?.hoverBackground,
541
- "--cp-new-chat-active": a?.activeBackground,
542
- "--cp-new-chat-text": a?.text,
543
- "--cp-new-chat-shadow-blue": a?.shadowBlue,
544
- "--cp-new-chat-shadow-blue-hover": a?.shadowBlueHover,
545
- "--cp-new-chat-shadow-blue-active": a?.shadowBlueActive,
546
- "--cp-new-chat-shadow-purple": a?.shadowPurple,
547
- "--cp-new-chat-shadow-purple-hover": a?.shadowPurpleHover,
548
- "--cp-new-chat-shadow-purple-active": a?.shadowPurpleActive
516
+ style: r({
517
+ "--cp-new-chat-bg": i?.background,
518
+ "--cp-new-chat-text": i?.text,
519
+ "--cp-new-chat-focus-outline": i?.focusOutline
549
520
  }),
550
- children: /* @__PURE__ */ j("button", {
521
+ children: /* @__PURE__ */ V("button", {
551
522
  onClick: t,
552
523
  type: "button",
553
- className: r("flex h-[36px] w-full cursor-pointer items-center justify-center gap-2 rounded-full px-3 py-1", ye.button),
554
- children: [/* @__PURE__ */ A(F, {
524
+ className: a("flex h-[36px] w-full cursor-pointer items-center justify-center gap-2 px-3 py-1 shadow-chat-button hover:shadow-xs focus-visible:shadow-xs active:shadow-xs", Ue.button),
525
+ children: [/* @__PURE__ */ B(he, {
555
526
  size: 18,
556
- stroke: 2,
527
+ stroke: _,
557
528
  className: "shrink-0"
558
- }), /* @__PURE__ */ A("span", {
559
- className: i,
529
+ }), /* @__PURE__ */ B("span", {
530
+ className: n,
560
531
  children: e
561
532
  })]
562
533
  })
563
534
  })), Z = {
564
- skeletonColor: "var(--cp-skeleton-color, var(--bg-layer-4, #d1dbea))",
565
- header: "_header_njmps_1",
566
- item: "_item_njmps_5",
567
- itemActive: "_itemActive_njmps_11",
568
- groupHeader: "_groupHeader_njmps_16",
569
- dropZoneActive: "_dropZoneActive_njmps_21",
570
- trigger: "_trigger_njmps_29",
571
- triggerActive: "_triggerActive_njmps_29",
572
- triggerIcon: "_triggerIcon_njmps_32"
573
- }, xe = ({ item: n, isActive: i, onSelectConversation: a, searchQuery: o = "", getActions: s, onActionMenuOpen: c, actionsLabel: p = "More actions", itemTitleClassName: _ = "dial-small-text", itemIconBadgeClassName: y, rowGroupKey: b, rows: x, draggingId: C, dragOverId: w, allowedDropGroups: T, onDragStart: E, onDragEnd: D, onDragOver: M, onDragLeave: N, onDrop: F }) => {
574
- let [I, L] = k(!1), R = O(null), ee = S((e) => {
575
- L(e), e && R.current && c?.(n, R.current);
576
- }, [n, c]), z = s?.(n) ?? [], B = z.length > 0, V = n.isIconLoading ? /* @__PURE__ */ A(h, {
577
- variant: g.Circular,
578
- width: u.LG,
579
- height: u.LG,
580
- color: Z.skeletonColor,
581
- "aria-hidden": !0
582
- }) : /* @__PURE__ */ A(e, {
583
- src: n.iconUrl,
584
- size: u.LG,
585
- initialsName: n.iconTooltip ?? "",
586
- labels: { tooltip: n.iconTooltip },
587
- styles: { badgeClassName: y }
588
- }), H = le(B, I), U = b != null, te = S((e) => {
589
- e.currentTarget.contains(e.relatedTarget) || N?.();
590
- }, [N]), W = S((e) => {
591
- if (!b || !x || !F) return;
592
- e.preventDefault();
593
- let t = me(e, n.id, x, b);
594
- F(n.id, b, t);
595
- }, [
596
- n.id,
597
- x,
598
- b,
599
- F
600
- ]), G = n.id === C, K = n.id === w, q = b != null && (T?.has(b) ?? !1), J = C != null;
601
- return /* @__PURE__ */ j("li", {
602
- className: r("group/conversation relative", G && "cursor-grabbing opacity-50", K && q && "rounded", K && q && Z.dropZoneActive, J && !G && !q && "cursor-not-allowed"),
603
- draggable: U || void 0,
604
- onDragStart: U ? () => E?.(n.id) : void 0,
605
- onDragEnd: U ? D : void 0,
606
- onDragOver: U ? (e) => {
607
- e.preventDefault(), M?.(n.id);
608
- } : void 0,
609
- onDragLeave: U ? te : void 0,
610
- onDrop: U ? W : void 0,
611
- children: [/* @__PURE__ */ A("a", {
612
- href: n.href,
613
- className: "contents",
614
- onClick: (e) => {
615
- n.href && (e.preventDefault(), a(n.id));
616
- },
617
- children: /* @__PURE__ */ A(d, {
618
- iconBefore: V,
619
- label: /* @__PURE__ */ A(t, {
620
- text: n.title,
621
- query: o,
622
- className: _,
623
- maxLines: 1
624
- }),
625
- textClassName: "min-w-0",
626
- "aria-current": i ? "page" : void 0,
627
- onClick: n.href ? void 0 : () => a(n.id),
628
- tabIndex: n.href ? -1 : void 0,
629
- className: r("flex h-8 w-full items-center justify-start gap-2 rounded-xl py-2 ps-3", H, Z.item, i && Z.itemActive, I && Z.itemActive)
630
- })
631
- }), B && /* @__PURE__ */ A("div", {
632
- className: r("absolute inset-y-0 end-1 flex items-center", I ? "opacity-100" : "opacity-0 group-focus-within/conversation:opacity-100 group-hover/conversation:opacity-100"),
633
- children: /* @__PURE__ */ A(f, {
634
- items: z,
635
- onOpenChange: ee,
636
- matchReferenceWidth: !1,
637
- listClassName: "w-[140px] cp-dropdown-overlay",
638
- children: /* @__PURE__ */ A(m, {
639
- ref: R,
640
- icon: /* @__PURE__ */ A(P, {
641
- size: u.SM,
642
- className: Z.triggerIcon,
643
- "aria-hidden": !0
644
- }),
645
- appearance: l.Ghost,
646
- size: v.Small,
647
- "aria-label": p,
648
- className: r("flex items-center justify-center rounded", Z.trigger, I && Z.triggerActive)
649
- })
650
- })
651
- })]
652
- });
653
- }, Se = ({ label: e, isExpanded: t, onToggle: n, listId: i, className: a = "dial-tiny-semi-text uppercase", dropZoneGroupKey: o, isDragOver: s, onDragOver: c, onDragLeave: l, onDrop: u }) => {
535
+ skeletonColor: "var(--cp-skeleton-color, var(--bg-control-disable-primary, #dce0e8))",
536
+ item: "_item_i3lsf_2",
537
+ itemActive: "_itemActive_i3lsf_15",
538
+ groupHeader: "_groupHeader_i3lsf_20",
539
+ taskBadge: "_taskBadge_i3lsf_24",
540
+ dropZoneActive: "_dropZoneActive_i3lsf_30",
541
+ triggerActive: "_triggerActive_i3lsf_35",
542
+ triggerIcon: "_triggerIcon_i3lsf_38",
543
+ unreadDot: "_unreadDot_i3lsf_46",
544
+ search: "_search_i3lsf_54"
545
+ }, Q = ({ label: e, isExpanded: t, onToggle: n, listId: r, className: i = "dial-tiny-lead-text", dropZoneGroupKey: o, isDragOver: s, onDragOver: c, onDragLeave: l, onDrop: u }) => {
654
546
  let d = o != null;
655
- return /* @__PURE__ */ j("button", {
547
+ return /* @__PURE__ */ V("button", {
656
548
  type: "button",
657
549
  "aria-expanded": t,
658
- "aria-controls": i,
550
+ "aria-controls": r,
659
551
  onClick: n,
660
552
  onDragOver: d ? (e) => {
661
553
  d && (e.preventDefault(), c?.(o));
@@ -666,312 +558,716 @@ var Y = /* @__PURE__ */ function(e) {
666
558
  onDrop: d ? (e) => {
667
559
  d && (e.preventDefault(), u?.(o, o, null));
668
560
  } : void 0,
669
- className: r("flex h-6 w-full items-center gap-1 rounded py-1 pe-3 text-start", a, Z.groupHeader, s && Z.dropZoneActive),
670
- children: [t ? /* @__PURE__ */ A(M, {
671
- stroke: .5,
561
+ className: a("flex h-6 w-full items-center gap-1 rounded py-1 pe-3 text-start", i, Z.groupHeader, s && Z.dropZoneActive),
562
+ children: [t ? /* @__PURE__ */ B(se, {
672
563
  size: 12,
673
564
  className: "shrink-0",
674
565
  "aria-hidden": !0
675
- }) : /* @__PURE__ */ A(N, {
676
- stroke: .5,
566
+ }) : /* @__PURE__ */ B(ce, {
677
567
  size: 12,
678
568
  className: "shrink-0 rtl:scale-x-[-1]",
679
569
  "aria-hidden": !0
680
- }), /* @__PURE__ */ A(p, { text: e })]
570
+ }), /* @__PURE__ */ B(b, { text: e })]
681
571
  });
682
- }, Ce = ({ index: e, style: t, rows: n, expandedGroups: r, onToggleGroup: i, listId: a, activeConversationId: o, searchQuery: s, onSelectConversation: c, getActions: l, onActionMenuOpen: u, actionsLabel: d, styles: f, draggingId: p, dragOverId: m, allowedDropGroups: h, onDragStart: g, onDragEnd: _, onDragOver: v, onDragLeave: y, onDrop: b }) => {
683
- let x = n[e];
684
- if (x.kind === Y.Header) {
685
- let n = x.groupKey === X.Pinned;
686
- return /* @__PURE__ */ A("div", {
572
+ }, Ge = ({ item: e, isActive: n, onSelectConversation: r, searchQuery: i = "", getActions: o, onActionMenuOpen: s, actionsLabel: c = "More actions", itemTitleClassName: l = "dial-small-text", itemIconBadgeClassName: u, taskBadgeClassName: d = "dial-caption-lead-semi-text", unreadIndicatorLabel: p = "Unread", rowGroupKey: m, rows: h, draggingId: b, dragOverId: C, allowedDropGroups: w, onDragStart: T, onDragEnd: E, onDragOver: D, onDragLeave: A, onDrop: j }) => {
573
+ let [M, ee] = z(!1), N = R(null), te = F((t) => {
574
+ ee(t), t && N.current && s?.(e, N.current);
575
+ }, [e, s]), P = o?.(e) ?? [], I = P.length > 0, ne = e.isIconLoading ? /* @__PURE__ */ B(O, {
576
+ variant: k.Circular,
577
+ width: g.LG,
578
+ height: g.LG,
579
+ color: Z.skeletonColor,
580
+ "aria-hidden": !0
581
+ }) : /* @__PURE__ */ B(t, {
582
+ src: e.iconUrl,
583
+ size: g.LG,
584
+ initialsName: e.iconTooltip ?? "",
585
+ labels: { tooltip: e.iconTooltip },
586
+ styles: { badgeClassName: u }
587
+ }), re = /* @__PURE__ */ V("span", {
588
+ className: "flex shrink-0 items-center",
589
+ children: [/* @__PURE__ */ B("span", {
590
+ className: "relative flex size-3 shrink-0 items-center justify-center",
591
+ children: e.isUnread && /* @__PURE__ */ V(ae, { children: [/* @__PURE__ */ B("span", {
592
+ className: a("size-[5.33px] rounded-full", Z.unreadDot),
593
+ "aria-hidden": !0
594
+ }), /* @__PURE__ */ B("span", {
595
+ className: "sr-only",
596
+ children: p
597
+ })] })
598
+ }), ne]
599
+ }), ie = Fe(I, M), L = e.showTaskBadge ? /* @__PURE__ */ V("span", {
600
+ className: a("flex h-5 shrink-0 items-center justify-center gap-0.5 rounded-full border pe-2 ps-1", Z.taskBadge, d),
601
+ children: [/* @__PURE__ */ B(de, {
602
+ size: 12,
603
+ "aria-hidden": !0,
604
+ stroke: _
605
+ }), e.taskBadgeLabel]
606
+ }) : void 0, H = m != null, oe = F((e) => {
607
+ e.currentTarget.contains(e.relatedTarget) || A?.();
608
+ }, [A]), se = F((t) => {
609
+ if (!m || !h || !j) return;
610
+ t.preventDefault();
611
+ let n = Be(t, e.id, h, m);
612
+ j(e.id, m, n);
613
+ }, [
614
+ e.id,
615
+ h,
616
+ m,
617
+ j
618
+ ]), ce = e.id === b, U = e.id === C, le = m != null && (w?.has(m) ?? !1), ue = b != null;
619
+ return /* @__PURE__ */ V("li", {
620
+ className: a("group/conversation relative", ce && "cursor-grabbing opacity-50", U && le && "rounded", U && le && Z.dropZoneActive, ue && !ce && !le && "cursor-not-allowed"),
621
+ draggable: H || void 0,
622
+ onDragStart: H ? () => T?.(e.id) : void 0,
623
+ onDragEnd: H ? E : void 0,
624
+ onDragOver: H ? (t) => {
625
+ t.preventDefault(), D?.(e.id);
626
+ } : void 0,
627
+ onDragLeave: H ? oe : void 0,
628
+ onDrop: H ? se : void 0,
629
+ children: [/* @__PURE__ */ B("a", {
630
+ href: e.href,
631
+ className: "contents",
632
+ onClick: (t) => {
633
+ e.href && (t.preventDefault(), r(e.id));
634
+ },
635
+ children: /* @__PURE__ */ B(f, {
636
+ iconBefore: re,
637
+ label: /* @__PURE__ */ B(S, {
638
+ text: e.title,
639
+ query: i,
640
+ className: l,
641
+ maxLines: 1
642
+ }),
643
+ iconAfter: L,
644
+ textClassName: "min-w-0 flex-1",
645
+ "aria-current": n ? "page" : void 0,
646
+ onClick: e.href ? void 0 : () => r(e.id),
647
+ tabIndex: e.href ? -1 : void 0,
648
+ className: a("h-8 w-full justify-start gap-2 py-2 ps-0 after:pointer-events-none", ie, Z.item, n && Z.itemActive, M && Z.itemActive)
649
+ })
650
+ }), I && /* @__PURE__ */ B("div", {
651
+ className: a("absolute inset-y-0 end-1 flex items-center", M ? "opacity-100" : "opacity-0 group-focus-within/conversation:opacity-100 group-hover/conversation:opacity-100"),
652
+ children: /* @__PURE__ */ B(v, {
653
+ items: P,
654
+ onOpenChange: te,
655
+ matchReferenceWidth: !1,
656
+ listClassName: "w-[200px]",
657
+ children: /* @__PURE__ */ B(x, {
658
+ ref: N,
659
+ icon: /* @__PURE__ */ B(W, {
660
+ size: g.SM,
661
+ className: Z.triggerIcon,
662
+ "aria-hidden": !0,
663
+ stroke: _
664
+ }),
665
+ size: y.Small,
666
+ "aria-label": c,
667
+ className: a(M && Z.triggerActive)
668
+ })
669
+ })
670
+ })]
671
+ });
672
+ }, Ke = ({ index: e, style: t, rows: r, expandedGroups: i, onToggleGroup: a, listId: o, activeConversationId: s, searchQuery: c, onSelectConversation: l, getActions: u, onActionMenuOpen: d, actionsLabel: f, unreadIndicatorLabel: p, styles: m, draggingId: h, dragOverId: g, allowedDropGroups: _, onDragStart: v, onDragEnd: y, onDragOver: b, onDragLeave: x, onDrop: S }) => {
673
+ let C = r[e];
674
+ if (C.kind === X.Header) {
675
+ let r = C.groupKey === n.Pinned;
676
+ return /* @__PURE__ */ B("div", {
687
677
  role: "presentation",
688
678
  style: t,
689
679
  className: e === 0 ? "pt-0" : "pt-8",
690
- children: /* @__PURE__ */ A(Se, {
691
- label: x.label,
692
- isExpanded: r.has(x.groupKey),
693
- onToggle: () => i(x.groupKey),
694
- listId: a,
695
- className: f?.groupHeaderClassName,
696
- dropZoneGroupKey: n ? X.Pinned : void 0,
697
- isDragOver: n && m === X.Pinned,
698
- onDragOver: n ? v : void 0,
699
- onDragLeave: n ? y : void 0,
700
- onDrop: n ? b : void 0
680
+ children: /* @__PURE__ */ B(Q, {
681
+ label: C.label,
682
+ isExpanded: i.has(C.groupKey),
683
+ onToggle: () => a(C.groupKey),
684
+ listId: o,
685
+ className: m?.groupHeaderClassName,
686
+ dropZoneGroupKey: r ? n.Pinned : void 0,
687
+ isDragOver: r && g === n.Pinned,
688
+ onDragOver: r ? b : void 0,
689
+ onDragLeave: r ? x : void 0,
690
+ onDrop: r ? S : void 0
701
691
  })
702
692
  });
703
693
  }
704
- return /* @__PURE__ */ A("div", {
694
+ return /* @__PURE__ */ B("div", {
705
695
  role: "presentation",
706
696
  style: t,
707
697
  className: "pt-1",
708
- children: /* @__PURE__ */ A(xe, {
709
- item: x.item,
710
- isActive: x.item.id === o,
711
- searchQuery: s,
712
- onSelectConversation: c,
713
- getActions: l,
714
- onActionMenuOpen: u,
715
- actionsLabel: d,
716
- itemTitleClassName: f?.itemTitleClassName,
717
- itemIconBadgeClassName: f?.itemIconBadgeClassName,
718
- rowGroupKey: x.groupKey,
719
- rows: n,
720
- draggingId: p,
721
- dragOverId: m,
722
- allowedDropGroups: h,
723
- onDragStart: g,
724
- onDragEnd: _,
725
- onDragOver: v,
726
- onDragLeave: y,
727
- onDrop: b
698
+ children: /* @__PURE__ */ B(Ge, {
699
+ item: C.item,
700
+ isActive: C.item.id === s,
701
+ searchQuery: c,
702
+ onSelectConversation: l,
703
+ getActions: u,
704
+ onActionMenuOpen: d,
705
+ actionsLabel: f,
706
+ unreadIndicatorLabel: p,
707
+ itemTitleClassName: m?.itemTitleClassName,
708
+ itemIconBadgeClassName: m?.itemIconBadgeClassName,
709
+ taskBadgeClassName: m?.taskBadgeClassName,
710
+ rowGroupKey: C.groupKey,
711
+ rows: r,
712
+ draggingId: h,
713
+ dragOverId: g,
714
+ allowedDropGroups: _,
715
+ onDragStart: v,
716
+ onDragEnd: y,
717
+ onDragOver: b,
718
+ onDragLeave: x,
719
+ onDrop: S
728
720
  })
729
721
  });
730
- }, we = (e, t) => t === X.All ? !0 : e.source === t, Te = (e, t) => t ? e.title.toLowerCase().includes(t.toLowerCase()) : !0, Ee = new Set([
731
- X.Pinned,
732
- X.MyChats,
733
- X.Shared,
734
- X.Organization
735
- ]), De = x(({ conversations: e, isLoading: t, isOpen: l, onSelectConversation: u, activeConversationId: d, labels: f, onNewChat: p, styles: m, className: g, getActions: _, onActionMenuOpen: v, onToggle: y, headerActions: b, onMoveConversation: x, activeFilter: T, onActiveFilterChange: E }) => {
736
- let { colors: M, typography: N, newChatButton: P } = m ?? {}, { title: F, emptyLabel: I, noResultsLabel: L, loadingLabel: R = "Loading conversations", newChatLabel: ee, searchPlaceholder: z, searchClearLabel: B, filterLabels: V, groupLabels: H, actionsLabel: U, closeAriaLabel: te } = f, [W, G] = k(""), [K, q] = k(X.All);
737
- C(() => {
738
- T != null && (q(T), E?.(T));
739
- }, [T]);
740
- let [J, ne] = k(() => Ee), [re, ie] = k(5), ae = w(), oe = O(null), le = O(null), [de, me] = k(null), [he, ge] = k(null), [_e, ye] = k(null), xe = O(null), Se = O(null), De = S(({ height: e }) => {
741
- ie(Math.ceil(e / 36 * 2));
742
- }, []), Oe = S((e) => {
743
- ne((t) => {
722
+ }, qe = (e, t) => t === n.All ? !0 : e.source === t, Je = (e, t) => t ? e.title.toLowerCase().includes(t.toLowerCase()) : !0, Ye = new Set([
723
+ n.Pinned,
724
+ n.MyChats,
725
+ n.Shared,
726
+ n.Organization
727
+ ]), Xe = P(({ conversations: e, isLoading: t, isOpen: i, onSelectConversation: o, activeConversationId: s, labels: f, onNewChat: p, styles: m, className: h, isOverlay: g = !1, getActions: _, onActionMenuOpen: v, onToggle: y, headerActions: b, onMoveConversation: x, activeFilter: S, onActiveFilterChange: C, isFilterTabsHidden: w = !1, hiddenSources: T }) => {
728
+ let { colors: E, typography: k, newChatButton: A, searchWrapperClassName: j } = m ?? {}, { title: M, emptyLabel: ee, noResultsLabel: N, loadingLabel: te = "Loading conversations", newChatLabel: P, searchPlaceholder: re, searchClearLabel: ie, filterLabels: ae, groupLabels: H, actionsLabel: oe, unreadIndicatorLabel: se, closeAriaLabel: ce } = f, [U, le] = z(""), [ue, de] = z(n.All);
729
+ I(() => {
730
+ S != null && de(S);
731
+ }, [S]);
732
+ let W = L(() => T?.length ? e.filter((e) => e.source == null || !T.includes(e.source)) : e, [e, T]), [fe, pe] = z(() => Ye), [me, he] = z(5), ge = ne(), _e = R(null), G = R(null), [ve, ye] = z(null), [be, K] = z(null), [xe, Se] = z(null), q = R(null), J = R(null), Ce = F(({ height: e }) => {
733
+ he(Math.ceil(e / 36 * 2));
734
+ }, []), we = F((e) => {
735
+ le(e ?? "");
736
+ }, []), Te = F((e) => {
737
+ pe((t) => {
744
738
  let n = new Set(t);
745
739
  return n.has(e) ? n.delete(e) : n.add(e), n;
746
740
  });
747
- }, []), ke = S(() => {
748
- xe.current = null, Se.current = null, me(null), ge(null), ye(null);
749
- }, []), Ae = S((t, n) => {
750
- let r = pe(t, fe(n, t), e);
751
- xe.current = t, Se.current = r, me(t), ye(r);
752
- }, [e]), je = S(() => {
753
- ke();
754
- }, [ke]), Me = S((e) => {
755
- ge(e);
756
- }, []), Ne = S(() => {
757
- ge(null);
758
- }, []), Pe = S((e, t, n) => {
759
- let r = xe.current, i = Se.current;
760
- ke(), r != null && r !== e && i?.has(t) && x?.({
741
+ }, []), Ee = F(() => {
742
+ q.current = null, J.current = null, ye(null), K(null), Se(null);
743
+ }, []), De = F((e, t) => {
744
+ let n = ze(e, Re(t, e), W);
745
+ q.current = e, J.current = n, ye(e), Se(n);
746
+ }, [W]), Oe = F(() => {
747
+ Ee();
748
+ }, [Ee]), ke = F((e) => {
749
+ K(e);
750
+ }, []), Ae = F(() => {
751
+ K(null);
752
+ }, []), je = F((e, t, n) => {
753
+ let r = q.current, i = J.current;
754
+ Ee(), r != null && r !== e && i?.has(t) && x?.({
761
755
  draggedId: r,
762
756
  targetGroupKey: t,
763
757
  afterId: n
764
758
  });
765
- }, [ke, x]), Fe = n({
766
- "--cp-bg": M?.background,
767
- "--sb-border": M?.border,
768
- "--cp-item-hover": M?.itemHover,
769
- "--cp-item-active": M?.itemActive,
770
- "--cp-text": M?.text,
771
- "--cp-text-secondary": M?.textSecondary,
772
- "--cp-new-chat-bg": P?.background,
773
- "--cp-new-chat-hover": P?.hoverBackground,
774
- "--cp-new-chat-active": P?.activeBackground,
775
- "--cp-new-chat-text": P?.text,
776
- "--cp-new-chat-shadow-blue": P?.shadowBlue,
777
- "--cp-new-chat-shadow-blue-hover": P?.shadowBlueHover,
778
- "--cp-new-chat-shadow-blue-active": P?.shadowBlueActive,
779
- "--cp-new-chat-shadow-purple": P?.shadowPurple,
780
- "--cp-new-chat-shadow-purple-hover": P?.shadowPurpleHover,
781
- "--cp-new-chat-shadow-purple-active": P?.shadowPurpleActive,
782
- "--cp-drop-zone-ring": M?.dropZoneRing,
783
- "--cp-trigger-bg": M?.triggerBackground,
784
- "--cp-trigger-icon": M?.triggerIcon,
785
- "--cp-trigger-icon-idle": M?.triggerIconIdle,
786
- "--cp-skeleton-color": M?.skeletonColor
787
- }), Q = D(() => e.filter((e) => we(e, K) && Te(e, W)), [
788
- e,
789
- K,
790
- W
791
- ]), Ie = D(() => Q.filter((e) => e.isPinned), [Q]), Le = D(() => Q.filter((e) => !e.isPinned && e.source !== X.Shared && e.source !== X.Organization), [Q]), Re = D(() => Q.filter((e) => !e.isPinned && e.source === X.Shared), [Q]), ze = D(() => Q.filter((e) => !e.isPinned && e.source === X.Organization), [Q]), Be = D(() => [
759
+ }, [Ee, x]), Me = r({
760
+ "--cp-item-hover": E?.itemHover,
761
+ "--cp-item-active": E?.itemActive,
762
+ "--cp-text": E?.text,
763
+ "--cp-text-secondary": E?.textSecondary,
764
+ "--cp-new-chat-bg": A?.background,
765
+ "--cp-new-chat-text": A?.text,
766
+ "--cp-new-chat-focus-outline": A?.focusOutline,
767
+ "--cp-drop-zone-ring": E?.dropZoneRing,
768
+ "--cp-trigger-bg": E?.triggerBackground,
769
+ "--cp-trigger-icon": E?.triggerIcon,
770
+ "--cp-trigger-icon-idle": E?.triggerIconIdle,
771
+ "--cp-skeleton-color": E?.skeletonColor,
772
+ "--cp-task-badge-border": E?.taskBadgeBorder,
773
+ "--cp-task-badge-bg": E?.taskBadgeBackground,
774
+ "--cp-task-badge-text": E?.taskBadgeText,
775
+ "--cp-unread-dot": E?.unreadDot
776
+ }), Y = L(() => W.filter((e) => qe(e, ue) && Je(e, U)), [
777
+ W,
778
+ ue,
779
+ U
780
+ ]), Fe = L(() => Y.filter((e) => e.isPinned), [Y]), Le = L(() => Y.filter((e) => !e.isPinned && e.source !== n.Shared && e.source !== n.Organization), [Y]), Be = L(() => Y.filter((e) => !e.isPinned && e.source === n.Shared), [Y]), Ve = L(() => Y.filter((e) => !e.isPinned && e.source === n.Organization), [Y]), Ue = L(() => [
792
781
  {
793
- key: X.Pinned,
782
+ key: n.Pinned,
794
783
  label: H?.pinned ?? "Pinned",
795
- items: Ie
784
+ items: Fe
796
785
  },
797
786
  {
798
- key: X.MyChats,
787
+ key: n.MyChats,
799
788
  label: H?.myChats ?? "My chats",
800
789
  items: Le
801
790
  },
802
791
  {
803
- key: X.Shared,
792
+ key: n.Shared,
804
793
  label: H?.shared ?? "Shared",
805
- items: Re
794
+ items: Be
806
795
  },
807
796
  {
808
- key: X.Organization,
797
+ key: n.Organization,
809
798
  label: H?.organization ?? "Organization",
810
- items: ze
799
+ items: Ve
811
800
  }
812
801
  ], [
813
802
  H,
814
- Ie,
803
+ Fe,
815
804
  Le,
816
- Re,
817
- ze
818
- ]), $ = D(() => {
805
+ Be,
806
+ Ve
807
+ ]), Q = L(() => {
819
808
  let e = [];
820
- for (let t of Be) if (t.items.length !== 0 && (e.push({
821
- kind: Y.Header,
809
+ for (let t of Ue) if (t.items.length !== 0 && (e.push({
810
+ kind: X.Header,
822
811
  groupKey: t.key,
823
812
  label: t.label
824
- }), J.has(t.key))) for (let n of t.items) e.push({
825
- kind: Y.Item,
813
+ }), fe.has(t.key))) for (let n of t.items) e.push({
814
+ kind: X.Item,
826
815
  item: n,
827
816
  groupKey: t.key
828
817
  });
829
818
  return e;
830
- }, [Be, J]);
831
- C(() => {
832
- if (!d) return;
833
- let e = Be.find((e) => e.items.some((e) => e.id === d))?.key;
834
- if (e && !J.has(e)) {
835
- ne((t) => new Set(t).add(e));
836
- return;
837
- }
838
- if (le.current === d) return;
839
- let t = $.findIndex((e) => e.kind === Y.Item && e.item.id === d);
840
- t >= 0 && (oe.current?.scrollToRow({
841
- index: t,
819
+ }, [Ue, fe]);
820
+ I(() => {
821
+ if (!s || G.current === s) return;
822
+ let e = Q.findIndex((e) => e.kind === X.Item && e.item.id === s);
823
+ e >= 0 && (_e.current?.scrollToRow({
824
+ index: e,
842
825
  align: "smart",
843
826
  behavior: "smooth"
844
- }), le.current = d);
827
+ }), G.current = s);
845
828
  }, [
846
- d,
847
- Be,
848
- J,
849
- $
829
+ s,
830
+ Ue,
831
+ fe,
832
+ Q
850
833
  ]);
851
- let Ve = D(() => ({
852
- rows: $,
853
- expandedGroups: J,
854
- onToggleGroup: Oe,
855
- listId: ae,
856
- activeConversationId: d,
857
- searchQuery: W,
858
- onSelectConversation: u,
834
+ let Ge = L(() => ({
835
+ rows: Q,
836
+ expandedGroups: fe,
837
+ onToggleGroup: Te,
838
+ listId: ge,
839
+ activeConversationId: s,
840
+ searchQuery: U,
841
+ onSelectConversation: o,
859
842
  getActions: _,
860
843
  onActionMenuOpen: v,
861
- actionsLabel: U,
844
+ actionsLabel: oe,
845
+ unreadIndicatorLabel: se,
862
846
  styles: {
863
- groupHeaderClassName: N?.groupHeaderClassName,
864
- itemTitleClassName: N?.itemTitleClassName,
865
- itemIconBadgeClassName: m?.itemIconBadgeClassName
847
+ groupHeaderClassName: k?.groupHeaderClassName,
848
+ itemTitleClassName: k?.itemTitleClassName,
849
+ itemIconBadgeClassName: m?.itemIconBadgeClassName,
850
+ taskBadgeClassName: m?.taskBadgeClassName
866
851
  },
867
- draggingId: de,
868
- dragOverId: he,
869
- allowedDropGroups: _e,
870
- onDragStart: (e) => Ae(e, $),
871
- onDragEnd: je,
872
- onDragOver: Me,
873
- onDragLeave: Ne,
874
- onDrop: Pe
852
+ draggingId: ve,
853
+ dragOverId: be,
854
+ allowedDropGroups: xe,
855
+ onDragStart: (e) => De(e, Q),
856
+ onDragEnd: Oe,
857
+ onDragOver: ke,
858
+ onDragLeave: Ae,
859
+ onDrop: je
875
860
  }), [
876
- $,
877
- J,
878
- Oe,
879
- ae,
880
- d,
881
- W,
882
- u,
861
+ Q,
862
+ fe,
863
+ Te,
864
+ ge,
865
+ s,
866
+ U,
867
+ o,
883
868
  _,
884
869
  v,
885
- U,
886
- N?.groupHeaderClassName,
887
- N?.itemTitleClassName,
870
+ oe,
871
+ se,
872
+ k?.groupHeaderClassName,
873
+ k?.itemTitleClassName,
888
874
  m?.itemIconBadgeClassName,
889
- de,
890
- he,
891
- _e,
875
+ m?.taskBadgeClassName,
876
+ ve,
877
+ be,
878
+ xe,
879
+ De,
880
+ Oe,
881
+ ke,
892
882
  Ae,
893
- je,
894
- Me,
895
- Ne,
896
- Pe
897
- ]), He = e.length === 0, Ue = e.length > 0 && Q.length === 0;
898
- return /* @__PURE__ */ j(c, {
899
- isOpen: l,
900
- orientation: s.Left,
901
- title: F,
883
+ je
884
+ ]), Xe = W.length === 0, Ze = W.length > 0 && Y.length === 0;
885
+ return /* @__PURE__ */ V(d, {
886
+ isOpen: i,
887
+ isOverlay: g,
888
+ orientation: u.Left,
889
+ title: M,
902
890
  labels: {
903
- ariaLabel: F,
904
- closeLabel: te
891
+ ariaLabel: M,
892
+ closeLabel: ce
905
893
  },
906
894
  onClose: y,
907
895
  styles: {
908
896
  colors: {
909
- background: M?.background,
910
- border: M?.border
897
+ background: E?.background,
898
+ border: E?.border
911
899
  },
912
- typography: { fontClassName: N?.fontClassName },
900
+ typography: { fontClassName: k?.fontClassName },
913
901
  bodyClassName: "flex flex-col overflow-hidden p-0 gap-3",
914
- cssVars: Fe,
915
- titleClassName: N?.fontClassName,
902
+ cssVars: Me,
903
+ titleClassName: k?.fontClassName,
916
904
  headerClassName: "h-[64px]",
917
- className: r(l ? "w-[325px] border-s border-e mobile:w-full" : "w-0", g)
905
+ className: a(i ? "w-[324px] mobile:w-full" : "w-0", h)
918
906
  },
919
907
  rightActions: b,
920
908
  children: [
921
- /* @__PURE__ */ A(be, {
922
- label: ee,
909
+ /* @__PURE__ */ B(We, {
910
+ label: P,
923
911
  onClick: p,
924
- labelClassName: N?.newChatLabelClassName,
925
- colors: P
912
+ labelClassName: k?.newChatLabelClassName,
913
+ colors: A
926
914
  }),
927
- /* @__PURE__ */ A(o, {
928
- value: W,
929
- onChange: G,
930
- labels: {
931
- placeholder: z,
932
- clearLabel: B
933
- }
915
+ /* @__PURE__ */ B("div", {
916
+ role: "search",
917
+ className: "px-3 py-2",
918
+ children: /* @__PURE__ */ B(D, {
919
+ wrapperClassName: a(Z.search, j),
920
+ value: U,
921
+ onChange: we,
922
+ placeholder: re,
923
+ clearLabel: ie,
924
+ "aria-label": re
925
+ })
934
926
  }),
935
- /* @__PURE__ */ A(ve, {
936
- activeTab: K,
937
- labels: V,
927
+ !w && /* @__PURE__ */ B(He, {
928
+ activeTab: ue,
929
+ labels: ae,
938
930
  onChange: (e) => {
939
- q(e), E?.(e);
931
+ de(e), C?.(e);
940
932
  },
941
- tabClassName: N?.tabClassName
933
+ tabClassName: k?.tabClassName,
934
+ hiddenSources: T
942
935
  }),
943
- /* @__PURE__ */ A("span", {
936
+ /* @__PURE__ */ B("span", {
944
937
  role: "status",
945
938
  "aria-live": "polite",
946
939
  className: "sr-only",
947
- children: t ? R : He ? I : Ue ? L : ""
940
+ children: t ? te : Xe ? ee : Ze ? N : ""
948
941
  }),
949
- /* @__PURE__ */ A("div", {
942
+ /* @__PURE__ */ B("div", {
950
943
  className: "flex-1 overflow-hidden px-2 py-1",
951
- children: t ? /* @__PURE__ */ A("div", {
944
+ children: t ? /* @__PURE__ */ B("div", {
952
945
  className: "flex flex-col gap-3 px-2 py-3",
953
- children: Array.from({ length: 15 }, (e, t) => /* @__PURE__ */ A(h, {
946
+ children: Array.from({ length: 15 }, (e, t) => /* @__PURE__ */ B(O, {
954
947
  avatar: { size: 24 },
955
- showTitle: { width: ce(t) },
948
+ showTitle: { width: Pe(t) },
956
949
  paragraph: !1,
957
950
  active: !0,
958
951
  color: Z.skeletonColor
959
952
  }, t))
960
- }) : He ? /* @__PURE__ */ A(i, { label: I }) : Ue ? /* @__PURE__ */ A(a, { label: L }) : /* @__PURE__ */ A(se, {
961
- listRef: oe,
962
- id: ae,
953
+ }) : Xe ? /* @__PURE__ */ B(c, { label: ee }) : Ze ? /* @__PURE__ */ B(l, { label: N }) : /* @__PURE__ */ B(Ne, {
954
+ listRef: _e,
955
+ id: ge,
963
956
  role: "list",
964
957
  style: { height: "100%" },
965
- rowComponent: Ce,
966
- rowCount: $.length,
967
- rowHeight: ue,
968
- overscanCount: re,
969
- onResize: De,
970
- rowProps: Ve
958
+ rowComponent: Ke,
959
+ rowCount: Q.length,
960
+ rowHeight: Ie,
961
+ overscanCount: me,
962
+ onResize: Ce,
963
+ rowProps: Ge
964
+ })
965
+ })
966
+ ]
967
+ });
968
+ }), Ze = 8e3, Qe = "flex size-7 shrink-0 items-center justify-center", $ = {
969
+ root: "_root_11lia_1",
970
+ text: "_text_11lia_5",
971
+ textSecondary: "_textSecondary_11lia_9",
972
+ divider: "_divider_11lia_13",
973
+ successIcon: "_successIcon_11lia_17",
974
+ errorIcon: "_errorIcon_11lia_21",
975
+ failureCount: "_failureCount_11lia_25",
976
+ warningIcon: "_warningIcon_11lia_35"
977
+ }, $e = ({ title: e, failedCount: t, isCollapsed: n, jobsId: r, labels: i, styles: o, onToggleCollapse: s, onClose: c }) => {
978
+ let l = o?.typography;
979
+ return /* @__PURE__ */ V("div", {
980
+ className: a($.divider, "mx-4 flex items-center justify-between py-3"),
981
+ children: [/* @__PURE__ */ V("div", {
982
+ className: "flex min-w-0 items-center gap-2",
983
+ children: [/* @__PURE__ */ B("span", {
984
+ className: a($.text, "truncate", l?.titleClassName || "dial-small-paragraph-semi-text"),
985
+ children: e
986
+ }), t > 0 && /* @__PURE__ */ B("span", {
987
+ className: a($.failureCount, "inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1", l?.failureCountClassName || "dial-small-paragraph-semi-text"),
988
+ children: t
989
+ })]
990
+ }), /* @__PURE__ */ V("div", {
991
+ className: "flex shrink-0 items-center gap-1",
992
+ children: [/* @__PURE__ */ B(x, {
993
+ "aria-label": n ? i.expandQueueAriaLabel : i.collapseQueueAriaLabel,
994
+ size: y.Small,
995
+ "aria-expanded": !n,
996
+ "aria-controls": r,
997
+ icon: B(n ? ue : le, {
998
+ size: g.SM,
999
+ className: $.textSecondary,
1000
+ stroke: _,
1001
+ "aria-hidden": !0
1002
+ }),
1003
+ onClick: s,
1004
+ className: Qe
1005
+ }), /* @__PURE__ */ B(x, {
1006
+ "aria-label": i.closeQueueAriaLabel,
1007
+ size: y.Small,
1008
+ icon: /* @__PURE__ */ B(_e, {
1009
+ size: g.SM,
1010
+ className: $.textSecondary,
1011
+ stroke: _,
1012
+ "aria-hidden": !0
1013
+ }),
1014
+ onClick: c,
1015
+ className: Qe
1016
+ })]
1017
+ })]
1018
+ });
1019
+ }, et = [".dial", ".zip"], tt = (e) => {
1020
+ let t = e.toLowerCase();
1021
+ return et.some((e) => t.endsWith(e)) ? pe : t.endsWith(".json") ? me : fe;
1022
+ }, nt = ({ job: t, labels: n, onCancel: r, styles: i }) => {
1023
+ let o = i?.typography, s = tt(t.fileName), c = t.status === e.Canceled;
1024
+ return /* @__PURE__ */ V("div", {
1025
+ className: "group flex items-center gap-2 px-4 py-2",
1026
+ children: [
1027
+ /* @__PURE__ */ B(s, {
1028
+ size: g.SM,
1029
+ stroke: _,
1030
+ className: $.textSecondary,
1031
+ "aria-hidden": !0
1032
+ }),
1033
+ /* @__PURE__ */ B(b, {
1034
+ text: t.fileName,
1035
+ className: a(c ? $.textSecondary : $.text, o?.jobLabelClassName || "dial-small-text"),
1036
+ contentClassName: "!z-[80]"
1037
+ }),
1038
+ t.status === e.InProgress && /* @__PURE__ */ V("div", {
1039
+ className: a("flex size-7 shrink-0 items-center justify-center", "grid"),
1040
+ children: [/* @__PURE__ */ B(A, {
1041
+ size: g.SM,
1042
+ ariaLabel: n.jobProgressAriaLabel(t.fileName),
1043
+ className: "pointer-events-none col-start-1 row-start-1 opacity-100 transition-opacity group-focus-within:opacity-0 group-hover:opacity-0"
1044
+ }), /* @__PURE__ */ B(x, {
1045
+ "aria-label": n.cancelJobAriaLabel(t.fileName),
1046
+ size: y.Small,
1047
+ icon: /* @__PURE__ */ B(_e, {
1048
+ size: g.SM,
1049
+ className: $.textSecondary,
1050
+ stroke: _,
1051
+ "aria-hidden": !0
1052
+ }),
1053
+ onClick: () => r(t.id),
1054
+ className: "col-start-1 row-start-1 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100"
1055
+ })]
1056
+ }),
1057
+ t.status === e.Success && /* @__PURE__ */ B("span", {
1058
+ className: "flex size-7 shrink-0 items-center justify-center",
1059
+ children: /* @__PURE__ */ B(U, {
1060
+ size: g.SM,
1061
+ stroke: _,
1062
+ className: $.successIcon,
1063
+ "aria-hidden": !0
1064
+ })
1065
+ }),
1066
+ t.status === e.Warning && /* @__PURE__ */ B(ee, {
1067
+ tooltip: n.jobWarningMessage(t.warningCode),
1068
+ contentClassName: "!z-[80]",
1069
+ asChild: !0,
1070
+ children: /* @__PURE__ */ B("span", {
1071
+ className: "flex size-7 shrink-0 items-center justify-center",
1072
+ role: "img",
1073
+ "aria-label": n.jobWarningMessage(t.warningCode),
1074
+ tabIndex: 0,
1075
+ children: /* @__PURE__ */ B(oe, {
1076
+ size: g.SM,
1077
+ className: $.warningIcon,
1078
+ "aria-hidden": !0
1079
+ })
1080
+ })
1081
+ }),
1082
+ t.status === e.Failed && /* @__PURE__ */ B(ee, {
1083
+ tooltip: n.jobErrorMessage(t.errorCode),
1084
+ contentClassName: "!z-[80]",
1085
+ asChild: !0,
1086
+ children: /* @__PURE__ */ B("span", {
1087
+ className: "flex size-7 shrink-0 items-center justify-center",
1088
+ role: "img",
1089
+ "aria-label": n.jobErrorMessage(t.errorCode),
1090
+ tabIndex: 0,
1091
+ children: /* @__PURE__ */ B(H, {
1092
+ size: g.SM,
1093
+ className: $.errorIcon,
1094
+ "aria-hidden": !0
1095
+ })
971
1096
  })
1097
+ }),
1098
+ c && /* @__PURE__ */ B("span", {
1099
+ className: a($.textSecondary, "shrink-0", o?.canceledLabelClassName || "dial-small-text"),
1100
+ children: n.canceledLabel
972
1101
  })
973
1102
  ]
974
1103
  });
1104
+ }, rt = (e) => Math.round(e.reduce((e, t) => e + t.progress.percent, 0) / e.length), it = (t) => t.filter((t) => t.status !== e.InProgress).length, at = (e, t, n) => e && t ? n.closeQueueConfirmDescriptionMixed : t ? n.closeQueueConfirmDescriptionFailed : n.closeQueueConfirmDescriptionInProgress, ot = P(({ title: t, jobs: n, onClose: i, onCancel: o, labels: s, styles: c }) => {
1105
+ let [l, u] = z(!1), d = ne(), [f, p] = z(!1), g = c?.colors, _ = {
1106
+ ...r({
1107
+ "--cp-transfer-queue-bg": g?.background,
1108
+ "--cp-transfer-queue-text": g?.text,
1109
+ "--cp-transfer-queue-text-secondary": g?.textSecondary,
1110
+ "--cp-transfer-queue-success-icon": g?.successIcon,
1111
+ "--cp-transfer-queue-error-icon": g?.errorIcon,
1112
+ "--cp-transfer-queue-warning-icon": g?.warningIcon,
1113
+ "--cp-transfer-queue-divider": g?.divider,
1114
+ "--cp-transfer-queue-failure-count-bg": g?.failureCountBackground,
1115
+ "--cp-transfer-queue-failure-count-text": g?.failureCountText
1116
+ }),
1117
+ ...c?.cssVars
1118
+ }, v = n.some((t) => t.status === e.InProgress), b = n.some((t) => t.status === e.Failed), x = n.length > 0 && n.every((t) => t.status === e.Success), S = F(() => {
1119
+ v || b ? p(!0) : i();
1120
+ }, [
1121
+ v,
1122
+ b,
1123
+ i
1124
+ ]), C = F(() => {
1125
+ p(!1), i();
1126
+ }, [i]), w = F(() => {
1127
+ u((e) => !e);
1128
+ }, []);
1129
+ if (I(() => {
1130
+ if (!x) return;
1131
+ let e = setTimeout(i, Ze);
1132
+ return () => clearTimeout(e);
1133
+ }, [x, i]), n.length === 0) return null;
1134
+ let T = n.filter((t) => t.status === e.Failed).length;
1135
+ return /* @__PURE__ */ V("div", {
1136
+ role: "status",
1137
+ "aria-live": "polite",
1138
+ style: _,
1139
+ className: a($.root, "w-[370px] max-w-[calc(100vw-2rem)] rounded-xl shadow-md", c?.rootClassName),
1140
+ children: [
1141
+ /* @__PURE__ */ B($e, {
1142
+ title: t,
1143
+ failedCount: T,
1144
+ isCollapsed: l,
1145
+ jobsId: d,
1146
+ labels: s,
1147
+ styles: c,
1148
+ onToggleCollapse: w,
1149
+ onClose: S
1150
+ }),
1151
+ l && v && /* @__PURE__ */ B(E, {
1152
+ value: rt(n),
1153
+ size: y.Small,
1154
+ "aria-label": s.queueProgressAriaLabel,
1155
+ "aria-valuetext": s.queueProgressValueText(it(n), n.length)
1156
+ }),
1157
+ !l && /* @__PURE__ */ B("div", {
1158
+ id: d,
1159
+ className: a("flex max-h-[40vh] flex-col overflow-y-auto py-1", c?.bodyClassName),
1160
+ children: n.map((e) => /* @__PURE__ */ B(nt, {
1161
+ job: e,
1162
+ labels: s,
1163
+ onCancel: o,
1164
+ styles: c
1165
+ }, e.id))
1166
+ }),
1167
+ /* @__PURE__ */ B(m, {
1168
+ open: f,
1169
+ header: s.closeQueueConfirmHeader,
1170
+ description: at(v, b, s),
1171
+ confirmLabel: s.closeLabel,
1172
+ cancelLabel: s.cancelLabel,
1173
+ variant: h.Danger,
1174
+ onConfirm: C,
1175
+ onClose: () => p(!1)
1176
+ })
1177
+ ]
1178
+ });
1179
+ });
1180
+ ot.displayName = "ImportExportQueue";
1181
+ //#endregion
1182
+ //#region src/components/RenameConversationPopup/RenameConversationPopup.tsx
1183
+ var st = P(({ isOpen: e, currentTitle: t, isSaving: n, error: r, onSave: a, onCancel: c, onGenerateWithAi: l, labels: u, styles: d }) => {
1184
+ let [f, m] = z(t), [h, v] = z(!1), [y, b] = z(null), S = R(null), E = R(!1), D = R(0);
1185
+ I(() => {
1186
+ let n = e && !E.current;
1187
+ if (E.current = e, !e) {
1188
+ D.current += 1, v(!1);
1189
+ return;
1190
+ }
1191
+ if (!n) return;
1192
+ D.current += 1, m(t), b(null), v(!1);
1193
+ let r = setTimeout(() => S.current?.focus(), 0);
1194
+ return () => clearTimeout(r);
1195
+ }, [e, t]), I(() => () => {
1196
+ D.current += 1;
1197
+ }, []);
1198
+ let O = s(f.trim()), k = i(O) > 255, j = n || O === "" || O === t.trim() || k, M = F(() => {
1199
+ j || a(O);
1200
+ }, [
1201
+ j,
1202
+ a,
1203
+ O
1204
+ ]), ee = F((e) => {
1205
+ e.key === "Enter" && M();
1206
+ }, [M]), N = F(async () => {
1207
+ if (h) return;
1208
+ let e = ++D.current;
1209
+ v(!0), b(null);
1210
+ try {
1211
+ let t = await l();
1212
+ if (e !== D.current) return;
1213
+ m(o(t));
1214
+ } catch {
1215
+ if (e !== D.current) return;
1216
+ b(u.renameWithAiError);
1217
+ } finally {
1218
+ e === D.current && v(!1);
1219
+ }
1220
+ }, [
1221
+ h,
1222
+ l,
1223
+ u.renameWithAiError
1224
+ ]), te;
1225
+ return te = k ? u.nameTooLongError : y ?? r ?? void 0, /* @__PURE__ */ B(w, {
1226
+ open: e,
1227
+ header: u.popupTitle,
1228
+ size: T.Sm,
1229
+ onClose: c,
1230
+ mainButtons: n ? void 0 : [{
1231
+ label: u.cancelLabel,
1232
+ onClick: c
1233
+ }, {
1234
+ label: u.saveLabel,
1235
+ variant: p.Primary,
1236
+ disabled: j,
1237
+ onClick: M
1238
+ }],
1239
+ children: /* @__PURE__ */ B("div", {
1240
+ className: d?.bodyClassName,
1241
+ style: d?.cssVars,
1242
+ children: n ? /* @__PURE__ */ B("div", {
1243
+ className: "h-[120px] px-6 py-4",
1244
+ children: /* @__PURE__ */ B(A, { size: 50 })
1245
+ }) : /* @__PURE__ */ V("div", {
1246
+ className: "flex items-start gap-2 px-6 py-3",
1247
+ children: [/* @__PURE__ */ B("div", {
1248
+ className: "min-w-0 flex-1",
1249
+ children: /* @__PURE__ */ B(C, {
1250
+ inputRef: S,
1251
+ value: f,
1252
+ placeholder: u.inputPlaceholder,
1253
+ error: te,
1254
+ onChange: (e) => m(o(e ?? "")),
1255
+ onKeyDown: ee
1256
+ })
1257
+ }), /* @__PURE__ */ B(x, {
1258
+ "aria-label": u.renameWithAiLabel,
1259
+ tooltipProps: { tooltip: u.renameWithAiLabel },
1260
+ disabled: h || n,
1261
+ onClick: N,
1262
+ icon: h ? /* @__PURE__ */ B(A, { size: g.MD }) : /* @__PURE__ */ B(ge, {
1263
+ size: g.MD,
1264
+ stroke: _
1265
+ })
1266
+ })]
1267
+ })
1268
+ })
1269
+ });
975
1270
  });
1271
+ st.displayName = "RenameConversationPopup";
976
1272
  //#endregion
977
- export { De as ConversationPanel, X as FilterTab };
1273
+ export { Xe as ConversationPanel, ot as ImportExportQueue, st as RenameConversationPopup, tt as getTransferFileIcon };