@versini/sassysaint 8.66.0 → 8.67.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.
Files changed (26) hide show
  1. package/dist/chunks/{AboutChangelog.DpM88TD4.js → AboutChangelog.DIAjD4IT.js} +2 -2
  2. package/dist/chunks/{AboutEntry.myjEE_YS.js → AboutEntry.IN-KMi21.js} +5 -5
  3. package/dist/chunks/{App.D11WXiGv.js → App.NiMe9pNP.js} +2851 -2633
  4. package/dist/chunks/{Chart.C09_D0Js.js → Chart.DURfI14K.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.4n93HLwe.js → ChatBubbleAssistant.D3Jy0tBq.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.BA5mfRX3.js → ChatBubbleUser.CHV0_ZTg.js} +6 -6
  7. package/dist/chunks/{ChatHistoryTable.GOTm0B_0.js → ChatHistoryTable.BVo20jIZ.js} +13 -13
  8. package/dist/chunks/{HistoryEntry.DbFidH9-.js → HistoryEntry.DNita81q.js} +15 -15
  9. package/dist/chunks/{ProfileEntry.CQn1T1HP.js → ProfileEntry.ChfpIWZB.js} +2 -2
  10. package/dist/chunks/SettingsEntry.B6JLgzK6.js +794 -0
  11. package/dist/chunks/{Table.BVEnC3sJ.js → Table.B7UaKGm4.js} +6 -6
  12. package/dist/chunks/{UsageEntry.CBS_lg8M.js → UsageEntry.DoXdRXoX.js} +3 -3
  13. package/dist/chunks/{UserMemoriesPanel.CJWaZZty.js → UserMemoriesPanel.pCNm16LV.js} +3 -3
  14. package/dist/chunks/{index.DresqUv9.js → index.B84nSOH2.js} +8 -8
  15. package/dist/chunks/{index.CaVPHC4s.js → index.CSaM-Hzm.js} +647 -615
  16. package/dist/chunks/{index.6qKz8JoC.js → index.CY7kVg7R.js} +1 -1
  17. package/dist/chunks/{index.Dcg8QQwK.js → index.CZrhYvUR.js} +1 -1
  18. package/dist/chunks/{index.CytEb1Ff.js → index.D5B1yWxF.js} +2 -2
  19. package/dist/chunks/{index.CLaxLST5.js → index.DPL6Jtij.js} +3 -3
  20. package/dist/chunks/{index.CVG2GNQJ.js → index.DS3O7dDS.js} +1 -1
  21. package/dist/chunks/{useMarkdown.BhytnMpG.js → useMarkdown.zu1E3PyX.js} +10 -10
  22. package/dist/components/SassySaint/SassySaint.js +1 -1
  23. package/dist/index.js +4 -4
  24. package/dist/style.css +1 -1
  25. package/package.json +3 -3
  26. package/dist/chunks/SettingsEntry.DOIpVprT.js +0 -776
@@ -1,7 +1,7 @@
1
1
  import { jsx as Ap } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as ln } from "./App.D11WXiGv.js";
2
+ import { getDefaultExportFromCjs as ln } from "./App.NiMe9pNP.js";
3
3
  import Cp, { useState as Pp, useEffect as Op } from "react";
4
- import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.CaVPHC4s.js";
4
+ import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.CSaM-Hzm.js";
5
5
  var ls = { exports: {} }, Ip = ls.exports, on;
