@versini/sassysaint 8.40.2 → 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,10 +1,10 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { n as f, USAGE_TITLE as U, S as h, renderDataAsList as v, CARDS as n, L as E, j as L, C as m, pluralize as i } from "./index.DPutGpC0.js";
3
- import { i as M, useUserChatStats as _, useChatsUsage as D, tt as z } from "./App.CXZi-n86.js";
2
+ import { n as f, USAGE_TITLE as U, S as h, renderDataAsList as v, CARDS as n, L as E, j as L, C as m, pluralize as i } from "./index.CFV5SN1z.js";
3
+ import { i as M, useUserChatStats as _, useChatsUsage as D, tt as z } from "./App.BmLoQVGE.js";
4
4
  import { useState as O, Suspense as P, lazy as B } from "react";
5
5
  const t = [0, 3, 6, 9], j = B(() => import(
6
6
  /* webpackChunkName: "LazyChart" */
7
- "./Chart.B_qqrnGF.js"
7
+ "./Chart.r7wSt0XQ.js"
8
8
  )), b = ({
9
9
  open: S,
10
10
  onOpenChange: I
@@ -1,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.C2s02oz2.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.CXZi-n86.js";
2
- import { visit as In } from "./useMarkdown.C2s02oz2.js";
3
- import { toText as Cn } from "./index.CFiOC8y-.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.C2s02oz2.js";
2
- import { toText as Ca } from "./index.CFiOC8y-.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.CQE68SIr.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 {
@@ -5417,33 +5417,28 @@ const ws = process.env.NODE_ENV === "production", Ar = !ws, vs = Ar ? "gizmette.
5417
5417
  }, Tc = async () => {
5418
5418
  const e = {
5419
5419
  /**
5420
- * A boolean value that indicates the application would
5421
- * like to receive the best possible results. If true
5422
- * and if the device is able to provide a more accurate
5423
- * position, it will do so. Note that this can result in
5424
- * slower response times or increased power consumption
5425
- * (with a GPS chip on a mobile device for example). On
5426
- * the other hand, if false, the device can take the
5427
- * liberty to save resources by responding more quickly
5428
- * and/or using less power. Default: false.
5420
+ * A boolean value that indicates the application would like to receive the
5421
+ * best possible results. If true and if the device is able to provide a more
5422
+ * accurate position, it will do so. Note that this can result in slower
5423
+ * response times or increased power consumption (with a GPS chip on a mobile
5424
+ * device for example). On the other hand, if false, the device can take the
5425
+ * liberty to save resources by responding more quickly and/or using less
5426
+ * power. Default: false.
5429
5427
  */
5430
5428
  enableHighAccuracy: !1,
5431
5429
  /**
5432
- * A positive long value representing the maximum length
5433
- * of time (in milliseconds) the device is allowed to
5434
- * take in order to return a position. The default value
5435
- * is Infinity, meaning that getCurrentPosition() won't
5430
+ * A positive long value representing the maximum length of time (in
5431
+ * milliseconds) the device is allowed to take in order to return a position.
5432
+ * The default value is Infinity, meaning that getCurrentPosition() won't
5436
5433
  * return until the position is available.
5437
5434
  */
5438
5435
  timeout: 1e4,
5439
5436
  /**
5440
- * A positive long value indicating the maximum age in
5441
- * milliseconds of a possible cached position that is
5442
- * acceptable to return. If set to 0, it means that the
5443
- * device cannot use a cached position and must attempt
5444
- * to retrieve the real current position. If set to
5445
- * Infinity the device must return a cached position
5446
- * regardless of its age. Default: 0.
5437
+ * A positive long value indicating the maximum age in milliseconds of a
5438
+ * possible cached position that is acceptable to return. If set to 0, it
5439
+ * means that the device cannot use a cached position and must attempt to
5440
+ * retrieve the real current position. If set to. Infinity the device must
5441
+ * return a cached position regardless of its age. Default: 0.
5447
5442
  */
5448
5443
  maximumAge: 6e4
5449
5444
  };
@@ -5561,7 +5556,7 @@ const Rc = (e, t) => t && t.messages.length > 0 && t.messages[t.messages.length
5561
5556
  theme: c,
5562
5557
  transition: d,
5563
5558
  icon: u
5564
- }), 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 = ({
5565
5560
  type: e,
5566
5561
  size: t,
5567
5562
  labelRight: r,
@@ -6107,13 +6102,13 @@ const ut = {
6107
6102
  );
6108
6103
  kt.displayName = "ButtonIcon";
6109
6104
  /*!
6110
- @versini/ui-button v7.1.2
6105
+ @versini/ui-button v7.1.5
6111
6106
  © 2025 gizmette.com
6112
6107
  */
6113
6108
  try {
6114
6109
  window.__VERSINI_UI_BUTTON__ || (window.__VERSINI_UI_BUTTON__ = {
6115
- version: "7.1.2",
6116
- buildTime: "08/14/2025 06:04 PM EDT",
6110
+ version: "7.1.5",
6111
+ buildTime: "08/23/2025 12:21 PM EDT",
6117
6112
  homepage: "https://github.com/aversini/ui-components",
6118
6113
  license: "MIT"
6119
6114
  });
@@ -6262,13 +6257,13 @@ const sl = ({
6262
6257
  ) });
6263
6258
  };
6264
6259
  /*!
6265
- @versini/ui-card v4.0.8
6260
+ @versini/ui-card v4.0.11
6266
6261
  © 2025 gizmette.com
6267
6262
  */
6268
6263
  try {
6269
6264
  window.__VERSINI_UI_CARD__ || (window.__VERSINI_UI_CARD__ = {
6270
- version: "4.0.8",
6271
- buildTime: "08/14/2025 06:05 PM EDT",
6265
+ version: "4.0.11",
6266
+ buildTime: "08/23/2025 12:22 PM EDT",
6272
6267
  homepage: "https://github.com/aversini/ui-components",
6273
6268
  license: "MIT"
6274
6269
  });
@@ -6456,13 +6451,13 @@ const ll = "av-main", ul = ({
6456
6451
  return /* @__PURE__ */ y("main", { className: o, ...i, children: e });
6457
6452
  };
6458
6453
  /*!
6459
- @versini/ui-main v4.0.7
6454
+ @versini/ui-main v4.0.10
6460
6455
  © 2025 gizmette.com
6461
6456
  */
6462
6457
  try {
6463
6458
  window.__VERSINI_UI_MAIN__ || (window.__VERSINI_UI_MAIN__ = {
6464
- version: "4.0.7",
6465
- buildTime: "08/14/2025 06:06 PM EDT",
6459
+ version: "4.0.10",
6460
+ buildTime: "08/23/2025 12:23 PM EDT",
6466
6461
  homepage: "https://github.com/aversini/ui-components",
6467
6462
  license: "MIT"
6468
6463
  });
@@ -6613,13 +6608,13 @@ const dl = "av-flexgrid", dt = "av-flexgrid-item", Ot = 0.25, yr = fe.createCont
6613
6608
  return /* @__PURE__ */ y("div", { className: a, style: o, ...n, children: e });
6614
6609
  };
6615
6610
  /*!
6616
- @versini/ui-system v4.1.2
6611
+ @versini/ui-system v4.1.5
6617
6612
  © 2025 gizmette.com
6618
6613
  */
6619
6614
  try {
6620
6615
  window.__VERSINI_UI_SYSTEM__ || (window.__VERSINI_UI_SYSTEM__ = {
6621
- version: "4.1.2",
6622
- buildTime: "08/14/2025 06:05 PM EDT",
6616
+ version: "4.1.5",
6617
+ buildTime: "08/23/2025 12:22 PM EDT",
6623
6618
  homepage: "https://github.com/aversini/ui-components",
6624
6619
  license: "MIT"
6625
6620
  });
@@ -6780,13 +6775,13 @@ function Cs({
6780
6775
  );
6781
6776
  }
6782
6777
  /*!
6783
- @versini/ui-liveregion v2.0.8
6778
+ @versini/ui-liveregion v2.0.11
6784
6779
  © 2025 gizmette.com
6785
6780
  */
6786
6781
  try {
6787
6782
  window.__VERSINI_UI_LIVEREGION__ || (window.__VERSINI_UI_LIVEREGION__ = {
6788
- version: "2.0.8",
6789
- buildTime: "08/14/2025 06:04 PM EDT",
6783
+ version: "2.0.11",
6784
+ buildTime: "08/23/2025 12:21 PM EDT",
6790
6785
  homepage: "https://github.com/aversini/ui-components",
6791
6786
  license: "MIT"
6792
6787
  });
@@ -7126,19 +7121,19 @@ const Cl = 500, Nl = 5e3, Pl = 2e4, Ns = fe.forwardRef(
7126
7121
  );
7127
7122
  Ns.displayName = "TextInputMask";
7128
7123
  /*!
7129
- @versini/ui-textinput v4.0.8
7124
+ @versini/ui-textinput v4.0.11
7130
7125
  © 2025 gizmette.com
7131
7126
  */
7132
7127
  try {
7133
7128
  window.__VERSINI_UI_TEXTINPUT__ || (window.__VERSINI_UI_TEXTINPUT__ = {
7134
- version: "4.0.8",
7135
- buildTime: "08/14/2025 06:04 PM EDT",
7129
+ version: "4.0.11",
7130
+ buildTime: "08/23/2025 12:21 PM EDT",
7136
7131
  homepage: "https://github.com/aversini/ui-components",
7137
7132
  license: "MIT"
7138
7133
  });
7139
7134
  } catch {
7140
7135
  }
7141
- 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 = {
7142
7137
  [xl]: [
7143
7138
  Ml,
7144
7139
  Ll
@@ -7150,18 +7145,18 @@ const md = "user", yd = "assistant", pd = "data", Ps = "OpenAI", xl = "Anthropic
7150
7145
  ],
7151
7146
  [$l]: [Hl],
7152
7147
  [Dl]: [Bl]
7153
- }, jl = "sassy:advanced:reasoning", bd = {
7148
+ }, jl = "sassy:advanced:reasoning", gd = {
7154
7149
  REASONING: jl
7155
- }, wd = "x-callisto-chat-id", vd = (e) => {
7150
+ }, bd = "x-callisto-chat-id", wd = (e) => {
7156
7151
  for (const [t, r] of Object.entries(
7157
7152
  Vl
7158
7153
  ))
7159
7154
  if (r.some((n) => e.startsWith(n)))
7160
7155
  return t;
7161
7156
  return null;
7162
- }, 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}
7163
- Press Enter to send it or Shift+Enter for new line.`, Nd = `${_r}
7164
- 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 = [
7165
7160
  `Sometimes, ${D} just makes stuff up. ${M}`,
7166
7161
  `${D} may invent facts on the fly. ${M}`,
7167
7162
  `${D} may be confidently wrong. ${M}`,
@@ -7182,17 +7177,17 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7182
7177
  `Sometimes, ${D} howls at the moon. ${M}`,
7183
7178
  `${D} may dig up imaginary bones. ${M}`,
7184
7179
  `${D} may sniff out nonsense. ${M}`
7185
- ], $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 = {
7186
7181
  0: ["January", "February", "March"],
7187
7182
  3: ["April", "May", "June"],
7188
7183
  6: ["July", "August", "September"],
7189
7184
  9: ["October", "November", "December"]
7190
- }, Kd = {
7185
+ }, Fd = {
7191
7186
  0: ["Jan", "Feb", "Mar"],
7192
7187
  3: ["Apr", "May", "Jun"],
7193
7188
  6: ["Jul", "Aug", "Sep"],
7194
7189
  9: ["Oct", "Nov", "Dec"]
7195
- }, Hd = {
7190
+ }, Kd = {
7196
7191
  PREFERENCES: {
7197
7192
  TITLE: "User profile",
7198
7193
  NAME: "Name",
@@ -7367,7 +7362,7 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7367
7362
  );
7368
7363
  }, Yl = new URL(document.location.href).searchParams, an = !!Yl.get("debug") || !1, Xl = Ds(() => import(
7369
7364
  /* webpackChunkName: "LazyApp" */
7370
- "./App.CXZi-n86.js"
7365
+ "./App.BmLoQVGE.js"
7371
7366
  ).then((e) => e.App)), Zl = new si(), on = ({
7372
7367
  isComponent: e,
7373
7368
  headerHeight: t
@@ -7394,7 +7389,7 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7394
7389
  endpoint: process.env.PUBLIC_AUTH_SERVER_URL,
7395
7390
  children: /* @__PURE__ */ y(on, { isComponent: e, headerHeight: t })
7396
7391
  }
7397
- ) : /* @__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(
7398
7393
  eu,
7399
7394
  {
7400
7395
  isComponent: !0,
@@ -7403,71 +7398,70 @@ Press Ctrl+Enter to send it or Enter for new line.`, Pd = "{{clipboard}}", M = "
7403
7398
  }
7404
7399
  );
7405
7400
  export {
7406
- Rd as ABOUT_TITLE,
7401
+ Od as ABOUT_TITLE,
7407
7402
  qu as ACTION_RESET_PROMPT,
7408
7403
  ju as ACTION_SEARCH,
7409
7404
  Wu as ACTION_SORT,
7410
7405
  Gu as ACTION_TOGGLE_PROMPT,
7411
- Ud as APP_CLASSNAME,
7412
- Sd as Ae,
7406
+ Ld as APP_CLASSNAME,
7407
+ Ed as Ae,
7413
7408
  ks as C,
7414
- Hd as CARDS,
7415
- Pd as CLIPBOARD_PROMPT,
7416
- id as DEFAULT_ICON_ACTION_SIZE,
7409
+ Kd as CARDS,
7410
+ Nd as CLIPBOARD_PROMPT,
7411
+ sd as DEFAULT_ICON_ACTION_SIZE,
7417
7412
  Su as Dynamic,
7418
7413
  $l as E,
7419
7414
  Vu as ERROR_MESSAGE,
7420
- bd as Ee,
7421
- xd as FOOTER_DISCLAIMERS,
7415
+ gd as Ee,
7416
+ Pd as FOOTER_DISCLAIMERS,
7422
7417
  hu as For,
7423
- Od as HISTORY_TITLE,
7418
+ kd as HISTORY_TITLE,
7424
7419
  Lt as I,
7425
- rd as INFINITE_SCROLL_LIMIT,
7426
- td as INFINITE_SCROLL_THRESHOLD,
7427
- ld as INPUT_BOTTOM_OFFSET,
7428
- dd as INPUT_BOTTOM_OFFSET_EXTRA,
7429
- ud as INPUT_BOTTOM_OFFSET_IPHONE,
7430
- Nd as INPUT_PLACEHOLDER_TEXT_CMD_ENTER,
7431
- Cd as INPUT_PLACEHOLDER_TEXT_ENTER,
7432
- _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,
7433
7428
  mu as Index,
7434
7429
  fl as L,
7435
- Ju as LOCAL_STORAGE_CHAT_DETAILS,
7436
7430
  ps as LOCAL_STORAGE_PREFIX,
7437
- Zu as LOCAL_STORAGE_PRIVATE_DISCLOSURE,
7438
- ed as LOCAL_STORAGE_REASONING_DISCLOSURE,
7439
- 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,
7440
7434
  gs as LOCAL_STORAGE_SERVICE_WORKER,
7441
- Qu as LOCAL_STORAGE_SORT,
7442
- Yu as LOCAL_STORAGE_SORT_TIMESTAMP,
7443
- Xu as LOCAL_STORAGE_SORT_TOKEN_USAGE,
7444
- 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,
7445
7439
  zl as Logo,
7446
7440
  gu as Match,
7447
- Id as PROFILE_TITLE,
7448
- $d as PROMPTS_DESCRIPTION,
7449
- nd as PROMPT_CLASSNAME,
7450
- 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,
7451
7445
  Eu as Portal,
7452
7446
  sl as S,
7453
- kd as SETTINGS_TITLE,
7454
- Bd as SassySaint,
7447
+ Id as SETTINGS_TITLE,
7448
+ Hd as SassySaint,
7455
7449
  yu as Show,
7456
7450
  _t as Subscribable,
7457
7451
  pu as Switch,
7458
- Md as TOAST_CHAT_DELETED,
7459
- Ld as TOAST_CHAT_SAVED,
7460
- Dd as TOAST_PROVIDER_CHANGED,
7461
- Fd as TRIMESTERS,
7462
- Kd as TRIMESTERS_SHORT,
7463
- od as UI_BUTTON_SCROLL_BUFFER,
7464
- cd as UI_DEFAULT_MAIN_HEIGHT,
7465
- ad as UI_FOOTER_BUFFER,
7466
- 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,
7467
7461
  Ps as a,
7468
7462
  Bi as addEventListener,
7469
7463
  au as batch,
7470
- yd as c,
7464
+ md as c,
7471
7465
  Hi as className,
7472
7466
  vu as clearDelegatedEvents,
7473
7467
  $c as convertCamelCaseToReadable,
@@ -7481,7 +7475,7 @@ export {
7481
7475
  Se as createRoot,
7482
7476
  Y as createSignal,
7483
7477
  fu as createUniqueId,
7484
- vd as de,
7478
+ wd as de,
7485
7479
  Pc as debounce,
7486
7480
  Ui as delegateEvents,
7487
7481
  it as deleteNestedDataByPath,
@@ -7497,7 +7491,7 @@ export {
7497
7491
  Ru as getQueryStatusColorByLabel,
7498
7492
  Au as getQueryStatusLabel,
7499
7493
  Iu as getSidedProp,
7500
- fd as handleServiceWorkerToggle,
7494
+ dd as handleServiceWorkerToggle,
7501
7495
  xl as i,
7502
7496
  ar as insert,
7503
7497
  As as isProbablyMobile,
@@ -7512,7 +7506,7 @@ export {
7512
7506
  Ti as mergeProps,
7513
7507
  Nu as mutationSortFns,
7514
7508
  ys as n,
7515
- gd as ne,
7509
+ pd as ne,
7516
7510
  re as noop,
7517
7511
  Q as notifyManager,
7518
7512
  _c as numberFormatter,
@@ -7525,12 +7519,12 @@ export {
7525
7519
  Gs as pendingThenable,
7526
7520
  Nc as pluralize,
7527
7521
  ul as r,
7528
- pd as re,
7522
+ yd as re,
7529
7523
  kc as renderDataAsList,
7530
7524
  Hs as replaceData,
7531
7525
  Fs as resolveEnabled,
7532
7526
  Zt as resolveStaleTime,
7533
- md as s,
7527
+ hd as s,
7534
7528
  ka as serialize,
7535
7529
  ir as setAttribute,
7536
7530
  su as shallowEqualObjects,
@@ -7542,7 +7536,7 @@ export {
7542
7536
  wu as template,
7543
7537
  Us as timeUntilStale,
7544
7538
  kt as ue,
7545
- Ed as ue$1,
7539
+ vd as ue$1,
7546
7540
  Ic as unObfuscate,
7547
7541
  G as untrack,
7548
7542
  st as updateNestedDataByPath,
@@ -7550,6 +7544,6 @@ export {
7550
7544
  du as useContext,
7551
7545
  ii as useQueryClient,
7552
7546
  lu as useTransition,
7553
- hd as utilities,
7554
- wd as ye
7547
+ fd as utilities,
7548
+ bd as ye
7555
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.C2s02oz2.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.C2s02oz2.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.DPutGpC0.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.CXZi-n86.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.CvA06Hw8.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.DxG9QEiP.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.DwireW2B.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.Xvxn6f2o.js"
6931
+ "./index.AHmpbrZI.js"
6932
6932
  );
6933
6933
  this.rehypeHighlight = n;
6934
6934
  }
@@ -6953,10 +6953,10 @@ const Ke = new su(), cu = ({
6953
6953
  }
6954
6954
  )
6955
6955
  ] }), pu = (e) => e.includes("```"), fu = (e) => e.includes("$$"), hu = (e) => (
6956
- // urls
6957
- e.includes("http://") || e.includes("https://") || // table
6958
- e.includes("|") || // strikethrough
6959
- e.includes("~") || e.includes("~~") || // task lists
6956
+ // urls.
6957
+ e.includes("http://") || e.includes("https://") || // table.
6958
+ e.includes("|") || // strikethrough.
6959
+ e.includes("~") || e.includes("~~") || // task lists.
6960
6960
  e.includes("- [ ]") || e.includes("- [x]")
6961
6961
  ), mu = (e) => {
6962
6962
  const n = document.createElement("link");
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { SassySaint as a } from "../../chunks/index.DPutGpC0.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.DPutGpC0.js";
1
+ import { SassySaint as r } from "./chunks/index.CFV5SN1z.js";
2
2
  /*!
3
- @sassysaint/client v8.40.2
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.2",
9
- buildTime: "08/20/2025 12:12 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.2",
3
+ "version": "8.41.0",
4
4
  "license": "MIT",
5
5
  "author": "Arno Versini",
6
6
  "publishConfig": {
@@ -18,9 +18,11 @@
18
18
  "build:types": "tsup",
19
19
  "build": "npm-run-all --serial clean build:check build:js build:types",
20
20
  "clean": "rimraf dist tmp",
21
+ "comments:fix": "comments src/**/*.ts* --merge-line-comments",
21
22
  "dev:js": "vite build --watch --mode development",
22
23
  "dev:types": "tsup --watch src",
23
24
  "dev": "npm-run-all clean --parallel dev:js dev:types",
25
+ "fix": "npm-run-all lint:fix comments:fix",
24
26
  "lint": "biome lint src",
25
27
  "lint:fix": "biome check src --write --no-errors-on-unmatched",
26
28
  "start": "static-server dist --port 5173",
@@ -31,17 +33,17 @@
31
33
  "react-dom": "^18.3.1 || ^19.0.0"
32
34
  },
33
35
  "devDependencies": {
34
- "@sassysaint/client": "8.40.2",
36
+ "@sassysaint/client": "8.41.0",
35
37
  "@tailwindcss/vite": "4.1.12",
36
- "@versini/ui-styles": "6.0.1"
38
+ "@versini/ui-styles": "6.0.2"
37
39
  },
38
40
  "dependencies": {
39
- "@versini/ui-hooks": "4.7.5",
41
+ "@versini/ui-hooks": "4.7.8",
40
42
  "clsx": "2.1.1",
41
43
  "tailwindcss": "4.1.12"
42
44
  },
43
45
  "sideEffects": [
44
46
  "**/*.css"
45
47
  ],
46
- "gitHead": "e846a9619cd9510aa7a7d8bf0395b2f8a4b29d4c"
48
+ "gitHead": "cd829983379bbc976968fbd1032dde7e7832976c"
47
49
  }