@versini/sassysaint 8.98.3 → 8.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/chunks/{AboutChangelog.BHeQDyAS.js → AboutChangelog.Lsbr0lUh.js} +3 -3
  2. package/dist/chunks/{AboutEntry.BDM1BS3O.js → AboutEntry.C-uC4MBB.js} +5 -5
  3. package/dist/chunks/{App.BxJv91RA.js → App.lHXZIn8I.js} +2308 -2226
  4. package/dist/chunks/{Chart.B-IDcETZ.js → Chart.ClOH2fiY.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.Djc2iCyr.js → ChatBubbleAssistant.BV6sVx6a.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.9bZol1ui.js → ChatBubbleUser.Dij7uJwm.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.BUuLmcsH.js → ChatHistoryTable.BFfmfdjX.js} +50 -40
  8. package/dist/chunks/{HistoryEntry.DjynRTSp.js → HistoryEntry.BkOQP3CV.js} +58 -57
  9. package/dist/chunks/{ProfileEntry.1nrfOO15.js → ProfileEntry.DuvmIHnj.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.BDMnQae8.js → SettingsEntry.Cu-T81W1.js} +3 -3
  11. package/dist/chunks/{UsageEntry.DcbByq10.js → UsageEntry.XYX0KDAl.js} +3 -3
  12. package/dist/chunks/{UserMemoriesPanel.DKGWrLjO.js → UserMemoriesPanel.Cm0Gz7iM.js} +19 -19
  13. package/dist/chunks/{index.CrHmVTY1.js → index.5-5jxYfs.js} +1 -5
  14. package/dist/chunks/{index.B-pjzlNv.js → index.B-J4ZnaE.js} +1 -1
  15. package/dist/chunks/{index.BmYZaJLx.js → index.B5oy8JDL.js} +1 -1
  16. package/dist/chunks/{index.CHHjG7lM.js → index.BTGZYTuA.js} +2 -2
  17. package/dist/chunks/{index.Uudz8gOx.js → index.CDxR_BoA.js} +205 -175
  18. package/dist/chunks/{index.B4rJXgrc.js → index.CfH88Vnf.js} +1 -1
  19. package/dist/chunks/{index.D8Bfm5ps.js → index.D5nCT2P4.js} +1 -1
  20. package/dist/chunks/{index.CrNmEf0v.js → index.DvsI9f9_.js} +3 -3
  21. package/dist/chunks/{index.s2xRQ0x6.js → index.ttYr-nJ-.js} +1 -1
  22. package/dist/chunks/{useMarkdown.REEuvxRM.js → useMarkdown.Df5zZY4U.js} +6 -6
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  import { jsx as Pp } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as dn } from "./App.BxJv91RA.js";
2
+ import { getDefaultExportFromCjs as dn } from "./App.lHXZIn8I.js";
3
3
  import Op, { useMemo as Lp } from "react";
4
- import { TRIMESTERS_SHORT as Ep, TRIMESTERS as on, TIME_RANGES as ls, isProbablyMobile as Ip, TIME_RANGE_LABELS as an } from "./index.CrHmVTY1.js";
4
+ import { TRIMESTERS_SHORT as Ep, TRIMESTERS as on, TIME_RANGES as ls, isProbablyMobile as Ip, TIME_RANGE_LABELS as an } from "./index.5-5jxYfs.js";
5
5
  var hs = { exports: {} }, Dp = hs.exports, nn;
