@versini/sassysaint 8.99.1 → 8.99.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/chunks/{AboutChangelog.D02zn0LK.js → AboutChangelog.u1NxfRZ6.js} +3 -3
  2. package/dist/chunks/{AboutEntry.D2cwQtD2.js → AboutEntry.2URxdMvt.js} +7 -7
  3. package/dist/chunks/{App.sQ3wU0lJ.js → App.9OTgQFE5.js} +1609 -1591
  4. package/dist/chunks/{Chart.CTun5qf8.js → Chart.CTX3yXAp.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.pngDgGic.js → ChatBubbleAssistant.DHiBvqvV.js} +793 -753
  6. package/dist/chunks/{ChatBubbleUser.Cfoux4eQ.js → ChatBubbleUser.BdygOc-M.js} +6 -6
  7. package/dist/chunks/{ChatHistoryTable.CDjRKyvZ.js → ChatHistoryTable.XuPzHnDG.js} +7 -7
  8. package/dist/chunks/{HistoryEntry.D0uaFad7.js → HistoryEntry.CVgA3SYH.js} +16 -16
  9. package/dist/chunks/{ProfileEntry.BEHLT1CZ.js → ProfileEntry.wwU14Mrk.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.DO6srgDU.js → SettingsEntry.CFneilrk.js} +16 -16
  11. package/dist/chunks/{UsageEntry.DC9zKsfT.js → UsageEntry.CgMVSr_T.js} +23 -23
  12. package/dist/chunks/{UserMemoriesPanel.-fv-1_am.js → UserMemoriesPanel.D9cKoAvT.js} +8 -8
  13. package/dist/chunks/{index.ZxP3Yv8a.js → index.BNtgmlzo.js} +70 -70
  14. package/dist/chunks/{index.Sv4RjGsQ.js → index.BgQcUSpD.js} +1 -1
  15. package/dist/chunks/{index.SRAmjHI8.js → index.CI7wfY6h.js} +2 -2
  16. package/dist/chunks/{index.B9GCA2Iv.js → index.CSpbJbbj.js} +1 -1
  17. package/dist/chunks/{index.B5i9jF9N.js → index.CbyVRgN9.js} +7 -7
  18. package/dist/chunks/{index.BsKtVCXE.js → index.CqZKR4eS.js} +4 -4
  19. package/dist/chunks/{index.BNW48OCM.js → index.DXbW0hgE.js} +1 -1
  20. package/dist/chunks/{index.CYfXOuUd.js → index.Dy3lHiSY.js} +4 -4
  21. package/dist/chunks/{index.DAZOAmkW.js → index.IgpP31Km.js} +3 -3
  22. package/dist/chunks/{useMarkdown.CK423j2p.js → useMarkdown.CnnQWkcw.js} +9 -9
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/dist/style.css +2 -2
  26. package/package.json +6 -6
@@ -1,16 +1,16 @@
1
1
  import { jsx as i, Fragment as I, jsxs as S } from "react/jsx-runtime";
2
- import { Button as h } from "./index.ZxP3Yv8a.js";
2
+ import { Button as h } from "./index.BNtgmlzo.js";
3
3
  import { useState as C, useMemo as m, isValidElement as T, useEffect as _ } from "react";
4
- import { AsyncBubble as b } from "./App.sQ3wU0lJ.js";
5
- import { useMarkdown as k } from "./useMarkdown.CK423j2p.js";
4
+ import { AsyncBubble as b } from "./App.9OTgQFE5.js";
5
+ import { useMarkdown as k } from "./useMarkdown.CnnQWkcw.js";
6
6
  /*!
7
- @versini/ui-truncate v6.0.1
7
+ @versini/ui-truncate v6.0.3
8
8
  © 2025 gizmette.com
9
9
  */
