@versini/sassysaint 8.15.3 → 8.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  var bs = Object.defineProperty;
2
2
  var ps = (e, t, n) => t in e ? bs(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
3
  var _e = (e, t, n) => ps(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { createContext as we, createSignal as z, onMount as Nt, createEffect as U, createMemo as D, createComponent as y, Portal as Oo, Show as K, template as _, insert as k, createRenderEffect as V, className as F, clearDelegatedEvents as ws, delegateEvents as rr, useContext as xe, onCleanup as j, sortFns as Vn, mutationSortFns as Gn, on as ct, setAttribute as A, getSidedProp as xs, use as Dn, batch as $s, getQueryStatusLabel as Pt, getMutationStatusColor as qt, getQueryStatusColor as Cs, getQueryStatusColorByLabel as Ss, displayValue as pn, For as ks, convertRemToPixels as Rr, untrack as Rt, useTransition as Es, spread as Ds, mergeProps as W, createRoot as zr, serialize as Ms, Index as As, updateNestedDataByPath as or, addEventListener as Fs, stringify as Ts, Match as Rn, Switch as Is, deleteNestedDataByPath as Ls, createUniqueId as Ne, splitProps as re, Dynamic as Ps, createComputed as Os, getPreferredColorScheme as _s } from "./index.6_64ziFG.js";
4
+ import { createContext as we, createSignal as z, onMount as Nt, createEffect as U, createMemo as D, createComponent as y, Portal as Oo, Show as K, template as _, insert as k, createRenderEffect as V, className as F, clearDelegatedEvents as ws, delegateEvents as rr, useContext as xe, onCleanup as j, sortFns as Vn, mutationSortFns as Gn, on as ct, setAttribute as A, getSidedProp as xs, use as Dn, batch as $s, getQueryStatusLabel as Pt, getMutationStatusColor as qt, getQueryStatusColor as Cs, getQueryStatusColorByLabel as Ss, displayValue as pn, For as ks, convertRemToPixels as Rr, untrack as Rt, useTransition as Es, spread as Ds, mergeProps as W, createRoot as zr, serialize as Ms, Index as As, updateNestedDataByPath as or, addEventListener as Fs, stringify as Ts, Match as Rn, Switch as Is, deleteNestedDataByPath as Ls, createUniqueId as Ne, splitProps as re, Dynamic as Ps, createComputed as Os, getPreferredColorScheme as _s } from "./index.Bd7i92G6.js";
5
5
  var qs = (e) => e != null, Rs = (e) => e.filter(qs);
6
6
  function zs(e) {
7
7
  return (...t) => {
@@ -1,7 +1,7 @@
1
1
  import { jsx as nn, Fragment as Op } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as pn } from "./App.Cyg4E7eH.js";
2
+ import { getDefaultExportFromCjs as pn } from "./App.DmzmC9o6.js";
3
3
  import Lp, { useState as Ep, useEffect as Ip } from "react";
4
- import { TRIMESTERS as ln, TRIMESTERS_SHORT as Dp, isProbablyMobile as Bp } from "./index.6_64ziFG.js";
4
+ import { TRIMESTERS as ln, TRIMESTERS_SHORT as Dp, isProbablyMobile as Bp } from "./index.Bd7i92G6.js";
5
5
  var ds = { exports: {} }, Np = ds.exports, hn;
6
6
  function zp() {
7
7
  return hn || (hn = 1, function(we, he) {
@@ -0,0 +1,74 @@
1
+ import { jsx as E } from "react/jsx-runtime";
2
+ import { ChatContext as O, E as _, ze as N, Me as S } from "./App.DmzmC9o6.js";
3
+ import R from "clsx";
4
+ import w, { useState as g, useRef as x, useEffect as b, useContext as F } from "react";
5
+ import { LOCAL_STORAGE_PREFIX as G, LOCAL_STORAGE_CHAT_DETAILS as k, convertCamelCaseToReadable as I, numberFormatter as P, pluralize as U, ROLE_INTERNAL as v } from "./index.Bd7i92G6.js";
6
+ import { useMarkdown as y } from "./useMarkdown.DNPRPnhX.js";
7
+ const D = 2, j = D * 1e3, h = "", q = (e) => e * (2 - e);
8
+ function V(e, t = !0) {
9
+ const [i, d] = g(0), [c, C] = g(0), [r, p] = g(e), s = x(0), o = x(0);
10
+ return r !== e && (p(e), C(e.startsWith(r) ? i : 0)), b(() => {
11
+ if (!t)
12
+ return;
13
+ const A = e.split(h).length, u = (n) => {
14
+ o.current || (o.current = n);
15
+ const m = n - o.current, l = Math.min(m / j, 1), T = q(l), a = c + (A - c) * T;
16
+ d(Math.floor(a)), l < 1 && (s.current = requestAnimationFrame(u));
17
+ };
18
+ return o.current = 0, s.current = requestAnimationFrame(u), () => {
19
+ s.current && cancelAnimationFrame(s.current);
20
+ };
21
+ }, [c, e, t]), t ? e.split(h).slice(0, i).join(h) : e;
22
+ }
23
+ const f = {
24
+ MODEL: "Model",
25
+ PLUGIN: "Plugin",
26
+ USAGE: "Session usage"
27
+ }, M = R("max-w-[99cqw] mt-3"), L = R("max-w-xs", "sm:max-w-3xl", "prose-li:ps-3"), X = w.memo(
28
+ ({
29
+ content: e,
30
+ annotations: t,
31
+ toolName: i,
32
+ role: d,
33
+ smooth: c = !1,
34
+ isLastAssistantMessage: C = !1
35
+ }) => {
36
+ const r = V(e, c), {
37
+ state: { streaming: p, restoredModel: s, usage: o, restoredUsage: A }
38
+ } = F(O), u = (t == null ? void 0 : t.model) || s, n = A || o, [m, l] = y(), [T] = _({
39
+ key: G + k,
40
+ initialValue: !1
41
+ });
42
+ let a;
43
+ return T && (a = {
44
+ [f.MODEL]: u || null,
45
+ [f.PLUGIN]: i ? I(i) : null
46
+ }, n && (C ? a[f.USAGE] = `${P.format(n)} ${U("token", n)}` : a[f.USAGE] = N)), b(() => {
47
+ r && l(r);
48
+ }, [r, l]), d === v ? /* @__PURE__ */ E(
49
+ S,
50
+ {
51
+ tail: !0,
52
+ className: M,
53
+ contentClassName: L,
54
+ noMaxWidth: !0,
55
+ children: /* @__PURE__ */ E("div", { className: "flex items-center justify-center italic text-copy-error-dark dark:text-red-300", children: m })
56
+ }
57
+ ) : /* @__PURE__ */ E(
58
+ S,
59
+ {
60
+ tail: !0,
61
+ copyToClipboard: p ? "loading..." : e,
62
+ copyToClipboardFocusMode: "light",
63
+ footer: a,
64
+ className: M,
65
+ contentClassName: L,
66
+ noMaxWidth: !0,
67
+ children: m
68
+ }
69
+ );
70
+ }
71
+ );
72
+ export {
73
+ X as default
74
+ };
@@ -3238,7 +3238,7 @@ var $u = (e, t = !1) => {
3238
3238
  const t = Ca(() => {
3239
3239
  const r = this, [n] = f(this, yt), [s] = f(this, mt), [i] = f(this, pt), [a] = f(this, gt), [o] = f(this, ft);
3240
3240
  let c;
3241
- return f(this, bt) ? c = f(this, bt) : (c = ga(() => import("./C2Q2AJ2U.BnZqBzQU.js")), v(this, bt, c)), Ao(f(this, jt), f(this, ht)), ha(c, ma({
3241
+ return f(this, bt) ? c = f(this, bt) : (c = ga(() => import("./C2Q2AJ2U.DurpF017.js")), v(this, bt, c)), Ao(f(this, jt), f(this, ht)), ha(c, ma({
3242
3242
  get queryFlavor() {
3243
3243
  return f(r, Bt);
3244
3244
  },
@@ -5459,7 +5459,12 @@ const Qc = (e) => Te(
5459
5459
  children: t[n]
5460
5460
  }
5461
5461
  )
5462
- ] }) }, `${e}-${n}`)) : null, tl = ({
5462
+ ] }) }, `${e}-${n}`)) : null, wd = new Intl.NumberFormat("en", {
5463
+ style: "decimal",
5464
+ signDisplay: "never",
5465
+ minimumFractionDigits: 0,
5466
+ maximumFractionDigits: 0
5467
+ }), tl = ({
5463
5468
  isAuthenticated: e,
5464
5469
  extraClass: t
5465
5470
  }) => b(
@@ -5470,18 +5475,18 @@ const Qc = (e) => Te(
5470
5475
  t
5471
5476
  ), rl = ({
5472
5477
  extraClass: e
5473
- } = {}) => b("px-2 sm:px-0", e), wd = (e, t) => t === 1 ? e : `${e}s`, vd = (e, t) => {
5478
+ } = {}) => b("px-2 sm:px-0", e), vd = (e, t) => t === 1 ? e : `${e}s`, Ed = (e, t) => {
5474
5479
  let r;
5475
5480
  return (...n) => {
5476
5481
  window.clearTimeout(r), r = window.setTimeout(() => e(...n), t);
5477
5482
  };
5478
- }, nl = () => !!(window != null && window.__VERSINI_CALLISTO_ELECTRON__), hi = () => window.innerWidth < 403, Ed = () => {
5483
+ }, nl = () => !!(window != null && window.__VERSINI_CALLISTO_ELECTRON__), hi = () => window.innerWidth < 403, Sd = () => {
5479
5484
  const e = ["iPhone Simulator", "iPhone"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = /iPhone/.test(navigator.userAgent), r = hi(), n = navigator.maxTouchPoints > 1;
5480
5485
  return e && t && r && n;
5481
- }, Sd = (e) => {
5486
+ }, Ad = (e) => {
5482
5487
  const t = e.replace(/([A-Z])/g, " $1");
5483
5488
  return t.charAt(0).toUpperCase() + t.slice(1);
5484
- }, Ad = ({
5489
+ }, Td = ({
5485
5490
  autoClose: e = 3e3,
5486
5491
  containerId: t,
5487
5492
  position: r = "top-center",
@@ -7034,17 +7039,17 @@ try {
7034
7039
  });
7035
7040
  } catch {
7036
7041
  }
7037
- const tu = "ASK! ME! ANYTHING!", Ei = "Callisto", ru = "Log in", nu = "Sign in with a Passkey", Td = "Log out", su = "Password", Id = "Usage", kd = "Profile", Rd = "Settings", Od = "Chat history", Cd = "About", _d = "Type your question here", Nd = "{{clipboard}}", Pd = `Sometimes, ${Ei} hallucinates. Review important details.`, xd = "Prompts are pre-filled menus available on the main screen, to help you quickly start requests. If you select the 'Private Chat' checkbox, the corresponding chat will not be saved. If you select the 'Clipboard Access' checkbox, your clipboard content (if any) will be provided to the request.", Dd = "Default provider set to", Ld = "Chat successfully deleted!", Md = "Chat successfully saved!", Ud = "av-sassy", $d = {
7042
+ const tu = "ASK! ME! ANYTHING!", Ei = "Callisto", ru = "Log in", nu = "Sign in with a Passkey", Id = "Log out", su = "Password", kd = "Usage", Rd = "Profile", Od = "Settings", Cd = "Chat history", _d = "About", Nd = "Type your question here", Pd = "{{clipboard}}", xd = `Sometimes, ${Ei} hallucinates. Review important details.`, Dd = "Prompts are pre-filled menus available on the main screen, to help you quickly start requests. If you select the 'Private Chat' checkbox, the corresponding chat will not be saved. If you select the 'Clipboard Access' checkbox, your clipboard content (if any) will be provided to the request.", Ld = "Default provider set to", Md = "Chat successfully deleted!", Ud = "Chat successfully saved!", $d = "av-sassy", Kd = {
7038
7043
  0: ["January", "February", "March"],
7039
7044
  3: ["April", "May", "June"],
7040
7045
  6: ["July", "August", "September"],
7041
7046
  9: ["October", "November", "December"]
7042
- }, Kd = {
7047
+ }, Hd = {
7043
7048
  0: ["Jan", "Feb", "Mar"],
7044
7049
  3: ["Apr", "May", "Jun"],
7045
7050
  6: ["Jul", "Aug", "Sep"],
7046
7051
  9: ["Oct", "Nov", "Dec"]
7047
- }, Hd = {
7052
+ }, Fd = {
7048
7053
  PREFERENCES: {
7049
7054
  TITLE: "User profile",
7050
7055
  NAME: "Name",
@@ -7217,7 +7222,7 @@ const tu = "ASK! ME! ANYTHING!", Ei = "Callisto", ru = "Log in", nu = "Sign in w
7217
7222
  ) });
7218
7223
  }, ou = new URL(document.location.href).searchParams, zn = !!ou.get("debug") || !1, cu = ki(() => import(
7219
7224
  /* webpackChunkName: "LazyApp" */
7220
- "./App.Cyg4E7eH.js"
7225
+ "./App.DmzmC9o6.js"
7221
7226
  ).then((e) => e.App)), lu = new zi(), Qn = ({
7222
7227
  isComponent: e,
7223
7228
  headerHeight: t
@@ -7240,7 +7245,7 @@ const tu = "ASK! ME! ANYTHING!", Ei = "Callisto", ru = "Log in", nu = "Sign in w
7240
7245
  endpoint: process.env.PUBLIC_AUTH_SERVER_URL,
7241
7246
  children: /* @__PURE__ */ p(Qn, { isComponent: e, headerHeight: t })
7242
7247
  }
7243
- ) : /* @__PURE__ */ p(jn, { clientId: Gn, domain: r, debug: zn, children: /* @__PURE__ */ p(Qn, { isComponent: e, headerHeight: t }) }), Fd = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ p(
7248
+ ) : /* @__PURE__ */ p(jn, { clientId: Gn, domain: r, debug: zn, children: /* @__PURE__ */ p(Qn, { isComponent: e, headerHeight: t }) }), Bd = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ p(
7244
7249
  uu,
7245
7250
  {
7246
7251
  isComponent: !0,
@@ -7249,27 +7254,27 @@ const tu = "ASK! ME! ANYTHING!", Ei = "Callisto", ru = "Log in", nu = "Sign in w
7249
7254
  }
7250
7255
  );
7251
7256
  export {
7252
- Cd as ABOUT_TITLE,
7257
+ _d as ABOUT_TITLE,
7253
7258
  Zu as ACTION_RESET_PROMPT,
7254
7259
  Qu as ACTION_SEARCH,
7255
7260
  Yu as ACTION_SORT,
7256
7261
  Xu as ACTION_TOGGLE_PROMPT,
7257
- Ud as APP_CLASSNAME,
7262
+ $d as APP_CLASSNAME,
7258
7263
  Ei as APP_NAME,
7259
7264
  mi as C,
7260
- Hd as CARDS,
7261
- Nd as CLIPBOARD_PROMPT,
7265
+ Fd as CARDS,
7266
+ Pd as CLIPBOARD_PROMPT,
7262
7267
  ud as DEFAULT_ICON_ACTION_SIZE,
7263
7268
  Nu as Dynamic,
7264
7269
  zu as ERROR_MESSAGE,
7265
- Pd as FOOTER_DISCLAIMER,
7270
+ xd as FOOTER_DISCLAIMER,
7266
7271
  Au as For,
7267
7272
  yd as GRANTS,
7268
- Od as HISTORY_TITLE,
7273
+ Cd as HISTORY_TITLE,
7269
7274
  _r as I,
7270
7275
  od as INFINITE_SCROLL_LIMIT,
7271
7276
  ad as INFINITE_SCROLL_THRESHOLD,
7272
- _d as INPUT_PLACEHOLDER_TEXT,
7277
+ Nd as INPUT_PLACEHOLDER_TEXT,
7273
7278
  Tu as Index,
7274
7279
  Dl as L,
7275
7280
  td as LOCAL_STORAGE_CHAT_DETAILS,
@@ -7278,36 +7283,36 @@ export {
7278
7283
  id as LOCAL_STORAGE_REASONING_DISCLOSURE,
7279
7284
  rd as LOCAL_STORAGE_SEARCH,
7280
7285
  nd as LOCAL_STORAGE_SORT,
7281
- Td as LOG_OUT,
7286
+ Id as LOG_OUT,
7282
7287
  iu as Logo,
7283
7288
  Ru as Match,
7284
- kd as PROFILE_TITLE,
7285
- xd as PROMPTS_DESCRIPTION,
7289
+ Rd as PROFILE_TITLE,
7290
+ Dd as PROMPTS_DESCRIPTION,
7286
7291
  cd as PROMPT_CLASSNAME,
7287
7292
  ld as PROMPT_EDITABLE_AREA_CLASSNAME,
7288
7293
  _u as Portal,
7289
7294
  di as Qr,
7290
7295
  Ju as ROLE_INTERNAL,
7291
7296
  kl as S,
7292
- Rd as SETTINGS_TITLE,
7293
- Fd as SassySaint,
7297
+ Od as SETTINGS_TITLE,
7298
+ Bd as SassySaint,
7294
7299
  Iu as Show,
7295
7300
  Sr as Subscribable,
7296
7301
  ku as Switch,
7297
- Ld as TOAST_CHAT_DELETED,
7298
- Md as TOAST_CHAT_SAVED,
7299
- Dd as TOAST_PROVIDER_CHANGED,
7300
- $d as TRIMESTERS,
7301
- Kd as TRIMESTERS_SHORT,
7302
+ Md as TOAST_CHAT_DELETED,
7303
+ Ud as TOAST_CHAT_SAVED,
7304
+ Ld as TOAST_PROVIDER_CHANGED,
7305
+ Kd as TRIMESTERS,
7306
+ Hd as TRIMESTERS_SHORT,
7302
7307
  fd as UI_BUTTON_SCROLL_BUFFER,
7303
7308
  hd as UI_DEFAULT_MAIN_HEIGHT,
7304
7309
  dd as UI_FOOTER_BUFFER,
7305
- Id as USAGE_TITLE,
7310
+ kd as USAGE_TITLE,
7306
7311
  Da as addEventListener,
7307
7312
  pu as batch,
7308
7313
  xa as className,
7309
7314
  Cu as clearDelegatedEvents,
7310
- Sd as convertCamelCaseToReadable,
7315
+ Ad as convertCamelCaseToReadable,
7311
7316
  Fu as convertRemToPixels,
7312
7317
  ha as createComponent,
7313
7318
  Zi as createComputed,
@@ -7318,7 +7323,7 @@ export {
7318
7323
  qe as createRoot,
7319
7324
  ne as createSignal,
7320
7325
  Su as createUniqueId,
7321
- vd as debounce,
7326
+ Ed as debounce,
7322
7327
  _a as delegateEvents,
7323
7328
  Zt as deleteNestedDataByPath,
7324
7329
  $u as displayValue,
@@ -7337,7 +7342,7 @@ export {
7337
7342
  en as insert,
7338
7343
  nl as isElectron,
7339
7344
  hi as isProbablyMobile,
7340
- Ed as isProbablyiPhone,
7345
+ Sd as isProbablyiPhone,
7341
7346
  Ar as isServer,
7342
7347
  Oi as isValidTimeout,
7343
7348
  Ke as j,
@@ -7346,12 +7351,13 @@ export {
7346
7351
  Hu as mutationSortFns,
7347
7352
  oe as noop,
7348
7353
  te as notifyManager,
7354
+ wd as numberFormatter,
7349
7355
  pd as obfuscate,
7350
7356
  gu as on,
7351
7357
  Pt as onCleanup,
7352
7358
  ra as onMount,
7353
7359
  Ui as pendingThenable,
7354
- wd as pluralize,
7360
+ vd as pluralize,
7355
7361
  Wu as qr,
7356
7362
  Pl as r,
7357
7363
  wr as re,
@@ -7368,7 +7374,7 @@ export {
7368
7374
  Pu as stringify,
7369
7375
  Ou as template,
7370
7376
  Ci as timeUntilStale,
7371
- Ad as toastOptions,
7377
+ Td as toastOptions,
7372
7378
  gd as unObfuscate,
7373
7379
  W as untrack,
7374
7380
  Xt as updateNestedDataByPath,
@@ -1,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.C8RhZMMZ.js";
1
+ import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.DNPRPnhX.js";
2
2
  import { longestStreak as q } from "./index.Cyw5OC0t.js";
3
3
  function b() {
4
4
  return {
@@ -1,5 +1,5 @@
1
- import { parse as _t, parse$1 as er, visitParents as Za, SKIP as Ja } from "./useMarkdown.C8RhZMMZ.js";
2
- import { toText as Qa } from "./index.CQSzmI7B.js";
1
+ import { parse as _t, parse$1 as er, visitParents as Za, SKIP as Ja } from "./useMarkdown.DNPRPnhX.js";
2
+ import { toText as Qa } from "./index.COOlGnEc.js";
3
3
  class ye {
4
4
  /**
5
5
  * @constructor
@@ -1,4 +1,4 @@
1
- import { convert as E, convertElement as u } from "./useMarkdown.C8RhZMMZ.js";
1
+ import { convert as E, convertElement as u } from "./useMarkdown.DNPRPnhX.js";
2
2
  const f = (
3
3
  // Note: overloads like this are needed to support optional generics.
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { getDefaultExportFromCjs as kn } from "./App.Cyg4E7eH.js";
2
- import { visit as In } from "./useMarkdown.C8RhZMMZ.js";
3
- import { toText as Cn } from "./index.CQSzmI7B.js";
1
+ import { getDefaultExportFromCjs as kn } from "./App.DmzmC9o6.js";
2
+ import { visit as In } from "./useMarkdown.DNPRPnhX.js";
3
+ import { toText as Cn } from "./index.COOlGnEc.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,4 +1,4 @@
1
- import { convert as se, visitParents as Pe, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as $, visit as Me, toString as ce, EXIT as _e, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as Oe, blankLine as je, factorySpace as S, splice as q, resolveAll as Be, markdownLineEnding as R, markdownSpace as L, combineExtensions as $e } from "./useMarkdown.C8RhZMMZ.js";
1
+ import { convert as se, visitParents as Pe, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as $, visit as Me, toString as ce, EXIT as _e, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as Oe, blankLine as je, factorySpace as S, splice as q, resolveAll as Be, markdownLineEnding as R, markdownSpace as L, combineExtensions as $e } from "./useMarkdown.DNPRPnhX.js";
2
2
  import { longestStreak as We } from "./index.Cyw5OC0t.js";
3
3
  function ne(e, n) {
4
4
  const t = String(e);
@@ -3,9 +3,9 @@ var Cr = (e, n, t) => n in e ? Sr(e, n, { enumerable: !0, configurable: !0, writ
3
3
  var Re = (e, n, t) => Cr(e, typeof n != "symbol" ? n + "" : n, t);
4
4
  import * as tn from "react/jsx-runtime";
5
5
  import { jsx as se, jsxs as In, Fragment as Er } from "react/jsx-runtime";
6
- import { re as Ir, unObfuscate as Pr, obfuscate as Tr } from "./index.6_64ziFG.js";
6
+ import { re as Ir, unObfuscate as Pr, obfuscate as Tr } from "./index.Bd7i92G6.js";
7
7
  import Ar, { useState as Tt, useEffect as At, useRef as De, useCallback as zr } from "react";
8
- import { getDefaultExportFromCjs as zt } from "./App.Cyg4E7eH.js";
8
+ import { getDefaultExportFromCjs as zt } from "./App.DmzmC9o6.js";
9
9
  import Lr from "clsx";
10
10
  const Lt = ({
11
11
  children: e,
@@ -6830,7 +6830,7 @@ class ou {
6830
6830
  if (!this.remarkGfm) {
6831
6831
  const { default: n } = await import(
6832
6832
  /* webpackChunkName: "LazyRemarkGfm" */
6833
- "./index.B8miGdpP.js"
6833
+ "./index.ZGNvAQNV.js"
6834
6834
  );
6835
6835
  this.remarkGfm = n;
6836
6836
  }
@@ -6841,7 +6841,7 @@ class ou {
6841
6841
  pu("https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css");
6842
6842
  const { default: n } = await import(
6843
6843
  /* webpackChunkName: "LazyRehypeKatex" */
6844
- "./index.U73itIJm.js"
6844
+ "./index.CB8R-ash.js"
6845
6845
  );
6846
6846
  this.rehypeKatex = n;
6847
6847
  }
@@ -6851,7 +6851,7 @@ class ou {
6851
6851
  if (!this.remarkMath) {
6852
6852
  const { default: n } = await import(
6853
6853
  /* webpackChunkName: "LazyRemarkMath" */
6854
- "./index.C5FvZVV7.js"
6854
+ "./index.C9D3Xaic.js"
6855
6855
  );
6856
6856
  this.remarkMath = n;
6857
6857
  }
@@ -6861,7 +6861,7 @@ class ou {
6861
6861
  if (!this.rehypeHighlight) {
6862
6862
  const { default: n } = await import(
6863
6863
  /* webpackChunkName: "LazyRehypeHighlight" */
6864
- "./index.CLiT-qxn.js"
6864
+ "./index.DrFZVL5C.js"
6865
6865
  );
6866
6866
  this.rehypeHighlight = n;
6867
6867
  }
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { SassySaint as a } from "../../chunks/index.6_64ziFG.js";
2
+ import { SassySaint as a } from "../../chunks/index.Bd7i92G6.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.6_64ziFG.js";
1
+ import { SassySaint as r } from "./chunks/index.Bd7i92G6.js";
2
2
  /*!
3
- @sassysaint/client v8.15.3
3
+ @sassysaint/client v8.16.0
4
4
  © 2025 gizmette.com
5
5
  */
6
6
  try {
7
7
  window.__VERSINI_SASSY_GLOBAL__ || (window.__VERSINI_SASSY_GLOBAL__ = {
8
- version: "8.15.3",
9
- buildTime: "04/24/2025 06:52 PM EDT",
8
+ version: "8.16.0",
9
+ buildTime: "04/27/2025 05:21 PM EDT",
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.15.3",
3
+ "version": "8.16.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {
@@ -30,7 +30,7 @@
30
30
  "react-dom": "^18.3.1 || ^19.0.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@sassysaint/client": "8.15.3",
33
+ "@sassysaint/client": "8.16.0",
34
34
  "@tailwindcss/vite": "4.1.4",
35
35
  "@versini/ui-styles": "5.0.3"
36
36
  },
@@ -42,5 +42,5 @@
42
42
  "sideEffects": [
43
43
  "**/*.css"
44
44
  ],
45
- "gitHead": "b451ad67f140a21844759132e38572917072803e"
45
+ "gitHead": "ab704ccab1296c648b4997b0ef3e37b8f0a8ede3"
46
46
  }
@@ -1,71 +0,0 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { ChatContext as _, E as b, Te as h } from "./App.Cyg4E7eH.js";
3
- import M from "clsx";
4
- import N, { useState as C, useRef as A, useEffect as R, useContext as w } from "react";
5
- import { LOCAL_STORAGE_PREFIX as F, LOCAL_STORAGE_CHAT_DETAILS as I, convertCamelCaseToReadable as P, ROLE_INTERNAL as k } from "./index.6_64ziFG.js";
6
- import { useMarkdown as y } from "./useMarkdown.C8RhZMMZ.js";
7
- const v = 2, D = v * 1e3, p = "", G = (e) => e * (2 - e);
8
- function j(e, t = !0) {
9
- const [o, m] = C(0), [n, a] = C(0), [c, f] = C(e), r = A(0), s = A(0);
10
- return c !== e && (f(e), a(e.startsWith(c) ? o : 0)), R(() => {
11
- if (!t)
12
- return;
13
- const i = e.split(p).length, u = (l) => {
14
- s.current || (s.current = l);
15
- const g = l - s.current, T = Math.min(g / D, 1), O = G(T), S = n + (i - n) * O;
16
- m(Math.floor(S)), T < 1 && (r.current = requestAnimationFrame(u));
17
- };
18
- return s.current = 0, r.current = requestAnimationFrame(u), () => {
19
- r.current && cancelAnimationFrame(r.current);
20
- };
21
- }, [n, e, t]), t ? e.split(p).slice(0, o).join(p) : e;
22
- }
23
- const x = {
24
- MODEL: "Model",
25
- PLUGIN: "Plugin"
26
- }, E = M("max-w-[99cqw] mt-3"), L = M("max-w-xs", "sm:max-w-3xl", "prose-li:ps-3"), K = N.memo(
27
- ({
28
- content: e,
29
- annotations: t,
30
- toolName: o,
31
- role: m,
32
- smooth: n = !1
33
- }) => {
34
- const a = j(e, n), {
35
- state: { streaming: c, restoredModel: f }
36
- } = w(_), r = (t == null ? void 0 : t.model) || f, [s, i] = y(), [u] = b({
37
- key: F + I,
38
- initialValue: !1
39
- }), l = u && {
40
- [x.MODEL]: r || null,
41
- [x.PLUGIN]: o ? P(o) : null
42
- };
43
- return R(() => {
44
- a && i(a);
45
- }, [a, i]), m === k ? /* @__PURE__ */ d(
46
- h,
47
- {
48
- tail: !0,
49
- className: E,
50
- contentClassName: L,
51
- noMaxWidth: !0,
52
- children: /* @__PURE__ */ d("div", { className: "flex items-center justify-center italic text-copy-error-dark dark:text-red-300", children: s })
53
- }
54
- ) : /* @__PURE__ */ d(
55
- h,
56
- {
57
- tail: !0,
58
- copyToClipboard: c ? "loading..." : e,
59
- copyToClipboardFocusMode: "light",
60
- footer: l,
61
- className: E,
62
- contentClassName: L,
63
- noMaxWidth: !0,
64
- children: s
65
- }
66
- );
67
- }
68
- );
69
- export {
70
- K as default
71
- };