@versini/sassysaint 8.40.3 → 8.41.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,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.DJi_yuGq.js";
1
+ import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.D0g7JEnd.js";
2
2
  import { longestStreak as q } from "./index.Cyw5OC0t.js";
3
3
  function b() {
4
4
  return {
@@ -1,6 +1,6 @@
1
- import { getDefaultExportFromCjs as kn } from "./App.DUrzgzJt.js";
2
- import { visit as In } from "./useMarkdown.DJi_yuGq.js";
3
- import { toText as Cn } from "./index.BB7rVhbu.js";
1
+ import { getDefaultExportFromCjs as kn } from "./App.BmLoQVGE.js";
2
+ import { visit as In } from "./useMarkdown.D0g7JEnd.js";
3
+ import { toText as Cn } from "./index.Yrz50QRq.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.DJi_yuGq.js";
2
- import { toText as Ca } from "./index.BB7rVhbu.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.D0g7JEnd.js";
2
+ import { toText as Ca } from "./index.Yrz50QRq.js";
3
3
  const Gt = /[#.]/g;
4
4
  function qa(r, e) {
5
5
  const t = r || "", a = {};
@@ -3084,7 +3084,7 @@ var _u = (e, t = !1) => {
3084
3084
  const t = Li(() => {
3085
3085
  const r = this, [n] = this.#i, [s] = this.#c, [i] = this.#l, [o] = this.#u, [a] = this.#f, [c] = this.#e;
3086
3086
  let d;
3087
- return this.#d ? d = this.#d : (d = Ii(() => import("./LNWAZHJI.4Z_lIpK9.js")), this.#d = d), Ca(this.#o, this.#a), Ei(d, Ti({
3087
+ return this.#d ? d = this.#d : (d = Ii(() => import("./LNWAZHJI.RixWG9MX.js")), this.#d = d), Ca(this.#o, this.#a), Ei(d, Ti({
3088
3088
  get queryFlavor() {
3089
3089
  return r.#r;
3090
3090
  },
@@ -5232,7 +5232,7 @@ const ys = () => {
5232
5232
  if (!e)
5233
5233
  throw new Error("useAuth must be used within an AuthHookProvider");
5234
5234
  return e;
5235
- }, Vu = "I'm having trouble right now. Please try again later.", ju = "action-search", Wu = "action-sort", Gu = "action-toggle-prompt", qu = "action-reset-prompt", ps = "sassy-saint-", Ju = "details", zu = "search", Qu = "sort", Yu = "sort-timestamp", Xu = "sort-token-usage", Zu = "private-disclosure", ed = "reasoning-disclosure", gs = "service-worker", en = "b44c68f0-e5b3-4a1d-a3e3-df8632b0223b", td = 10, rd = 30, nd = "av-prompt", sd = "av-prompt-editable", id = "size-5 sm:size-4", ad = 30, od = 15, cd = 130, ld = 16, ud = 24, dd = 76;
5235
+ }, Vu = "I'm having trouble right now. Please try again later.", ju = "action-search", Wu = "action-sort", Gu = "action-toggle-prompt", qu = "action-reset-prompt", ps = "sassy-saint-", Ju = "search", zu = "sort", Qu = "sort-timestamp", Yu = "sort-token-usage", Xu = "private-disclosure", Zu = "reasoning-disclosure", gs = "service-worker", en = "b44c68f0-e5b3-4a1d-a3e3-df8632b0223b", ed = 10, td = 30, rd = "av-prompt", nd = "av-prompt-editable", sd = "size-5 sm:size-4", id = 30, ad = 15, od = 130, cd = 16, ld = 24, ud = 76;
5236
5236
  let zt = null;
5237
5237
  function Tr() {
5238
5238
  return "serviceWorker" in navigator;
@@ -5281,7 +5281,7 @@ async function dc() {
5281
5281
  return console.error("[SW] Service worker un-registration failed:", e), !1;
5282
5282
  }
5283
5283
  }
5284
- async function fd(e) {
5284
+ async function dd(e) {
5285
5285
  if (uc(e), e)
5286
5286
  await bs();
5287
5287
  else {
@@ -5556,7 +5556,7 @@ const Rc = (e, t) => t && t.messages.length > 0 && t.messages[t.messages.length
5556
5556
  theme: c,
5557
5557
  transition: d,
5558
5558
  icon: u
5559
- }), hd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: vs, convertCamelCaseToReadable: $c, convertDDToDMS: Ir, convertLatitudeToDMS: Ec, convertLongitudeToDMS: Sc, debounce: Pc, durationFormatter: Cc, extractAverage: Oc, getCurrentGeoLocation: Tc, getMainPaddingClass: Ss, getMessageContaintWrapperClass: Es, isDev: Ar, isLastMessageFromRole: Rc, isProbablyMobile: As, isProbablyiPhone: xc, isProd: ws, isTauri: Ts, numberFormatter: _c, obfuscate: Ac, pluralize: Nc, renderDataAsList: kc, toastOptions: Dc, unObfuscate: Ic }, Symbol.toStringTag, { value: "Module" })), rn = "av-button", Mt = "icon", kr = "button", mr = "link", Mc = ({
5559
+ }), fd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: vs, convertCamelCaseToReadable: $c, convertDDToDMS: Ir, convertLatitudeToDMS: Ec, convertLongitudeToDMS: Sc, debounce: Pc, durationFormatter: Cc, extractAverage: Oc, getCurrentGeoLocation: Tc, getMainPaddingClass: Ss, getMessageContaintWrapperClass: Es, isDev: Ar, isLastMessageFromRole: Rc, isProbablyMobile: As, isProbablyiPhone: xc, isProd: ws, isTauri: Ts, numberFormatter: _c, obfuscate: Ac, pluralize: Nc, renderDataAsList: kc, toastOptions: Dc, unObfuscate: Ic }, Symbol.toStringTag, { value: "Module" })), rn = "av-button", Mt = "icon", kr = "button", mr = "link", Mc = ({
5560
5560
  type: e,
5561
5561
  size: t,
5562
5562
  labelRight: r,
@@ -7133,7 +7133,7 @@ try {
7133
7133
  });
7134
7134
  } catch {
7135
7135
  }
7136
- const md = "user", yd = "assistant", pd = "data", Ps = "OpenAI", xl = "Anthropic", $l = "Google", Dl = "Perplexity", gd = Ps, Ml = "claude-sonnet-4", Ll = "claude-3", Ul = "gpt-", Fl = "o3", Kl = "o4", Hl = "gemini", Bl = "sonar", Vl = {
7136
+ const hd = "user", md = "assistant", yd = "data", Ps = "OpenAI", xl = "Anthropic", $l = "Google", Dl = "Perplexity", pd = Ps, Ml = "claude-sonnet-4", Ll = "claude-3", Ul = "gpt-", Fl = "o3", Kl = "o4", Hl = "gemini", Bl = "sonar", Vl = {
7137
7137
  [xl]: [
7138
7138
  Ml,
7139
7139
  Ll
@@ -7145,18 +7145,18 @@ const md = "user", yd = "assistant", pd = "data", Ps = "OpenAI", xl = "Anthropic
7145
7145
  ],
7146
7146
  [$l]: [Hl],
7147
7147
  [Dl]: [Bl]
7148
- }, jl = "sassy:advanced:reasoning", bd = {
7148
+ }, jl = "sassy:advanced:reasoning", gd = {
7149
7149
  REASONING: jl
7150
- }, wd = "x-callisto-chat-id", vd = (e) => {
7150
+ }, bd = "x-callisto-chat-id", wd = (e) => {
7151
7151
  for (const [t, r] of Object.entries(
7152
7152
  Vl
7153
7153
  ))
7154
7154
  if (r.some((n) => e.startsWith(n)))
7155
7155
  return t;
7156
7156
  return null;
7157
- }, Ed = "timestamp", Sd = "tokenUsage", D = "Callisto", Wl = "ASK! ME! ANYTHING!", Gl = "Log in", ql = "Sign in with a Passkey", Td = "Log out", Jl = "Password", Ad = "Usage", Id = "Profile", kd = "Settings", Od = "Chat history", Rd = "About", _r = "Type your message here.", _d = _r, Cd = `${_r}
7158
- Press Enter to send it or Shift+Enter for new line.`, Nd = `${_r}
7159
- Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "Review important details.", xd = [
7157
+ }, vd = "timestamp", Ed = "tokenUsage", D = "Callisto", Wl = "ASK! ME! ANYTHING!", Gl = "Log in", ql = "Sign in with a Passkey", Sd = "Log out", Jl = "Password", Td = "Usage", Ad = "Profile", Id = "Settings", kd = "Chat history", Od = "About", _r = "Type your message here.", Rd = _r, _d = `${_r}
7158
+ Press Enter to send it or Shift+Enter for new line.`, Cd = `${_r}
7159
+ Press Ctrl+Enter to send it or Enter for new line.`, Nd = "{{clipboard}}", M = "Review important details.", Pd = [
7160
7160
  `Sometimes, ${D} just makes stuff up. ${M}`,
7161
7161
  `${D} may invent facts on the fly. ${M}`,
7162
7162
  `${D} may be confidently wrong. ${M}`,
@@ -7177,17 +7177,17 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7177
7177
  `Sometimes, ${D} howls at the moon. ${M}`,
7178
7178
  `${D} may dig up imaginary bones. ${M}`,
7179
7179
  `${D} may sniff out nonsense. ${M}`
7180
- ], $d = "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", Md = "Chat successfully deleted!", Ld = "Chat successfully saved!", Ud = "av-sassy", Fd = {
7180
+ ], 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.", $d = "Default provider set to", Dd = "Chat successfully deleted!", Md = "Chat successfully saved!", Ld = "av-sassy", Ud = {
7181
7181
  0: ["January", "February", "March"],
7182
7182
  3: ["April", "May", "June"],
7183
7183
  6: ["July", "August", "September"],
7184
7184
  9: ["October", "November", "December"]
7185
- }, Kd = {
7185
+ }, Fd = {
7186
7186
  0: ["Jan", "Feb", "Mar"],
7187
7187
  3: ["Apr", "May", "Jun"],
7188
7188
  6: ["Jul", "Aug", "Sep"],
7189
7189
  9: ["Oct", "Nov", "Dec"]
7190
- }, Hd = {
7190
+ }, Kd = {
7191
7191
  PREFERENCES: {
7192
7192
  TITLE: "User profile",
7193
7193
  NAME: "Name",
@@ -7362,7 +7362,7 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7362
7362
  );
7363
7363
  }, Yl = new URL(document.location.href).searchParams, an = !!Yl.get("debug") || !1, Xl = Ds(() => import(
7364
7364
  /* webpackChunkName: "LazyApp" */
7365
- "./App.DUrzgzJt.js"
7365
+ "./App.BmLoQVGE.js"
7366
7366
  ).then((e) => e.App)), Zl = new si(), on = ({
7367
7367
  isComponent: e,
7368
7368
  headerHeight: t
@@ -7389,7 +7389,7 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7389
7389
  endpoint: process.env.PUBLIC_AUTH_SERVER_URL,
7390
7390
  children: /* @__PURE__ */ y(on, { isComponent: e, headerHeight: t })
7391
7391
  }
7392
- ) : /* @__PURE__ */ y(Zr, { clientId: en, domain: r, debug: an, children: /* @__PURE__ */ y(on, { isComponent: e, headerHeight: t }) })), Bd = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ y(
7392
+ ) : /* @__PURE__ */ y(Zr, { clientId: en, domain: r, debug: an, children: /* @__PURE__ */ y(on, { isComponent: e, headerHeight: t }) })), Hd = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ y(
7393
7393
  eu,
7394
7394
  {
7395
7395
  isComponent: !0,
@@ -7398,71 +7398,70 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7398
7398
  }
7399
7399
  );
7400
7400
  export {
7401
- Rd as ABOUT_TITLE,
7401
+ Od as ABOUT_TITLE,
7402
7402
  qu as ACTION_RESET_PROMPT,
7403
7403
  ju as ACTION_SEARCH,
7404
7404
  Wu as ACTION_SORT,
7405
7405
  Gu as ACTION_TOGGLE_PROMPT,
7406
- Ud as APP_CLASSNAME,
7407
- Sd as Ae,
7406
+ Ld as APP_CLASSNAME,
7407
+ Ed as Ae,
7408
7408
  ks as C,
7409
- Hd as CARDS,
7410
- Pd as CLIPBOARD_PROMPT,
7411
- id as DEFAULT_ICON_ACTION_SIZE,
7409
+ Kd as CARDS,
7410
+ Nd as CLIPBOARD_PROMPT,
7411
+ sd as DEFAULT_ICON_ACTION_SIZE,
7412
7412
  Su as Dynamic,
7413
7413
  $l as E,
7414
7414
  Vu as ERROR_MESSAGE,
7415
- bd as Ee,
7416
- xd as FOOTER_DISCLAIMERS,
7415
+ gd as Ee,
7416
+ Pd as FOOTER_DISCLAIMERS,
7417
7417
  hu as For,
7418
- Od as HISTORY_TITLE,
7418
+ kd as HISTORY_TITLE,
7419
7419
  Lt as I,
7420
- rd as INFINITE_SCROLL_LIMIT,
7421
- td as INFINITE_SCROLL_THRESHOLD,
7422
- ld as INPUT_BOTTOM_OFFSET,
7423
- dd as INPUT_BOTTOM_OFFSET_EXTRA,
7424
- ud as INPUT_BOTTOM_OFFSET_IPHONE,
7425
- Nd as INPUT_PLACEHOLDER_TEXT_CMD_ENTER,
7426
- Cd as INPUT_PLACEHOLDER_TEXT_ENTER,
7427
- _d as INPUT_PLACEHOLDER_TEXT_MOBILE,
7420
+ td as INFINITE_SCROLL_LIMIT,
7421
+ ed as INFINITE_SCROLL_THRESHOLD,
7422
+ cd as INPUT_BOTTOM_OFFSET,
7423
+ ud as INPUT_BOTTOM_OFFSET_EXTRA,
7424
+ ld as INPUT_BOTTOM_OFFSET_IPHONE,
7425
+ Cd as INPUT_PLACEHOLDER_TEXT_CMD_ENTER,
7426
+ _d as INPUT_PLACEHOLDER_TEXT_ENTER,
7427
+ Rd as INPUT_PLACEHOLDER_TEXT_MOBILE,
7428
7428
  mu as Index,
7429
7429
  fl as L,
7430
- Ju as LOCAL_STORAGE_CHAT_DETAILS,
7431
7430
  ps as LOCAL_STORAGE_PREFIX,
7432
- Zu as LOCAL_STORAGE_PRIVATE_DISCLOSURE,
7433
- ed as LOCAL_STORAGE_REASONING_DISCLOSURE,
7434
- zu as LOCAL_STORAGE_SEARCH,
7431
+ Xu as LOCAL_STORAGE_PRIVATE_DISCLOSURE,
7432
+ Zu as LOCAL_STORAGE_REASONING_DISCLOSURE,
7433
+ Ju as LOCAL_STORAGE_SEARCH,
7435
7434
  gs as LOCAL_STORAGE_SERVICE_WORKER,
7436
- Qu as LOCAL_STORAGE_SORT,
7437
- Yu as LOCAL_STORAGE_SORT_TIMESTAMP,
7438
- Xu as LOCAL_STORAGE_SORT_TOKEN_USAGE,
7439
- Td as LOG_OUT,
7435
+ zu as LOCAL_STORAGE_SORT,
7436
+ Qu as LOCAL_STORAGE_SORT_TIMESTAMP,
7437
+ Yu as LOCAL_STORAGE_SORT_TOKEN_USAGE,
7438
+ Sd as LOG_OUT,
7440
7439
  zl as Logo,
7441
7440
  gu as Match,
7442
- Id as PROFILE_TITLE,
7443
- $d as PROMPTS_DESCRIPTION,
7444
- nd as PROMPT_CLASSNAME,
7445
- sd as PROMPT_EDITABLE_AREA_CLASSNAME,
7441
+ Ad as PROFILE_TITLE,
7442
+ xd as PROMPTS_DESCRIPTION,
7443
+ rd as PROMPT_CLASSNAME,
7444
+ nd as PROMPT_EDITABLE_AREA_CLASSNAME,
7446
7445
  Eu as Portal,
7447
7446
  sl as S,
7448
- kd as SETTINGS_TITLE,
7449
- Bd as SassySaint,
7447
+ Id as SETTINGS_TITLE,
7448
+ Hd as SassySaint,
7450
7449
  yu as Show,
7451
7450
  _t as Subscribable,
7452
7451
  pu as Switch,
7453
- Md as TOAST_CHAT_DELETED,
7454
- Ld as TOAST_CHAT_SAVED,
7455
- Dd as TOAST_PROVIDER_CHANGED,
7456
- Fd as TRIMESTERS,
7457
- Kd as TRIMESTERS_SHORT,
7458
- od as UI_BUTTON_SCROLL_BUFFER,
7459
- cd as UI_DEFAULT_MAIN_HEIGHT,
7460
- ad as UI_FOOTER_BUFFER,
7461
- Ad as USAGE_TITLE,
7452
+ Dd as TOAST_CHAT_DELETED,
7453
+ Md as TOAST_CHAT_SAVED,
7454
+ $d as TOAST_PROVIDER_CHANGED,
7455
+ Ud as TRIMESTERS,
7456
+ Fd as TRIMESTERS_SHORT,
7457
+ ad as UI_BUTTON_SCROLL_BUFFER,
7458
+ od as UI_DEFAULT_MAIN_HEIGHT,
7459
+ id as UI_FOOTER_BUFFER,
7460
+ Td as USAGE_TITLE,
7462
7461
  Ps as a,
7463
7462
  Bi as addEventListener,
7464
7463
  au as batch,
7465
- yd as c,
7464
+ md as c,
7466
7465
  Hi as className,
7467
7466
  vu as clearDelegatedEvents,
7468
7467
  $c as convertCamelCaseToReadable,
@@ -7476,7 +7475,7 @@ export {
7476
7475
  Se as createRoot,
7477
7476
  Y as createSignal,
7478
7477
  fu as createUniqueId,
7479
- vd as de,
7478
+ wd as de,
7480
7479
  Pc as debounce,
7481
7480
  Ui as delegateEvents,
7482
7481
  it as deleteNestedDataByPath,
@@ -7492,7 +7491,7 @@ export {
7492
7491
  Ru as getQueryStatusColorByLabel,
7493
7492
  Au as getQueryStatusLabel,
7494
7493
  Iu as getSidedProp,
7495
- fd as handleServiceWorkerToggle,
7494
+ dd as handleServiceWorkerToggle,
7496
7495
  xl as i,
7497
7496
  ar as insert,
7498
7497
  As as isProbablyMobile,
@@ -7507,7 +7506,7 @@ export {
7507
7506
  Ti as mergeProps,
7508
7507
  Nu as mutationSortFns,
7509
7508
  ys as n,
7510
- gd as ne,
7509
+ pd as ne,
7511
7510
  re as noop,
7512
7511
  Q as notifyManager,
7513
7512
  _c as numberFormatter,
@@ -7520,12 +7519,12 @@ export {
7520
7519
  Gs as pendingThenable,
7521
7520
  Nc as pluralize,
7522
7521
  ul as r,
7523
- pd as re,
7522
+ yd as re,
7524
7523
  kc as renderDataAsList,
7525
7524
  Hs as replaceData,
7526
7525
  Fs as resolveEnabled,
7527
7526
  Zt as resolveStaleTime,
7528
- md as s,
7527
+ hd as s,
7529
7528
  ka as serialize,
7530
7529
  ir as setAttribute,
7531
7530
  su as shallowEqualObjects,
@@ -7537,7 +7536,7 @@ export {
7537
7536
  wu as template,
7538
7537
  Us as timeUntilStale,
7539
7538
  kt as ue,
7540
- Ed as ue$1,
7539
+ vd as ue$1,
7541
7540
  Ic as unObfuscate,
7542
7541
  G as untrack,
7543
7542
  st as updateNestedDataByPath,
@@ -7545,6 +7544,6 @@ export {
7545
7544
  du as useContext,
7546
7545
  ii as useQueryClient,
7547
7546
  lu as useTransition,
7548
- hd as utilities,
7549
- wd as ye
7547
+ fd as utilities,
7548
+ bd as ye
7550
7549
  };
@@ -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.DJi_yuGq.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.D0g7JEnd.js";
2
2
  import { longestStreak as qe } from "./index.Cyw5OC0t.js";
3
3
  function ne(e, n) {
4
4
  const t = String(e);
@@ -1,4 +1,4 @@
1
- import { convert as E, convertElement as u } from "./useMarkdown.DJi_yuGq.js";
1
+ import { convert as E, convertElement as u } from "./useMarkdown.D0g7JEnd.js";
2
2
  const f = (
3
3
  // Note: overloads like this are needed to support optional generics.
4
4
  /**
@@ -1,8 +1,8 @@
1
1
  import * as rn from "react/jsx-runtime";
2
2
  import { jsx as ae, jsxs as Pn, Fragment as Ir } from "react/jsx-runtime";
3
- import { ue as Tr, isTauri as Pr, unObfuscate as Ar, obfuscate as zr } from "./index.ByCJGvcI.js";
3
+ import { ue as Tr, isTauri as Pr, unObfuscate as Ar, obfuscate as zr } from "./index.CFV5SN1z.js";
4
4
  import Lr, { useState as Lt, useEffect as _t, useCallback as vt, useRef as Re } from "react";
5
- import { getDefaultExportFromCjs as Nt } from "./App.DUrzgzJt.js";
5
+ import { getDefaultExportFromCjs as Nt } from "./App.BmLoQVGE.js";
6
6
  import _r from "clsx";
7
7
  const Rt = ({
8
8
  children: e,
@@ -6897,7 +6897,7 @@ class su {
6897
6897
  if (!this.remarkGfm) {
6898
6898
  const { default: n } = await import(
6899
6899
  /* webpackChunkName: "LazyRemarkGfm" */
6900
- "./index.r_J9hnMj.js"
6900
+ "./index.EfX1soBk.js"
6901
6901
  );
6902
6902
  this.remarkGfm = n;
6903
6903
  }
@@ -6908,7 +6908,7 @@ class su {
6908
6908
  mu("https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css");
6909
6909
  const { default: n } = await import(
6910
6910
  /* webpackChunkName: "LazyRehypeKatex" */
6911
- "./index.B69Zty16.js"
6911
+ "./index.BBOgJ4dc.js"
6912
6912
  );
6913
6913
  this.rehypeKatex = n;
6914
6914
  }
@@ -6918,7 +6918,7 @@ class su {
6918
6918
  if (!this.remarkMath) {
6919
6919
  const { default: n } = await import(
6920
6920
  /* webpackChunkName: "LazyRemarkMath" */
6921
- "./index.UBrBxIIE.js"
6921
+ "./index.-q7pWxMH.js"
6922
6922
  );
6923
6923
  this.remarkMath = n;
6924
6924
  }
@@ -6928,7 +6928,7 @@ class su {
6928
6928
  if (!this.rehypeHighlight) {
6929
6929
  const { default: n } = await import(
6930
6930
  /* webpackChunkName: "LazyRehypeHighlight" */
6931
- "./index.JZnR1h1J.js"
6931
+ "./index.AHmpbrZI.js"
6932
6932
  );
6933
6933
  this.rehypeHighlight = n;
6934
6934
  }
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { SassySaint as a } from "../../chunks/index.ByCJGvcI.js";
2
+ import { SassySaint as a } from "../../chunks/index.CFV5SN1z.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.ByCJGvcI.js";
1
+ import { SassySaint as r } from "./chunks/index.CFV5SN1z.js";
2
2
  /*!
3
- @sassysaint/client v8.40.3
3
+ @sassysaint/client v8.41.0
4
4
  © 2025 gizmette.com
5
5
  */
6
6
  try {
7
7
  window.__VERSINI_SASSY_GLOBAL__ || (window.__VERSINI_SASSY_GLOBAL__ = {
8
- version: "8.40.3",
9
- buildTime: "08/24/2025 02:27 PM EDT",
8
+ version: "8.41.0",
9
+ buildTime: "08/24/2025 03:11 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.40.3",
3
+ "version": "8.41.0",
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.40.3",
36
+ "@sassysaint/client": "8.41.0",
37
37
  "@tailwindcss/vite": "4.1.12",
38
38
  "@versini/ui-styles": "6.0.2"
39
39
  },
@@ -45,5 +45,5 @@
45
45
  "sideEffects": [
46
46
  "**/*.css"
47
47
  ],
48
- "gitHead": "e4097d73c3aac460481459f4b2c39d40b2f760f8"
48
+ "gitHead": "cd829983379bbc976968fbd1032dde7e7832976c"
49
49
  }
@@ -1,75 +0,0 @@
1
- import { jsx as A } from "react/jsx-runtime";
2
- import { LOCAL_STORAGE_PREFIX as k, LOCAL_STORAGE_CHAT_DETAILS as R, convertCamelCaseToReadable as _, numberFormatter as w, pluralize as F, re as G } from "./index.ByCJGvcI.js";
3
- import { ChatContext as N, E as U, Me as y, Oe as S } from "./App.DUrzgzJt.js";
4
- import b from "clsx";
5
- import P, { useState as h, useRef as g, useEffect as L, useContext as v } from "react";
6
- import { useMarkdown as I } from "./useMarkdown.DJi_yuGq.js";
7
- const D = 2, j = D * 1e3, M = "", q = (e) => e * (2 - e);
8
- function V(e, a = !0) {
9
- const [i, C] = h(0), [c, p] = h(0), [t, T] = h(e), r = g(0), o = g(0);
10
- return t !== e && (T(e), p(e.startsWith(t) ? i : 0)), L(() => {
11
- if (!a)
12
- return;
13
- const u = e.split(M).length, s = (l) => {
14
- o.current || (o.current = l);
15
- const m = l - o.current, f = Math.min(m / j, 1), n = q(f), O = c + (u - c) * n;
16
- C(Math.floor(O)), f < 1 && (r.current = requestAnimationFrame(s));
17
- };
18
- return o.current = 0, r.current = requestAnimationFrame(s), () => {
19
- r.current && cancelAnimationFrame(r.current);
20
- };
21
- }, [c, e, a]), a ? e.split(M).slice(0, i).join(M) : e;
22
- }
23
- const d = {
24
- MODEL: "Model",
25
- PLUGIN: "Plugin",
26
- USAGE: "Session usage"
27
- }, x = b("max-w-[99cqw] mt-3"), E = b("max-w-xs", "sm:max-w-3xl", "prose-li:ps-3"), X = P.memo(
28
- ({
29
- content: e,
30
- annotations: a,
31
- toolName: i,
32
- role: C,
33
- smooth: c = !1,
34
- isLastAssistantMessage: p = !1
35
- }) => {
36
- const t = V(e, c), {
37
- state: { streaming: T, restoredModel: r, tokenUsage: o }
38
- } = v(N), u = a?.model || r, s = o, [l, m] = I(), [f] = U({
39
- key: k + R,
40
- initialValue: !1
41
- });
42
- let n;
43
- return f && (n = {
44
- [d.MODEL]: u || null,
45
- [d.PLUGIN]: i ? _(i) : null
46
- }, s && (p ? n[d.USAGE] = `${w.format(s)} ${F("token", s)}` : n[d.USAGE] = y)), L(() => {
47
- t && m(t);
48
- }, [t, m]), C === G ? /* @__PURE__ */ A(
49
- S,
50
- {
51
- tail: !0,
52
- className: x,
53
- contentClassName: E,
54
- noMaxWidth: !0,
55
- children: /* @__PURE__ */ A("div", { className: "flex items-center justify-center italic text-copy-error-dark dark:text-red-300", children: l })
56
- }
57
- ) : /* @__PURE__ */ A(
58
- S,
59
- {
60
- tail: !0,
61
- copyToClipboardMode: "dark",
62
- copyToClipboardFocusMode: "light",
63
- copyToClipboard: T ? "loading..." : e,
64
- footer: n,
65
- className: x,
66
- contentClassName: E,
67
- noMaxWidth: !0,
68
- children: l
69
- }
70
- );
71
- }
72
- );
73
- export {
74
- X as default
75
- };