10
10
  try {
11
11
  window.__VERSINI_UI_TRUNCATE__ || (window.__VERSINI_UI_TRUNCATE__ = {
12
- version: "6.0.1",
13
- buildTime: "12/10/2025 08:24 AM EST",
12
+ version: "6.0.3",
13
+ buildTime: "12/12/2025 10:31 AM EST",
14
14
  homepage: "https://www.npmjs.com/package/@versini/ui-truncate",
15
15
  license: "MIT"
16
16
  });
@@ -1,17 +1,17 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import { IconCloseLight as P, y as S, v as M, INFINITE_SCROLL_THRESHOLD as U, CARDS as D, pluralize as k, ButtonIcon as C, IconRestore as z, IconStarInCircle as B, IconStarInCircleLight as $, IconDelete as Y, numberFormatter as j, isProbablyMobile as G } from "./index.ZxP3Yv8a.js";
2
+ import { IconCloseLight as P, y as S, v as M, INFINITE_SCROLL_THRESHOLD as U, CARDS as D, pluralize as k, ButtonIcon as C, IconRestore as z, IconStarInCircle as B, IconStarInCircleLight as $, IconDelete as Y, numberFormatter as j, isProbablyMobile as G } from "./index.BNtgmlzo.js";
3
3
  import { useState as K, Fragment as V } from "react";
4
4
  import i from "clsx";
5
- import { j as W, D as F, F as N, G as H, L as o, Y as A } from "./index.B5i9jF9N.js";
6
- import { ResponsiveTooltip as w } from "./App.sQ3wU0lJ.js";
5
+ import { j as W, D as F, F as N, G as H, L as o, Y as A } from "./index.CbyVRgN9.js";
6
+ import { ResponsiveTooltip as w } from "./App.9OTgQFE5.js";
7
7
  /*!
8
- @versini/ui-pill v5.2.2
8
+ @versini/ui-pill v5.2.3
9
9
  © 2025 gizmette.com
10
10
  */
11
11
  try {
12
12
  window.__VERSINI_UI_PILL__ || (window.__VERSINI_UI_PILL__ = {
13
- version: "5.2.2",
14
- buildTime: "12/10/2025 08:23 AM EST",
13
+ version: "5.2.3",
14
+ buildTime: "12/12/2025 10:30 AM EST",
15
15
  homepage: "https://www.npmjs.com/package/@versini/ui-pill",
16
16
  license: "MIT"
17
17
  });
@@ -177,7 +177,7 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
177
177
  {
178
178
  className: i(
179
179
  "dark:text-white",
180
- "max-w-[100px] sm:max-w-full text-xs sm:text-sm"
180
+ "max-w-25 sm:max-w-full text-xs sm:text-sm"
181
181
  ),
182
182
  style: {
183
183
  wordBreak: "break-word"
@@ -1,12 +1,12 @@
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 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.ZxP3Yv8a.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.sQ3wU0lJ.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 Oe, Button as ke, L as ve, j as Re, ACTION_SEARCH as be } from "./index.BNtgmlzo.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.9OTgQFE5.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.CDjRKyvZ.js"
9
+ "./ChatHistoryTable.XuPzHnDG.js"
10
10
  ).then((u) => ({ default: u.ChatHistoryTable }))
11
11
  ), Ye = ({
12
12
  filteredHistory: u,
@@ -23,13 +23,13 @@ const Ke = Be(
23
23
  message: ""
24
24
  }), [L, A] = M(!1), [H, S] = M(
25
25
  P + re
26
- ), { state: c, dispatch: D } = G(K), k = {
26
+ ), { state: c, dispatch: D } = G(K), O = {
27
27
  searchString: c.searchString || "",
28
28
  sortDirection: c.sortDirection || d.DESC,
29
29
  sortedCell: c.sortedCell || x
30
30
  }, {
31
31
  setChatId: l,
32
- setInitialMessages: O,
32
+ setInitialMessages: k,
33
33
  dispatch: f
34
34
  } = G(se), { setInput: v } = Ie(), [R, b] = h({
35
35
  key: m + oe,
@@ -97,7 +97,7 @@ const Ke = Be(
97
97
  restoredModel: s.data?.model || "",
98
98
  restoredUsage: s.data?.tokenUsage || 0
99
99
  }
100
- }), v(""), l(e.id), O(s.data.messages), y(!1);
100
+ }), v(""), l(e.id), k(s.data.messages), y(!1);
101
101
  } catch {
102
102
  }
