@versini/sassysaint 8.86.6 → 8.87.1

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 (26) hide show
  1. package/dist/chunks/{AboutChangelog.CBpcISi9.js → AboutChangelog.o0RrePDe.js} +3 -3
  2. package/dist/chunks/{AboutEntry.DU2uNlO5.js → AboutEntry.B-jI9DmU.js} +5 -5
  3. package/dist/chunks/{App.CmACPanI.js → App.Cw4x07xc.js} +2197 -2177
  4. package/dist/chunks/{Chart.DtpkwjAQ.js → Chart.Cnr0zcD_.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.CPUdNBoR.js → ChatBubbleAssistant.Dov1Kdlx.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.GY7jt_F6.js → ChatBubbleUser.BpJ-IsSf.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.ygXc2ykM.js → ChatHistoryTable.BjqwKZJO.js} +3 -3
  8. package/dist/chunks/{HistoryEntry.CQNZZy2I.js → HistoryEntry.CYnHVo3I.js} +148 -134
  9. package/dist/chunks/{ProfileEntry.8pOS6ZIO.js → ProfileEntry.U3mHnYGY.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.CjXqhvVw.js → SettingsEntry.2ursSi4P.js} +3 -3
  11. package/dist/chunks/{UsageEntry.Biy9jrGB.js → UsageEntry.BOr75SBT.js} +3 -3
  12. package/dist/chunks/UserMemoriesPanel.BBBhJt3_.js +756 -0
  13. package/dist/chunks/{index.rM5oN0TS.js → index.BUPcQvlr.js} +1 -1
  14. package/dist/chunks/{index.VbKxTMW7.js → index.Bfo9JTHh.js} +1 -1
  15. package/dist/chunks/{index.DcKZlKHY.js → index.BrE3_o6F.js} +2 -2
  16. package/dist/chunks/{index.C2tIZxcr.js → index.CFqFrOCp.js} +1 -1
  17. package/dist/chunks/{index.CwpeLb5X.js → index.CpMnKe5v.js} +3 -3
  18. package/dist/chunks/{index.Qu1dRpn4.js → index.DoR-38mQ.js} +33 -29
  19. package/dist/chunks/{index.BeYRo-Y2.js → index.euuiion4.js} +1 -1
  20. package/dist/chunks/{index.eaOjgcIR.js → index.nlBBvIGH.js} +1 -1
  21. package/dist/chunks/{index.R2hBEavo.js → index.o7M2h5Kz.js} +1 -1
  22. package/dist/chunks/{useMarkdown.yN-jucB0.js → useMarkdown.Cwmhcac2.js} +279 -280
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/package.json +3 -3
  26. package/dist/chunks/UserMemoriesPanel._Qprj5L_.js +0 -745
@@ -1,7 +1,7 @@
1
1
  import { jsx as Ap } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as ln } from "./App.CmACPanI.js";
2
+ import { getDefaultExportFromCjs as ln } from "./App.Cw4x07xc.js";
3
3
  import Cp, { useState as Pp, useEffect as Op } from "react";
4
- import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.Qu1dRpn4.js";
4
+ import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.DoR-38mQ.js";
5
5
  var ls = { exports: {} }, Ip = ls.exports, on;
