@versini/sassysaint 8.88.2 → 8.88.4

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.lOUzPdPg.js → AboutChangelog.C70uzJE0.js} +3 -3
  2. package/dist/chunks/{AboutEntry.nrx_9raD.js → AboutEntry.D6_2DnJx.js} +7 -7
  3. package/dist/chunks/{App.CpTC12YE.js → App.BMU8OU5B.js} +17 -17
  4. package/dist/chunks/{Chart.C83kRI-n.js → Chart.lqlkRb_T.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.CsDHg45T.js → ChatBubbleAssistant.WUyg2Ayh.js} +10 -10
  6. package/dist/chunks/{ChatBubbleUser.DHKD4pkj.js → ChatBubbleUser.VtH2_HiI.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.BNe7yTzw.js → ChatHistoryTable.B4UmEZTZ.js} +10 -10
  8. package/dist/chunks/{HistoryEntry.Dq1k5JyM.js → HistoryEntry.DLzDV1P9.js} +3 -3
  9. package/dist/chunks/{ProfileEntry.C-QU_Gmg.js → ProfileEntry.DkFl0RbP.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.CKR7KYh4.js → SettingsEntry.UQLmr34m.js} +9 -9
  11. package/dist/chunks/{UsageEntry.2XrCof7k.js → UsageEntry.DTvYndRW.js} +3 -3
  12. package/dist/chunks/{UserMemoriesPanel.BokhjC7d.js → UserMemoriesPanel.CY1Uc1F_.js} +4 -4
  13. package/dist/chunks/{index.DpuJMZKy.js → index.Ah3KY46t.js} +1 -1
  14. package/dist/chunks/{index.ndUyIlvL.js → index.B2qymrSO.js} +1 -1
  15. package/dist/chunks/{index.DigULJFG.js → index.B8Y9S4VE.js} +1 -1
  16. package/dist/chunks/{index.BqkQUJZh.js → index.BxVRyz3L.js} +3 -3
  17. package/dist/chunks/{index.DUHPpcnH.js → index.C8Srb_Lo.js} +2 -2
  18. package/dist/chunks/{index.BXksRYaH.js → index.C9guN2O6.js} +1 -1
  19. package/dist/chunks/{index.BHySgpXD.js → index.CNI41WFO.js} +93 -93
  20. package/dist/chunks/{index.BoEUK5Es.js → index.DY_wIjsU.js} +1 -1
  21. package/dist/chunks/{index.DPv4aRcG.js → index.r9xIZ_9z.js} +1 -1
  22. package/dist/chunks/{useMarkdown.l1hNG47z.js → useMarkdown.5FOb_7OM.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,8 +1,8 @@
1
1
  import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
- import { useInViewport as c } from "./index.BHySgpXD.js";
2
+ import { useInViewport as c } from "./index.CNI41WFO.js";
3
3
  import { useRef as n, useCallback as f, useLayoutEffect as u } from "react";
4
- import { ButtonScroll as p } from "./App.CpTC12YE.js";
5
- import { useMarkdown as d } from "./useMarkdown.l1hNG47z.js";
4
+ import { ButtonScroll as p } from "./App.BMU8OU5B.js";
5
+ import { useMarkdown as d } from "./useMarkdown.5FOb_7OM.js";
6
6
  const x = ({ content: o }) => {
7
7
  const [l, t] = d(), { ref: i, inViewport: a } = c(), e = n(null), m = f(() => {
8
8
  e.current && e.current.scrollIntoView({
@@ -1,15 +1,15 @@
1
1
  import { jsxs as b, Fragment as l, jsx as e } from "react/jsx-runtime";
2
- import { Panel as g } from "./App.CpTC12YE.js";
3
- import { useUniqueId as d, useServerCapabilities as A, useChangelogs as I, Card as t, renderDataAsList as c, CARDS as r, pluralize as B, isProbablyMobile as E, ABOUT_TITLE as S } from "./index.BHySgpXD.js";
2
+ import { Panel as A } from "./App.BMU8OU5B.js";
3
+ import { useUniqueId as d, useServerCapabilities as g, useChangelogs as I, Card as t, renderDataAsList as c, CARDS as r, pluralize as B, isProbablyMobile as E, ABOUT_TITLE as S } from "./index.CNI41WFO.js";
4
4
  import O from "clsx";
5
5
  import { Suspense as C, lazy as U } from "react";
6
6
  const L = U(
7
7
  () => import(
8
8
  /* webpackChunkName: "LazyAboutChangelog" */
9
- "./AboutChangelog.lOUzPdPg.js"
9
+ "./AboutChangelog.C70uzJE0.js"
10
10
  )
11
11
  ), N = () => {
12
- const s = d(), i = d(), { data: a, isSuccess: m } = A(), { data: T, isSuccess: h } = I(), u = a?.version || "", o = a?.models || [], p = a?.buildTime || "";
12
+ const s = d(), i = d(), { data: a, isSuccess: m } = g(), { data: T, isSuccess: h } = I(), u = a?.version || "", o = a?.models || [], p = a?.buildTime || "";
13
13
  return /* @__PURE__ */ b(l, { children: [
14
14
  /* @__PURE__ */ e(
15
15
  t,
@@ -18,8 +18,8 @@ const L = U(
18
18
  className: "prose-dark dark:prose-lighter mb-4",
19
19
  noBorder: !0,
20
20
  children: c(s, {
21
- [r.ABOUT.VERSION]: "8.88.2",
22
- [r.ABOUT.BUILD_TIMESTAMP]: "11/22/2025 01:44 PM EST"
21
+ [r.ABOUT.VERSION]: "8.88.4",
22
+ [r.ABOUT.BUILD_TIMESTAMP]: "11/23/2025 11:47 AM EST"
23
23
  })
24
24
  }
25
25
  ),
@@ -54,7 +54,7 @@ const L = U(
54
54
  open: s,
55
55
  onOpenChange: i
56
56
  }) => /* @__PURE__ */ e(
57
- g,
57
+ A,
58
58
  {
59
59
  open: s,
60
60
  onOpenChange: i,
@@ -1,5 +1,5 @@
1
1
  import { jsx as d, jsxs as x, Fragment as Ne } from "react/jsx-runtime";
2
- import { ACTION_SORT as sa, e$1 as gt, ACTION_SEARCH as aa, ACTION_RESET_PROMPT as lo, ACTION_TOGGLE_PROMPT as uo, useLocalStorage as xe, LOCAL_STORAGE_PREFIX as $e, LOCAL_STORAGE_CHAT_ID as po, n as ge, isDev as ia, isPWAMode as fo, isTauri as _t, useChat as ca, useClickOutside as la, useInterval as ua, useTheme as Ee, ButtonIcon as Te, IconAddLight as da, DEFAULT_ICON_ACTION_SIZE as Ae, ChatContext as Se, useUserPreferences as Be, useHotkeys as Ur, isProbablyiPhone as Ze, IconCloseLight as pa, IconEditLight as fa, serverUrl as ho, useEntitlements as jr, IconClose as mo, useHaptic as ha, L as Tr, j$1 as at, Button as on, LOCAL_STORAGE_PRIVATE_DISCLOSURE as ma, j as Gt, IconLockedLight as ga, IconUnlockedLight as va, IconSelected as ya, IconUnSelected as _a, IconNext as ba, PromptsContext as Fr, IconBookSparklesLight as wa, IconRewrite as Ia, IconProofread as Ea, IconMagic as Ta, LOCAL_STORAGE_REASONING_DISCLOSURE as Sa, IconLightBulbLight as ka, useSaveChat as Ca, IconDownloadLight as xa, TOAST_CHAT_SAVED as Aa, IconSendLight as Na, INPUT_PLACEHOLDER_TEXT_MORNING as Oa, INPUT_PLACEHOLDER_TEXT_TODAY as Pa, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Ra, INPUT_PLACEHOLDER_TEXT_EVENING as za, INPUT_PLACEHOLDER_TEXT_NIGHT as Ma, INPUT_PLACEHOLDER_TEXT_DEFAULT as go, PROMPT_EDITABLE_AREA_CLASSNAME as $a, PROMPT_CLASSNAME as Za, AppContext as kt, HistoryContext as vo, useChatsHistory as Da, useUniqueId as La, q as yo, ERROR_MESSAGE as Ua, o as bt, CLIPBOARD_PROMPT as sn, getHotkeyHandler as ja, Y as Fa, FOOTER_DISCLAIMERS as an, useViewportSize as Ba, useVisualViewportSize as Va, useResizeObserver as _o, isProbablyiPad as Ha, INPUT_BOTTOM_OFFSET_EXTRA as cn, INPUT_BOTTOM_OFFSET_IPHONE as Ga, INPUT_BOTTOM_OFFSET_IPAD as Ja, INPUT_BOTTOM_OFFSET as bo, APP_SET_FOOTER_HEIGHT as Wa, FOOTER_TOP as Sr, FOOTER_BOTTOM as vt, APP_SET_FOOTER_POSITION as ur, getLayoutPaddingClass as kr, canEvaluateModels as ln, X as Ya, IconOpenAI as qa, l as Xa, IconAnthropic as Ka, _ as Qa, IconGoogleGemini as ei, R as ti, z as ri, H as dr, setNewProvider as un, TOAST_PROVIDER_CHANGED as dn, useQueryClient as ni, LOG_OUT as pn, IconProfile as oi, IconSliders as si, IconHistory as ai, IconEditUser as ii, IconChart as ci, IconInfo as li, IconBack as ui, IconSettings as di, i as wo, O as fn, useInViewport as pi, useServerCapabilities as fi, getMessageContaintWrapperClass as hi, UI_FOOTER_BUFFER as Io, UI_BUTTON_SCROLL_BUFFER as mi, Logo as gi, isProbablyMobile as vi, UI_DEFAULT_MAIN_HEIGHT as hn, e as yi, appReducer as _i, applyOledMode as bi, APP_SET_OLED_MODE as wi, APP_SET_FULL_SCREEN as Ii, APP_SET_THEME_MODE as Ei, APP_SET_THEME_PALETTE as Ti, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Si, APP_CLASSNAME as ki, B as mn, F as Ci, LOCAL_STORAGE_SORT as xi, LOCAL_STORAGE_SEARCH as Ai, LOCAL_STORAGE_OLED_MODE as Ni, LOCAL_STORAGE_FULL_SCREEN as Oi, LOCAL_STORAGE_SORT_TIMESTAMP as Pi, LOCAL_STORAGE_SORT_TOKEN_USAGE as Ri, TOAST_CACHE_ENABLED as zi, TOAST_CACHE_DISABLED as Mi } from "./index.BHySgpXD.js";
2
+ import { ACTION_SORT as sa, e$1 as gt, ACTION_SEARCH as aa, ACTION_RESET_PROMPT as lo, ACTION_TOGGLE_PROMPT as uo, useLocalStorage as xe, LOCAL_STORAGE_PREFIX as $e, LOCAL_STORAGE_CHAT_ID as po, n as ge, isDev as ia, isPWAMode as fo, isTauri as _t, useChat as ca, useClickOutside as la, useInterval as ua, useTheme as Ee, ButtonIcon as Te, IconAddLight as da, DEFAULT_ICON_ACTION_SIZE as Ae, ChatContext as Se, useUserPreferences as Be, useHotkeys as Ur, isProbablyiPhone as Ze, IconCloseLight as pa, IconEditLight as fa, serverUrl as ho, useEntitlements as jr, IconClose as mo, useHaptic as ha, L as Tr, j$1 as at, Button as on, LOCAL_STORAGE_PRIVATE_DISCLOSURE as ma, j as Gt, IconLockedLight as ga, IconUnlockedLight as va, IconSelected as ya, IconUnSelected as _a, IconNext as ba, PromptsContext as Fr, IconBookSparklesLight as wa, IconRewrite as Ia, IconProofread as Ea, IconMagic as Ta, LOCAL_STORAGE_REASONING_DISCLOSURE as Sa, IconLightBulbLight as ka, useSaveChat as Ca, IconDownloadLight as xa, TOAST_CHAT_SAVED as Aa, IconSendLight as Na, INPUT_PLACEHOLDER_TEXT_MORNING as Oa, INPUT_PLACEHOLDER_TEXT_TODAY as Pa, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Ra, INPUT_PLACEHOLDER_TEXT_EVENING as za, INPUT_PLACEHOLDER_TEXT_NIGHT as Ma, INPUT_PLACEHOLDER_TEXT_DEFAULT as go, PROMPT_EDITABLE_AREA_CLASSNAME as $a, PROMPT_CLASSNAME as Za, AppContext as kt, HistoryContext as vo, useChatsHistory as Da, useUniqueId as La, q as yo, ERROR_MESSAGE as Ua, o as bt, CLIPBOARD_PROMPT as sn, getHotkeyHandler as ja, Y as Fa, FOOTER_DISCLAIMERS as an, useViewportSize as Ba, useVisualViewportSize as Va, useResizeObserver as _o, isProbablyiPad as Ha, INPUT_BOTTOM_OFFSET_EXTRA as cn, INPUT_BOTTOM_OFFSET_IPHONE as Ga, INPUT_BOTTOM_OFFSET_IPAD as Ja, INPUT_BOTTOM_OFFSET as bo, APP_SET_FOOTER_HEIGHT as Wa, FOOTER_TOP as Sr, FOOTER_BOTTOM as vt, APP_SET_FOOTER_POSITION as ur, getLayoutPaddingClass as kr, canEvaluateModels as ln, X as Ya, IconOpenAI as qa, O as Xa, IconAnthropic as Ka, _ as Qa, IconGoogleGemini as ei, R as ti, z as ri, H as dr, setNewProvider as un, TOAST_PROVIDER_CHANGED as dn, useQueryClient as ni, LOG_OUT as pn, IconProfile as oi, IconSliders as si, IconHistory as ai, IconEditUser as ii, IconChart as ci, IconInfo as li, IconBack as ui, IconSettings as di, i as wo, l as fn, useInViewport as pi, useServerCapabilities as fi, getMessageContaintWrapperClass as hi, UI_FOOTER_BUFFER as Io, UI_BUTTON_SCROLL_BUFFER as mi, Logo as gi, isProbablyMobile as vi, UI_DEFAULT_MAIN_HEIGHT as hn, e as yi, appReducer as _i, applyOledMode as bi, APP_SET_OLED_MODE as wi, APP_SET_FULL_SCREEN as Ii, APP_SET_THEME_MODE as Ei, APP_SET_THEME_PALETTE as Ti, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Si, APP_CLASSNAME as ki, B as mn, w as Ci, LOCAL_STORAGE_SORT as xi, LOCAL_STORAGE_SEARCH as Ai, LOCAL_STORAGE_OLED_MODE as Ni, LOCAL_STORAGE_FULL_SCREEN as Oi, LOCAL_STORAGE_SORT_TIMESTAMP as Pi, LOCAL_STORAGE_SORT_TOKEN_USAGE as Ri, TOAST_CACHE_ENABLED as zi, TOAST_CACHE_DISABLED as Mi } from "./index.CNI41WFO.js";
3
3
  import Eo, { useRef as J, useCallback as Y, useSyncExternalStore as pr, useEffect as M, useState as z, createContext as Br, useContext as q, forwardRef as Qe, cloneElement as $i, useId as To, useLayoutEffect as Vr, useMemo as Ie, Suspense as Jt, lazy as Pe, useReducer as Rt } from "react";
4
4
  import R, { clsx as De } from "clsx";
5
5
  import { computePosition as Zi, offset as So, flip as ko, shift as Co, arrow as Di, useMergeRefs as Hr, FloatingPortal as Cr, FloatingOverlay as Li, FloatingFocusManager as xr, useFloating as xo, useClick as Ao, useDismiss as No, useRole as Oo, useInteractions as Po, useFloatingParentNodeId as Ro, FloatingTree as Ui, useListItem as zo, useFloatingTree as Mo, useFloatingNodeId as ji, autoUpdate as Fi, useHover as Bi, safePolygon as Vi, useListNavigation as Hi, useTypeahead as Gi, FloatingNode as gn, FloatingList as vn } from "@floating-ui/react";
@@ -4270,7 +4270,7 @@ var lf = Object.defineProperty, uf = (e, t) => {
4270
4270
  }
4271
4271
  };
4272
4272
  Ps = df;
4273
- var Jn = "5.0.97", Rs = me([
4273
+ var Jn = "5.0.100", Rs = me([
4274
4274
  k(),
4275
4275
  Kt(Uint8Array),
4276
4276
  Kt(ArrayBuffer),
@@ -5714,7 +5714,7 @@ const Ls = async () => (_r || (_r = import(
5714
5714
  "./index.790ujKXR.js"
5715
5715
  )), _r), Us = async () => (br || (br = import(
5716
5716
  /* webpackChunkName: "toast-utilities" */
5717
- "./index.BHySgpXD.js"
5717
+ "./index.CNI41WFO.js"
5718
5718
  ).then((e) => e.utilities)), br), Df = async () => {
5719
5719
  try {
5720
5720
  await Promise.all([Ls(), Us()]);
@@ -8325,38 +8325,38 @@ const Dh = [".png", ".jpg", ".jpeg", ".webp"], Lh = [".pdf", ".txt"], Uh = [
8325
8325
  }, am = Pe(
8326
8326
  () => import(
8327
8327
  /* webpackChunkName: "modal-chunk" */
8328
- "./ProfileEntry.C-QU_Gmg.js"
8328
+ "./ProfileEntry.DkFl0RbP.js"
8329
8329
  ).then((e) => ({
8330
8330
  default: e.Profile
8331
8331
  }))
8332
8332
  ), im = Pe(
8333
8333
  () => import(
8334
8334
  /* webpackChunkName: "modal-chunk" */
8335
- "./SettingsEntry.CKR7KYh4.js"
8335
+ "./SettingsEntry.UQLmr34m.js"
8336
8336
  ).then((e) => ({
8337
8337
  default: e.SettingsPanel
8338
8338
  }))
8339
8339
  ), cm = Pe(
8340
8340
  () => import(
8341
8341
  /* webpackChunkName: "modal-chunk" */
8342
- "./HistoryEntry.Dq1k5JyM.js"
8342
+ "./HistoryEntry.DLzDV1P9.js"
8343
8343
  ).then((e) => ({
8344
8344
  default: e.HistoryPanel
8345
8345
  }))
8346
8346
  ), lm = Pe(
8347
8347
  () => import(
8348
8348
  /* webpackChunkName: "modal-chunk" */
8349
- "./AboutEntry.nrx_9raD.js"
8349
+ "./AboutEntry.D6_2DnJx.js"
8350
8350
  ).then((e) => ({ default: e.About }))
8351
8351
  ), um = Pe(
8352
8352
  () => import(
8353
8353
  /* webpackChunkName: "modal-chunk" */
8354
- "./UsageEntry.2XrCof7k.js"
8354
+ "./UsageEntry.DTvYndRW.js"
8355
8355
  ).then((e) => ({ default: e.Usage }))
8356
8356
  ), dm = Pe(
8357
8357
  () => import(
8358
8358
  /* webpackChunkName: "modal-chunk" */
8359
- "./UserMemoriesPanel.BokhjC7d.js"
8359
+ "./UserMemoriesPanel.CY1Uc1F_.js"
8360
8360
  ).then(
8361
8361
  (e) => ({ default: e.default })
8362
8362
  )
@@ -8406,23 +8406,23 @@ const Dh = [".png", ".jpg", ".jpeg", ".webp"], Lh = [".pdf", ".txt"], Uh = [
8406
8406
  f || Promise.all([
8407
8407
  import(
8408
8408
  /* webpackChunkName: "modal-chunk" */
8409
- "./ProfileEntry.C-QU_Gmg.js"
8409
+ "./ProfileEntry.DkFl0RbP.js"
8410
8410
  ),
8411
8411
  import(
8412
8412
  /* webpackChunkName: "modal-chunk" */
8413
- "./SettingsEntry.CKR7KYh4.js"
8413
+ "./SettingsEntry.UQLmr34m.js"
8414
8414
  ),
8415
8415
  import(
8416
8416
  /* webpackChunkName: "modal-chunk" */
8417
- "./HistoryEntry.Dq1k5JyM.js"
8417
+ "./HistoryEntry.DLzDV1P9.js"
8418
8418
  ),
8419
8419
  import(
8420
8420
  /* webpackChunkName: "modal-chunk" */
8421
- "./AboutEntry.nrx_9raD.js"
8421
+ "./AboutEntry.D6_2DnJx.js"
8422
8422
  ),
8423
8423
  import(
8424
8424
  /* webpackChunkName: "modal-chunk" */
8425
- "./UsageEntry.2XrCof7k.js"
8425
+ "./UsageEntry.DTvYndRW.js"
8426
8426
  )
8427
8427
  ]).finally(() => h(!0));
8428
8428
  }, [f]), m = Y(($) => {
@@ -8692,18 +8692,18 @@ const io = "av-spinner", Xs = ({ spinnerRef: e, mode: t = "system", type: r = "c
8692
8692
  ]
8693
8693
  });
8694
8694
  }, gm = Pe(
8695
- () => import("./index.ndUyIlvL.js").then((e) => ({ default: e.Bubble }))
8695
+ () => import("./index.B2qymrSO.js").then((e) => ({ default: e.Bubble }))
8696
8696
  ), tn = (e) => /* @__PURE__ */ d(Jt, { fallback: /* @__PURE__ */ d("span", { className: "inline-block" }), children: /* @__PURE__ */ d(gm, { ...e }) });
8697
8697
  tn.displayName = "AsyncBubble";
8698
8698
  const co = 1, vm = 150, ym = Pe(
8699
8699
  () => import(
8700
8700
  /* webpackChunkName: "LazyMessageAssistant" */
8701
- "./ChatBubbleAssistant.CsDHg45T.js"
8701
+ "./ChatBubbleAssistant.WUyg2Ayh.js"
8702
8702
  )
8703
8703
  ), _m = Pe(
8704
8704
  () => import(
8705
8705
  /* webpackChunkName: "LazyMessageUser" */
8706
- "./ChatBubbleUser.DHKD4pkj.js"
8706
+ "./ChatBubbleUser.VtH2_HiI.js"
8707
8707
  )
8708
8708
  ), bm = Eo.memo(
8709
8709
  ({
@@ -1,7 +1,7 @@
1
1
  import { jsx as Ap } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as ln } from "./App.CpTC12YE.js";
2
+ import { getDefaultExportFromCjs as ln } from "./App.BMU8OU5B.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.BHySgpXD.js";
4
+ import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.CNI41WFO.js";
5
5
  var ls = { exports: {} }, Ip = ls.exports, on;
6
6
  function Dp() {
7
7
  return on || (on = 1, (function(we, he) {
@@ -1,14 +1,14 @@
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.BHySgpXD.js";
3
- import { BUBBLE_FOOTER_EMPTY as D } from "./index.ndUyIlvL.js";
2
+ import { ChatContext as P, AppContext as R, n as y, useUserPreferences as L, convertCamelCaseToReadable as _, numberFormatter as v, pluralize as B, l as G } from "./index.CNI41WFO.js";
3
+ import { BUBBLE_FOOTER_EMPTY as D } from "./index.B2qymrSO.js";
4
4
  import U from "clsx";
5
- import j, { useState as M, useRef as E, useEffect as O, useContext as S } from "react";
6
- import { AsyncBubble as k } from "./App.CpTC12YE.js";
7
- import { useMarkdown as q } from "./useMarkdown.l1hNG47z.js";
5
+ import j, { useState as M, useRef as E, useEffect as F, useContext as S } from "react";
6
+ import { AsyncBubble as k } from "./App.BMU8OU5B.js";
7
+ import { useMarkdown as q } from "./useMarkdown.5FOb_7OM.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);
11
- return t !== e && (C(e), p(e.startsWith(t) ? a : 0)), O(() => {
11
+ return t !== e && (C(e), p(e.startsWith(t) ? a : 0)), F(() => {
12
12
  if (!n)
13
13
  return;
14
14
  const g = e.split(b).length, c = (o) => {
@@ -38,17 +38,17 @@ const f = {
38
38
  state: { streaming: C, restoredModel: r, tokenUsage: s }
39
39
  } = S(P), {
40
40
  state: { fullScreen: g }
41
- } = S(R), c = n?.model || r, o = s, [u, l] = q(), { user: h, getAccessToken: T } = y(), { data: F } = L({
41
+ } = S(R), c = n?.model || r, o = s, [u, l] = q(), { user: h, getAccessToken: T } = y(), { data: N } = L({
42
42
  user: h?.username,
43
43
  getAccessToken: T
44
- }), N = F?.showDetails || !1, A = U("prose-li:ps-3", {
44
+ }), O = N?.showDetails || !1, A = U("prose-li:ps-3", {
45
45
  "max-w-xs sm:max-w-3xl": !g
46
46
  });
47
47
  let m;
48
- return N && (m = {
48
+ return O && (m = {
49
49
  [f.MODEL]: c || null,
50
50
  [f.PLUGIN]: a ? _(a) : null
51
- }, o && (p ? m[f.USAGE] = `${v.format(o)} ${B("token", o)}` : m[f.USAGE] = D)), O(() => {
51
+ }, o && (p ? m[f.USAGE] = `${v.format(o)} ${B("token", o)}` : m[f.USAGE] = D)), F(() => {
52
52
  t && l(t);
53
53
  }, [t, l]), d === G ? /* @__PURE__ */ x(
54
54
  k,
@@ -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.BHySgpXD.js";
2
+ import { Button as C } from "./index.CNI41WFO.js";
3
3
  import { useState as _, useMemo as m, isValidElement as T, useEffect as b } from "react";
4
- import { AsyncBubble as w } from "./App.CpTC12YE.js";
5
- import { useMarkdown as x } from "./useMarkdown.l1hNG47z.js";
4
+ import { AsyncBubble as w } from "./App.BMU8OU5B.js";
5
+ import { useMarkdown as x } from "./useMarkdown.5FOb_7OM.js";
6
6
  /*!
7
7
  @versini/ui-truncate v5.2.1
8
8
  © 2025 gizmette.com
@@ -1,21 +1,21 @@
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.BHySgpXD.js";
3
- import { W as $, j as B, G as m, H as P, M as a, F as f } from "./index.DPv4aRcG.js";
4
- import { Tooltip as d } from "./App.CpTC12YE.js";
2
+ import { B as x, w 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.CNI41WFO.js";
3
+ import { W as B, j as P, G as m, H as $, M as a, F as f } from "./index.r9xIZ_9z.js";
4
+ import { Tooltip as d } from "./App.BMU8OU5B.js";
5
5
  import h from "clsx";
6
- import { Fragment as F } from "react";
6
+ import { Fragment as W } from "react";
7
7
  const s = {
8
8
  ROW: "row",
9
9
  TIMESTAMP: x,
10
10
  SUMMARY: "summary",
11
11
  TOKEN_USAGE: u,
12
12
  ACTIONS: "actions"
13
- }, W = [
13
+ }, Y = [
14
14
  s.ROW,
15
15
  s.TIMESTAMP,
16
16
  s.SUMMARY,
17
17
  s.ACTIONS
18
- ], Y = [
18
+ ], G = [
19
19
  s.ROW,
20
20
  s.SUMMARY,
21
21
  s.TIMESTAMP,
@@ -34,7 +34,7 @@ const s = {
34
34
  totalHistoryCount: b,
35
35
  isFiltered: R = !1
36
36
  }) => {
37
- const C = _() ? W : Y, w = (t) => {
37
+ const C = _() ? Y : G, w = (t) => {
38
38
  switch (t) {
39
39
  case s.ROW:
40
40
  return /* @__PURE__ */ e(a, { className: "sr-only", children: "Row" }, t);
@@ -197,12 +197,12 @@ const s = {
197
197
  return null;
198
198
  }
199
199
  };
200
- return /* @__PURE__ */ c($, { stickyHeader: !0, compact: !0, mode: "alt-system", caption: (() => {
200
+ return /* @__PURE__ */ c(B, { stickyHeader: !0, compact: !0, mode: "alt-system", caption: (() => {
201
201
  const t = n.length, r = b ?? t;
202
202
  return R && r > t ? `Showing ${M(`${t} chat`, t)} out of ${r}` : M(`${t} chat`, t);
203
203
  })(), children: [
204
- /* @__PURE__ */ e(B, { children: /* @__PURE__ */ e(m, { children: C.map((t) => w(t)) }) }),
205
- /* @__PURE__ */ e(P, { children: O && n.length === 0 ? /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : n.slice(0, p).map((t, r) => t?.messages?.length > 0 ? /* @__PURE__ */ c(F, { children: [
204
+ /* @__PURE__ */ e(P, { children: /* @__PURE__ */ e(m, { children: C.map((t) => w(t)) }) }),
205
+ /* @__PURE__ */ e($, { children: O && n.length === 0 ? /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : n.slice(0, p).map((t, r) => t?.messages?.length > 0 ? /* @__PURE__ */ c(W, { children: [
206
206
  r === p - v && /* @__PURE__ */ e("tr", { ref: A }),
207
207
  /* @__PURE__ */ e(m, { children: C.map(
208
208
  (l) => k(l, t, r)
@@ -1,12 +1,12 @@
1
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.BHySgpXD.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.CpTC12YE.js";
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, w 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.CNI41WFO.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.BMU8OU5B.js";
4
4
  import Me from "clsx";
5
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
6
  const Ue = Ve(
7
7
  () => import(
8
8
  /* webpackChunkName: "history-table" */
9
- "./ChatHistoryTable.BNe7yTzw.js"
9
+ "./ChatHistoryTable.B4UmEZTZ.js"
10
10
  ).then((m) => ({ default: m.ChatHistoryTable }))
11
11
  ), Be = ({
12
12
  filteredHistory: m,
@@ -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.BHySgpXD.js";
3
- import { preloadToast as ae, showSuccessToast as se, showErrorToast as ne, ConfirmationPanel as re, LazyToastContainerWrapper as le, Panel as te } from "./App.CpTC12YE.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.CNI41WFO.js";
3
+ import { preloadToast as ae, showSuccessToast as se, showErrorToast as ne, ConfirmationPanel as re, LazyToastContainerWrapper as le, Panel as te } from "./App.BMU8OU5B.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,13 +1,13 @@
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.BHySgpXD.js";
3
- import { useCapability as be, Panel as ot, Toggle as l } from "./App.CpTC12YE.js";
4
- import { TextArea as Te } from "./index.BoEUK5Es.js";
2
+ import { n as je, useEntitlements as Fe, AppContext as Ve, 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, F as Ze, Button as v, PROMPTS_DESCRIPTION as Je, et 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.CNI41WFO.js";
3
+ import { useCapability as be, Panel as ot, Toggle as l } from "./App.BMU8OU5B.js";
4
+ import { TextArea as Te } from "./index.DY_wIjsU.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,
8
8
  onOpenChange: A
9
9
  }) => {
10
- const { getAccessToken: I, user: R } = je(), { allowedModels: w, status: B } = Ve(), { dispatch: g } = at(Fe), {
10
+ const { getAccessToken: I, user: R } = je(), { allowedModels: w, status: B } = Fe(), { dispatch: g } = at(Ve), {
11
11
  data: o,
12
12
  isSuccess: ye,
13
13
  refetch: x
@@ -18,7 +18,7 @@ const ut = ({
18
18
  loadingLocation: !1
19
19
  }), [L, U] = a({
20
20
  prompts: []
21
- }), [j, V] = a(""), [F, T] = a(""), [W, $] = a(!1), [z, H] = a(!1), [N, Y] = a(!1), [C, q] = a(!1), [K, Q] = a(!1), [k, Z] = a(!1), [f, J] = a(null), [X, ee] = a(!1), [te, oe] = a(!1), ae = be(ie.TOOL.MEMORIES), se = be(ie.ADDON.REASONING), [i, Ie] = de({
21
+ }), [j, F] = a(""), [V, T] = a(""), [W, $] = a(!1), [z, H] = a(!1), [N, Y] = a(!1), [C, q] = a(!1), [K, Q] = a(!1), [k, Z] = a(!1), [f, J] = a(null), [X, ee] = a(!1), [te, oe] = a(!1), ae = be(ie.TOOL.MEMORIES), se = be(ie.ADDON.REASONING), [i, Ie] = de({
22
22
  key: $e,
23
23
  initialValue: !1
24
24
  }), [u, we] = de({
@@ -51,7 +51,7 @@ const ut = ({
51
51
  params: {
52
52
  user: R?.username,
53
53
  instructions: j,
54
- location: F,
54
+ location: V,
55
55
  provider: o?.provider,
56
56
  /**
57
57
  * When nested model selection is disabled, explicitly clear any stored
@@ -145,7 +145,7 @@ const ut = ({
145
145
  return Ne(() => {
146
146
  if (!o)
147
147
  return;
148
- o.instructions && V(o.instructions), o.location && T(o.location), o.tags && U({ prompts: o.tags }), o.sendOnEnter !== void 0 && $(o.sendOnEnter), o.useMemory !== void 0 && H(o.useMemory), o.showDetails !== void 0 && oe(o.showDetails), o.showReasoningButton !== void 0 && Q(o.showReasoningButton), o.useNestedModelSelection !== void 0 && Z(o.useNestedModelSelection), o.themeMode !== void 0 && re(o.themeMode);
148
+ o.instructions && F(o.instructions), o.location && T(o.location), o.tags && U({ prompts: o.tags }), o.sendOnEnter !== void 0 && $(o.sendOnEnter), o.useMemory !== void 0 && H(o.useMemory), o.showDetails !== void 0 && oe(o.showDetails), o.showReasoningButton !== void 0 && Q(o.showReasoningButton), o.useNestedModelSelection !== void 0 && Z(o.useNestedModelSelection), o.themeMode !== void 0 && re(o.themeMode);
149
149
  const e = Ke();
150
150
  Y(e), q(e), M(i), D(u);
151
151
  }, [o, i, u]), Ne(() => {
@@ -266,7 +266,7 @@ const ut = ({
266
266
  label: "Custom Instructions",
267
267
  value: j,
268
268
  onChange: (e) => {
269
- V(e.target.value);
269
+ F(e.target.value);
270
270
  },
271
271
  helperText: "Press ENTER to add a new line."
272
272
  }
@@ -288,7 +288,7 @@ const ut = ({
288
288
  mode: "alt-system",
289
289
  name: "location",
290
290
  label: "Location",
291
- value: F,
291
+ value: V,
292
292
  onChange: (e) => {
293
293
  T(e.target.value);
294
294
  },
@@ -1,13 +1,13 @@
1
1
  import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- import { n as L, useUniqueId as v, useUserChatStats as z, useChatsUsage as _, USAGE_TITLE as B, Card as A, CARDS as a, L as u, j$1 as h, Button as o, renderDataAsList as P, pluralize as T } from "./index.BHySgpXD.js";
3
- import { Panel as b } from "./App.CpTC12YE.js";
2
+ import { n as L, useUniqueId as v, useUserChatStats as z, useChatsUsage as _, USAGE_TITLE as B, Card as A, CARDS as a, L as u, j$1 as h, Button as o, renderDataAsList as P, pluralize as T } from "./index.CNI41WFO.js";
3
+ import { Panel as b } from "./App.BMU8OU5B.js";
4
4
  import { useState as C, Suspense as H, lazy as j } from "react";
5
5
  const s = [0, 3, 6, 9], n = {
6
6
  TOKEN: "token",
7
7
  MODEL: "model"
8
8
  }, G = j(() => import(
9
9
  /* webpackChunkName: "LazyChart" */
10
- "./Chart.C83kRI-n.js"
10
+ "./Chart.lqlkRb_T.js"
11
11
  )), R = ({
12
12
  open: E,
13
13
  onOpenChange: I
@@ -1,10 +1,10 @@
1
1
  import { jsx as e, jsxs as r, Fragment as L } from "react/jsx-runtime";
2
- import { L as E, j$1 as f, Button as b, n as ke, useLocalStorage as Q, LOCAL_STORAGE_PREFIX as Z, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as we, e$1 as l, LOCAL_STORAGE_SORT_MEMORY_COLUMN as Te, useUserMemories as Se, useExpiredMemories as ve, useDeleteMemory as De, useDeleteAllActiveMemories as be, useDeleteAllExpiredMemories as Me, useUpdateMemory as Ee, useRestoreMemory as Re, ButtonIcon as O, IconEdit as Ie, IconDelete as ee, IconRestore as Le } from "./index.BHySgpXD.js";
3
- import { Panel as se, Toggle as _, ConfirmationPanel as te, Tooltip as z } from "./App.CpTC12YE.js";
4
- import { W as re, j as ie, G as D, M as s, F as B, H as oe, D as ne } from "./index.DPv4aRcG.js";
2
+ import { L as E, j$1 as f, Button as b, n as ke, useLocalStorage as Q, LOCAL_STORAGE_PREFIX as Z, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as we, e$1 as l, LOCAL_STORAGE_SORT_MEMORY_COLUMN as Te, useUserMemories as Se, useExpiredMemories as ve, useDeleteMemory as De, useDeleteAllActiveMemories as be, useDeleteAllExpiredMemories as Me, useUpdateMemory as Ee, useRestoreMemory as Re, ButtonIcon as O, IconEdit as Ie, IconDelete as ee, IconRestore as Le } from "./index.CNI41WFO.js";
3
+ import { Panel as se, Toggle as _, ConfirmationPanel as te, Tooltip as z } from "./App.BMU8OU5B.js";
4
+ import { W as re, j as ie, G as D, M as s, F as B, H as oe, D as ne } from "./index.r9xIZ_9z.js";
5
5
  import A from "clsx";
6
6
  import { useState as y, useEffect as Oe, useRef as le } from "react";
7
- import { TextArea as _e } from "./index.BoEUK5Es.js";
7
+ import { TextArea as _e } from "./index.DY_wIjsU.js";
8
8
  const ze = ({
9
9
  open: C,
10
10
  onOpenChange: M,
@@ -1,4 +1,4 @@
1
- import { convert as E, convertElement as u } from "./useMarkdown.l1hNG47z.js";
1
+ import { convert as E, convertElement as u } from "./useMarkdown.5FOb_7OM.js";
2
2
  const f = (
3
3
  // Note: overloads like this are needed to support optional generics.
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { jsxs as h, jsx as l } from "react/jsx-runtime";
2
- import { ButtonIcon as E, IconCopied as C, IconCopy as I } from "./index.BHySgpXD.js";
2
+ import { ButtonIcon as E, IconCopied as C, IconCopy as I } from "./index.CNI41WFO.js";
3
3
  import { useState as N, useEffect as $ } from "react";
4
4
  import t from "clsx";
5
5
  /*!
@@ -1,4 +1,4 @@
1
- import { convert as se, visitParents as Me, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as W, visit as _e, toString as ce, EXIT as Oe, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as je, blankLine as Be, factorySpace as S, splice as q, resolveAll as We, markdownLineEnding as R, markdownSpace as T, combineExtensions as $e } from "./useMarkdown.l1hNG47z.js";
1
+ import { convert as se, visitParents as Me, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as W, visit as _e, toString as ce, EXIT as Oe, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as je, blankLine as Be, factorySpace as S, splice as q, resolveAll as We, markdownLineEnding as R, markdownSpace as T, combineExtensions as $e } from "./useMarkdown.5FOb_7OM.js";
2
2
  import { longestStreak as qe } from "./index.Cyw5OC0t.js";
3
3
  function ne(e, n) {
4
4
  const t = String(e);
@@ -1,6 +1,6 @@
1
- import { getDefaultExportFromCjs as kn } from "./App.CpTC12YE.js";
2
- import { visit as In } from "./useMarkdown.l1hNG47z.js";
3
- import { toText as Cn } from "./index.DpuJMZKy.js";
1
+ import { getDefaultExportFromCjs as kn } from "./App.BMU8OU5B.js";
2
+ import { visit as In } from "./useMarkdown.5FOb_7OM.js";
3
+ import { toText as Cn } from "./index.Ah3KY46t.js";
4
4
  function xn(e) {
5
5
  const t = e.regex, i = e.COMMENT("//", "$", { contains: [{ begin: /\\\n/ }] }), a = "decltype\\(auto\\)", r = "[a-zA-Z_]\\w*::", d = "(?!struct)(" + a + "|" + t.optional(r) + "[a-zA-Z_]\\w*" + t.optional("<[^<>]+>") + ")", c = {
6
6
  className: "type",
@@ -1,5 +1,5 @@
1
- import { find as Aa, parse as Ft, parse$1 as Ht, normalize as Pt, html as Ta, svg as Ba, visitParents as Na, SKIP as Da } from "./useMarkdown.l1hNG47z.js";
2
- import { toText as Ca } from "./index.DpuJMZKy.js";
1
+ import { find as Aa, parse as Ft, parse$1 as Ht, normalize as Pt, html as Ta, svg as Ba, visitParents as Na, SKIP as Da } from "./useMarkdown.5FOb_7OM.js";
2
+ import { toText as Ca } from "./index.Ah3KY46t.js";
3
3
  const Gt = /[#.]/g;
4
4
  function qa(r, e) {
5
5
  const t = r || "", a = {};
@@ -1,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.l1hNG47z.js";
1
+ import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.5FOb_7OM.js";
2
2
  import { longestStreak as q } from "./index.Cyw5OC0t.js";
3
3
  function b() {
4
4
  return {
@@ -1,6 +1,6 @@
1
1
  import { jsx as c, jsxs as E, Fragment as Fr } from "react/jsx-runtime";
2
2
  import * as Q from "react";
3
- import Z, { createContext as Bt, useReducer as Br, useCallback as M, useRef as F, useEffect as R, useSyncExternalStore as Kr, useContext as Ge, useState as Y, useMemo as He, useId as Zs, useLayoutEffect as st, Suspense as en, lazy as tn } from "react";
3
+ import Z, { createContext as Bt, useReducer as Br, useCallback as N, useRef as F, useEffect as R, useSyncExternalStore as Kr, useContext as Ge, useState as Y, useMemo as He, useId as Zs, useLayoutEffect as st, Suspense as en, lazy as tn } from "react";
4
4
  import m from "clsx";
5
5
  var Le = class {
6
6
  constructor() {
@@ -124,18 +124,18 @@ function Kt(e, t) {
124
124
  function Te(e) {
125
125
  return JSON.stringify(
126
126
  e,
127
- (t, r) => Mt(r) ? Object.keys(r).sort().reduce((s, n) => (s[n] = r[n], s), {}) : r
127
+ (t, r) => Nt(r) ? Object.keys(r).sort().reduce((s, n) => (s[n] = r[n], s), {}) : r
128
128
  );
129
129
  }
130
130
  function Fe(e, t) {
131
131
  return e === t ? !0 : typeof e != typeof t ? !1 : e && t && typeof e == "object" && typeof t == "object" ? Object.keys(t).every((r) => Fe(e[r], t[r])) : !1;
132
132
  }
133
133
  var on = Object.prototype.hasOwnProperty;
134
- function Nt(e, t) {
134
+ function Mt(e, t) {
135
135
  if (e === t)
136
136
  return e;
137
137
  const r = ir(e) && ir(t);
138
- if (!r && !(Mt(e) && Mt(t))) return t;
138
+ if (!r && !(Nt(e) && Nt(t))) return t;
139
139
  const n = (r ? e : Object.keys(e)).length, a = r ? t : Object.keys(t), i = a.length, o = r ? new Array(i) : {};
140
140
  let l = 0;
141
141
  for (let f = 0; f < i; f++) {
@@ -148,7 +148,7 @@ function Nt(e, t) {
148
148
  o[d] = u;
149
149
  continue;
150
150
  }
151
- const p = Nt(h, u);
151
+ const p = Mt(h, u);
152
152
  o[d] = p, p === h && l++;
153
153
  }
154
154
  return n === i && l === n ? e : o;
@@ -164,7 +164,7 @@ function nt(e, t) {
164
164
  function ir(e) {
165
165
  return Array.isArray(e) && e.length === Object.keys(e).length;
166
166
  }
167
- function Mt(e) {
167
+ function Nt(e) {
168
168
  if (!or(e))
169
169
  return !1;
170
170
  const t = e.constructor;
@@ -187,13 +187,13 @@ function xt(e, t, r) {
187
187
  if (r.structuralSharing !== !1) {
188
188
  if (process.env.NODE_ENV !== "production")
189
189
  try {
190
- return Nt(e, t);
190
+ return Mt(e, t);
191
191
  } catch (s) {
192
192
  throw console.error(
193
193
  `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${r.queryHash}]: ${s}`
194
194
  ), s;
195
195
  }
196
- return Nt(e, t);
196
+ return Mt(e, t);
197
197
  }
198
198
  return t;
199
199
  }
@@ -928,7 +928,7 @@ var gn = class extends Le {
928
928
  this.#a = I;
929
929
  }
930
930
  this.#a && (p = this.#a, u = this.#h, y = Date.now(), g = "error");
931
- const b = d.fetchStatus === "fetching", x = g === "pending", C = g === "error", J = x && b, P = u !== void 0, N = {
931
+ const b = d.fetchStatus === "fetching", x = g === "pending", C = g === "error", J = x && b, P = u !== void 0, M = {
932
932
  status: g,
933
933
  fetchStatus: d.fetchStatus,
934
934
  isPending: x,
@@ -958,9 +958,9 @@ var gn = class extends Le {
958
958
  };
959
959
  if (this.options.experimental_prefetchInRender) {
960
960
  const I = (O) => {
961
- N.status === "error" ? O.reject(N.error) : N.data !== void 0 && O.resolve(N.data);
961
+ M.status === "error" ? O.reject(M.error) : M.data !== void 0 && O.resolve(M.data);
962
962
  }, V = () => {
963
- const O = this.#o = N.promise = Lt();
963
+ const O = this.#o = M.promise = Lt();
964
964
  I(O);
965
965
  }, k = this.#o;
966
966
  switch (k.status) {
@@ -968,14 +968,14 @@ var gn = class extends Le {
968
968
  e.queryHash === r.queryHash && I(k);
969
969
  break;
970
970
  case "fulfilled":
971
- (N.status === "error" || N.data !== k.value) && V();
971
+ (M.status === "error" || M.data !== k.value) && V();
972
972
  break;
973
973
  case "rejected":
974
- (N.status !== "error" || N.error !== k.reason) && V();
974
+ (M.status !== "error" || M.error !== k.reason) && V();
975
975
  break;
976
976
  }
977
977
  }
978
- return N;
978
+ return M;
979
979
  }
980
980
  updateResult() {
981
981
  const e = this.#n, t = this.createResult(this.#t, this.options);
@@ -1807,9 +1807,9 @@ function On() {
1807
1807
  isReset: () => e
1808
1808
  };
1809
1809
  }
1810
- var kn = Q.createContext(On()), Pn = () => Q.useContext(kn), Nn = (e, t) => {
1810
+ var kn = Q.createContext(On()), Pn = () => Q.useContext(kn), Mn = (e, t) => {
1811
1811
  (e.suspense || e.throwOnError || e.experimental_prefetchInRender) && (t.isReset() || (e.retryOnMount = !1));
1812
- }, Mn = (e) => {
1812
+ }, Nn = (e) => {
1813
1813
  Q.useEffect(() => {
1814
1814
  e.clearReset();
1815
1815
  }, [e]);
@@ -1840,7 +1840,7 @@ function Un(e, t, r) {
1840
1840
  i
1841
1841
  ), process.env.NODE_ENV !== "production" && (i.queryFn || console.error(
1842
1842
  `[${i.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`
1843
- )), i._optimisticResults = s ? "isRestoring" : "optimistic", Ln(i), Nn(i, n), Mn(n);
1843
+ )), i._optimisticResults = s ? "isRestoring" : "optimistic", Ln(i), Mn(i, n), Nn(n);
1844
1844
  const o = !a.getQueryCache().get(i.queryHash), [l] = Q.useState(
1845
1845
  () => new t(
1846
1846
  a,
@@ -2408,17 +2408,17 @@ function la(e) {
2408
2408
  function ua(e) {
2409
2409
  return e.kty === "oct" && typeof e.k == "string";
2410
2410
  }
2411
- let Me;
2411
+ let Ne;
2412
2412
  const mr = async (e, t, r, s = !1) => {
2413
- Me ||= /* @__PURE__ */ new WeakMap();
2414
- let n = Me.get(e);
2413
+ Ne ||= /* @__PURE__ */ new WeakMap();
2414
+ let n = Ne.get(e);
2415
2415
  if (n?.[r])
2416
2416
  return n[r];
2417
2417
  const a = await na({ ...t, alg: r });
2418
- return s && Object.freeze(e), n ? n[r] = a : Me.set(e, { [r]: a }), a;
2418
+ return s && Object.freeze(e), n ? n[r] = a : Ne.set(e, { [r]: a }), a;
2419
2419
  }, da = (e, t) => {
2420
- Me ||= /* @__PURE__ */ new WeakMap();
2421
- let r = Me.get(e);
2420
+ Ne ||= /* @__PURE__ */ new WeakMap();
2421
+ let r = Ne.get(e);
2422
2422
  if (r?.[t])
2423
2423
  return r[t];
2424
2424
  const s = e.type === "public", n = !!s;
@@ -2511,7 +2511,7 @@ const mr = async (e, t, r, s = !1) => {
2511
2511
  }
2512
2512
  if (!a)
2513
2513
  throw new TypeError("given KeyObject instance cannot be used for this algorithm");
2514
- return r ? r[t] = a : Me.set(e, { [t]: a }), a;
2514
+ return r ? r[t] = a : Ne.set(e, { [t]: a }), a;
2515
2515
  }, ha = async (e, t) => {
2516
2516
  if (e instanceof Uint8Array || rs(e))
2517
2517
  return e;
@@ -2531,7 +2531,7 @@ const mr = async (e, t, r, s = !1) => {
2531
2531
  if (zt(e))
2532
2532
  return e.k ? Ue(e.k) : mr(e, e, t, !0);
2533
2533
  throw new Error("unreachable");
2534
- }, Ne = (e) => e?.[Symbol.toStringTag], Ut = (e, t, r) => {
2534
+ }, Me = (e) => e?.[Symbol.toStringTag], Ut = (e, t, r) => {
2535
2535
  if (t.use !== void 0) {
2536
2536
  let s;
2537
2537
  switch (r) {
@@ -2584,7 +2584,7 @@ const mr = async (e, t, r, s = !1) => {
2584
2584
  if (!ns(t))
2585
2585
  throw new TypeError(ts(e, t, "CryptoKey", "KeyObject", "JSON Web Key", "Uint8Array"));
2586
2586
  if (t.type !== "secret")
2587
- throw new TypeError(`${Ne(t)} instances for symmetric algorithms must be of type "secret"`);
2587
+ throw new TypeError(`${Me(t)} instances for symmetric algorithms must be of type "secret"`);
2588
2588
  }
2589
2589
  }, pa = (e, t, r) => {
2590
2590
  if (zt(t))
@@ -2603,20 +2603,20 @@ const mr = async (e, t, r, s = !1) => {
2603
2603
  if (!ns(t))
2604
2604
  throw new TypeError(ts(e, t, "CryptoKey", "KeyObject", "JSON Web Key"));
2605
2605
  if (t.type === "secret")
2606
- throw new TypeError(`${Ne(t)} instances for asymmetric algorithms must not be of type "secret"`);
2606
+ throw new TypeError(`${Me(t)} instances for asymmetric algorithms must not be of type "secret"`);
2607
2607
  if (t.type === "public")
2608
2608
  switch (r) {
2609
2609
  case "sign":
2610
- throw new TypeError(`${Ne(t)} instances for asymmetric algorithm signing must be of type "private"`);
2610
+ throw new TypeError(`${Me(t)} instances for asymmetric algorithm signing must be of type "private"`);
2611
2611
  case "decrypt":
2612
- throw new TypeError(`${Ne(t)} instances for asymmetric algorithm decryption must be of type "private"`);
2612
+ throw new TypeError(`${Me(t)} instances for asymmetric algorithm decryption must be of type "private"`);
2613
2613
  }
2614
2614
  if (t.type === "private")
2615
2615
  switch (r) {
2616
2616
  case "verify":
2617
- throw new TypeError(`${Ne(t)} instances for asymmetric algorithm verifying must be of type "public"`);
2617
+ throw new TypeError(`${Me(t)} instances for asymmetric algorithm verifying must be of type "public"`);
2618
2618
  case "encrypt":
2619
- throw new TypeError(`${Ne(t)} instances for asymmetric algorithm encryption must be of type "public"`);
2619
+ throw new TypeError(`${Me(t)} instances for asymmetric algorithm encryption must be of type "public"`);
2620
2620
  }
2621
2621
  }, ya = (e, t, r) => {
2622
2622
  e.startsWith("HS") || e === "dir" || e.startsWith("PBES2") || /^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e) || /^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e) ? fa(e, t, r) : pa(e, t, r);
@@ -2899,7 +2899,7 @@ function ka(e, t = 0) {
2899
2899
  }
2900
2900
  let wt;
2901
2901
  const Pa = new Uint8Array(16);
2902
- function Na() {
2902
+ function Ma() {
2903
2903
  if (!wt) {
2904
2904
  if (typeof crypto > "u" || !crypto.getRandomValues)
2905
2905
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
@@ -2907,12 +2907,12 @@ function Na() {
2907
2907
  }
2908
2908
  return wt(Pa);
2909
2909
  }
2910
- const Ma = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), wr = { randomUUID: Ma };
2910
+ const Na = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), wr = { randomUUID: Na };
2911
2911
  function Sr(e, t, r) {
2912
2912
  if (wr.randomUUID && !e)
2913
2913
  return wr.randomUUID();
2914
2914
  e = e || {};
2915
- const s = e.random ?? e.rng?.() ?? Na();
2915
+ const s = e.random ?? e.rng?.() ?? Ma();
2916
2916
  if (s.length < 16)
2917
2917
  throw new Error("Random bytes length must be >= 16");
2918
2918
  return s[6] = s[6] & 15 | 64, s[8] = s[8] & 63 | 128, ka(s);
@@ -3290,7 +3290,7 @@ function je({
3290
3290
  key: e,
3291
3291
  initialValue: t
3292
3292
  }) {
3293
- const r = Kr(Qa, () => Tr(e)), s = M(
3293
+ const r = Kr(Qa, () => Tr(e)), s = N(
3294
3294
  (i) => {
3295
3295
  try {
3296
3296
  const o = typeof i == "function" ? i(JSON.parse(r)) : i;
@@ -3300,9 +3300,9 @@ function je({
3300
3300
  }
3301
3301
  },
3302
3302
  [e, r]
3303
- ), n = M(() => {
3303
+ ), n = N(() => {
3304
3304
  s(t);
3305
- }, [t, s]), a = M(() => {
3305
+ }, [t, s]), a = N(() => {
3306
3306
  s(null);
3307
3307
  }, [s]);
3308
3308
  return R(() => {
@@ -3715,7 +3715,7 @@ const Pe = () => {
3715
3715
  authenticationType: ""
3716
3716
  }), di = () => ({
3717
3717
  ...Ge(ws)
3718
- }), hi = (e) => M(
3718
+ }), hi = (e) => N(
3719
3719
  (...t) => {
3720
3720
  e && console.info(`==> [Auth ${Date.now()}]: `, ...t);
3721
3721
  },
@@ -3765,7 +3765,7 @@ const Pe = () => {
3765
3765
  }
3766
3766
  ), [C, J, , P] = je({
3767
3767
  key: `${Qe}::${r}::@@nonce@@`
3768
- }), re = new ui(p, w), N = M(() => {
3768
+ }), re = new ui(p, w), M = N(() => {
3769
3769
  l("removeLocalStorage: removing local storage"), u(), g(), x(), P();
3770
3770
  }, [
3771
3771
  g,
@@ -3773,7 +3773,7 @@ const Pe = () => {
3773
3773
  P,
3774
3774
  x,
3775
3775
  l
3776
- ]), I = M(
3776
+ ]), I = N(
3777
3777
  (v) => {
3778
3778
  l(
3779
3779
  "removeStateAndLocalStorage: removing state and local storage with reason: ",
@@ -3783,10 +3783,10 @@ const Pe = () => {
3783
3783
  payload: {
3784
3784
  logoutReason: v || Ce
3785
3785
  }
3786
- }), N(), o({ type: De, payload: { isLoading: !1 } });
3786
+ }), M(), o({ type: De, payload: { isLoading: !1 } });
3787
3787
  },
3788
- [N, l]
3789
- ), V = M(
3788
+ [M, l]
3789
+ ), V = N(
3790
3790
  async (v) => {
3791
3791
  l("invalidateAndLogout: invalidating and logging out");
3792
3792
  const { user: _ } = i, T = _?.userId || ai(d);
@@ -3836,7 +3836,7 @@ const Pe = () => {
3836
3836
  };
3837
3837
  }, [i.isLoading, d, V, l]);
3838
3838
  const k = async (v, _) => {
3839
- o({ type: De, payload: { isLoading: !0 } }), N();
3839
+ o({ type: De, payload: { isLoading: !0 } }), M();
3840
3840
  const T = It();
3841
3841
  J(T), l("login: Logging in with password");
3842
3842
  const { code_verifier: me, code_challenge: ge } = await $a(), sr = await ci({
@@ -3950,7 +3950,7 @@ const Pe = () => {
3950
3950
  }
3951
3951
  return !1;
3952
3952
  }, _e = async () => {
3953
- o({ type: De, payload: { isLoading: !0 } }), N();
3953
+ o({ type: De, payload: { isLoading: !0 } }), M();
3954
3954
  const v = It();
3955
3955
  J(v), l("loginWithPasskey");
3956
3956
  const _ = It();
@@ -4330,7 +4330,7 @@ const Is = process.env.NODE_ENV === "production", Qt = !Is, _s = Qt ? "gizmette.
4330
4330
  window.atob(e).split("").map(function(t) {
4331
4331
  return `%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`;
4332
4332
  }).join("")
4333
- ), Ni = (e, t, r) => t ? Object.keys(t).map((s) => /* @__PURE__ */ c("dl", { className: "my-0", children: /* @__PURE__ */ E("div", { className: "flex items-center justify-between", children: [
4333
+ ), Mi = (e, t, r) => t ? Object.keys(t).map((s) => /* @__PURE__ */ c("dl", { className: "my-0", children: /* @__PURE__ */ E("div", { className: "flex items-center justify-between", children: [
4334
4334
  /* @__PURE__ */ c(
4335
4335
  "dt",
4336
4336
  {
@@ -4352,7 +4352,7 @@ const Is = process.env.NODE_ENV === "production", Qt = !Is, _s = Qt ? "gizmette.
4352
4352
  }
4353
4353
  )
4354
4354
  ] }) }, `${e}-${s}`)) : null;
4355
- function Mi({
4355
+ function Ni({
4356
4356
  data: e,
4357
4357
  formatter: t = (r) => r
4358
4358
  }) {
@@ -4432,10 +4432,10 @@ const xi = (e, t) => t && t.messages.length > 0 && t.messages[t.messages.length
4432
4432
  icon: d
4433
4433
  }), Gi = (e, t) => t === "ready" && !!e && e.length > 0, zi = (e) => {
4434
4434
  e ? document.documentElement.setAttribute(Ar, "true") : document.documentElement.removeAttribute(Ar);
4435
- }, fl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: _s, applyOledMode: zi, canEvaluateModels: Gi, convertCamelCaseToReadable: Ki, convertDDToDMS: Jt, convertLatitudeToDMS: Ri, convertLongitudeToDMS: Ci, debounce: Ui, durationFormatter: Di, extractAverage: Mi, getCurrentGeoLocation: Oi, getLayoutPaddingClass: Rs, getMessageContaintWrapperClass: As, isDev: Qt, isLastMessageFromRole: xi, isPWAMode: Bi, isProbablyMobile: Os, isProbablyTablet: ks, isProbablyiPad: Fi, isProbablyiPhone: Hi, isProd: Is, isTauri: Cs, numberFormatter: Li, obfuscate: ki, pluralize: $i, renderDataAsList: Ni, toastOptions: Vi, unObfuscate: Pi }, Symbol.toStringTag, { value: "Module" }));
4435
+ }, fl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: _s, applyOledMode: zi, canEvaluateModels: Gi, convertCamelCaseToReadable: Ki, convertDDToDMS: Jt, convertLatitudeToDMS: Ri, convertLongitudeToDMS: Ci, debounce: Ui, durationFormatter: Di, extractAverage: Ni, getCurrentGeoLocation: Oi, getLayoutPaddingClass: Rs, getMessageContaintWrapperClass: As, isDev: Qt, isLastMessageFromRole: xi, isPWAMode: Bi, isProbablyMobile: Os, isProbablyTablet: ks, isProbablyiPad: Fi, isProbablyiPhone: Hi, isProd: Is, isTauri: Cs, numberFormatter: Li, obfuscate: ki, pluralize: $i, renderDataAsList: Mi, toastOptions: Vi, unObfuscate: Pi }, Symbol.toStringTag, { value: "Module" }));
4436
4436
  let qi = "standard";
4437
4437
  var A, Wi = ((A = {})[A.NewChat = 0] = "NewChat", A[A.Prompts = 1] = "Prompts", A[A.Attachment = 2] = "Attachment", A[A.PrivateChat = 3] = "PrivateChat", A[A.SaveChat = 4] = "SaveChat", A[A.Reasoning = 5] = "Reasoning", A[A.Send = 6] = "Send", A[A.Header = 7] = "Header", A[A.Provider = 8] = "Provider", A[A.Logo = 9] = "Logo", A[A.Placeholder = 10] = "Placeholder", A[A.Footer = 11] = "Footer", A);
4438
- let pl = "user", yl = "assistant", ml = "data", yt = "OpenAI", Yt = "Anthropic", Xt = "Google", ji = "Perplexity", Qi = yt, Ji = [yt, Yt, Xt], Ps = "gpt-5", Ns = "gpt-5-mini", Ms = "gpt-5-nano", xs = "gpt-4.1-nano", Ls = "claude-haiku-4-5", Ds = "claude-sonnet-4-5", $s = "gemini-2.5-flash", Us = "gemini-2.5-pro", Hs = "sonar", Fs = "sonar-pro", gl = { [Ps]: "GPT-5", [Ns]: "GPT-5 Mini", [Ms]: "GPT-5 Nano", [xs]: "GPT-4.1 Nano", [Ls]: "Claude Haiku 4.5", [Ds]: "Claude Sonnet 4.5", [$s]: "Gemini 2.5 Flash", [Us]: "Gemini 2.5 Pro", [Hs]: "Sonar", [Fs]: "Sonar Pro" }, Bs = { [yt]: [xs, Ps, Ns, Ms], [Yt]: [Ls, Ds], [Xt]: [$s, Us], [ji]: [Hs, Fs] }, El = "x-diggidy-chat-id", wl = "timestamp", Sl = "tokenUsage", L = "Diggidy", bl = { TOOL: { MEMORIES: "getUserMemories" }, ADDON: { ATTACHMENTS: "addon:attachments", REASONING: "addon:reasoning" } }, vl = (e) => {
4438
+ let pl = "user", yl = "assistant", ml = "data", yt = "OpenAI", Yt = "Anthropic", Xt = "Google", ji = "Perplexity", Qi = yt, Ji = [yt, Yt, Xt], Ps = "gpt-5", Ms = "gpt-5-mini", Ns = "gpt-5-nano", xs = "gpt-4.1-nano", Ls = "claude-haiku-4-5", Ds = "claude-sonnet-4-5", $s = "gemini-2.5-flash", Us = "gemini-3-pro-preview", Hs = "sonar", Fs = "sonar-pro", gl = { [Ps]: "GPT-5", [Ms]: "GPT-5 Mini", [Ns]: "GPT-5 Nano", [xs]: "GPT-4.1 Nano", [Ls]: "Claude Haiku 4.5", [Ds]: "Claude Sonnet 4.5", [$s]: "Gemini 2.5 Flash", [Us]: "Gemini 3 Pro", [Hs]: "Sonar", [Fs]: "Sonar Pro" }, Bs = { [yt]: [xs, Ps, Ms, Ns], [Yt]: [Ls, Ds], [Xt]: [$s, Us], [ji]: [Hs, Fs] }, El = "x-diggidy-chat-id", wl = "timestamp", Sl = "tokenUsage", L = "Diggidy", bl = { TOOL: { MEMORIES: "getUserMemories" }, ADDON: { ATTACHMENTS: "addon:attachments", REASONING: "addon:reasoning" } }, vl = (e) => {
4439
4439
  if (!e || e.length === 0) return [];
4440
4440
  let t = /* @__PURE__ */ new Set();
4441
4441
  for (let r of e) for (let [s, n] of Object.entries(Bs)) n.includes(r) && (s === yt || s === Yt || s === Xt) && t.add(s);
@@ -4933,7 +4933,7 @@ const U = {
4933
4933
  type: K.GET_CHATS,
4934
4934
  getAccessToken: n
4935
4935
  })
4936
- }), Nl = ({
4936
+ }), Ml = ({
4937
4937
  chatId: e,
4938
4938
  getAccessToken: t,
4939
4939
  enabled: r = !0
@@ -4945,7 +4945,7 @@ const U = {
4945
4945
  type: K.GET_CHAT,
4946
4946
  getAccessToken: t
4947
4947
  })
4948
- }), Ml = ({
4948
+ }), Nl = ({
4949
4949
  getAccessToken: e
4950
4950
  }) => {
4951
4951
  const t = ce();
@@ -5207,7 +5207,7 @@ const U = {
5207
5207
  const [s, n] = Y(Or), a = He(
5208
5208
  () => e ? `entitlements:${e}` : null,
5209
5209
  [e]
5210
- ), i = M(() => {
5210
+ ), i = N(() => {
5211
5211
  if (!a)
5212
5212
  return !1;
5213
5213
  try {
@@ -5258,7 +5258,7 @@ const U = {
5258
5258
  } catch {
5259
5259
  }
5260
5260
  }, [o.data, a]);
5261
- const l = M(
5261
+ const l = N(
5262
5262
  (h) => {
5263
5263
  const u = h?.entitlements;
5264
5264
  if (u && (n({
@@ -5280,7 +5280,7 @@ const U = {
5280
5280
  }
5281
5281
  },
5282
5282
  [a]
5283
- ), f = M(() => {
5283
+ ), f = N(() => {
5284
5284
  if (n(Or), a)
5285
5285
  try {
5286
5286
  sessionStorage.removeItem(a);
@@ -5983,7 +5983,7 @@ const lo = () => {
5983
5983
  e.current.clear(), Ye--, Ye === 0 && uo();
5984
5984
  };
5985
5985
  }, []);
5986
- const t = M(() => {
5986
+ const t = N(() => {
5987
5987
  try {
5988
5988
  if (navigator?.vibrate) {
5989
5989
  navigator.vibrate(Ct);
@@ -5994,7 +5994,7 @@ const lo = () => {
5994
5994
  }
5995
5995
  }, []);
5996
5996
  return {
5997
- haptic: M((s = 1) => {
5997
+ haptic: N((s = 1) => {
5998
5998
  if (!(typeof window > "u") && !(s < 1)) {
5999
5999
  if (navigator?.vibrate && s > 1) {
6000
6000
  const n = [];
@@ -6082,11 +6082,11 @@ function Ru(e, t = [
6082
6082
  ]);
6083
6083
  }
6084
6084
  function Cu(e, t) {
6085
- const [r, s] = Y(!1), n = F(null), a = F(null), i = M(() => {
6085
+ const [r, s] = Y(!1), n = F(null), a = F(null), i = N(() => {
6086
6086
  s((l) => (!l && (!n.current || n.current === -1) && (n.current = window.setInterval(a.current, t)), !0));
6087
6087
  }, [
6088
6088
  t
6089
- ]), o = M(() => {
6089
+ ]), o = N(() => {
6090
6090
  s(!1), window.clearInterval(n.current || -1), n.current = -1;
6091
6091
  }, []);
6092
6092
  return R(() => (a.current = e, r && i(), o), [
@@ -6103,7 +6103,7 @@ function Cu(e, t) {
6103
6103
  function Ou() {
6104
6104
  const e = F(null), [t, r] = Y(!1);
6105
6105
  return {
6106
- ref: M((n) => {
6106
+ ref: N((n) => {
6107
6107
  typeof IntersectionObserver < "u" && (n && !e.current ? e.current = new IntersectionObserver((a) => r(a.some((i) => i.isIntersecting))) : e.current?.disconnect(), n ? e.current?.observe(n) : r(!1));
6108
6108
  }, []),
6109
6109
  inViewport: t
@@ -6113,7 +6113,7 @@ function yo() {
6113
6113
  const e = F(!1);
6114
6114
  return R(() => (e.current = !0, () => {
6115
6115
  e.current = !1;
6116
- }), []), M(() => e.current, []);
6116
+ }), []), N(() => e.current, []);
6117
6117
  }
6118
6118
  function Gs(e, t) {
6119
6119
  window.dispatchEvent(new StorageEvent("storage", {
@@ -6121,36 +6121,36 @@ function Gs(e, t) {
6121
6121
  newValue: t
6122
6122
  }));
6123
6123
  }
6124
- const Nr = (e, t) => {
6124
+ const Mr = (e, t) => {
6125
6125
  const r = JSON.stringify(typeof t == "function" ? t() : t);
6126
6126
  window.localStorage.setItem(e, r), Gs(e, r);
6127
6127
  }, mo = (e) => {
6128
6128
  window.localStorage.removeItem(e), Gs(e, null);
6129
- }, Mr = (e) => window.localStorage.getItem(e), go = (e) => (window.addEventListener("storage", e), () => window.removeEventListener("storage", e));
6129
+ }, Nr = (e) => window.localStorage.getItem(e), go = (e) => (window.addEventListener("storage", e), () => window.removeEventListener("storage", e));
6130
6130
  function ku({ key: e, initialValue: t }) {
6131
- const s = Kr(go, () => Mr(e)), n = M((o) => {
6131
+ const s = Kr(go, () => Nr(e)), n = N((o) => {
6132
6132
  try {
6133
6133
  const l = typeof o == "function" ? o(JSON.parse(s)) : o;
6134
- l == null ? mo(e) : Nr(e, l);
6134
+ l == null ? mo(e) : Mr(e, l);
6135
6135
  } catch (l) {
6136
6136
  console.warn(l);
6137
6137
  }
6138
6138
  }, [
6139
6139
  e,
6140
6140
  s
6141
- ]), a = M(() => {
6141
+ ]), a = N(() => {
6142
6142
  n(t);
6143
6143
  }, [
6144
6144
  t,
6145
6145
  n
6146
- ]), i = M(() => {
6146
+ ]), i = N(() => {
6147
6147
  n(null);
6148
6148
  }, [
6149
6149
  n
6150
6150
  ]);
6151
6151
  return R(() => {
6152
6152
  try {
6153
- Mr(e) === null && typeof t < "u" && Nr(e, t);
6153
+ Nr(e) === null && typeof t < "u" && Mr(e, t);
6154
6154
  } catch (o) {
6155
6155
  console.warn(o);
6156
6156
  }
@@ -6247,11 +6247,11 @@ function xr(e, t) {
6247
6247
  t
6248
6248
  ]);
6249
6249
  }
6250
- function Nu() {
6250
+ function Mu() {
6251
6251
  const [e, t] = Y({
6252
6252
  width: 0,
6253
6253
  height: 0
6254
- }), r = M(() => {
6254
+ }), r = N(() => {
6255
6255
  t({
6256
6256
  width: window.innerWidth || 0,
6257
6257
  height: window.innerHeight || 0
@@ -6259,11 +6259,11 @@ function Nu() {
6259
6259
  }, []);
6260
6260
  return xr("resize", r), xr("orientationchange", r), R(r, []), e;
6261
6261
  }
6262
- function Mu() {
6262
+ function Nu() {
6263
6263
  const [e, t] = Y({
6264
6264
  width: 0,
6265
6265
  height: 0
6266
- }), r = M(() => {
6266
+ }), r = N(() => {
6267
6267
  t({
6268
6268
  width: window?.visualViewport?.width || window.innerWidth || 0,
6269
6269
  height: window?.visualViewport?.height || window.innerHeight || 0
@@ -6610,7 +6610,7 @@ const Xe = {
6610
6610
  small: 16,
6611
6611
  medium: 24,
6612
6612
  large: 32
6613
- }, No = 2, Mo = 300, Ve = /* @__PURE__ */ Z.forwardRef(({ children: e, disabled: t = !1, mode: r = "system", focusMode: s = "system", fullWidth: n = !1, className: a, type: i = "button", raw: o = !1, noBorder: l = !1, "aria-label": f, label: d, size: h = "medium", labelRight: u, labelLeft: p, noBackground: y = !1, align: g = "center", radius: w = "large", variant: b = "secondary", iconClassName: x, animated: C = !1, ...J }, P) => {
6613
+ }, Mo = 2, No = 300, Ve = /* @__PURE__ */ Z.forwardRef(({ children: e, disabled: t = !1, mode: r = "system", focusMode: s = "system", fullWidth: n = !1, className: a, type: i = "button", raw: o = !1, noBorder: l = !1, "aria-label": f, label: d, size: h = "medium", labelRight: u, labelLeft: p, noBackground: y = !1, align: g = "center", radius: w = "large", variant: b = "secondary", iconClassName: x, animated: C = !1, ...J }, P) => {
6614
6614
  const re = tr({
6615
6615
  type: mt,
6616
6616
  mode: r,
@@ -6628,7 +6628,7 @@ const Xe = {
6628
6628
  radius: w,
6629
6629
  variant: b,
6630
6630
  animated: C
6631
- }), N = Oo({
6631
+ }), M = Oo({
6632
6632
  mode: r,
6633
6633
  raw: o,
6634
6634
  iconClassName: x,
@@ -6640,7 +6640,7 @@ const Xe = {
6640
6640
  _
6641
6641
  ]);
6642
6642
  return st(() => {
6643
- ye && ye.current && C && (v.current = _e.width + Po[h] + (l ? 0 : No), _.current && !_.current.style.width && (_.current.style.width = `${Xe[h]}px`));
6643
+ ye && ye.current && C && (v.current = _e.width + Po[h] + (l ? 0 : Mo), _.current && !_.current.style.width && (_.current.style.width = `${Xe[h]}px`));
6644
6644
  }, [
6645
6645
  _e,
6646
6646
  ye,
@@ -6652,7 +6652,7 @@ const Xe = {
6652
6652
  let ge = Xe[h];
6653
6653
  u && k && O.width > 0 ? ge = O.width + v.current : p && D && ee.width > 0 && (ge = ee.width + v.current), T.current && clearTimeout(T.current), ge !== parseInt(_.current.style.width || "0", 10) && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"), _.current.style.width = `${ge}px`, ge > Xe[h] && (T.current = setTimeout(() => {
6654
6654
  k.current && u && (k.current.style.opacity = "1"), D.current && p && (D.current.style.opacity = "1"), T.current = null;
6655
- }, Mo * 0.8))), ge === Xe[h] && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"));
6655
+ }, No * 0.8))), ge === Xe[h] && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"));
6656
6656
  }
6657
6657
  }, [
6658
6658
  O,
@@ -6684,7 +6684,7 @@ const Xe = {
6684
6684
  }),
6685
6685
  /* @__PURE__ */ c("span", {
6686
6686
  ref: ye,
6687
- className: N,
6687
+ className: M,
6688
6688
  children: e
6689
6689
  }),
6690
6690
  /* @__PURE__ */ c(Dr, {
@@ -7278,7 +7278,7 @@ const Ys = "av-text-input", Wo = "av-text-input-wrapper", kt = "av-text-input-he
7278
7278
  rightElement: w
7279
7279
  };
7280
7280
  }, rr = /* @__PURE__ */ Z.forwardRef(({ id: e, name: t, label: r, error: s = !1, raw: n = !1, className: a, inputClassName: i, mode: o = "system", focusMode: l = "system", disabled: f = !1, noBorder: d = !1, labelId: h, labelHidden: u = !1, type: p = "text", helperText: y = "", rightElement: g, rightElementClassName: w, size: b = "md", ...x }, C) => {
7281
- const [J, P] = tt(), [re, N] = Y(0), I = qs({
7281
+ const [J, P] = tt(), [re, M] = Y(0), I = qs({
7282
7282
  id: e,
7283
7283
  prefix: `${Ys}-`
7284
7284
  }), V = `${t} error, ${y}`, k = F(null), O = F(null), D = {
@@ -7315,7 +7315,7 @@ const Ys = "av-text-input", Wo = "av-text-input-wrapper", kt = "av-text-input-he
7315
7315
  rightElementClassName: w
7316
7316
  });
7317
7317
  return st(() => {
7318
- P && P.width && N(P.width + 18 + 10);
7318
+ P && P.width && M(P.width + 18 + 10);
7319
7319
  }, [
7320
7320
  P
7321
7321
  ]), st(() => {
@@ -7403,11 +7403,11 @@ const ec = 500, tc = 5e3, rc = 2e4, Xs = /* @__PURE__ */ Z.forwardRef(({ name: e
7403
7403
  politeness: "assertive",
7404
7404
  message: D ? "Characters hidden" : "Characters showing"
7405
7405
  }), n && n(D);
7406
- }, N = (O) => {
7406
+ }, M = (O) => {
7407
7407
  const { relatedTarget: D } = O;
7408
7408
  x.current?.parentElement?.contains(D) || l && l();
7409
7409
  }, I = (O) => {
7410
- P(), i && i(O), N(O);
7410
+ P(), i && i(O), M(O);
7411
7411
  }, V = (O) => {
7412
7412
  P(), o && o(O);
7413
7413
  }, k = (O) => {
@@ -7431,7 +7431,7 @@ const ec = 500, tc = 5e3, rc = 2e4, Xs = /* @__PURE__ */ Z.forwardRef(({ name: e
7431
7431
  ref: h,
7432
7432
  label: J,
7433
7433
  onClick: re,
7434
- onBlur: N,
7434
+ onBlur: M,
7435
7435
  disabled: t
7436
7436
  }),
7437
7437
  ...d
@@ -7625,7 +7625,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7625
7625
  }, [t, e]);
7626
7626
  return R(() => {
7627
7627
  r?.cssVariables && mc(r.cssVariables);
7628
- }, [r]), [M(
7628
+ }, [r]), [N(
7629
7629
  (n) => r?.colors[n] || "",
7630
7630
  [r]
7631
7631
  ), Wi];
@@ -7776,7 +7776,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7776
7776
  ] });
7777
7777
  }, Sc = new URL(document.location.href).searchParams, Ur = !!Sc.get("debug") || !1, bc = tn(() => import(
7778
7778
  /* webpackChunkName: "LazyApp" */
7779
- "./App.CpTC12YE.js"
7779
+ "./App.BMU8OU5B.js"
7780
7780
  ).then((e) => e.App)), vc = new _n(), Hr = ({
7781
7781
  isComponent: e,
7782
7782
  headerHeight: t
@@ -7840,7 +7840,7 @@ export {
7840
7840
  cd as ChatContext,
7841
7841
  rl as DEFAULT_ICON_ACTION_SIZE,
7842
7842
  Lc as ERROR_MESSAGE,
7843
- Sl as F,
7843
+ L as F,
7844
7844
  nd as FOOTER_BOTTOM,
7845
7845
  Wu as FOOTER_DISCLAIMERS,
7846
7846
  cc as FOOTER_TOP,
@@ -7912,7 +7912,7 @@ export {
7912
7912
  xu as LOG_OUT,
7913
7913
  Js as LiveRegion,
7914
7914
  Ec as Logo,
7915
- ml as O,
7915
+ yt as O,
7916
7916
  Du as PROFILE_TITLE,
7917
7917
  ju as PROMPTS_DESCRIPTION,
7918
7918
  el as PROMPT_CLASSNAME,
@@ -7946,7 +7946,7 @@ export {
7946
7946
  Ui as debounce,
7947
7947
  qi as e,
7948
7948
  oc as e$1,
7949
- _l as ee,
7949
+ _l as et,
7950
7950
  hl as getCacheInfo,
7951
7951
  Oi as getCurrentGeoLocation,
7952
7952
  Au as getHotkeyHandler,
@@ -7965,21 +7965,20 @@ export {
7965
7965
  $e as it,
7966
7966
  bl as j,
7967
7967
  Se as j$1,
7968
- L as k,
7969
- yt as l,
7968
+ ml as l,
7970
7969
  Ss as n,
7971
7970
  Li as numberFormatter,
7972
7971
  yl as o,
7973
7972
  ki as obfuscate,
7974
7973
  $i as pluralize,
7975
7974
  Il as q,
7976
- Ni as renderDataAsList,
7975
+ Mi as renderDataAsList,
7977
7976
  eo as serverUrl,
7978
7977
  Al as setNewProvider,
7979
7978
  Rl as setUserPlan,
7980
7979
  Pi as unObfuscate,
7981
7980
  Ol as useChangelogs,
7982
- Nl as useChat,
7981
+ Ml as useChat,
7983
7982
  Pl as useChatsHistory,
7984
7983
  Dl as useChatsUsage,
7985
7984
  Iu as useClickOutside,
@@ -7998,7 +7997,7 @@ export {
7998
7997
  ce as useQueryClient,
7999
7998
  tt as useResizeObserver,
8000
7999
  Vl as useRestoreMemory,
8001
- Ml as useSaveChat,
8000
+ Nl as useSaveChat,
8002
8001
  Cl as useServerCapabilities,
8003
8002
  gc as useTheme,
8004
8003
  Ll as useToggleFavoriteChat,
@@ -8008,8 +8007,9 @@ export {
8008
8007
  kl as useUserChatStats,
8009
8008
  $l as useUserMemories,
8010
8009
  to as useUserPreferences,
8011
- Nu as useViewportSize,
8012
- Mu as useVisualViewportSize,
8010
+ Mu as useViewportSize,
8011
+ Nu as useVisualViewportSize,
8013
8012
  fl as utilities,
8013
+ Sl as w,
8014
8014
  Yi as z
8015
8015
  };
@@ -1,5 +1,5 @@
1
1
  import { jsxs as oe, jsx as h } from "react/jsx-runtime";
2
- import { useMergeRefs as ce, useResizeObserver as W, useUniqueId as ne, useUncontrolled as le, LiveRegion as ie } from "./index.BHySgpXD.js";
2
+ import { useMergeRefs as ce, useResizeObserver as W, useUniqueId as ne, useUncontrolled as le, LiveRegion as ie } from "./index.CNI41WFO.js";
3
3
  import ue, { useRef as k, useState as I, useLayoutEffect as R } from "react";
4
4
  import o from "clsx";
5
5
  /*!
@@ -1,5 +1,5 @@
1
1
  import { jsx as l, jsxs as y } from "react/jsx-runtime";
2
- import { ButtonSort_private as f, e$1 as k } from "./index.BHySgpXD.js";
2
+ import { ButtonSort_private as f, e$1 as k } from "./index.CNI41WFO.js";
3
3
  import o from "clsx";
4
4
  import v, { useContext as b } from "react";
5
5
  /*!
@@ -1,7 +1,7 @@
1
1
  import { jsx as Le, jsxs as vt, Fragment as Tr } from "react/jsx-runtime";
2
- import { isTauri as Lr, ButtonCopy as zr, unObfuscate as _r, obfuscate as Mr } from "./index.BHySgpXD.js";
2
+ import { isTauri as Lr, ButtonCopy as zr, unObfuscate as _r, obfuscate as Mr } from "./index.CNI41WFO.js";
3
3
  import { useCallback as Dt, useRef as vn, useState as Nr, useEffect as Rr } from "react";
4
- import { getDefaultExportFromCjs as Ot } from "./App.CpTC12YE.js";
4
+ import { getDefaultExportFromCjs as Ot } from "./App.BMU8OU5B.js";
5
5
  const Ft = -1, ee = 0, Hn = 1, ne = 2, ze = 3, _e = 4, Me = 5, Ne = 6, Bt = 7, Ut = 8, Qe = typeof self == "object" ? self : globalThis, vr = (n, e) => {
6
6
  const t = (i, l) => (n.set(l, i), i), r = (i) => {
7
7
  if (n.has(i))
@@ -7110,7 +7110,7 @@ class vu {
7110
7110
  if (!this.remarkGfm) {
7111
7111
  const { default: e } = await import(
7112
7112
  /* webpackChunkName: "md-remark" */
7113
- "./index.DigULJFG.js"
7113
+ "./index.B8Y9S4VE.js"
7114
7114
  );
7115
7115
  this.remarkGfm = e;
7116
7116
  }
@@ -7121,7 +7121,7 @@ class vu {
7121
7121
  Uu("https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css");
7122
7122
  const { default: e } = await import(
7123
7123
  /* webpackChunkName: "md-rehype-katex" */
7124
- "./index.DUHPpcnH.js"
7124
+ "./index.C8Srb_Lo.js"
7125
7125
  );
7126
7126
  this.rehypeKatex = e;
7127
7127
  }
@@ -7131,7 +7131,7 @@ class vu {
7131
7131
  if (!this.remarkMath) {
7132
7132
  const { default: e } = await import(
7133
7133
  /* webpackChunkName: "md-remark" */
7134
- "./index.BXksRYaH.js"
7134
+ "./index.C9guN2O6.js"
7135
7135
  );
7136
7136
  this.remarkMath = e;
7137
7137
  }
@@ -7141,7 +7141,7 @@ class vu {
7141
7141
  if (!this.rehypeHighlight) {
7142
7142
  const { default: e } = await import(
7143
7143
  /* webpackChunkName: "md-rehype-highlight" */
7144
- "./index.BqkQUJZh.js"
7144
+ "./index.BxVRyz3L.js"
7145
7145
  );
7146
7146
  this.rehypeHighlight = e;
7147
7147
  }
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { SassySaint as a } from "../../chunks/index.BHySgpXD.js";
2
+ import { SassySaint as a } from "../../chunks/index.CNI41WFO.js";
3
3
  export {
4
4
  a as SassySaint
5
5
  };
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- import { SassySaint as r } from "./chunks/index.BHySgpXD.js";
1
+ import { SassySaint as r } from "./chunks/index.CNI41WFO.js";
2
2
  /*!
3
- @sassysaint/client v8.88.2
3
+ @sassysaint/client v8.88.4
4
4
  © 2025 gizmette.com
5
5
  */
6
6
  try {
7
7
  window.__VERSINI_SASSY_GLOBAL__ || (window.__VERSINI_SASSY_GLOBAL__ = {
8
- version: "8.88.2",
9
- buildTime: "11/22/2025 01:44 PM EST",
8
+ version: "8.88.4",
9
+ buildTime: "11/23/2025 11:47 AM EST",
10
10
  license: "MIT"
11
11
  });
12
12
  } catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versini/sassysaint",
3
- "version": "8.88.2",
3
+ "version": "8.88.4",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {
@@ -33,7 +33,7 @@
33
33
  "react-dom": "^18.3.1 || ^19.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@sassysaint/client": "8.88.2",
36
+ "@sassysaint/client": "8.88.4",
37
37
  "@tailwindcss/vite": "4.1.17",
38
38
  "@versini/ui-styles": "6.1.2"
39
39
  },
@@ -45,5 +45,5 @@
45
45
  "sideEffects": [
46
46
  "**/*.css"
47
47
  ],
48
- "gitHead": "2ecb83b8ed221dbf8230efd5a64944d0fecc8f84"
48
+ "gitHead": "8a4e28cb37b50df2848857d409a33004431dee79"
49
49
  }