103
103
  }, Z = (e) => {
@@ -105,7 +105,7 @@ const Ke = Be(
105
105
  id: e.id,
106
106
  timestamp: e.timestamp,
107
107
  message: e.summary
108
- }, A(!L), W === e.id && (l(Ne()), O([]), v(""), f({
108
+ }, A(!L), W === e.id && (l(Ne()), k([]), v(""), f({
109
109
  type: Fe,
110
110
  payload: {
111
111
  privateChat: !1,
@@ -172,7 +172,7 @@ const Ke = Be(
172
172
  Ke,
173
173
  {
174
174
  filteredHistory: u,
175
- historyState: k,
175
+ historyState: O,
176
176
  lastEntryToLoad: H,
177
177
  onClickSort: X,
178
178
  onClickRestore: J,
@@ -203,7 +203,7 @@ const Ke = Be(
203
203
  data: S,
204
204
  refetch: c,
205
205
  isLoading: D,
206
- isError: k
206
+ isError: O
207
207
  } = ge({
208
208
  enabled: u,
209
209
  user: E?.username || "",
@@ -215,7 +215,7 @@ const Ke = Be(
215
215
  }), { data: l } = Ae({
216
216
  user: E?.username,
217
217
  getAccessToken: T
218
- }), O = l && l.totalChats ? l.totalChats - l.privateChats - l.deletedChats : 0;
218
+ }), k = l && l.totalChats ? l.totalChats - l.privateChats - l.deletedChats : 0;
219
219
  je(() => {
220
220
  S && _(
221
221
  n ? S.filter((a) => a.favoriteChat === !0) : S
@@ -278,7 +278,7 @@ const Ke = Be(
278
278
  label: "Search",
279
279
  onChange: v,
280
280
  className: "my-2",
281
- rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(ke, { monotone: !0, size: "size-3" }) })
281
+ rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Oe, { 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: [
@@ -307,9 +307,9 @@ const Ke = Be(
307
307
  )
308
308
  ] }),
309
309
  /* @__PURE__ */ t(
310
- Oe,
310
+ ke,
311
311
  {
312
- mode: "dark",
312
+ mode: "light",
313
313
  size: "small",
314
314
  disabled: r.searchString === "",
315
315
  onClick: () => {
@@ -332,15 +332,15 @@ const Ke = Be(
332
332
  "min-h-[60vh]"
333
333
  ),
334
334
  children: [
335
- k && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
336
- !k && /* @__PURE__ */ t(
335
+ O && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
336
+ !O && /* @__PURE__ */ t(
337
337
  Ye,
338
338
  {
339
339
  mutate: c,
340
340
  filteredHistory: w,
341
341
  onOpenChange: y,
342
342
  isLoading: D,
343
- totalHistoryCount: O,
343
+ totalHistoryCount: k,
344
344
  isFiltered: !!(r.searchString || n),
345
345
  isSearchActive: !!r.searchString
346
346
  }
@@ -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.sQ3wU0lJ.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.ZxP3Yv8a.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.9OTgQFE5.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.BNtgmlzo.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.ZxP3Yv8a.js";
3
- import { useCapability as Te, Panel as ot, Toggle as l, CancelButton as st } from "./App.sQ3wU0lJ.js";
4
- import { TextArea as be } from "./index.CYfXOuUd.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.BNtgmlzo.js";
3
+ import { useCapability as Te, Panel as ot, Toggle as l, CancelButton as st } from "./App.9OTgQFE5.js";
4
+ import { TextArea as be } from "./index.Dy3lHiSY.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,
@@ -24,13 +24,13 @@ const mt = ({
24
24
  }), [u, we] = ie({
25
25
  key: ze,
26
26
  initialValue: !1
27
- }), [m, M] = s(!1), [p, k] = s(!1), [ae, ne] = s(de), Le = nt(() => He(w, R) ? Ye(w) : !1, [w, R]), De = (e) => {
27
+ }), [m, M] = s(!1), [p, _] = s(!1), [ae, ne] = s(de), Le = nt(() => He(w, R) ? Ye(w) : !1, [w, R]), De = (e) => {
28
28
  te(e);
29
29
  }, Me = (e) => {
30
30
  W(e);
31
- }, ke = (e) => {
32
- oe && z(e);
33
31
  }, _e = (e) => {
32
+ oe && z(e);
33
+ }, ke = (e) => {
34
34
  Y(e);
35
35
  }, Oe = (e) => {
36
36
  se && K(e);
@@ -39,7 +39,7 @@ const mt = ({
39
39
  }, Ae = (e) => {
40
40
  M(e);
41
41
  }, ve = (e) => {
42
- k(e);
42
+ _(e);
43
43
  }, Re = (e) => {
44
44
  ne(e ? me : de);
45
45
  }, Be = async (e) => {
@@ -105,11 +105,11 @@ const mt = ({
105
105
  m !== i && (M(i), fe(i), g({
106
106
  type: Ee,
107
107
  payload: { oledMode: i }
108
- })), p !== u && (k(u), g({
108
+ })), p !== u && (_(u), g({
109
109
  type: pe,
110
110
  payload: { fullScreen: u }
111
111
  })), B(), A(!1);
112
- }, _ = ({
112
+ }, k = ({
113
113
  enabled: e = !1,
114
114
  privateChat: a = !1,
115
115
  clipboardAccess: y = !1,
@@ -147,7 +147,7 @@ const mt = ({
147
147
  return;
148
148
  o.instructions && j(o.instructions), o.location && b(o.location), o.tags && G({ prompts: o.tags }), o.sendOnEnter !== void 0 && W(o.sendOnEnter), o.useMemory !== void 0 && z(o.useMemory), o.showDetails !== void 0 && te(o.showDetails), o.showReasoningButton !== void 0 && K(o.showReasoningButton), o.useNestedModelSelection !== void 0 && Q(o.useNestedModelSelection), o.themeMode !== void 0 && ne(o.themeMode);
149
149
  const e = Ke();
150
- H(e), Y(e), M(i), k(u);
150
+ H(e), Y(e), M(i), _(u);
151
151
  }, [o, i, u]), Ne(() => {
152
152
  N ? le() : J(null);
153
153
  }, [N, le]), ye ? /* @__PURE__ */ n(
@@ -170,7 +170,7 @@ const mt = ({
170
170
  /* @__PURE__ */ t(he, { children: /* @__PURE__ */ t(
171
171
  ue,
172
172
  {
173
- mode: "dark",
173
+ mode: "light",
174
174
  focusMode: "light",
175
175
  onClick: async (e) => {
176
176
  A(!1), await Be(e);
@@ -227,7 +227,7 @@ const mt = ({
227
227
  label: "Use Memory",
228
228
  subLabel: r.SETTINGS_DETAILS.USE_MEMORY,
229
229
  name: "use-memory",
230
- onChange: ke,
230
+ onChange: _e,
231
231
  checked: $
232
232
  }
233
233
  )
@@ -329,7 +329,7 @@ const mt = ({
329
329
  label: "Enabled",
330
330
  name: e.slot.toString(),
331
331
  onChange: (a) => {
332
- _({
332
+ k({
333
333
  ...e,
334
334
  enabled: a
335
335
  });
@@ -348,7 +348,7 @@ const mt = ({
348
348
  label: "Private Chat",
349
349
  name: `private-${e.slot.toString()}`,
350
350
  onChange: (a) => {
351
- _({
351
+ k({
352
352
  ...e,
353
353
  privateChat: a
354
354
  });
@@ -367,7 +367,7 @@ const mt = ({
367
367
  label: "Use Clipboard",
368
368
  name: `clipboard-${e.slot.toString()}`,
369
369
  onChange: (a) => {
370
- _({
370
+ k({
371
371
  ...e,
372
372
  clipboardAccess: a
373
373
  });
@@ -469,7 +469,7 @@ const mt = ({
469
469
  label: "Assets Caching",
470
470
  subLabel: r.SETTINGS_ADVANCED.CACHE_DESCRIPTION,
471
471
  name: "enable-service-worker",
472
- onChange: _e,
472
+ onChange: ke,
473
473
  checked: C
474
474
  }
475
475
  ),
@@ -1,7 +1,7 @@
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.ZxP3Yv8a.js";
3
- import { Panel as ie, Menu as b, MenuGroupLabel as oe, MenuItem as x, CancelButton as ce } from "./App.sQ3wU0lJ.js";
4
- import { useState as G, Suspense as Te, lazy as de } from "react";
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 p, 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.BNtgmlzo.js";
3
+ import { Panel as ie, Menu as b, MenuGroupLabel as oe, MenuItem as G, CancelButton as ce } from "./App.9OTgQFE5.js";
4
+ import { useState as U, Suspense as Te, lazy as de } from "react";
5
5
  const a = [0, 3, 6, 9], s = {
6
6
  TOKEN: "token",
7
7
  MODEL: "model"
@@ -14,16 +14,16 @@ const a = [0, 3, 6, 9], s = {
14
14
  ], ue = de(
15
15
  () => import(
16
16
  /* webpackChunkName: "chart-highcharts" */
17
- "./Chart.CTun5qf8.js"
17
+ "./Chart.CTX3yXAp.js"
18
18
  )
19
19
  ), Oe = ({
20
- open: U,
20
+ open: v,
21
21
  onOpenChange: R
22
22
  }) => {
23
- const { getAccessToken: L, user: p } = X(), v = Z(), { data: i, isSuccess: F } = J({
24
- user: p?.username,
23
+ const { getAccessToken: L, user: f } = X(), x = Z(), { data: i, isSuccess: F } = J({
24
+ user: f?.username,
25
25
  getAccessToken: L
26
- }), f = Math.floor((/* @__PURE__ */ new Date()).getMonth() / 3) * 3, [O, m] = G(f), [o, z] = M({
26
+ }), z = Math.floor((/* @__PURE__ */ new Date()).getMonth() / 3) * 3, [O, m] = U(z), [o, Y] = M({
27
27
  key: N + Q,
28
28
  initialValue: s.MODEL
29
29
  }), [n, u] = M({
@@ -32,10 +32,10 @@ const a = [0, 3, 6, 9], s = {
32
32
  }), [l, S] = M({
33
33
  key: N + ee,
34
34
  initialValue: null
35
- }), [B, V] = G(
35
+ }), [B, V] = U(
36
36
  (/* @__PURE__ */ new Date()).getFullYear()
37
37
  ), { data: I, isSuccess: y } = te({
38
- user: p?.username,
38
+ user: f?.username,
39
39
  getAccessToken: L,
40
40
  timeRange: n,
41
41
  month: n === e.SPECIFIC_MONTH && l !== null ? String(l) : void 0,
@@ -74,14 +74,14 @@ const a = [0, 3, 6, 9], s = {
74
74
  const C = (a.indexOf(O) - 1 + a.length) % a.length;
75
75
  m(a[C]);
76
76
  }, w = (r) => {
77
- u(r), r !== e.SPECIFIC_MONTH && S(null), (r === e.CURRENT_YEAR || r === e.LAST_YEAR) && m(f);
77
+ u(r), r !== e.SPECIFIC_MONTH && S(null), (r === e.CURRENT_YEAR || r === e.LAST_YEAR) && m(z);
78
78
  }, W = (r) => {
79
79
  S(r), V((/* @__PURE__ */ new Date()).getFullYear()), u(e.SPECIFIC_MONTH);
80
80
  }, q = () => n === e.SPECIFIC_MONTH && l !== null ? g[l] : k[n];
81
81
  return /* @__PURE__ */ T(
82
82
  ie,
83
83
  {
84
- open: U,
84
+ open: v,
85
85
  onOpenChange: R,
86
86
  title: ne,
87
87
  animation: !0,
@@ -98,10 +98,10 @@ const a = [0, 3, 6, 9], s = {
98
98
  ),
99
99
  children: [
100
100
  /* @__PURE__ */ t(
101
- Y,
101
+ p,
102
102
  {
103
103
  header: d.MAIN_STATISTICS.USAGE,
104
- className: "prose-dark dark:prose-lighter mb-4 min-h-[578px]",
104
+ className: "prose-dark dark:prose-lighter mb-4 min-h-144",
105
105
  noBorder: !0,
106
106
  children: y && I ? /* @__PURE__ */ T(Te, { fallback: /* @__PURE__ */ t("div", {}), children: [
107
107
  /* @__PURE__ */ t(h, { className: "mb-2", alignHorizontal: "center", children: /* @__PURE__ */ t(c, { children: /* @__PURE__ */ T(
@@ -123,7 +123,7 @@ const a = [0, 3, 6, 9], s = {
123
123
  children: [
124
124
  /* @__PURE__ */ t(oe, { children: "Date Range" }),
125
125
  Ee.map((r) => /* @__PURE__ */ t(
126
- x,
126
+ G,
127
127
  {
128
128
  label: k[r],
129
129
  selected: n === r,
@@ -132,7 +132,7 @@ const a = [0, 3, 6, 9], s = {
132
132
  r
133
133
  )),
134
134
  /* @__PURE__ */ t(b, { label: "Month", children: g.map((r, A) => /* @__PURE__ */ t(
135
- x,
135
+ G,
136
136
  {
137
137
  label: r,
138
138
  selected: n === e.SPECIFIC_MONTH && l === A,
@@ -147,22 +147,22 @@ const a = [0, 3, 6, 9], s = {
147
147
  /* @__PURE__ */ t(c, { children: /* @__PURE__ */ t(
148
148
  E,
149
149
  {
150
- onClick: () => z(s.MODEL),
150
+ onClick: () => Y(s.MODEL),
151
151
  labelRight: "Model Usage",
152
152
  noBorder: !0,
153
153
  size: "small",
154
- mode: o === s.MODEL ? "light" : "dark",
154
+ mode: o === s.MODEL ? "dark" : "light",
155
155
  children: o === s.MODEL ? /* @__PURE__ */ t(H, { size: "size-4" }) : /* @__PURE__ */ t(P, { size: "size-4" })
156
156
  }
157
157
  ) }),
158
158
  /* @__PURE__ */ t(c, { children: /* @__PURE__ */ t(
159
159
  E,
160
160
  {
161
- onClick: () => z(s.TOKEN),
161
+ onClick: () => Y(s.TOKEN),
162
162
  labelRight: "Token Usage",
163
163
  noBorder: !0,
164
164
  size: "small",
165
- mode: o === s.TOKEN ? "light" : "dark",
165
+ mode: o === s.TOKEN ? "dark" : "light",
166
166
  children: o === s.TOKEN ? /* @__PURE__ */ t(H, { size: "size-4" }) : /* @__PURE__ */ t(P, { size: "size-4" })
167
167
  }
168
168
  ) })
@@ -204,13 +204,13 @@ const a = [0, 3, 6, 9], s = {
204
204
  }
205
205
  ),
206
206
  /* @__PURE__ */ t(
207
- Y,
207
+ p,
208
208
  {
209
209
  header: d.MAIN_STATISTICS.TITLE,
210
- className: "prose-dark dark:prose-lighter min-h-[170px]",
210
+ className: "prose-dark dark:prose-lighter min-h-42",
211
211
  noBorder: !0,
212
212
  children: F ? ae(
213
- v,
213
+ x,
214
214
  {
215
215
  [D(d.MAIN_STATISTICS.TOTAL, i.totalChats)]: i.totalChats,
216
216
  [D(
@@ -1,10 +1,10 @@
1
1
  import { jsx as e, jsxs as r, Fragment as I } from "react/jsx-runtime";
2
- import { L as E, j as f, Button as P, n as Se, useLocalStorage as W, LOCAL_STORAGE_PREFIX as Z, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as Te, e$1 as l, LOCAL_STORAGE_SORT_MEMORY_COLUMN as ke, useUserMemories as ve, useExpiredMemories as De, useDeleteMemory as be, useDeleteAllActiveMemories as Ee, useDeleteAllExpiredMemories as Me, useUpdateMemory as Re, useRestoreMemory as Ie, ButtonIcon as L, IconEdit as Le, IconDelete as ee, IconRestore as Oe } from "./index.ZxP3Yv8a.js";
3
- import { Panel as se, Toggle as O, CancelButton as ae, ConfirmationPanel as te, ResponsiveTooltip as _ } from "./App.sQ3wU0lJ.js";
4
- import { j as re, D as ie, F as D, L as s, Y as z, G as ne, H as oe } from "./index.B5i9jF9N.js";
2
+ import { L as E, j as f, Button as P, n as Se, useLocalStorage as W, LOCAL_STORAGE_PREFIX as Z, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as Te, e$1 as l, LOCAL_STORAGE_SORT_MEMORY_COLUMN as ke, useUserMemories as ve, useExpiredMemories as De, useDeleteMemory as be, useDeleteAllActiveMemories as Ee, useDeleteAllExpiredMemories as Me, useUpdateMemory as Re, useRestoreMemory as Ie, ButtonIcon as L, IconEdit as Le, IconDelete as ee, IconRestore as Oe } from "./index.BNtgmlzo.js";
3
+ import { Panel as se, Toggle as O, CancelButton as ae, ConfirmationPanel as te, ResponsiveTooltip as _ } from "./App.9OTgQFE5.js";
4
+ import { j as re, D as ie, F as D, L as s, Y as z, G as ne, H as oe } from "./index.CbyVRgN9.js";
5
5
  import A from "clsx";
6
6
  import { useState as y, useEffect as _e, useRef as le } from "react";
7
- import { TextArea as ze } from "./index.CYfXOuUd.js";
7
+ import { TextArea as ze } from "./index.Dy3lHiSY.js";
8
8
  const Pe = ({
9
9
  open: C,
10
10
  onOpenChange: b,
@@ -336,7 +336,7 @@ const Pe = ({
336
336
  P,
337
337
  {
338
338
  focusMode: "light",
339
- mode: m === "active" ? "dark" : "light",
339
+ mode: m === "active" ? "light" : "dark",
340
340
  size: "small",
341
341
  noBorder: !0,
342
342
  onClick: () => p("active"),
@@ -347,7 +347,7 @@ const Pe = ({
347
347
  P,
348
348
  {
349
349
  focusMode: "light",
350
- mode: m === "expired" ? "dark" : "light",
350
+ mode: m === "expired" ? "light" : "dark",
351
351
  size: "small",
352
352
  noBorder: !0,
353
353
  onClick: () => p("expired"),
@@ -434,7 +434,7 @@ const Pe = ({
434
434
  {
435
435
  className: A(
436
436
  "dark:text-white",
437
- "max-w-[100px] sm:max-w-[400px]",
437
+ "max-w-25 sm:max-w-100",
438
438
  "text-xs sm:text-sm"
439
439
  ),
440
440
  style: {
@@ -605,7 +605,7 @@ const Pe = ({
605
605
  {
606
606
  className: A(
607
607
  "dark:text-white",
608
- "max-w-[100px] sm:max-w-[400px]",
608
+ "max-w-25 sm:max-w-100",
609
609
  "text-xs sm:text-sm"
610
610
  ),
611
611
  style: {