@versini/sassysaint 8.106.1 → 8.107.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/chunks/{AboutChangelog.C1rKf-fs.js → AboutChangelog.Bka_dEqx.js} +2 -2
  2. package/dist/chunks/{AboutEntry.BAR4O6Y4.js → AboutEntry.DUtXxWlx.js} +7 -7
  3. package/dist/chunks/{App.B9tjGMnG.js → App.BERAIqpH.js} +49 -47
  4. package/dist/chunks/Bubble.CMHhu8Uu.js +183 -0
  5. package/dist/chunks/{Chart.BJQmO98B.js → Chart.CaVz0BaD.js} +2 -2
  6. package/dist/chunks/{ChatBubbleAssistant.B5Un5WKI.js → ChatBubbleAssistant.C2BK2j1e.js} +453 -426
  7. package/dist/chunks/{ChatBubbleUser.DEe4IIdl.js → ChatBubbleUser.DiLNCz62.js} +3 -3
  8. package/dist/chunks/{ChatHistoryTable.-d8_qx2Z.js → ChatHistoryTable.stVdzUh4.js} +4 -4
  9. package/dist/chunks/{HistoryEntry.BSAHx4eZ.js → HistoryEntry.Cfj7zpsO.js} +28 -27
  10. package/dist/chunks/{LoginEntry.DR0qFvNl.js → LoginEntry.NKL57b20.js} +4 -4
  11. package/dist/chunks/{LogoEntry.BwA2ssO6.js → LogoEntry._hzptl5K.js} +23 -23
  12. package/dist/chunks/{MemoriesEntry.Cz7T3caz.js → MemoriesEntry.d_q-JhJM.js} +5 -5
  13. package/dist/chunks/{ProfileEntry.Cotp19Aj.js → ProfileEntry.DIQtOnWx.js} +4 -4
  14. package/dist/chunks/{SettingsEntry.C55bTACC.js → SettingsEntry.DzdlYRls.js} +5 -5
  15. package/dist/chunks/{Table.DWGS6ANJ.js → Table.DC7e-PME.js} +1 -1
  16. package/dist/chunks/{UsageEntry.HvLHOBP5.js → UsageEntry.BH_ezlOO.js} +5 -5
  17. package/dist/chunks/{index.BOLZ9GJH.js → index.-n8MsBkX.js} +1 -1
  18. package/dist/chunks/{index.DNRN6B_p.js → index.Bc-tiddM.js} +1 -1
  19. package/dist/chunks/{index.DVCf7tp5.js → index.BeTlnSxo.js} +196 -182
  20. package/dist/chunks/{index.1CBqWB-9.js → index.CBzjyG-A.js} +2 -2
  21. package/dist/chunks/{index.Dnj64P2t.js → index.D2X4dLEq.js} +3 -3
  22. package/dist/chunks/{index.Cik0_Cr1.js → index.DAJKVS9Y.js} +1 -1
  23. package/dist/chunks/{index.Ce0LQWUm.js → index.DvprFu44.js} +1 -1
  24. package/dist/chunks/{index.BSJ1MGWU.js → index.NT6ZWB8q.js} +1 -1
  25. package/dist/chunks/{index.yI7VsMw8.js → index.ogleoHzE.js} +1 -1
  26. package/dist/chunks/{useMarkdown.Di6pc73q.js → useMarkdown.CUQaOUBB.js} +7 -7
  27. package/dist/components/SassySaint/SassySaint.js +1 -1
  28. package/dist/index.js +4 -4
  29. package/dist/style.css +1 -1
  30. package/package.json +3 -3
  31. package/dist/chunks/index.j05AJWYD.js +0 -153
@@ -1,7 +1,7 @@
1
1
  import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
- import { useInViewport as m, ButtonScroll as n } from "./App.B9tjGMnG.js";
2
+ import { useInViewport as m, ButtonScroll as n } from "./App.BERAIqpH.js";
3
3
  import { useRef as f, useCallback as u, useLayoutEffect as p } from "react";