6
6
  function Dp() {
7
7
  return on || (on = 1, (function(we, he) {
@@ -1,10 +1,10 @@
1
1
  import { jsx as x } from "react/jsx-runtime";
2
- import { n as N, useUserPreferences as O, convertCamelCaseToReadable as P, numberFormatter as R, pluralize as y, Y as L } from "./index.CaVPHC4s.js";
3
- import { BUBBLE_FOOTER_EMPTY as _ } from "./index.DresqUv9.js";
2
+ import { n as N, useUserPreferences as O, convertCamelCaseToReadable as P, numberFormatter as R, pluralize as y, Y as L } from "./index.CSaM-Hzm.js";
3
+ import { BUBBLE_FOOTER_EMPTY as _ } from "./index.B84nSOH2.js";
4
4
  import w from "clsx";
5
5
  import v, { useState as M, useRef as A, useEffect as U, useContext as B } from "react";
6
- import { ChatContext as G, AsyncBubble as E } from "./App.D11WXiGv.js";
7
- import { useMarkdown as D } from "./useMarkdown.BhytnMpG.js";
6
+ import { ChatContext as G, AsyncBubble as E } from "./App.NiMe9pNP.js";
7
+ import { useMarkdown as D } from "./useMarkdown.zu1E3PyX.js";
8
8
  const j = 2, q = j * 1e3, b = "", I = (e) => e * (2 - e);
9
9
  function W(e, n = !0) {
10
10
  const [a, p] = M(0), [i, C] = M(0), [t, T] = M(e), r = A(0), s = A(0);
@@ -1,8 +1,8 @@
1
1
  import { jsx as n, Fragment as b, jsxs as A } from "react/jsx-runtime";
2
2
  import { useState as C, useMemo as u, isValidElement as p, useEffect as I } from "react";
3
- import { AsyncBubble as w } from "./App.D11WXiGv.js";
4
- import { useMarkdown as _ } from "./useMarkdown.BhytnMpG.js";
5
- import { C as M } from "./index.CaVPHC4s.js";
3
+ import { AsyncBubble as w } from "./App.NiMe9pNP.js";
4
+ import { useMarkdown as _ } from "./useMarkdown.zu1E3PyX.js";
5
+ import { C as M } from "./index.CSaM-Hzm.js";
6
6
  const R = 200, N = ({
7
7
  string: e,
8
8
  idealLength: r = R
@@ -93,13 +93,13 @@ const R = 200, N = ({
93
93
  );
94
94
  };
95
95
  /*!
96
- @versini/ui-truncate v5.1.1
96
+ @versini/ui-truncate v5.1.2
97
97
  © 2025 gizmette.com
98
98
  */
99
99
  try {
100
100
  window.__VERSINI_UI_TRUNCATE__ || (window.__VERSINI_UI_TRUNCATE__ = {
101
- version: "5.1.1",
102
- buildTime: "10/17/2025 12:54 PM EDT",
101
+ version: "5.1.2",
102
+ buildTime: "10/19/2025 04:19 PM EDT",
103
103
  homepage: "https://github.com/aversini/ui-components",
104
104
  license: "MIT"
105
105
  });
@@ -1,10 +1,10 @@
1
1
  import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { I as g, K as N, Z as C, INFINITE_SCROLL_THRESHOLD as A, CARDS as E, pluralize as y, te as p, numberFormatter as k, nt as b, isProbablyMobile as D, c as U, O as B, _ as I } from "./index.CaVPHC4s.js";
3
- import { st as u, p$1 as P, z as L, p$2 as V } from "./App.D11WXiGv.js";
2
+ import { I as g, Z as N, J as C, INFINITE_SCROLL_THRESHOLD as A, CARDS as E, pluralize as y, te as p, numberFormatter as k, ot as b, isProbablyMobile as D, c as U, r as B, O as I } from "./index.CSaM-Hzm.js";
3
+ import { st as u, p$1 as P, z as L, p$2 as V } from "./App.NiMe9pNP.js";
4
4
  import h from "clsx";
5
5
  import { Fragment as _ } from "react";
6
- import { j as $, D as H, G as M, H as K, U as Y, M as a, F as f, l as F } from "./Table.BVEnC3sJ.js";
7
- const G = ({
6
+ import { j as $, D as H, G as M, H as Y, U as F, M as a, F as f, l as G } from "./Table.B7UaKGm4.js";
7
+ const K = ({
8
8
  className: l,
9
9
  viewBox: c,
10
10
  title: o,
@@ -82,7 +82,7 @@ const G = ({
82
82
  /* @__PURE__ */ e("path", { d: "M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448m0 480a256 256 0 1 0 0-512 256 256 0 1 0 0 512m14.3-399.1c-2.7-5.5-8.3-8.9-14.3-8.9s-11.7 3.5-14.3 8.9l-36.2 73.4-81 11.8c-6 .9-11 5.1-12.9 10.9s-.3 12.2 4 16.4l58.6 57.2-13.8 80.7c-1 6 1.4 12.1 6.4 15.6s11.5 4.1 16.8 1.2l72.4-38 72.5 38.1c5.4 2.8 11.9 2.4 16.9-1.2s7.4-9.6 6.4-15.6L338 282.7l58.6-57.2c4.4-4.3 5.9-10.6 4-16.4s-6.9-10-12.9-10.9l-81.1-11.8-36.2-73.4zm-40 95.1 25.7-51.8 25.6 51.9c2.3 4.7 6.8 8 12 8.8l57.3 8.3-41.5 40.4c-3.8 3.7-5.5 9-4.6 14.2l9.8 57.1-51.2-26.9c-4.7-2.5-10.2-2.5-14.9 0l-51.2 26.9 9.8-57.1c.9-5.2-.8-10.5-4.6-14.2L161 225.1l57.3-8.3c5.2-.8 9.7-4 12-8.8" })
83
83
  ]
84
84
  }
85
- ), Z = {
85
+ ), J = {
86
86
  [I]: V,
87
87
  [B]: L,
88
88
  [U]: P
@@ -93,12 +93,12 @@ const G = ({
93
93
  PROVIDER: "provider",
94
94
  TOKEN_USAGE: C,
95
95
  ACTIONS: "actions"
96
- }, q = [
96
+ }, Z = [
97
97
  t.ROW,
98
98
  t.TIMESTAMP,
99
99
  t.SUMMARY,
100
100
  t.ACTIONS
101
- ], J = [
101
+ ], q = [
102
102
  t.ROW,
103
103
  t.SUMMARY,
104
104
  t.TIMESTAMP,
@@ -115,7 +115,7 @@ const G = ({
115
115
  onClickFavorite: O,
116
116
  infinityScrollMarkerRef: S
117
117
  }) => {
118
- const v = D() ? q : J, T = (s) => {
118
+ const v = D() ? Z : q, T = (s) => {
119
119
  switch (s) {
120
120
  case t.ROW:
121
121
  return /* @__PURE__ */ e(a, { className: "sr-only", children: "Row" }, s);
@@ -198,7 +198,7 @@ const G = ({
198
198
  );
199
199
  }
200
200
  case t.PROVIDER: {
201
- const d = r.model ? b(r.model) : null, R = d ? Z[d] : null;
201
+ const d = r.model ? b(r.model) : null, R = d ? J[d] : null;
202
202
  return /* @__PURE__ */ e(
203
203
  a,
204
204
  {
@@ -245,7 +245,7 @@ const G = ({
245
245
  onClick: async () => {
246
246
  await n(r);
247
247
  },
248
- children: /* @__PURE__ */ e(G, { size: "size-3", monotone: !0 })
248
+ children: /* @__PURE__ */ e(K, { size: "size-3", monotone: !0 })
249
249
  }
250
250
  )
251
251
  }
@@ -284,7 +284,7 @@ const G = ({
284
284
  onClick: () => {
285
285
  w(r);
286
286
  },
287
- children: /* @__PURE__ */ e(F, { size: "size-3", monotone: !0 })
287
+ children: /* @__PURE__ */ e(G, { size: "size-3", monotone: !0 })
288
288
  }
289
289
  )
290
290
  }
@@ -296,13 +296,13 @@ const G = ({
296
296
  };
297
297
  return /* @__PURE__ */ m($, { stickyHeader: !0, stickyFooter: !0, compact: !0, mode: "alt-system", children: [
298
298
  /* @__PURE__ */ e(H, { children: /* @__PURE__ */ e(M, { children: v.map((s) => T(s)) }) }),
299
- /* @__PURE__ */ e(K, { children: l.slice(0, o).map((s, r) => s?.messages?.length > 0 ? /* @__PURE__ */ m(_, { children: [
299
+ /* @__PURE__ */ e(Y, { children: l.slice(0, o).map((s, r) => s?.messages?.length > 0 ? /* @__PURE__ */ m(_, { children: [
300
300
  r === o - A && /* @__PURE__ */ e("tr", { ref: S }),
301
301
  /* @__PURE__ */ e(M, { children: v.map(
302
302
  (x) => z(x, s, r)
303
303
  ) })
304
304
  ] }, `${E.HISTORY.TITLE}-${s.id}-${r}`) : null) }),
305
- /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(M, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: y(
305
+ /* @__PURE__ */ e(F, { children: /* @__PURE__ */ e(M, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: y(
306
306
  `${l.length} chat`,
307
307
  l.length
308
308
  ) }) }) }) })
@@ -1,6 +1,6 @@
1
- import { jsxs as n, jsx as t, Fragment as J } from "react/jsx-runtime";
2
- import { I as Q, n as P, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as ee, LOCAL_STORAGE_PREFIX as f, LOCAL_STORAGE_SORT_TIMESTAMP as te, LOCAL_STORAGE_SORT_TOKEN_USAGE as re, LOCAL_STORAGE_SORT as ae, K as L, useUserPreferences as se, APP_CLASSNAME as oe, mutateCall as b, SERVICE_TYPES as x, TOAST_CHAT_DELETED as ie, setNewProvider as ne, ACTION_SORT as ce, Z as le, TOAST_PROVIDER_CHANGED as de, useChatsHistory as he, LOCAL_STORAGE_SEARCH as me, LOCAL_STORAGE_FAVORITES_ONLY as ue, HISTORY_TITLE as Ce, S as Se, Y$1 as pe, debounce as Te, C as ye, ACTION_SEARCH as fe } from "./index.CaVPHC4s.js";
3
- import { HistoryContext as z, ChatContext as M, useAiChat as Ee, E, e as m, ConfirmationPanel as ge, LazyToastContainerWrapper as Ae, showErrorToast as _e, CHAT_SET_PROVIDER as Oe, showSuccessToast as ve, CHAT_SET_STATUS as De, oe as Le, O as Re } from "./App.D11WXiGv.js";
1
+ import { jsxs as n, jsx as t, Fragment as q } from "react/jsx-runtime";
2
+ import { I as Q, n as P, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as ee, LOCAL_STORAGE_PREFIX as f, LOCAL_STORAGE_SORT_TIMESTAMP as te, LOCAL_STORAGE_SORT_TOKEN_USAGE as re, LOCAL_STORAGE_SORT as ae, Z as L, useUserPreferences as se, APP_CLASSNAME as oe, mutateCall as b, SERVICE_TYPES as x, TOAST_CHAT_DELETED as ie, setNewProvider as ne, ACTION_SORT as ce, J as le, TOAST_PROVIDER_CHANGED as de, useChatsHistory as he, LOCAL_STORAGE_SEARCH as me, LOCAL_STORAGE_FAVORITES_ONLY as ue, HISTORY_TITLE as Ce, S as Se, Y$1 as pe, debounce as Te, C as ye, ACTION_SEARCH as fe } from "./index.CSaM-Hzm.js";
3
+ import { HistoryContext as z, ChatContext as M, useAiChat as Ee, E, e as m, ConfirmationPanel as ge, LazyToastContainerWrapper as Ae, showErrorToast as _e, CHAT_SET_PROVIDER as Oe, showSuccessToast as ve, CHAT_SET_STATUS as De, oe as Le, O as Re } from "./App.NiMe9pNP.js";
4
4
  import { useRef as H, useState as F, useContext as R, useCallback as ke, useEffect as U, Suspense as Ie, lazy as we } from "react";
5
5
  const Ne = ({
6
6
  className: l,
@@ -31,7 +31,7 @@ const Ne = ({
31
31
  ), be = we(
32
32
  () => import(
33
33
  /* webpackChunkName: "history-table" */
34
- "./ChatHistoryTable.GOTm0B_0.js"
34
+ "./ChatHistoryTable.BVo20jIZ.js"
35
35
  ).then((l) => ({ default: l.ChatHistoryTable }))
36
36
  ), xe = ({
37
37
  filteredHistory: l,
@@ -87,7 +87,7 @@ const Ne = ({
87
87
  sortDirection: V
88
88
  }
89
89
  });
90
- }, K = async () => {
90
+ }, J = async () => {
91
91
  const e = o.current;
92
92
  try {
93
93
  await b({
@@ -103,7 +103,7 @@ const Ne = ({
103
103
  });
104
104
  } catch {
105
105
  }
106
- }, W = async (e) => {
106
+ }, K = async (e) => {
107
107
  try {
108
108
  const s = await C(), r = await b({
109
109
  accessToken: s,
@@ -136,13 +136,13 @@ const Ne = ({
136
136
  }), N(""), w(e.id), _(r.data.messages), T(!1);
137
137
  } catch {
138
138
  }
139
- }, X = (e) => {
139
+ }, W = (e) => {
140
140
  o.current = {
141
141
  id: e.id,
142
142
  timestamp: e.timestamp,
143
143
  message: e.messages.length > 0 ? e.messages[0]?.content : ""
144
144
  }, g(!c);
145
- }, Z = async (e) => {
145
+ }, X = async (e) => {
146
146
  try {
147
147
  await b({
148
148
  accessToken: await C(),
@@ -154,22 +154,22 @@ const Ne = ({
154
154
  }), u("");
155
155
  } catch {
156
156
  }
157
- }, q = ke((e) => {
157
+ }, Z = ke((e) => {
158
158
  e[0].isIntersecting && k((r) => r + G);
159
159
  }, []);
160
160
  return U(() => {
161
161
  const e = {
162
162
  // root: null,
163
163
  rootMargin: "20px"
164
- }, s = new IntersectionObserver(q, e);
164
+ }, s = new IntersectionObserver(Z, e);
165
165
  S.current && s.observe(S.current);
166
- }), /* @__PURE__ */ n(J, { children: [
166
+ }), /* @__PURE__ */ n(q, { children: [
167
167
  /* @__PURE__ */ n(
168
168
  ge,
169
169
  {
170
170
  showConfirmation: c,
171
171
  setShowConfirmation: g,
172
- action: K,
172
+ action: J,
173
173
  customStrings: {
174
174
  confirmAction: "Delete",
175
175
  cancelAction: "Cancel",
@@ -200,9 +200,9 @@ const Ne = ({
200
200
  historyState: I,
201
201
  lastEntryToLoad: p,
202
202
  onClickSort: j,
203
- onClickRestore: W,
204
- onClickDelete: X,
205
- onClickFavorite: Z,
203
+ onClickRestore: K,
204
+ onClickDelete: W,
205
+ onClickFavorite: X,
206
206
  infinityScrollMarkerRef: S
207
207
  }
208
208
  ) })
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, Fragment as D, jsx as e } from "react/jsx-runtime";
2
- import { preloadToast as K, showSuccessToast as W, showErrorToast as Y, ConfirmationPanel as H, LazyToastContainerWrapper as $, oe as V } from "./App.D11WXiGv.js";
3
- import { n as q, i as J, useUserPreferences as Q, useServerCapabilities as X, x as Z, setUserPlan as ee, S as d, renderDataAsList as ae, CARDS as s, L as f, j as c, C as se, it as ne, isTauri as re, te, l as b, PROFILE_TITLE as le } from "./index.CaVPHC4s.js";
2
+ import { preloadToast as K, showSuccessToast as W, showErrorToast as Y, ConfirmationPanel as H, LazyToastContainerWrapper as $, oe as V } from "./App.NiMe9pNP.js";
3
+ import { n as q, i as J, useUserPreferences as Q, useServerCapabilities as X, x as Z, setUserPlan as ee, S as d, renderDataAsList as ae, CARDS as s, L as f, j as c, C as se, it as ne, isTauri as re, te, l as b, PROFILE_TITLE as le } from "./index.CSaM-Hzm.js";
4
4
  import ie from "clsx";
5
5
  import { useState as m, useMemo as ce, useCallback as P } from "react";
6
6
  const oe = () => {