6
6
  function Dp() {
7
7
  return on || (on = 1, (function(we, he) {
@@ -1,10 +1,10 @@
1
1
  import { jsx as x } from "react/jsx-runtime";
2
- import { ChatContext as P, AppContext as R, n as y, useUserPreferences as L, convertCamelCaseToReadable as _, numberFormatter as v, pluralize as B, O as G } from "./index.Qu1dRpn4.js";
3
- import { BUBBLE_FOOTER_EMPTY as D } from "./index.C2tIZxcr.js";
2
+ import { ChatContext as P, AppContext as R, n as y, useUserPreferences as L, convertCamelCaseToReadable as _, numberFormatter as v, pluralize as B, O as G } from "./index.DoR-38mQ.js";
3
+ import { BUBBLE_FOOTER_EMPTY as D } from "./index.CFqFrOCp.js";
4
4
  import U from "clsx";
5
5
  import j, { useState as M, useRef as E, useEffect as O, useContext as S } from "react";
6
- import { AsyncBubble as k } from "./App.CmACPanI.js";
7
- import { useMarkdown as q } from "./useMarkdown.yN-jucB0.js";
6
+ import { AsyncBubble as k } from "./App.Cw4x07xc.js";
7
+ import { useMarkdown as q } from "./useMarkdown.Cwmhcac2.js";
8
8
  const I = 2, W = I * 1e3, b = "", V = (e) => e * (2 - e);
9
9
  function Y(e, n = !0) {
10
10
  const [a, d] = M(0), [i, p] = M(0), [t, C] = M(e), r = E(0), s = E(0);
@@ -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.Qu1dRpn4.js";
2
+ import { Button as C } from "./index.DoR-38mQ.js";
3
3
  import { useState as _, useMemo as m, isValidElement as T, useEffect as b } from "react";
4
- import { AsyncBubble as w } from "./App.CmACPanI.js";
5
- import { useMarkdown as x } from "./useMarkdown.yN-jucB0.js";
4
+ import { AsyncBubble as w } from "./App.Cw4x07xc.js";
5
+ import { useMarkdown as x } from "./useMarkdown.Cwmhcac2.js";
6
6
  /*!
7
7
  @versini/ui-truncate v5.2.1
8
8
  © 2025 gizmette.com
@@ -1,7 +1,7 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import { B as x, F as u, INFINITE_SCROLL_THRESHOLD as v, CARDS as I, pluralize as M, ButtonIcon as i, IconRestore as U, IconStarInCircle as y, IconStarInCircleLight as D, IconDelete as z, numberFormatter as L, isProbablyMobile as _ } from "./index.Qu1dRpn4.js";
3
- import { W as $, j as B, G as m, H as P, M as a, F as f } from "./index.eaOjgcIR.js";
4
- import { Tooltip as d } from "./App.CmACPanI.js";
2
+ import { B as x, F as u, INFINITE_SCROLL_THRESHOLD as v, CARDS as I, pluralize as M, ButtonIcon as i, IconRestore as U, IconStarInCircle as y, IconStarInCircleLight as D, IconDelete as z, numberFormatter as L, isProbablyMobile as _ } from "./index.DoR-38mQ.js";
3
+ import { W as $, j as B, G as m, H as P, M as a, F as f } from "./index.nlBBvIGH.js";
4
+ import { Tooltip as d } from "./App.Cw4x07xc.js";
5
5
  import h from "clsx";
6
6
  import { Fragment as F } from "react";
7
7
  const s = {
@@ -1,135 +1,149 @@
1
- import { jsxs as c, Fragment as ee, jsx as t } from "react/jsx-runtime";
2
- import { n as V, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as te, HistoryContext as U, ChatContext as re, useLocalStorage as y, LOCAL_STORAGE_PREFIX as p, LOCAL_STORAGE_SORT_TIMESTAMP as ae, e$1 as h, LOCAL_STORAGE_SORT_TOKEN_USAGE as se, LOCAL_STORAGE_SORT as oe, B as v, useDeleteChat as ne, useToggleFavoriteChat as ie, APP_CLASSNAME as ce, TOAST_CHAT_DELETED as le, graphQLRequest as de, SERVICE_TYPES as he, ACTION_SORT as me, F as ue, useChatsHistory as Ce, useUserChatStats as Se, LOCAL_STORAGE_SEARCH as fe, LOCAL_STORAGE_FAVORITES_ONLY as ye, HISTORY_TITLE as pe, Card as ge, TextInput as Te, debounce as Ae, IconSearch as Ee, Button as M, L as De, j$1 as _e, ACTION_SEARCH as Le } from "./index.Qu1dRpn4.js";
3
- import { useAiChat as ke, ConfirmationPanel as ve, LazyToastContainerWrapper as Oe, showErrorToast as be, CHAT_SET_STATUS as Re, Panel as Ie, Toggle as xe } from "./App.CmACPanI.js";
4
- import Ne from "clsx";
5
- import { useRef as N, useState as H, useContext as w, useCallback as P, Suspense as He, lazy as we, useEffect as Fe } from "react";
6
- const ze = we(
1
+ import { jsxs as c, Fragment as te, jsx as t } from "react/jsx-runtime";
2
+ import { n as P, INFINITE_SCROLL_LIMIT as M, INFINITE_SCROLL_THRESHOLD as ae, HistoryContext as U, ChatContext as re, useLocalStorage as C, LOCAL_STORAGE_PREFIX as S, LOCAL_STORAGE_SORT_TIMESTAMP as se, e$1 as h, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ne, B as I, LOCAL_STORAGE_CHAT_ID as ie, useDeleteChat as ce, useToggleFavoriteChat as le, APP_CLASSNAME as de, TOAST_CHAT_DELETED as he, graphQLRequest as me, SERVICE_TYPES as ue, ACTION_SORT as Ce, F as Se, useChatsHistory as fe, useUserChatStats as ye, LOCAL_STORAGE_SEARCH as Te, LOCAL_STORAGE_FAVORITES_ONLY as pe, HISTORY_TITLE as ge, Card as Ae, TextInput as Ee, debounce as _e, IconSearch as De, Button as z, L as Le, j$1 as ve, ACTION_SEARCH as Oe } from "./index.DoR-38mQ.js";
3
+ import { useAiChat as ke, ConfirmationPanel as Re, LazyToastContainerWrapper as Ie, showErrorToast as be, v4 as He, CHAT_RESET as xe, CHAT_SET_ATTACHMENTS as Ne, CHAT_SET_STATUS as we, Panel as Fe, Toggle as Ge } from "./App.Cw4x07xc.js";
4
+ import Me from "clsx";
5
+ import { useRef as x, useState as N, useContext as w, useCallback as V, Suspense as ze, lazy as Ve, useEffect as Pe } from "react";
6
+ const Ue = Ve(
7
7
  () => import(
8
8
  /* webpackChunkName: "history-table" */
9
- "./ChatHistoryTable.ygXc2ykM.js"
9
+ "./ChatHistoryTable.BjqwKZJO.js"
10
10
  ).then((m) => ({ default: m.ChatHistoryTable }))
11
- ), Ge = ({
11
+ ), Be = ({
12
12
  filteredHistory: m,
13
- onOpenChange: C,
14
- mutate: S,
15
- isLoading: g = !1,
16
- totalHistoryCount: O,
17
- isFiltered: T = !1
13
+ onOpenChange: f,
14
+ mutate: y,
15
+ isLoading: A = !1,
16
+ totalHistoryCount: b,
17
+ isFiltered: E = !1
18
18
  }) => {
19
- const { user: l, getAccessToken: s } = V(), f = N(null), n = N({
19
+ const { user: l, getAccessToken: s } = P(), T = x(null), n = x({
20
20
  id: "",
21
21
  timestamp: "",
22
22
  message: ""
23
- }), [A, E] = H(!1), [D, d] = H(
24
- G + te
25
- ), { state: i, dispatch: b } = w(U), u = {
23
+ }), [_, D] = N(!1), [L, d] = N(
24
+ M + ae
25
+ ), { state: i, dispatch: H } = w(U), u = {
26
26
  searchString: i.searchString || "",
27
27
  sortDirection: i.sortDirection || h.DESC,
28
- sortedCell: i.sortedCell || v
28
+ sortedCell: i.sortedCell || I
29
29
  }, {
30
- setChatId: R,
31
- setInitialMessages: _,
32
- dispatch: I
33
- } = w(re), { setInput: x } = ke(), [L, r] = y({
34
- key: p + ae,
30
+ setChatId: v,
31
+ setInitialMessages: p,
32
+ dispatch: g
33
+ } = w(re), { setInput: O } = ke(), [k, a] = C({
34
+ key: S + se,
35
35
  initialValue: h.DESC
36
- }), [B, j] = y({
37
- key: p + se,
36
+ }), [B, j] = C({
37
+ key: S + oe,
38
38
  initialValue: h.ASC
39
- }), [, Y] = y({
40
- key: p + oe,
41
- initialValue: v
42
- }), { mutateAsync: $ } = ne({ getAccessToken: s }), { mutateAsync: q } = ie({
39
+ }), [, Y] = C({
40
+ key: S + ne,
41
+ initialValue: I
42
+ }), [$] = C({
43
+ key: S + ie,
44
+ initialValue: ""
45
+ }), { mutateAsync: q } = ce({ getAccessToken: s }), { mutateAsync: K } = le({
43
46
  getAccessToken: s
44
- }), K = (e) => {
47
+ }), Q = (e) => {
45
48
  const o = i.sortedCell === e;
46
- let a, k;
49
+ let r, R;
47
50
  switch (e) {
48
- case v:
49
- k = r, a = o ? i.sortDirection : L;
51
+ case I:
52
+ R = a, r = o ? i.sortDirection : k;
50
53
  break;
51
- case ue:
52
- k = j, a = o ? i.sortDirection : B;
54
+ case Se:
55
+ R = j, r = o ? i.sortDirection : B;
53
56
  break;
54
57
  default:
55
- k = r, a = o ? i.sortDirection : L;
58
+ R = a, r = o ? i.sortDirection : k;
56
59
  break;
57
60
  }
58
- const z = a === h.ASC ? h.DESC : h.ASC;
59
- k(z), Y(e), b({
60
- type: me,
61
+ const G = r === h.ASC ? h.DESC : h.ASC;
62
+ R(G), Y(e), H({
63
+ type: Ce,
61
64
  payload: {
62
65
  sortedCell: e,
63
- sortDirection: z
66
+ sortDirection: G
64
67
  }
65
68
  });
66
- }, Q = async () => {
69
+ }, W = async () => {
67
70
  const e = n.current;
68
71
  try {
69
- await $({
72
+ await q({
70
73
  userId: l?.username || "",
71
74
  id: e.id
72
- }), S(""), await be(le, {
75
+ }), y(""), await be(he, {
73
76
  autoClose: 2e3,
74
77
  containerId: "history-table"
75
78
  });
76
79
  } catch {
77
80
  }
78
- }, W = async (e) => {
81
+ }, X = async (e) => {
79
82
  try {
80
- const o = await s(), a = await de({
83
+ const o = await s(), r = await me({
81
84
  accessToken: o,
82
- type: he.GET_CHAT,
85
+ type: ue.GET_CHAT,
83
86
  params: {
84
87
  id: e.id
85
88
  }
86
89
  });
87
- I({
88
- type: Re,
90
+ g({
91
+ type: we,
89
92
  payload: {
90
93
  streaming: !1,
91
94
  loading: !1,
92
95
  restoring: !0,
93
- restoredModel: a.data?.model || "",
94
- restoredUsage: a.data?.tokenUsage || 0
96
+ restoredModel: r.data?.model || "",
97
+ restoredUsage: r.data?.tokenUsage || 0
95
98
  }
96
- }), x(""), R(e.id), _(a.data.messages), C(!1);
99
+ }), O(""), v(e.id), p(r.data.messages), f(!1);
97
100
  } catch {
98
101
  }
99
- }, X = (e) => {
102
+ }, J = (e) => {
100
103
  n.current = {
101
104
  id: e.id,
102
105
  timestamp: e.timestamp,
103
106
  message: e.messages.length > 0 ? e.messages[0]?.content : ""
104
- }, E(!A);
105
- }, J = async (e) => {
107
+ }, D(!_), $ === e.id && (v(He()), p([]), O(""), g({
108
+ type: xe,
109
+ payload: {
110
+ privateChat: !1,
111
+ reasoning: !1
112
+ }
113
+ }), g({
114
+ type: Ne,
115
+ payload: {
116
+ attachments: 0
117
+ }
118
+ }));
119
+ }, Z = async (e) => {
106
120
  try {
107
- await q({
121
+ await K({
108
122
  userId: l?.username || "",
109
123
  id: e.id
110
- }), S("");
124
+ }), y("");
111
125
  } catch {
112
126
  }
113
- }, F = P((e) => {
114
- e[0].isIntersecting && d((a) => a + G);
115
- }, []), Z = P(
127
+ }, F = V((e) => {
128
+ e[0].isIntersecting && d((r) => r + M);
129
+ }, []), ee = V(
116
130
  (e) => {
117
- if (f.current && f.current.disconnect(), e) {
131
+ if (T.current && T.current.disconnect(), e) {
118
132
  const o = {
119
133
  rootMargin: "20px"
120
- }, a = new IntersectionObserver(F, o);
121
- a.observe(e), f.current = a;
134
+ }, r = new IntersectionObserver(F, o);
135
+ r.observe(e), T.current = r;
122
136
  }
123
137
  },
124
138
  [F]
125
139
  );
126
- return /* @__PURE__ */ c(ee, { children: [
140
+ return /* @__PURE__ */ c(te, { children: [
127
141
  /* @__PURE__ */ c(
128
- ve,
142
+ Re,
129
143
  {
130
- showConfirmation: A,
131
- setShowConfirmation: E,
132
- action: Q,
144
+ showConfirmation: _,
145
+ setShowConfirmation: D,
146
+ action: W,
133
147
  customStrings: {
134
148
  confirmAction: "Delete",
135
149
  cancelAction: "Cancel",
@@ -152,89 +166,89 @@ const ze = we(
152
166
  ]
153
167
  }
154
168
  ),
155
- /* @__PURE__ */ t("div", { className: ce, children: /* @__PURE__ */ t(Oe, { containerId: "history-table" }) }),
156
- /* @__PURE__ */ t(He, { fallback: /* @__PURE__ */ t("div", {}), children: /* @__PURE__ */ t(
157
- ze,
169
+ /* @__PURE__ */ t("div", { className: de, children: /* @__PURE__ */ t(Ie, { containerId: "history-table" }) }),
170
+ /* @__PURE__ */ t(ze, { fallback: /* @__PURE__ */ t("div", {}), children: /* @__PURE__ */ t(
171
+ Ue,
158
172
  {
159
173
  filteredHistory: m,
160
174
  historyState: u,
161
- lastEntryToLoad: D,
162
- onClickSort: K,
163
- onClickRestore: W,
164
- onClickDelete: X,
165
- onClickFavorite: J,
166
- infinityScrollMarkerRef: Z,
167
- isLoading: g,
168
- totalHistoryCount: O,
169
- isFiltered: T
175
+ lastEntryToLoad: L,
176
+ onClickSort: Q,
177
+ onClickRestore: X,
178
+ onClickDelete: J,
179
+ onClickFavorite: Z,
180
+ infinityScrollMarkerRef: ee,
181
+ isLoading: A,
182
+ totalHistoryCount: b,
183
+ isFiltered: E
170
184
  }
171
185
  ) })
172
186
  ] });
173
- }, je = ({
187
+ }, Qe = ({
174
188
  open: m,
175
- onOpenChange: C
189
+ onOpenChange: f
176
190
  }) => {
177
- const { getAccessToken: S, user: g } = V(), [O, T] = H([]), l = N(null), { state: s, dispatch: f } = w(U), {
191
+ const { getAccessToken: y, user: A } = P(), [b, E] = N([]), l = x(null), { state: s, dispatch: T } = w(U), {
178
192
  data: n,
179
- refetch: A,
180
- isLoading: E,
181
- isError: D
182
- } = Ce({
193
+ refetch: _,
194
+ isLoading: D,
195
+ isError: L
196
+ } = fe({
183
197
  enabled: m,
184
- user: g?.username || "",
198
+ user: A?.username || "",
185
199
  searchString: s.searchString || "",
186
200
  sortDirection: s.sortDirection || h.DESC,
187
- sortedCell: s.sortedCell || v,
188
- getAccessToken: S
189
- }), { data: d } = Se({
190
- user: g?.username,
191
- getAccessToken: S
192
- }), i = d && d.totalChats ? d.totalChats - d.privateChats - d.deletedChats : 0, [, b] = y({
193
- key: p + fe,
201
+ sortedCell: s.sortedCell || I,
202
+ getAccessToken: y
203
+ }), { data: d } = ye({
204
+ user: A?.username,
205
+ getAccessToken: y
206
+ }), i = d && d.totalChats ? d.totalChats - d.privateChats - d.deletedChats : 0, [, H] = C({
207
+ key: S + Te,
194
208
  initialValue: s.searchString
195
- }), [u, R] = y({
196
- key: p + ye,
209
+ }), [u, v] = C({
210
+ key: S + pe,
197
211
  initialValue: !1
198
212
  });
199
- Fe(() => {
200
- n && T(
201
- u ? n.filter((r) => r.favoriteChat === !0) : n
213
+ Pe(() => {
214
+ n && E(
215
+ u ? n.filter((a) => a.favoriteChat === !0) : n
202
216
  );
203
217
  }, [n, u]);
204
- const _ = async (r) => {
205
- b(r), f({
206
- type: Le,
207
- payload: { searchString: r }
218
+ const p = async (a) => {
219
+ H(a), T({
220
+ type: Oe,
221
+ payload: { searchString: a }
208
222
  });
209
- }, I = Ae((r) => {
210
- _(r.target.value.trim());
211
- }, 500), x = async (r) => {
212
- r.preventDefault();
213
- }, L = (r) => {
214
- R(r);
223
+ }, g = _e((a) => {
224
+ p(a.target.value.trim());
225
+ }, 500), O = async (a) => {
226
+ a.preventDefault();
227
+ }, k = (a) => {
228
+ v(a);
215
229
  };
216
230
  return /* @__PURE__ */ c(
217
- Ie,
231
+ Fe,
218
232
  {
219
233
  open: m,
220
- onOpenChange: C,
221
- title: pe,
234
+ onOpenChange: f,
235
+ title: ge,
222
236
  animation: !0,
223
237
  animationType: "fade",
224
238
  footer: /* @__PURE__ */ t(
225
- De,
239
+ Le,
226
240
  {
227
241
  columnGap: 2,
228
242
  alignHorizontal: "flex-end",
229
243
  className: "pb-8 sm:pb-0",
230
- children: /* @__PURE__ */ t(_e, { children: /* @__PURE__ */ t(
231
- M,
244
+ children: /* @__PURE__ */ t(ve, { children: /* @__PURE__ */ t(
245
+ z,
232
246
  {
233
247
  mode: "dark",
234
248
  variant: "secondary",
235
249
  focusMode: "light",
236
250
  noBorder: !0,
237
- onClick: () => C(!1),
251
+ onClick: () => f(!1),
238
252
  children: "Dismiss"
239
253
  }
240
254
  ) })
@@ -242,15 +256,15 @@ const ze = we(
242
256
  ),
243
257
  children: [
244
258
  /* @__PURE__ */ t(
245
- ge,
259
+ Ae,
246
260
  {
247
261
  header: s.searchString ? "Filters applied" : "Filters",
248
262
  className: "prose-dark dark:prose-lighter mb-4",
249
263
  noBorder: !0,
250
264
  compact: !0,
251
- children: /* @__PURE__ */ c("form", { autoComplete: "off", onSubmit: x, children: [
265
+ children: /* @__PURE__ */ c("form", { autoComplete: "off", onSubmit: O, children: [
252
266
  /* @__PURE__ */ t(
253
- Te,
267
+ Ee,
254
268
  {
255
269
  placeholder: "Search",
256
270
  labelHidden: !0,
@@ -263,30 +277,30 @@ const ze = we(
263
277
  mode: "alt-system",
264
278
  name: "Search",
265
279
  label: "Search",
266
- onChange: I,
280
+ onChange: g,
267
281
  className: "my-2",
268
- rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Ee, { monotone: !0, size: "size-3" }) })
282
+ rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(De, { monotone: !0, size: "size-3" }) })
269
283
  }
270
284
  ),
271
285
  /* @__PURE__ */ c("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
272
286
  /* @__PURE__ */ t("div", { className: "order-1 sm:order-0", children: /* @__PURE__ */ t(
273
- xe,
287
+ Ge,
274
288
  {
275
289
  name: "favorites-only",
276
290
  checked: u,
277
- onChange: L,
291
+ onChange: k,
278
292
  label: "Show favorites only",
279
293
  narrow: !0,
280
294
  noBorder: !0
281
295
  }
282
296
  ) }),
283
297
  /* @__PURE__ */ t(
284
- M,
298
+ z,
285
299
  {
286
300
  size: "small",
287
301
  disabled: s.searchString === "",
288
302
  onClick: () => {
289
- _(""), l.current?.value && (l.current.value = "", l.current.focus());
303
+ p(""), l.current?.value && (l.current.value = "", l.current.focus());
290
304
  },
291
305
  children: "Reset Search"
292
306
  }
@@ -298,21 +312,21 @@ const ze = we(
298
312
  /* @__PURE__ */ c(
299
313
  "div",
300
314
  {
301
- className: Ne(
315
+ className: Me(
302
316
  "flex flex-col sm:flex-row",
303
317
  "max-h-[65vh]",
304
318
  "sm:max-h-[75vh]",
305
319
  "min-h-[60vh]"
306
320
  ),
307
321
  children: [
308
- D && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
309
- !D && /* @__PURE__ */ t(
310
- Ge,
322
+ L && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
323
+ !L && /* @__PURE__ */ t(
324
+ Be,
311
325
  {
312
- mutate: A,
313
- filteredHistory: O,
314
- onOpenChange: C,
315
- isLoading: E,
326
+ mutate: _,
327
+ filteredHistory: b,
328
+ onOpenChange: f,
329
+ isLoading: D,
316
330
  totalHistoryCount: i,
317
331
  isFiltered: !!(s.searchString || u)
318
332
  }
@@ -325,5 +339,5 @@ const ze = we(
325
339
  );
326
340
  };
327
341
  export {
328
- je as HistoryPanel
342
+ Qe as HistoryPanel
329
343
  };
@@ -1,6 +1,6 @@
1
1
  import { jsxs as l, Fragment as K, jsx as e } from "react/jsx-runtime";
2
- import { n as O, useUniqueId as W, useUserPreferences as Y, useServerCapabilities as $, H as V, setUserPlan as q, Card as d, renderDataAsList as J, CARDS as n, L as h, j$1 as i, Button as L, it as Q, isTauri as X, ButtonIcon as Z, IconPasskey as g, PROFILE_TITLE as ee } from "./index.Qu1dRpn4.js";
3
- import { preloadToast as ae, showSuccessToast as se, showErrorToast as ne, ConfirmationPanel as re, LazyToastContainerWrapper as le, Panel as te } from "./App.CmACPanI.js";
2
+ import { n as O, useUniqueId as W, useUserPreferences as Y, useServerCapabilities as $, H as V, setUserPlan as q, Card as d, renderDataAsList as J, CARDS as n, L as h, j$1 as i, Button as L, it as Q, isTauri as X, ButtonIcon as Z, IconPasskey as g, PROFILE_TITLE as ee } from "./index.DoR-38mQ.js";
3
+ import { preloadToast as ae, showSuccessToast as se, showErrorToast as ne, ConfirmationPanel as re, LazyToastContainerWrapper as le, Panel as te } from "./App.Cw4x07xc.js";
4
4
  import ie from "clsx";
5
5
  import { useState as m, useMemo as oe, useCallback as P } from "react";
6
6
  const ce = () => {
@@ -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, j as ie, useLocalStorage as de, LOCAL_STORAGE_OLED_MODE as $e, LOCAL_STORAGE_FULL_SCREEN as ze, e as ue, canEvaluateModels as He, Z as Ye, getCacheInfo as qe, isServiceWorkerEnabled as Ke, SETTINGS_TITLE as Qe, Card as E, CARDS as r, k as Ze, Button as v, PROMPTS_DESCRIPTION as Je, ee as me, L as Xe, j$1 as he, applyOledMode as Ee, APP_SET_OLED_MODE as fe, APP_SET_FULL_SCREEN as Se, getCurrentGeoLocation as et, graphQLRequest as pe, handleServiceWorkerToggle as tt, SERVICE_TYPES as ge } from "./index.Qu1dRpn4.js";
3
- import { useCapability as be, Panel as ot, Toggle as l } from "./App.CmACPanI.js";
4
- import { TextArea as Te } from "./index.VbKxTMW7.js";
2
+ import { n as je, useEntitlements as Ve, AppContext as Fe, useUserPreferences as We, j as ie, useLocalStorage as de, LOCAL_STORAGE_OLED_MODE as $e, LOCAL_STORAGE_FULL_SCREEN as ze, e as ue, canEvaluateModels as He, Z as Ye, getCacheInfo as qe, isServiceWorkerEnabled as Ke, SETTINGS_TITLE as Qe, Card as E, CARDS as r, k as Ze, Button as v, PROMPTS_DESCRIPTION as Je, ee as me, L as Xe, j$1 as he, applyOledMode as Ee, APP_SET_OLED_MODE as fe, APP_SET_FULL_SCREEN as Se, getCurrentGeoLocation as et, graphQLRequest as pe, handleServiceWorkerToggle as tt, SERVICE_TYPES as ge } from "./index.DoR-38mQ.js";
3
+ import { useCapability as be, Panel as ot, Toggle as l } from "./App.Cw4x07xc.js";
4
+ import { TextArea as Te } from "./index.Bfo9JTHh.js";
5
5
  import { useContext as at, useState as a, useMemo as st, useCallback as nt, useEffect as Ne } from "react";
6
6
  const ut = ({
7
7
  open: Ce,
@@ -1,13 +1,13 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { n as f, useUniqueId as v, useUserChatStats as _, useChatsUsage as z, USAGE_TITLE as B, Card as g, renderDataAsList as P, CARDS as a, L as p, j$1 as A, Button as i, pluralize as m } from "./index.Qu1dRpn4.js";
3
- import { Panel as j } from "./App.CmACPanI.js";
2
+ import { n as f, useUniqueId as v, useUserChatStats as _, useChatsUsage as z, USAGE_TITLE as B, Card as g, renderDataAsList as P, CARDS as a, L as p, j$1 as A, Button as i, pluralize as m } from "./index.DoR-38mQ.js";
3
+ import { Panel as j } from "./App.Cw4x07xc.js";
4
4
  import { useState as C, Suspense as H, lazy as K } from "react";
5
5
  const s = [0, 3, 6, 9], n = {
6
6
  TOKEN: "token",
7
7
  MODEL: "model"
8
8
  }, w = K(() => import(
9
9
  /* webpackChunkName: "LazyChart" */
10
- "./Chart.DtpkwjAQ.js"
10
+ "./Chart.Cnr0zcD_.js"
11
11
  )), R = ({
12
12
  open: k,
13
13
  onOpenChange: E