4
- import { useMarkdown as d } from "./useMarkdown.Di6pc73q.js";
4
+ import { useMarkdown as d } from "./useMarkdown.CUQaOUBB.js";
5
5
  const b = ({ content: o }) => {
6
6
  const [l, t] = d(), { ref: a, inViewport: i } = m(), e = f(null), c = u(() => {
7
7
  e.current && e.current.scrollIntoView({
@@ -1,14 +1,14 @@
1
1
  import { jsxs as b, Fragment as n, jsx as e } from "react/jsx-runtime";
2
- import { pluralize as g, isProbablyMobile as A, Panel as f, CancelButton as B } from "./App.B9tjGMnG.js";
3
- import { useUniqueId as c, CARDS as r, ABOUT_TITLE as E, L as I, j as S } from "./LogoEntry.BwA2ssO6.js";
2
+ import { pluralize as g, isProbablyMobile as A, Panel as f, CancelButton as B } from "./App.BERAIqpH.js";
3
+ import { useUniqueId as c, CARDS as r, ABOUT_TITLE as E, L as I, j as S } from "./LogoEntry._hzptl5K.js";
4
4
  import { Suspense as C, lazy as O, useRef as U } from "react";
5
- import { Card as t } from "./index.DNRN6B_p.js";
5
+ import { Card as t } from "./index.Bc-tiddM.js";
6
6
  import L from "clsx";
7
- import { useServerCapabilities as N, useChangelogs as R, renderDataAsList as d } from "./index.DVCf7tp5.js";
7
+ import { useServerCapabilities as N, useChangelogs as R, renderDataAsList as d } from "./index.BeTlnSxo.js";
8
8
  const _ = O(
9
9
  () => import(
10
10
  /* webpackChunkName: "LazyAboutChangelog" */
11
- "./AboutChangelog.C1rKf-fs.js"
11
+ "./AboutChangelog.Bka_dEqx.js"
12
12
  )
13
13
  ), k = () => {
14
14
  const o = c(), i = c(), { data: s, isSuccess: m } = N(), { data: u, isSuccess: h } = R(), T = s?.version || "", a = s?.models || [], p = s?.buildTime || "";
@@ -20,8 +20,8 @@ const _ = O(
20
20
  className: "prose-dark dark:prose-lighter mb-4",
21
21
  noBorder: !0,
22
22
  children: d(o, {
23
- [r.ABOUT.VERSION]: "8.106.1",
24
- [r.ABOUT.BUILD_TIMESTAMP]: "12/21/2025 05:29 PM EST"
23
+ [r.ABOUT.VERSION]: "8.107.1",
24
+ [r.ABOUT.BUILD_TIMESTAMP]: "12/23/2025 09:06 AM EST"
25
25
  })
26
26
  }
27
27
  ),
@@ -1,8 +1,8 @@
1
1
  import { jsx as h, jsxs as $, Fragment as ct } from "react/jsx-runtime";
2
- import { ACTION_SORT as au, ACTION_SEARCH as iu, ACTION_RESET_PROMPT as Za, ACTION_TOGGLE_PROMPT as Fa, LOCAL_STORAGE_PREFIX as je, LOCAL_STORAGE_CHAT_ID as Vn, n as $e, isDev as cu, isTauri as on, useChat as lu, DEFAULT_ICON_ACTION_SIZE as Qe, useUserPreferences as vt, serverUrl as Ua, useEntitlements as No, useSaveChat as uu, LOCAL_STORAGE_PRIVATE_DISCLOSURE as du, w as er, LOCAL_STORAGE_REASONING_DISCLOSURE as fu, PROMPT_EDITABLE_AREA_CLASSNAME as pu, PROMPT_CLASSNAME as mu, j as ja, ERROR_MESSAGE as hu, o as sn, U as gu, INPUT_BOTTOM_OFFSET_IPHONE as vu, INPUT_BOTTOM_OFFSET_IPAD as yu, INPUT_BOTTOM_OFFSET as Ba, INPUT_BOTTOM_OFFSET_EXTRA as zr, getLayoutPaddingClass as lo, canEvaluateModels as ls, k as wu, a as bu, i as _u, s as Eu, x as Su, p as Zr, setNewProvider as us, useQueryClient as Iu, n$1 as Va, useServerCapabilities as Cu, getMessageContaintWrapperClass as Tu, UI_FOOTER_BUFFER as Ha, UI_BUTTON_SCROLL_BUFFER as xu, UI_DEFAULT_MAIN_HEIGHT as ds, e as Au, applyOledMode as Ru, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Ou, y as fs, v as Nu, LOCAL_STORAGE_SORT as Mu, LOCAL_STORAGE_SEARCH as ku, LOCAL_STORAGE_OLED_MODE as Pu, LOCAL_STORAGE_FULL_SCREEN as Du, LOCAL_STORAGE_SORT_TIMESTAMP as $u, LOCAL_STORAGE_SORT_TOKEN_USAGE as Lu } from "./index.DVCf7tp5.js";
2
+ import { ACTION_SORT as au, ACTION_SEARCH as iu, ACTION_RESET_PROMPT as Za, ACTION_TOGGLE_PROMPT as Fa, LOCAL_STORAGE_PREFIX as je, LOCAL_STORAGE_CHAT_ID as Vn, n as $e, isDev as cu, isTauri as on, useChat as lu, DEFAULT_ICON_ACTION_SIZE as Qe, useUserPreferences as vt, serverUrl as Ua, useEntitlements as No, useSaveChat as uu, LOCAL_STORAGE_PRIVATE_DISCLOSURE as du, w as er, LOCAL_STORAGE_REASONING_DISCLOSURE as fu, PROMPT_EDITABLE_AREA_CLASSNAME as pu, PROMPT_CLASSNAME as mu, j as ja, ERROR_MESSAGE as hu, o as sn, U as gu, INPUT_BOTTOM_OFFSET_IPHONE as vu, INPUT_BOTTOM_OFFSET_IPAD as yu, INPUT_BOTTOM_OFFSET as Ba, INPUT_BOTTOM_OFFSET_EXTRA as zr, getLayoutPaddingClass as lo, canEvaluateModels as ls, k as wu, a as bu, i as _u, s as Eu, x as Su, p as Zr, setNewProvider as us, useQueryClient as Iu, n$1 as Va, useServerCapabilities as Cu, getMessageContaintWrapperClass as Tu, UI_FOOTER_BUFFER as Ha, UI_BUTTON_SCROLL_BUFFER as xu, UI_DEFAULT_MAIN_HEIGHT as ds, e as Au, applyOledMode as Ru, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Ou, y as fs, v as Nu, LOCAL_STORAGE_SORT as Mu, LOCAL_STORAGE_SEARCH as ku, LOCAL_STORAGE_OLED_MODE as Pu, LOCAL_STORAGE_FULL_SCREEN as Du, LOCAL_STORAGE_SORT_TIMESTAMP as $u, LOCAL_STORAGE_SORT_TOKEN_USAGE as Lu } from "./index.BeTlnSxo.js";
3
3
  import * as w from "react";
4
4
  import st, { useSyncExternalStore as Hn, useCallback as G, useEffect as U, useRef as X, useState as B, createContext as Wa, useContext as ue, useMemo as xe, forwardRef as wr, useId as Ga, useLayoutEffect as vn, cloneElement as Ka, Suspense as tr, lazy as nt, useReducer as Rn } from "react";
5
- import { e as tn, ChatContext as Le, useTheme as Ke, ButtonIcon as rt, IconAddLight as zu, IconCloseLight as Zu, IconEditLight as Fu, Button as Ya, L as uo, j as Ft, IconLockedLight as Uu, IconUnlockedLight as ju, IconNext as Bu, IconSelected as Vu, IconUnSelected as Hu, PromptsContext as Mo, IconBookSparklesLight as Wu, IconRewrite as Gu, IconProofread as Ku, IconMagic as Yu, IconLightBulbLight as Ju, IconSendLight as Xu, INPUT_PLACEHOLDER_TEXT_IN_SESSION as Ja, INPUT_PLACEHOLDER_TEXT_MORNING as qu, INPUT_PLACEHOLDER_TEXT_TODAY as Qu, INPUT_PLACEHOLDER_TEXT_AFTERNOON as ed, INPUT_PLACEHOLDER_TEXT_EVENING as td, INPUT_PLACEHOLDER_TEXT_NIGHT as nd, INPUT_PLACEHOLDER_TEXT_DEFAULT as rd, IconClose as od, AppContext as yn, useUniqueId as sd, CLIPBOARD_PROMPT as ps, FOOTER_DISCLAIMERS as ms, useResizeObserver as Xa, APP_SET_FOOTER_HEIGHT as ad, FOOTER_TOP as fo, FOOTER_BOTTOM as nn, APP_SET_FOOTER_POSITION as Fr, IconOpenAI as id, IconAnthropic as cd, IconGoogleGemini as ld, TOAST_PROVIDER_CHANGED as hs, LOG_OUT as gs, IconProfile as ud, IconSliders as dd, IconHistory as fd, IconEditUser as pd, IconChart as md, IconInfo as hd, IconBack as gd, IconSettings as vd, Logo as yd, appReducer as wd, APP_SET_OLED_MODE as bd, APP_SET_FULL_SCREEN as _d, APP_SET_THEME_MODE as Ed, APP_SET_THEME_PALETTE as Sd, HistoryContext as Id, APP_CLASSNAME as Cd, TOAST_CACHE_ENABLED as Td, TOAST_CACHE_DISABLED as xd } from "./LogoEntry.BwA2ssO6.js";
5
+ import { e as tn, ChatContext as Le, useTheme as Ke, ButtonIcon as rt, IconAddLight as zu, IconCloseLight as Zu, IconEditLight as Fu, Button as Ya, L as uo, j as Ft, IconLockedLight as Uu, IconUnlockedLight as ju, IconNext as Bu, IconSelected as Vu, IconUnSelected as Hu, PromptsContext as Mo, IconBookSparklesLight as Wu, IconRewrite as Gu, IconProofread as Ku, IconMagic as Yu, IconLightBulbLight as Ju, IconSendLight as Xu, INPUT_PLACEHOLDER_TEXT_IN_SESSION as Ja, INPUT_PLACEHOLDER_TEXT_MORNING as qu, INPUT_PLACEHOLDER_TEXT_TODAY as Qu, INPUT_PLACEHOLDER_TEXT_AFTERNOON as ed, INPUT_PLACEHOLDER_TEXT_EVENING as td, INPUT_PLACEHOLDER_TEXT_NIGHT as nd, INPUT_PLACEHOLDER_TEXT_DEFAULT as rd, IconClose as od, AppContext as yn, useUniqueId as sd, CLIPBOARD_PROMPT as ps, FOOTER_DISCLAIMERS as ms, useResizeObserver as Xa, APP_SET_FOOTER_HEIGHT as ad, FOOTER_TOP as fo, FOOTER_BOTTOM as nn, APP_SET_FOOTER_POSITION as Fr, IconOpenAI as id, IconAnthropic as cd, IconGoogleGemini as ld, TOAST_PROVIDER_CHANGED as hs, LOG_OUT as gs, IconProfile as ud, IconSliders as dd, IconHistory as fd, IconEditUser as pd, IconChart as md, IconInfo as hd, IconBack as gd, IconSettings as vd, Logo as yd, appReducer as wd, APP_SET_OLED_MODE as bd, APP_SET_FULL_SCREEN as _d, APP_SET_THEME_MODE as Ed, APP_SET_THEME_PALETTE as Sd, HistoryContext as Id, APP_CLASSNAME as Cd, TOAST_CACHE_ENABLED as Td, TOAST_CACHE_DISABLED as xd } from "./LogoEntry._hzptl5K.js";
6
6
  import Z, { clsx as lt } from "clsx";
7
7
  import { useMergeRefs as Ad, FloatingPortal as Rd, FloatingOverlay as Od, FloatingFocusManager as Nd, useFloating as Md, useClick as kd, useDismiss as Pd, useRole as Dd, useInteractions as $d } from "@floating-ui/react";
8
8
  import * as qa from "react-dom";
@@ -106,12 +106,7 @@ const vI = (e, t) => {
106
106
  return String.fromCharCode(+`0x${r}`);
107
107
  })), _I = (e) => decodeURIComponent(window.atob(e).split("").map(function(t) {
108
108
  return `%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`;
109
- }).join("")), EI = (e) => {
110
- if (!e)
111
- return "";
112
- const t = e.replace(/([A-Z])/g, " $1").replace(/\s+/g, " ").trim();
113
- return t ? t.charAt(0).toUpperCase() + t.slice(1) : "";
114
- };
109
+ }).join(""));
115
110
  var ni = "vercel.ai.error", jd = Symbol.for(ni), ri, Bd = class oi extends Error {
116
111
  /**
117
112
  * Creates an AI SDK Error.
@@ -5841,7 +5836,7 @@ const sc = async () => (Gr || (Gr = import(
5841
5836
  "./index.790ujKXR.js"
5842
5837
  )), Gr), ac = async () => (Kr || (Kr = import(
5843
5838
  /* webpackChunkName: "toast-utilities" */
5844
- "./index.DVCf7tp5.js"
5839
+ "./index.BeTlnSxo.js"
5845
5840
  ).then((e) => e.utilities)), Kr), kv = async () => {
5846
5841
  try {
5847
5842
  await Promise.all([sc(), ac()]);
@@ -5881,17 +5876,18 @@ const sc = async () => (Gr || (Gr = import(
5881
5876
  privateChat: t.payload.privateChat
5882
5877
  };
5883
5878
  case xt: {
5884
- let n = !1, r = !1, o = !1, s = !1, i = "", a = 0, c = e.tokenUsage;
5885
- return typeof t?.payload?.loading == "boolean" ? o = t.payload.loading : typeof e.loading == "boolean" && (o = e.loading), typeof t?.payload?.streaming == "boolean" ? r = t.payload.streaming : typeof e.streaming == "boolean" && (r = e.streaming), typeof t?.payload?.restoring == "boolean" ? (n = t.payload.restoring, i = t.payload.restoredModel || "", a = t.payload.restoredUsage || 0, n && (c = a)) : typeof e.restoring == "boolean" && (n = e.restoring, i = e.restoredModel || "", a = e.restoredUsage || 0), typeof t?.payload?.aborted == "boolean" ? s = t.payload.aborted : typeof e.aborted == "boolean" && (s = e.aborted), (r || o) && (n = !1, i = "", a = 0, s = !1), {
5879
+ let n = !1, r = !1, o = !1, s = !1, i = "", a = "", c = 0, l = e.tokenUsage;
5880
+ return typeof t?.payload?.loading == "boolean" ? o = t.payload.loading : typeof e.loading == "boolean" && (o = e.loading), typeof t?.payload?.streaming == "boolean" ? r = t.payload.streaming : typeof e.streaming == "boolean" && (r = e.streaming), typeof t?.payload?.restoring == "boolean" ? (n = t.payload.restoring, i = t.payload.restoredModel || "", a = t.payload.restoredTimestamp || "", c = t.payload.restoredUsage || 0, n && (l = c)) : typeof e.restoring == "boolean" && (n = e.restoring, i = e.restoredModel || "", a = e.restoredTimestamp || "", c = e.restoredUsage || 0), typeof t?.payload?.aborted == "boolean" ? s = t.payload.aborted : typeof e.aborted == "boolean" && (s = e.aborted), (r || o) && (n = !1, i = "", a = "", c = 0, s = !1), {
5886
5881
  ...e,
5887
5882
  reseting: !1,
5888
5883
  streaming: r,
5889
5884
  loading: o,
5890
5885
  restoring: n,
5891
5886
  restoredModel: i,
5892
- restoredUsage: a,
5887
+ restoredTimestamp: a,
5888
+ restoredUsage: c,
5893
5889
  aborted: s,
5894
- tokenUsage: t.payload.tokenUsage ? c + t.payload.tokenUsage : c,
5890
+ tokenUsage: t.payload.tokenUsage ? l + t.payload.tokenUsage : l,
5895
5891
  attachments: t.payload.attachments !== void 0 ? t.payload.attachments : e.attachments,
5896
5892
  lastStreamingTimestamp: r ? Date.now() : e.lastStreamingTimestamp
5897
5893
  };
@@ -5912,6 +5908,7 @@ const sc = async () => (Gr || (Gr = import(
5912
5908
  streaming: !1,
5913
5909
  loading: !1,
5914
5910
  restoring: !1,
5911
+ restoredTimestamp: "",
5915
5912
  aborted: !1,
5916
5913
  lastResetTimestamp: Date.now(),
5917
5914
  lastStreamingTimestamp: 0
@@ -6237,6 +6234,7 @@ const ta = ({
6237
6234
  loading: !1,
6238
6235
  restoring: !0,
6239
6236
  restoredModel: u?.model || "",
6237
+ restoredTimestamp: u?.timestamp || "",
6240
6238
  restoredUsage: u?.tokenUsage || 0
6241
6239
  }
6242
6240
  }), t(c), n(u.messages), a(!0));
@@ -8543,22 +8541,23 @@ const Sw = "av-toggle", Iw = ({ narrow: e }) => Z(
8543
8541
  customStrings: o,
8544
8542
  noCancelAction: s = !1,
8545
8543
  primaryActionVariant: i = "danger",
8544
+ maxHeight: a = "small",
8546
8545
  /**
8547
8546
  * Optional toggle props. If toggleLabel is provided, a toggle will be rendered
8548
8547
  * on the left side of the footer while actions remain on the right.
8549
8548
  */
8550
- toggleLabel: a,
8551
- toggleName: c,
8552
- toggleChecked: l,
8553
- onToggleChange: d
8549
+ toggleLabel: c,
8550
+ toggleName: l,
8551
+ toggleChecked: d,
8552
+ onToggleChange: u
8554
8553
  }) => {
8555
- const u = X(null), g = /* @__PURE__ */ $(uo, { columnGap: 2, alignHorizontal: "flex-end", children: [
8554
+ const g = X(null), m = /* @__PURE__ */ $(uo, { columnGap: 2, alignHorizontal: "flex-end", children: [
8556
8555
  /* @__PURE__ */ h(Ft, { children: !s && /* @__PURE__ */ h(
8557
8556
  kw,
8558
8557
  {
8559
8558
  onOpenChange: t,
8560
8559
  label: o.cancelAction,
8561
- ref: u
8560
+ ref: g
8562
8561
  }
8563
8562
  ) }),
8564
8563
  /* @__PURE__ */ h(Ft, { children: /* @__PURE__ */ h(
@@ -8574,7 +8573,7 @@ const Sw = "av-toggle", Iw = ({ narrow: e }) => Z(
8574
8573
  children: o.confirmAction
8575
8574
  }
8576
8575
  ) })
8577
- ] }), m = a ? /* @__PURE__ */ $(
8576
+ ] }), p = c ? /* @__PURE__ */ $(
8578
8577
  uo,
8579
8578
  {
8580
8579
  alignHorizontal: "space-between",
@@ -8588,18 +8587,18 @@ const Sw = "av-toggle", Iw = ({ narrow: e }) => Z(
8588
8587
  mode: "dark",
8589
8588
  focusMode: "light",
8590
8589
  noBorder: !0,
8591
- label: a,
8592
- name: c || a.toLowerCase().replace(/\s+/g, "-"),
8593
- checked: l,
8594
- onChange: (p) => {
8595
- d && d(p);
8590
+ label: c,
8591
+ name: l || c.toLowerCase().replace(/\s+/g, "-"),
8592
+ checked: d,
8593
+ onChange: (f) => {
8594
+ u && u(f);
8596
8595
  }
8597
8596
  }
8598
8597
  ) }),
8599
- /* @__PURE__ */ h(Ft, { span: "auto", children: g })
8598
+ /* @__PURE__ */ h(Ft, { span: "auto", children: m })
8600
8599
  ]
8601
8600
  }
8602
- ) : g;
8601
+ ) : m;
8603
8602
  return /* @__PURE__ */ h(
8604
8603
  ww,
8605
8604
  {
@@ -8607,9 +8606,10 @@ const Sw = "av-toggle", Iw = ({ narrow: e }) => Z(
8607
8606
  open: e,
8608
8607
  onOpenChange: t,
8609
8608
  title: o.title,
8610
- footer: m,
8609
+ footer: p,
8611
8610
  blurEffect: "large",
8612
- initialFocus: u,
8611
+ initialFocus: g,
8612
+ maxHeight: a,
8613
8613
  children: r
8614
8614
  }
8615
8615
  );
@@ -8672,6 +8672,7 @@ const Sw = "av-toggle", Iw = ({ narrow: e }) => Z(
8672
8672
  {
8673
8673
  toggleLabel: "Don't show this again",
8674
8674
  toggleName: "private-disclosure",
8675
+ maxHeight: "medium",
8675
8676
  toggleChecked: g,
8676
8677
  onToggleChange: (S) => m(S),
8677
8678
  showConfirmation: p,
@@ -11524,6 +11525,7 @@ const sS = (e) => {
11524
11525
  {
11525
11526
  toggleLabel: "Don't show this again",
11526
11527
  toggleName: "reasoning-disclosure",
11528
+ maxHeight: "medium",
11527
11529
  toggleChecked: p,
11528
11530
  onToggleChange: (_) => f(_),
11529
11531
  showConfirmation: c,
@@ -12398,38 +12400,38 @@ const uS = [".png", ".jpg", ".jpeg", ".webp"], dS = [".pdf", ".txt"], fS = [
12398
12400
  }, jS = nt(
12399
12401
  () => import(
12400
12402
  /* webpackChunkName: "modal-chunk" */
12401
- "./ProfileEntry.Cotp19Aj.js"
12403
+ "./ProfileEntry.DIQtOnWx.js"
12402
12404
  ).then((e) => ({
12403
12405
  default: e.Profile
12404
12406
  }))
12405
12407
  ), BS = nt(
12406
12408
  () => import(
12407
12409
  /* webpackChunkName: "modal-chunk" */
12408
- "./SettingsEntry.C55bTACC.js"
12410
+ "./SettingsEntry.DzdlYRls.js"
12409
12411
  ).then((e) => ({
12410
12412
  default: e.SettingsPanel
12411
12413
  }))
12412
12414
  ), VS = nt(
12413
12415
  () => import(
12414
12416
  /* webpackChunkName: "modal-chunk" */
12415
- "./HistoryEntry.BSAHx4eZ.js"
12417
+ "./HistoryEntry.Cfj7zpsO.js"
12416
12418
  ).then((e) => ({
12417
12419
  default: e.HistoryPanel
12418
12420
  }))
12419
12421
  ), HS = nt(
12420
12422
  () => import(
12421
12423
  /* webpackChunkName: "modal-chunk" */
12422
- "./AboutEntry.BAR4O6Y4.js"
12424
+ "./AboutEntry.DUtXxWlx.js"
12423
12425
  ).then((e) => ({ default: e.About }))
12424
12426
  ), WS = nt(
12425
12427
  () => import(
12426
12428
  /* webpackChunkName: "modal-chunk" */
12427
- "./UsageEntry.HvLHOBP5.js"
12429
+ "./UsageEntry.BH_ezlOO.js"
12428
12430
  ).then((e) => ({ default: e.Usage }))
12429
12431
  ), GS = nt(
12430
12432
  () => import(
12431
12433
  /* webpackChunkName: "modal-chunk" */
12432
- "./MemoriesEntry.Cz7T3caz.js"
12434
+ "./MemoriesEntry.d_q-JhJM.js"
12433
12435
  ).then((e) => ({ default: e.default }))
12434
12436
  ), KS = ({
12435
12437
  open: e,
@@ -12477,23 +12479,23 @@ const uS = [".png", ".jpg", ".jpeg", ".webp"], dS = [".pdf", ".txt"], fS = [
12477
12479
  p || Promise.all([
12478
12480
  import(
12479
12481
  /* webpackChunkName: "modal-chunk" */
12480
- "./ProfileEntry.Cotp19Aj.js"
12482
+ "./ProfileEntry.DIQtOnWx.js"
12481
12483
  ),
12482
12484
  import(
12483
12485
  /* webpackChunkName: "modal-chunk" */
12484
- "./SettingsEntry.C55bTACC.js"
12486
+ "./SettingsEntry.DzdlYRls.js"
12485
12487
  ),
12486
12488
  import(
12487
12489
  /* webpackChunkName: "modal-chunk" */
12488
- "./HistoryEntry.BSAHx4eZ.js"
12490
+ "./HistoryEntry.Cfj7zpsO.js"
12489
12491
  ),
12490
12492
  import(
12491
12493
  /* webpackChunkName: "modal-chunk" */
12492
- "./AboutEntry.BAR4O6Y4.js"
12494
+ "./AboutEntry.DUtXxWlx.js"
12493
12495
  ),
12494
12496
  import(
12495
12497
  /* webpackChunkName: "modal-chunk" */
12496
- "./UsageEntry.HvLHOBP5.js"
12498
+ "./UsageEntry.BH_ezlOO.js"
12497
12499
  )
12498
12500
  ]).finally(() => f(!0));
12499
12501
  }, [p]), y = G((O) => {
@@ -12787,18 +12789,18 @@ const La = "av-spinner", ru = ({ spinnerRef: e, mode: t = "system", type: n = "c
12787
12789
  ]
12788
12790
  });
12789
12791
  }, QS = nt(
12790
- () => import("./index.j05AJWYD.js").then((e) => ({ default: e.Bubble }))
12792
+ () => import("./Bubble.CMHhu8Uu.js").then((e) => ({ default: e.Bubble }))
12791
12793
  ), is = (e) => /* @__PURE__ */ h(tr, { fallback: /* @__PURE__ */ h("span", { className: "inline-block" }), children: /* @__PURE__ */ h(QS, { ...e }) });
12792
12794
  is.displayName = "AsyncBubble";
12793
12795
  const za = 1, eI = 150, tI = nt(
12794
12796
  () => import(
12795
12797
  /* webpackChunkName: "LazyMessageAssistant" */
12796
- "./ChatBubbleAssistant.B5Un5WKI.js"
12798
+ "./ChatBubbleAssistant.C2BK2j1e.js"
12797
12799
  )
12798
12800
  ), nI = nt(
12799
12801
  () => import(
12800
12802
  /* webpackChunkName: "LazyMessageUser" */
12801
- "./ChatBubbleUser.DEe4IIdl.js"
12803
+ "./ChatBubbleUser.DiLNCz62.js"
12802
12804
  )
12803
12805
  ), rI = st.memo(
12804
12806
  ({
@@ -12993,7 +12995,8 @@ function ou({
12993
12995
  tokenUsage: 0,
12994
12996
  attachments: 0,
12995
12997
  lastStreamingTimestamp: 0,
12996
- lastResetTimestamp: 0
12998
+ lastResetTimestamp: 0,
12999
+ restoredTimestamp: ""
12997
13000
  }), { data: P } = vt({
12998
13001
  user: n?.username,
12999
13002
  getAccessToken: r
@@ -13132,9 +13135,9 @@ function ou({
13132
13135
  );
13133
13136
  }
13134
13137
  ou.displayName = "App";
13135
- const SI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: ou }, Symbol.toStringTag, { value: "Module" }));
13138
+ const EI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: ou }, Symbol.toStringTag, { value: "Module" }));
13136
13139
  export {
13137
- SI as App,
13140
+ EI as App,
13138
13141
  is as AsyncBubble,
13139
13142
  qS as ButtonScroll,
13140
13143
  Bt as CHAT_RESET,
@@ -13150,7 +13153,6 @@ export {
13150
13153
  ww as Panel,
13151
13154
  wt as ResponsiveTooltip,
13152
13155
  Mw as Toggle,
13153
- EI as convertStringToHumanReadable,
13154
13156
  vI as debounce,
13155
13157
  rv as getDefaultExportFromCjs,
13156
13158
  ei as isProbablyMobile,
@@ -0,0 +1,183 @@
1
+ import { jsxs as _, jsx as o } from "react/jsx-runtime";
2
+ import { ButtonIcon as I, IconCopied as E, IconCopy as N } from "./LogoEntry._hzptl5K.js";
3
+ import { useState as S, useEffect as U } from "react";
4
+ import t from "clsx";
5
+ /*!
6
+ @versini/ui-bubble v10.1.0
7
+ © 2025 gizmette.com
8
+ */
9
+ try {
10
+ window.__VERSINI_UI_BUBBLE__ || (window.__VERSINI_UI_BUBBLE__ = {
11
+ version: "10.1.0",
12
+ buildTime: "12/22/2025 07:40 PM EST",
13
+ homepage: "https://www.npmjs.com/package/@versini/ui-bubble",
14
+ license: "MIT"
15
+ });
16
+ } catch {
17
+ }
18
+ const i = "av-bubble";
19
+ /*!
20
+ @versini/ui-bubble v10.1.0
21
+ © 2025 gizmette.com
22
+ */
23
+ try {
24
+ window.__VERSINI_UI_BUBBLE__ || (window.__VERSINI_UI_BUBBLE__ = {
25
+ version: "10.1.0",
26
+ buildTime: "12/22/2025 07:40 PM EST",
27
+ homepage: "https://www.npmjs.com/package/@versini/ui-bubble",
28
+ license: "MIT"
29
+ });
30
+ } catch {
31
+ }
32
+ const C = ({ kind: e, noMaxWidth: r }) => t("px-4 py-2", {
33
+ "max-w-xs sm:max-w-md md:max-w-2xl": !r,
34
+ "lg:max-w-3xl": e === "left" && !r
35
+ }), T = ({ kind: e, gradient: r }) => r ? r === "light" ? t({
36
+ "bg-linear-to-b from-surface-light/80 to-surface-light dark:from-surface-dark/80 dark:to-surface-dark": e === "left",
37
+ "bg-linear-to-b from-surface-accent/80 to-surface-accent": e === "right"
38
+ }) : r === "medium" ? t({
39
+ "bg-linear-to-b from-surface-light/65 to-surface-light dark:from-surface-dark/65 dark:to-surface-dark": e === "left",
40
+ "bg-linear-to-b from-surface-accent/65 to-surface-accent": e === "right"
41
+ }) : t({
42
+ "bg-linear-to-b from-surface-light/50 to-surface-light dark:from-surface-dark/50 dark:to-surface-dark": e === "left",
43
+ "bg-linear-to-b from-surface-accent/50 to-surface-accent": e === "right"
44
+ }) : t({
45
+ "bg-surface-light dark:bg-surface-dark": e === "left",
46
+ "bg-surface-accent": e === "right"
47
+ }), L = ({ kind: e }) => t("prose prose-dark dark:prose-lighter", "prose-blockquote:my-1", "prose-ol:my-1 prose-ul:my-1", {
48
+ "text-copy-lighter": e === "right"
49
+ }), $ = ({ kind: e, tail: r }) => {
50
+ if (r)
51
+ return t(`${i}-${e}-tail`, "rounded-3xl", "relative", "before:content-['']", "before:w-3", "before:h-2", "before:absolute", "before:bottom-0", {
52
+ "last-bubble-right:before:right-0.5 last-bubble-right:before:border-l-8 last-bubble-right:before:border-l-surface-accent last-bubble-right:before:rounded-bl-[100%]": e === "right",
53
+ "last-bubble-left:before:left-0.5 last-bubble-left:before:border-r-8 last-bubble-left:before:border-r-surface-light last-bubble-left:dark:before:border-r-surface-dark last-bubble-left:before:rounded-br-[100%]": e === "left"
54
+ });
55
+ if (!r)
56
+ return t("rounded-b-xl", {
57
+ "rounded-tr-xl": e === "left",
58
+ "rounded-tl-xl": e === "right"
59
+ });
60
+ }, j = ({ kind: e, className: r, contentClassName: u, footerClassName: n, noMaxWidth: m, tail: l, gradient: b }) => {
61
+ const s = t(i, `${i}-${e}`, "flex items-start", {
62
+ "flex-row-reverse": e === "right"
63
+ }, r), p = t(`${i}-content`, "flex flex-col empty:hidden", C({
64
+ kind: e,
65
+ noMaxWidth: m
66
+ }), L({
67
+ kind: e
68
+ }), T({
69
+ kind: e,
70
+ gradient: b
71
+ }), $({
72
+ kind: e,
73
+ tail: l
74
+ }), u), d = t("pr-2 pt-1 text-end text-xs text-copy-light", n), g = t("flex flex-col-reverse sm:flex-row", {
75
+ "ml-2": e === "left" && !l,
76
+ "mr-2": e === "right" && !l,
77
+ "ml-1": e === "left" && l,
78
+ "mr-1": e === "right" && l
79
+ });
80
+ return {
81
+ wrapper: s,
82
+ main: p,
83
+ footer: d,
84
+ copyButton: g
85
+ };
86
+ };
87
+ /*!
88
+ @versini/ui-bubble v10.1.0
89
+ © 2025 gizmette.com
90
+ */
91
+ try {
92
+ window.__VERSINI_UI_BUBBLE__ || (window.__VERSINI_UI_BUBBLE__ = {
93
+ version: "10.1.0",
94
+ buildTime: "12/22/2025 07:40 PM EST",
95
+ homepage: "https://www.npmjs.com/package/@versini/ui-bubble",
96
+ license: "MIT"
97
+ });
98
+ } catch {
99
+ }
100
+ const k = (e) => typeof e == "object" && e !== null && "isEmpty" in e && e.isEmpty === !0, M = (e) => typeof e == "object" && e !== null && "key" in e && "value" in e, A = ({ children: e, kind: r = "left", className: u, contentClassName: n, footerClassName: m, footer: l, rawFooter: b, copyToClipboard: s, copyToClipboardFocusMode: p = "system", copyToClipboardMode: d = "system", noMaxWidth: g = !1, tail: w = !1, gradient: y }) => {
101
+ const [f, B] = S(!1), c = j({
102
+ kind: r,
103
+ className: u,
104
+ contentClassName: n,
105
+ footerClassName: m,
106
+ noMaxWidth: g,
107
+ tail: w,
108
+ gradient: y
109
+ }), x = !!s && (typeof s == "function" || typeof s == "string" || typeof e == "string"), v = () => {
110
+ B(!0), typeof s == "function" ? s(e) : typeof s == "string" ? navigator.clipboard.writeText(s) : typeof e == "string" && navigator.clipboard.writeText(e);
111
+ };
112
+ return U(() => {
113
+ let a;
114
+ return f && (a = window.setTimeout(() => {
115
+ B(!1);
116
+ }, 3e3)), () => {
117
+ clearTimeout(a);
118
+ };
119
+ }, [
120
+ f
121
+ ]), /* @__PURE__ */ _("div", {
122
+ className: c.wrapper,
123
+ children: [
124
+ /* @__PURE__ */ _("div", {
125
+ children: [
126
+ /* @__PURE__ */ o("div", {
127
+ className: c.main,
128
+ children: e
129
+ }),
130
+ l && l.map((a, h) => k(a) ? /* @__PURE__ */ o("div", {
131
+ className: "prose-p:m-0",
132
+ children: /* @__PURE__ */ o("p", {
133
+ className: c.footer,
134
+ "aria-hidden": "true",
135
+ children: /* @__PURE__ */ o("span", {
136
+ className: "invisible",
137
+ children: " "
138
+ })
139
+ })
140
+ }, `footer-empty-${h}`) : M(a) ? /* @__PURE__ */ o("div", {
141
+ className: "prose-p:m-0",
142
+ children: /* @__PURE__ */ _("p", {
143
+ className: c.footer,
144
+ children: [
145
+ a.key,
146
+ ": ",
147
+ a.value
148
+ ]
149
+ })
150
+ }, `footer-kv-${h}`) : /* @__PURE__ */ o("div", {
151
+ className: "prose-p:m-0",
152
+ children: /* @__PURE__ */ o("p", {
153
+ className: c.footer,
154
+ children: a.value
155
+ })
156
+ }, `footer-val-${h}`)),
157
+ b && b
158
+ ]
159
+ }),
160
+ x && /* @__PURE__ */ o("div", {
161
+ className: c.copyButton,
162
+ children: /* @__PURE__ */ o(I, {
163
+ noBorder: !0,
164
+ noBackground: !0,
165
+ size: "small",
166
+ mode: d,
167
+ focusMode: p,
168
+ label: f ? "Copied to clipboard" : "Copy to clipboard",
169
+ onClick: v,
170
+ disabled: f,
171
+ children: f ? /* @__PURE__ */ o(E, {
172
+ size: "size-3"
173
+ }) : /* @__PURE__ */ o(N, {
174
+ size: "size-3"
175
+ })
176
+ })
177
+ })
178
+ ]
179
+ });
180
+ };
181
+ export {
182
+ A as Bubble
183
+ };
@@ -1,7 +1,7 @@
1
1
  import { jsx as Pp } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as dn, isProbablyMobile as Op } from "./App.B9tjGMnG.js";
2
+ import { getDefaultExportFromCjs as dn, isProbablyMobile as Op } from "./App.BERAIqpH.js";
3
3
  import Lp, { useMemo as Ep } from "react";
4
- import { TRIMESTERS_SHORT as Ip, TRIMESTERS as on, TIME_RANGES as ls, TIME_RANGE_LABELS as an } from "./LogoEntry.BwA2ssO6.js";
4
+ import { TRIMESTERS_SHORT as Ip, TRIMESTERS as on, TIME_RANGES as ls, TIME_RANGE_LABELS as an } from "./LogoEntry._hzptl5K.js";
5
5
  var hs = { exports: {} }, Dp = hs.exports, nn;
6
6
  function Bp() {
7
7
  return nn || (nn = 1, (function(Ae, pe) {