6
6
  function Bp() {
7
7
  return nn || (nn = 1, (function(Ae, pe) {
@@ -1,10 +1,10 @@
1
1
  import { jsx as ts } from "react/jsx-runtime";
2
- import { ChatContext as ns, AppContext as ss, n as is, useUserPreferences as rs, convertCamelCaseToReadable as as, numberFormatter as os, pluralize as ls } from "./index.CrHmVTY1.js";
3
- import { BUBBLE_FOOTER_EMPTY as us } from "./index.B-pjzlNv.js";
2
+ import { ChatContext as ns, AppContext as ss, n as is, useUserPreferences as rs, convertCamelCaseToReadable as as, numberFormatter as os, pluralize as ls } from "./index.5-5jxYfs.js";
3
+ import { BUBBLE_FOOTER_EMPTY as us } from "./index.B-J4ZnaE.js";
4
4
  import Yt from "clsx";
5
5
  import cs, { useState as xe, useEffect as zt, useContext as Tt } from "react";
6
- import { AsyncBubble as fs } from "./App.BxJv91RA.js";
7
- import { useMarkdown as hs } from "./useMarkdown.REEuvxRM.js";
6
+ import { AsyncBubble as fs } from "./App.lHXZIn8I.js";
7
+ import { useMarkdown as hs } from "./useMarkdown.Df5zZY4U.js";
8
8
  function ds(e, t) {
9
9
  e.indexOf(t) === -1 && e.push(t);
10
10
  }
@@ -1,8 +1,8 @@
1
1
  import { jsx as a, Fragment as h, jsxs as S } from "react/jsx-runtime";
2
- import { Button as C } from "./index.CrHmVTY1.js";
2
+ import { Button as C } from "./index.5-5jxYfs.js";
3
3
  import { useState as _, useMemo as m, isValidElement as T, useEffect as b } from "react";
4
- import { AsyncBubble as w } from "./App.BxJv91RA.js";
5
- import { useMarkdown as x } from "./useMarkdown.REEuvxRM.js";
4
+ import { AsyncBubble as w } from "./App.lHXZIn8I.js";
5
+ import { useMarkdown as x } from "./useMarkdown.Df5zZY4U.js";
6
6
  /*!
7
7
  @versini/ui-truncate v6.0.0
8
8
  © 2025 gizmette.com
@@ -1,9 +1,9 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import { IconCloseLight as U, y as M, v as w, INFINITE_SCROLL_THRESHOLD as D, CARDS as z, pluralize as I, ButtonIcon as C, IconRestore as B, IconStarInCircle as $, IconStarInCircleLight as W, IconDelete as Y, numberFormatter as G, isProbablyMobile as H } from "./index.CrHmVTY1.js";
3
- import { useState as K, Fragment as V } from "react";
2
+ import { IconCloseLight as L, y as M, v as w, INFINITE_SCROLL_THRESHOLD as U, CARDS as D, pluralize as I, ButtonIcon as C, IconRestore as z, IconStarInCircle as B, IconStarInCircleLight as $, IconDelete as Y, numberFormatter as G, isProbablyMobile as K } from "./index.5-5jxYfs.js";
3
+ import { useState as V, Fragment as W } from "react";
4
4
  import i from "clsx";
5
- import { W as j, j as F, G as N, H as q, M as o, F as k } from "./index.Uudz8gOx.js";
6
- import { ResponsiveTooltip as S } from "./App.BxJv91RA.js";
5
+ import { j, D as F, F as N, G as H, L as o, Y as k } from "./index.CDxR_BoA.js";
6
+ import { ResponsiveTooltip as S } from "./App.lHXZIn8I.js";
7
7
  /*!
8
8
  @versini/ui-pill v5.2.1
9
9
  © 2025 gizmette.com
@@ -17,7 +17,7 @@ try {
17
17
  });
18
18
  } catch {
19
19
  }
20
- const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
20
+ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
21
21
  "border-border-information": t === "information",
22
22
  "border-border-warning": t === "warning",
23
23
  "border-border-success": t === "success",
@@ -27,30 +27,30 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
27
27
  "text-copy-warning": t === "warning",
28
28
  "text-copy-success": t === "success",
29
29
  "text-copy-error": t === "error"
30
- }), X = ({ variant: t }) => i({
30
+ }), Q = ({ variant: t }) => i({
31
31
  "bg-surface-information": t === "information",
32
32
  "bg-surface-warning": t === "warning",
33
33
  "bg-surface-success": t === "success",
34
34
  "bg-surface-error": t === "error"
35
- }), Z = (t) => {
35
+ }), X = (t) => {
36
36
  const { className: a, variant: l } = t;
37
37
  return {
38
- main: i(J, "inline-flex items-center gap-1 px-2 py-0.5 text-xs", Q({
38
+ main: i(q, "inline-flex items-center gap-1 px-2 py-0.5 text-xs", J({
39
39
  variant: l
40
40
  }), A({
41
41
  variant: l
42
- }), X(t), a),
42
+ }), Q(t), a),
43
43
  button: i("inline-flex items-center justify-center", "ml-1", "focus:outline", "focus:outline-1", "focus:outline-offset-1", "focus:outline-focus-dark", "hover:bg-surface-medium/50", "rounded-full", A({
44
44
  variant: l
45
45
  }))
46
46
  };
47
47
  }, R = ({ label: t, className: a, variant: l = "information", description: m, onClose: d }) => {
48
- const [x, g] = K(!0), p = (f) => {
48
+ const [h, g] = V(!0), p = (f) => {
49
49
  d && (d(f), f.defaultPrevented || g(!1));
50
50
  };
51
- if (!x)
51
+ if (!h)
52
52
  return null;
53
- const u = Z({
53
+ const u = X({
54
54
  className: a,
55
55
  variant: l
56
56
  });
@@ -70,7 +70,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
70
70
  onClick: p,
71
71
  className: u.button,
72
72
  "aria-label": "Close",
73
- children: /* @__PURE__ */ e(U, {
73
+ children: /* @__PURE__ */ e(L, {
74
74
  size: "size-3"
75
75
  })
76
76
  })
@@ -82,24 +82,24 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
82
82
  SUMMARY: "summary",
83
83
  TOKEN_USAGE: w,
84
84
  ACTIONS: "actions"
85
- }, ee = [
85
+ }, Z = [
86
86
  n.ROW,
87
87
  n.TIMESTAMP,
88
88
  n.SUMMARY,
89
89
  n.ACTIONS
90
- ], re = [
90
+ ], ee = [
91
91
  n.ROW,
92
92
  n.SUMMARY,
93
93
  n.TIMESTAMP,
94
94
  n.TOKEN_USAGE,
95
95
  n.ACTIONS
96
- ], me = ({
96
+ ], ce = ({
97
97
  filteredHistory: t,
98
98
  historyState: a,
99
99
  lastEntryToLoad: l,
100
100
  onClickSort: m,
101
101
  onClickRestore: d,
102
- onClickDelete: x,
102
+ onClickDelete: h,
103
103
  onClickFavorite: g,
104
104
  infinityScrollMarkerRef: p,
105
105
  isLoading: u = !1,
@@ -107,7 +107,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
107
107
  isFiltered: O = !1,
108
108
  isSearchActive: T = !1
109
109
  }) => {
110
- const y = H() ? ee : re, E = (r) => {
110
+ const y = K() ? Z : ee, E = (r) => {
111
111
  switch (r) {
112
112
  case n.ROW:
113
113
  return /* @__PURE__ */ e(o, { className: "sr-only", children: "Row" }, r);
@@ -171,7 +171,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
171
171
  r
172
172
  );
173
173
  case n.SUMMARY: {
174
- const v = s.summary || (s.messages.length > 0 ? s.messages[0]?.content : ""), h = s.similarityScore !== void 0 && s.similarityScore !== null ? Math.round(s.similarityScore * 100) : null, P = h !== null && h < 40 ? "warning" : "success", L = s.keywordMatch === !0;
174
+ const x = s.similarityScore !== void 0 && s.similarityScore !== null ? Math.round(s.similarityScore * 100) : null, v = x !== null && x < 40 ? "warning" : "success", P = s.keywordMatch === !0;
175
175
  return /* @__PURE__ */ e(
176
176
  o,
177
177
  {
@@ -184,16 +184,16 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
184
184
  },
185
185
  children: /* @__PURE__ */ c("div", { className: "flex flex-col gap-1", children: [
186
186
  /* @__PURE__ */ c("div", { className: "flex flex-wrap gap-1", children: [
187
- h !== null && /* @__PURE__ */ e(
187
+ x !== null && /* @__PURE__ */ e(
188
188
  R,
189
189
  {
190
- variant: P,
191
- label: `${h}% semantic`
190
+ variant: v,
191
+ label: `${x}% semantic`
192
192
  }
193
193
  ),
194
- L && /* @__PURE__ */ e(R, { variant: "information", label: "keyword" })
194
+ P && /* @__PURE__ */ e(R, { variant: "information", label: "keyword" })
195
195
  ] }),
196
- /* @__PURE__ */ e("span", { children: v })
196
+ /* @__PURE__ */ e("span", { children: s.summary })
197
197
  ] })
198
198
  },
199
199
  r
@@ -230,7 +230,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
230
230
  onClick: async () => {
231
231
  await d(s);
232
232
  },
233
- children: /* @__PURE__ */ e(B, { size: "size-3", monotone: !0 })
233
+ children: /* @__PURE__ */ e(z, { size: "size-3", monotone: !0 })
234
234
  }
235
235
  )
236
236
  }
@@ -249,7 +249,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
249
249
  onClick: async () => {
250
250
  await g(s);
251
251
  },
252
- children: s.favoriteChat ? /* @__PURE__ */ e($, { size: "size-4", monotone: !0 }) : /* @__PURE__ */ e(W, { size: "size-4", monotone: !0 })
252
+ children: s.favoriteChat ? /* @__PURE__ */ e(B, { size: "size-4", monotone: !0 }) : /* @__PURE__ */ e($, { size: "size-4", monotone: !0 })
253
253
  }
254
254
  )
255
255
  }
@@ -267,7 +267,7 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
267
267
  variant: "primary",
268
268
  iconClassName: "text-red-700 dark:text-red-500",
269
269
  onClick: () => {
270
- x(s);
270
+ h(s);
271
271
  },
272
272
  children: /* @__PURE__ */ e(Y, { size: "size-3", monotone: !0 })
273
273
  }
@@ -282,19 +282,29 @@ const J = "av-pill", Q = ({ variant: t }) => i("rounded-xs border", {
282
282
  return null;
283
283
  }
284
284
  };
285
- return /* @__PURE__ */ c(j, { stickyHeader: !0, compact: !0, mode: "alt-system", caption: (() => {
286
- const r = t.length, s = f ?? r;
287
- return O && s > r ? `Showing ${I(`${r} chat`, r)} out of ${s}` : I(`${r} chat`, r);
288
- })(), children: [
289
- /* @__PURE__ */ e(F, { children: /* @__PURE__ */ e(N, { children: y.map((r) => E(r)) }) }),
290
- /* @__PURE__ */ e(q, { children: u && t.length === 0 ? /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(o, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : t.slice(0, l).map((r, s) => r?.messages?.length > 0 ? /* @__PURE__ */ c(V, { children: [
291
- s === l - D && /* @__PURE__ */ e("tr", { ref: p }),
292
- /* @__PURE__ */ e(N, { children: y.map(
293
- (b) => _(b, r, s)
294
- ) })
295
- ] }, `${z.HISTORY.TITLE}-${r.id}-${s}`) : null) })
296
- ] });
285
+ return /* @__PURE__ */ c(
286
+ j,
287
+ {
288
+ stickyHeader: !0,
289
+ compact: !0,
290
+ mode: "alt-system",
291
+ caption: (() => {
292
+ const r = t.length, s = f ?? r;
293
+ return O && s > r ? `Showing ${I(`${r} chat`, r)} out of ${s}` : I(`${r} chat`, r);
294
+ })(),
295
+ disabled: u && t.length > 0,
296
+ children: [
297
+ /* @__PURE__ */ e(F, { children: /* @__PURE__ */ e(N, { children: y.map((r) => E(r)) }) }),
298
+ /* @__PURE__ */ e(H, { children: u && t.length === 0 ? /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(o, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : t.slice(0, l).map((r, s) => r?.summary ? /* @__PURE__ */ c(W, { children: [
299
+ s === l - U && /* @__PURE__ */ e("tr", { ref: p }),
300
+ /* @__PURE__ */ e(N, { children: y.map(
301
+ (b) => _(b, r, s)
302
+ ) })
303
+ ] }, `${D.HISTORY.TITLE}-${r.id}-${s}`) : null) })
304
+ ]
305
+ }
306
+ );
297
307
  };
298
308
  export {
299
- me as ChatHistoryTable
309
+ ce as ChatHistoryTable
300
310
  };
@@ -1,37 +1,37 @@
1
1
  import { jsxs as i, Fragment as ae, jsx as t } from "react/jsx-runtime";
2
- import { n as j, INFINITE_SCROLL_LIMIT as P, INFINITE_SCROLL_THRESHOLD as re, HistoryContext as K, ChatContext as se, useLocalStorage as h, LOCAL_STORAGE_PREFIX as m, LOCAL_STORAGE_SORT_TIMESTAMP as oe, e$1 as d, LOCAL_STORAGE_SORT_TOKEN_USAGE as ne, LOCAL_STORAGE_SORT as ie, y as I, LOCAL_STORAGE_CHAT_ID as ce, useDeleteChat as le, useToggleFavoriteChat as de, APP_CLASSNAME as he, TOAST_CHAT_DELETED as me, graphQLRequest as ue, SERVICE_TYPES as Ce, ACTION_SORT as Se, v as fe, LOCAL_STORAGE_SEARCH as ye, LOCAL_STORAGE_FAVORITES_ONLY as Te, LOCAL_STORAGE_KEYWORD_MATCH_ALL as pe, useChatsHistory as ge, useUserChatStats as Ae, HISTORY_TITLE as Ee, Card as _e, TextInput as Le, debounce as De, IconSearch as Oe, Button as ke, L as ve, j as Re, ACTION_SEARCH as be } from "./index.CrHmVTY1.js";
3
- import { useAiChat as Ie, ConfirmationPanel as xe, LazyToastContainerWrapper as we, showErrorToast as He, v4 as Ne, CHAT_RESET as Fe, CHAT_SET_ATTACHMENTS as Me, CHAT_SET_STATUS as Ge, Panel as Ve, Toggle as U, CancelButton as ze } from "./App.BxJv91RA.js";
2
+ import { n as j, INFINITE_SCROLL_LIMIT as P, INFINITE_SCROLL_THRESHOLD as re, HistoryContext as K, ChatContext as se, useLocalStorage as h, LOCAL_STORAGE_PREFIX as m, LOCAL_STORAGE_SORT_TIMESTAMP as oe, e$1 as d, LOCAL_STORAGE_SORT_TOKEN_USAGE as ne, LOCAL_STORAGE_SORT as ie, y as x, LOCAL_STORAGE_CHAT_ID as ce, useDeleteChat as le, useToggleFavoriteChat as de, APP_CLASSNAME as he, TOAST_CHAT_DELETED as me, graphQLRequest as ue, SERVICE_TYPES as Ce, ACTION_SORT as Se, v as fe, LOCAL_STORAGE_SEARCH as ye, LOCAL_STORAGE_FAVORITES_ONLY as Te, LOCAL_STORAGE_KEYWORD_MATCH_ALL as pe, useChatsHistory as ge, useUserChatStats as Ae, HISTORY_TITLE as Ee, Card as _e, TextInput as Le, debounce as De, IconSearch as ke, Button as Oe, L as ve, j as Re, ACTION_SEARCH as be } from "./index.5-5jxYfs.js";
3
+ import { useAiChat as Ie, ConfirmationPanel as xe, LazyToastContainerWrapper as we, showErrorToast as He, v4 as Ne, CHAT_RESET as Fe, CHAT_SET_ATTACHMENTS as Me, CHAT_SET_STATUS as Ge, Panel as Ve, Toggle as U, CancelButton as ze } from "./App.lHXZIn8I.js";
4
4
  import Pe from "clsx";
5
5
  import { useRef as F, useState as M, useContext as G, useCallback as B, Suspense as Ue, lazy as Be, useEffect as je } from "react";
6
6
  const Ke = Be(
7
7
  () => import(
8
8
  /* webpackChunkName: "history-table" */
9
- "./ChatHistoryTable.BUuLmcsH.js"
9
+ "./ChatHistoryTable.BFfmfdjX.js"
10
10
  ).then((u) => ({ default: u.ChatHistoryTable }))
11
11
  ), Ye = ({
12
12
  filteredHistory: u,
13
13
  onOpenChange: y,
14
14
  mutate: T,
15
15
  isLoading: E = !1,
16
- totalHistoryCount: x,
16
+ totalHistoryCount: w,
17
17
  isFiltered: _ = !1,
18
18
  isSearchActive: C = !1
19
19
  }) => {
20
- const { user: s, getAccessToken: p } = j(), g = F(null), n = F({
20
+ const { user: r, getAccessToken: p } = j(), g = F(null), n = F({
21
21
  id: "",
22
22
  timestamp: "",
23
23
  message: ""
24
- }), [L, A] = M(!1), [w, S] = M(
24
+ }), [L, A] = M(!1), [H, S] = M(
25
25
  P + re
26
- ), { state: c, dispatch: H } = G(K), D = {
26
+ ), { state: c, dispatch: D } = G(K), k = {
27
27
  searchString: c.searchString || "",
28
28
  sortDirection: c.sortDirection || d.DESC,
29
- sortedCell: c.sortedCell || I
29
+ sortedCell: c.sortedCell || x
30
30
  }, {
31
31
  setChatId: l,
32
32
  setInitialMessages: O,
33
33
  dispatch: f
34
- } = G(se), { setInput: k } = Ie(), [v, R] = h({
34
+ } = G(se), { setInput: v } = Ie(), [R, b] = h({
35
35
  key: m + oe,
36
36
  initialValue: d.DESC
37
37
  }), [N, a] = h({
@@ -39,7 +39,7 @@ const Ke = Be(
39
39
  initialValue: d.ASC
40
40
  }), [, Y] = h({
41
41
  key: m + ie,
42
- initialValue: I
42
+ initialValue: x
43
43
  }), [W] = h({
44
44
  key: m + ce,
45
45
  initialValue: ""
@@ -47,20 +47,20 @@ const Ke = Be(
47
47
  getAccessToken: p
48
48
  }), X = (e) => {
49
49
  const o = c.sortedCell === e;
50
- let r, b;
50
+ let s, I;
51
51
  switch (e) {
52
- case I:
53
- b = R, r = o ? c.sortDirection : v;
52
+ case x:
53
+ I = b, s = o ? c.sortDirection : R;
54
54
  break;
55
55
  case fe:
56
- b = a, r = o ? c.sortDirection : N;
56
+ I = a, s = o ? c.sortDirection : N;
57
57
  break;
58
58
  default:
59
- b = R, r = o ? c.sortDirection : v;
59
+ I = b, s = o ? c.sortDirection : R;
60
60
  break;
61
61
  }
62
- const z = r === d.ASC ? d.DESC : d.ASC;
63
- b(z), Y(e), H({
62
+ const z = s === d.ASC ? d.DESC : d.ASC;
63
+ I(z), Y(e), D({
64
64
  type: Se,
65
65
  payload: {
66
66
  sortedCell: e,
@@ -71,7 +71,7 @@ const Ke = Be(
71
71
  const e = n.current;
72
72
  try {
73
73
  await q({
74
- userId: s?.username || "",
74
+ userId: r?.username || "",
75
75
  id: e.id
76
76
  }), T(""), await He(me, {
77
77
  autoClose: 2e3,
@@ -81,7 +81,7 @@ const Ke = Be(
81
81
  }
82
82
  }, J = async (e) => {
83
83
  try {
84
- const o = await p(), r = await ue({
84
+ const o = await p(), s = await ue({
85
85
  accessToken: o,
86
86
  type: Ce.GET_CHAT,
87
87
  params: {
@@ -94,18 +94,18 @@ const Ke = Be(
94
94
  streaming: !1,
95
95
  loading: !1,
96
96
  restoring: !0,
97
- restoredModel: r.data?.model || "",
98
- restoredUsage: r.data?.tokenUsage || 0
97
+ restoredModel: s.data?.model || "",
98
+ restoredUsage: s.data?.tokenUsage || 0
99
99
  }
100
- }), k(""), l(e.id), O(r.data.messages), y(!1);
100
+ }), v(""), l(e.id), O(s.data.messages), y(!1);
101
101
  } catch {
102
102
  }
103
103
  }, Z = (e) => {
104
104
  n.current = {
105
105
  id: e.id,
106
106
  timestamp: e.timestamp,
107
- message: e.messages.length > 0 ? e.messages[0]?.content : ""
108
- }, A(!L), W === e.id && (l(Ne()), O([]), k(""), f({
107
+ message: e.summary
108
+ }, A(!L), W === e.id && (l(Ne()), O([]), v(""), f({
109
109
  type: Fe,
110
110
  payload: {
111
111
  privateChat: !1,
@@ -120,20 +120,20 @@ const Ke = Be(
120
120
  }, ee = async (e) => {
121
121
  try {
122
122
  await Q({
123
- userId: s?.username || "",
123
+ userId: r?.username || "",
124
124
  id: e.id
125
125
  }), T("");
126
126
  } catch {
127
127
  }
128
128
  }, V = B((e) => {
129
- e[0].isIntersecting && S((r) => r + P);
129
+ e[0].isIntersecting && S((s) => s + P);
130
130
  }, []), te = B(
131
131
  (e) => {
132
132
  if (g.current && g.current.disconnect(), e) {
133
133
  const o = {
134
134
  rootMargin: "20px"
135
- }, r = new IntersectionObserver(V, o);
136
- r.observe(e), g.current = r;
135
+ }, s = new IntersectionObserver(V, o);
136
+ s.observe(e), g.current = s;
137
137
  }
138
138
  },
139
139
  [V]
@@ -172,15 +172,15 @@ const Ke = Be(
172
172
  Ke,
173
173
  {
174
174
  filteredHistory: u,
175
- historyState: D,
176
- lastEntryToLoad: w,
175
+ historyState: k,
176
+ lastEntryToLoad: H,
177
177
  onClickSort: X,
178
178
  onClickRestore: J,
179
179
  onClickDelete: Z,
180
180
  onClickFavorite: ee,
181
181
  infinityScrollMarkerRef: te,
182
182
  isLoading: E,
183
- totalHistoryCount: x,
183
+ totalHistoryCount: w,
184
184
  isFiltered: _,
185
185
  isSearchActive: C
186
186
  }
@@ -190,26 +190,26 @@ const Ke = Be(
190
190
  open: u,
191
191
  onOpenChange: y
192
192
  }) => {
193
- const { getAccessToken: T, user: E } = j(), [x, _] = M([]), C = F(null), { state: s, dispatch: p } = G(K), [, g] = h({
193
+ const { getAccessToken: T, user: E } = j(), [w, _] = M([]), C = F(null), { state: r, dispatch: p } = G(K), [, g] = h({
194
194
  key: m + ye,
195
- initialValue: s.searchString
195
+ initialValue: r.searchString
196
196
  }), [n, L] = h({
197
197
  key: m + Te,
198
198
  initialValue: !1
199
- }), [A, w] = h({
199
+ }), [A, H] = h({
200
200
  key: m + pe,
201
201
  initialValue: !0
202
202
  }), {
203
203
  data: S,
204
204
  refetch: c,
205
- isLoading: H,
206
- isError: D
205
+ isLoading: D,
206
+ isError: k
207
207
  } = ge({
208
208
  enabled: u,
209
209
  user: E?.username || "",
210
- searchString: s.searchString || "",
211
- sortDirection: s.sortDirection || d.DESC,
212
- sortedCell: s.sortedCell || I,
210
+ searchString: r.searchString || "",
211
+ sortDirection: r.sortDirection || d.DESC,
212
+ sortedCell: r.sortedCell || x,
213
213
  getAccessToken: T,
214
214
  keywordMatchAll: A
215
215
  }), { data: l } = Ae({
@@ -226,14 +226,14 @@ const Ke = Be(
226
226
  type: be,
227
227
  payload: { searchString: a }
228
228
  });
229
- }, k = De((a) => {
229
+ }, v = De((a) => {
230
230
  f(a.target.value.trim());
231
- }, 500), v = async (a) => {
231
+ }, 800), R = async (a) => {
232
232
  a.preventDefault();
233
- }, R = (a) => {
233
+ }, b = (a) => {
234
234
  L(a);
235
235
  }, N = (a) => {
236
- w(a);
236
+ H(a);
237
237
  };
238
238
  return /* @__PURE__ */ i(
239
239
  Ve,
@@ -257,11 +257,11 @@ const Ke = Be(
257
257
  /* @__PURE__ */ t(
258
258
  _e,
259
259
  {
260
- header: s.searchString ? "Filters applied" : "Filters",
260
+ header: D && r.searchString ? "Loading..." : r.searchString ? "Filters applied" : "Filters",
261
261
  className: "prose-dark dark:prose-lighter mb-4",
262
262
  noBorder: !0,
263
263
  compact: !0,
264
- children: /* @__PURE__ */ i("form", { autoComplete: "off", onSubmit: v, children: [
264
+ children: /* @__PURE__ */ i("form", { autoComplete: "off", onSubmit: R, children: [
265
265
  /* @__PURE__ */ t(
266
266
  Le,
267
267
  {
@@ -272,13 +272,13 @@ const Ke = Be(
272
272
  autoComplete: "off",
273
273
  autoCorrect: "off",
274
274
  ref: C,
275
- defaultValue: s.searchString,
275
+ defaultValue: r.searchString,
276
276
  mode: "alt-system",
277
277
  name: "Search",
278
278
  label: "Search",
279
- onChange: k,
279
+ onChange: v,
280
280
  className: "my-2",
281
- rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Oe, { monotone: !0, size: "size-3" }) })
281
+ rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(ke, { monotone: !0, size: "size-3" }) })
282
282
  }
283
283
  ),
284
284
  /* @__PURE__ */ i("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
@@ -288,7 +288,7 @@ const Ke = Be(
288
288
  {
289
289
  name: "favorites-only",
290
290
  checked: n,
291
- onChange: R,
291
+ onChange: b,
292
292
  label: "Show favorites only",
293
293
  narrow: !0,
294
294
  noBorder: !0
@@ -307,10 +307,11 @@ const Ke = Be(
307
307
  )
308
308
  ] }),
309
309
  /* @__PURE__ */ t(
310
- ke,
310
+ Oe,
311
311
  {
312
+ mode: "dark",
312
313
  size: "small",
313
- disabled: s.searchString === "",
314
+ disabled: r.searchString === "",
314
315
  onClick: () => {
315
316
  f(""), C.current?.value && (C.current.value = "", C.current.focus());
316
317
  },
@@ -331,17 +332,17 @@ const Ke = Be(
331
332
  "min-h-[60vh]"
332
333
  ),
333
334
  children: [
334
- D && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
335
- !D && /* @__PURE__ */ t(
335
+ k && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
336
+ !k && /* @__PURE__ */ t(
336
337
  Ye,
337
338
  {
338
339
  mutate: c,
339
- filteredHistory: x,
340
+ filteredHistory: w,
340
341
  onOpenChange: y,
341
- isLoading: H,
342
+ isLoading: D,
342
343
  totalHistoryCount: O,
343
- isFiltered: !!(s.searchString || n),
344
- isSearchActive: !!s.searchString
344
+ isFiltered: !!(r.searchString || n),
345
+ isSearchActive: !!r.searchString
345
346
  }
346
347
  )
347
348
  ]
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, Fragment as H, jsx as e } from "react/jsx-runtime";
2
- import { preloadToast as K, showSuccessToast as O, showErrorToast as W, ConfirmationPanel as Y, LazyToastContainerWrapper as $, Panel as V, CancelButton as q } from "./App.BxJv91RA.js";
3
- import { n as J, useUniqueId as Q, useUserPreferences as X, useServerCapabilities as Z, p as ee, setUserPlan as ae, Card as d, renderDataAsList as ne, CARDS as s, L as h, j as i, Button as se, st as re, isTauri as te, ButtonIcon as le, IconPasskey as k, PROFILE_TITLE as ie } from "./index.CrHmVTY1.js";
2
+ import { preloadToast as K, showSuccessToast as O, showErrorToast as W, ConfirmationPanel as Y, LazyToastContainerWrapper as $, Panel as V, CancelButton as q } from "./App.lHXZIn8I.js";
3
+ import { n as J, useUniqueId as Q, useUserPreferences as X, useServerCapabilities as Z, p as ee, setUserPlan as ae, Card as d, renderDataAsList as ne, CARDS as s, L as h, j as i, Button as se, st as re, isTauri as te, ButtonIcon as le, IconPasskey as k, PROFILE_TITLE as ie } from "./index.5-5jxYfs.js";
4
4
  import ce from "clsx";
5
5
  import { useState as m, useMemo as oe, useCallback as P } from "react";
6
6
  const de = () => {
@@ -1,7 +1,7 @@
1
1
  import { jsxs as n, jsx as t } from "react/jsx-runtime";
2
- import { n as je, useEntitlements as Ve, AppContext as Fe, useUserPreferences as We, w as ce, useLocalStorage as ie, LOCAL_STORAGE_OLED_MODE as $e, LOCAL_STORAGE_FULL_SCREEN as ze, e as de, canEvaluateModels as He, W as Ye, getCacheInfo as qe, isServiceWorkerEnabled as Ke, SETTINGS_TITLE as Qe, Card as f, CARDS as r, V as Je, Button as ue, PROMPTS_DESCRIPTION as Xe, K as me, L as Ze, j as he, applyOledMode as fe, APP_SET_OLED_MODE as Ee, APP_SET_FULL_SCREEN as pe, getCurrentGeoLocation as et, graphQLRequest as Se, handleServiceWorkerToggle as tt, SERVICE_TYPES as ge } from "./index.CrHmVTY1.js";
3
- import { useCapability as Te, Panel as ot, Toggle as l, CancelButton as st } from "./App.BxJv91RA.js";
4
- import { TextArea as be } from "./index.s2xRQ0x6.js";
2
+ import { n as je, useEntitlements as Ve, AppContext as Fe, useUserPreferences as We, w as ce, useLocalStorage as ie, LOCAL_STORAGE_OLED_MODE as $e, LOCAL_STORAGE_FULL_SCREEN as ze, e as de, canEvaluateModels as He, W as Ye, getCacheInfo as qe, isServiceWorkerEnabled as Ke, SETTINGS_TITLE as Qe, Card as f, CARDS as r, V as Je, Button as ue, PROMPTS_DESCRIPTION as Xe, K as me, L as Ze, j as he, applyOledMode as fe, APP_SET_OLED_MODE as Ee, APP_SET_FULL_SCREEN as pe, getCurrentGeoLocation as et, graphQLRequest as Se, handleServiceWorkerToggle as tt, SERVICE_TYPES as ge } from "./index.5-5jxYfs.js";
3
+ import { useCapability as Te, Panel as ot, Toggle as l, CancelButton as st } from "./App.lHXZIn8I.js";
4
+ import { TextArea as be } from "./index.ttYr-nJ-.js";
5
5
  import { useContext as at, useState as s, useMemo as nt, useCallback as rt, useEffect as Ne } from "react";
6
6
  const mt = ({
7
7
  open: Ce,
@@ -1,6 +1,6 @@
1
1
  import { jsxs as T, jsx as t } from "react/jsx-runtime";
2
- import { n as X, useUniqueId as Z, useUserChatStats as J, useLocalStorage as M, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_USAGE_VIEW_MODE as Q, LOCAL_STORAGE_USAGE_TIME_RANGE as $, TIME_RANGES as e, LOCAL_STORAGE_USAGE_SELECTED_MONTH as ee, useChatsUsage as te, USAGE_TITLE as ne, Card as Y, CARDS as d, L as h, j as c, TIME_RANGE_LABELS as k, MONTHS as g, ButtonIcon as E, IconChart as re, IconSelected as H, IconUnSelected as P, IconPrevious as le, IconNext as se, renderDataAsList as ae, pluralize as D } from "./index.CrHmVTY1.js";
3
- import { Panel as ie, Menu as b, MenuGroupLabel as oe, MenuItem as x, CancelButton as ce } from "./App.BxJv91RA.js";
2
+ import { n as X, useUniqueId as Z, useUserChatStats as J, useLocalStorage as M, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_USAGE_VIEW_MODE as Q, LOCAL_STORAGE_USAGE_TIME_RANGE as $, TIME_RANGES as e, LOCAL_STORAGE_USAGE_SELECTED_MONTH as ee, useChatsUsage as te, USAGE_TITLE as ne, Card as Y, CARDS as d, L as h, j as c, TIME_RANGE_LABELS as k, MONTHS as g, ButtonIcon as E, IconChart as re, IconSelected as H, IconUnSelected as P, IconPrevious as le, IconNext as se, renderDataAsList as ae, pluralize as D } from "./index.5-5jxYfs.js";
3
+ import { Panel as ie, Menu as b, MenuGroupLabel as oe, MenuItem as x, CancelButton as ce } from "./App.lHXZIn8I.js";
4
4
  import { useState as G, Suspense as Te, lazy as de } from "react";
5
5
  const a = [0, 3, 6, 9], s = {
6
6
  TOKEN: "token",
@@ -14,7 +14,7 @@ const a = [0, 3, 6, 9], s = {
14
14
  ], ue = de(
15
15
  () => import(
16
16
  /* webpackChunkName: "chart-highcharts" */
17
- "./Chart.B-IDcETZ.js"
17
+ "./Chart.ClOH2fiY.js"
18
18
  )
19
19
  ), Oe = ({
20
20
  open: U,