@versini/sassysaint 8.73.1 → 8.73.2

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.2b2DI_SN.js → AboutChangelog.BGbXeM1V.js} +2 -2
  2. package/dist/chunks/{AboutEntry.BHq7KBa1.js → AboutEntry.B6zksAh7.js} +5 -5
  3. package/dist/chunks/{App.DcQF9Hq9.js → App.tbzd8U0K.js} +16 -16
  4. package/dist/chunks/{Chart.DAdepX81.js → Chart.D2MV2w_Q.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.BF3Bj7JJ.js → ChatBubbleAssistant.RzH26aLB.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.B5uyfOKG.js → ChatBubbleUser.CBnoxqes.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.BwjPu3FF.js → ChatHistoryTable.C6I638cE.js} +63 -62
  8. package/dist/chunks/HistoryEntry.CwveusV0.js +333 -0
  9. package/dist/chunks/{ProfileEntry.Ce801i2m.js → ProfileEntry.BSOMcinm.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.fNHoX42W.js → SettingsEntry.SHZazp-B.js} +3 -3
  11. package/dist/chunks/{Table.J1RcsDNn.js → Table.DwbGRt2o.js} +2 -2
  12. package/dist/chunks/{UsageEntry.k-Ljpdg9.js → UsageEntry.BOtq-YTl.js} +3 -3
  13. package/dist/chunks/{UserMemoriesPanel.C0BI-Pbv.js → UserMemoriesPanel.BdWYKyp5.js} +4 -4
  14. package/dist/chunks/{index.CauWbyr8.js → index.BO_yfOl7.js} +3 -3
  15. package/dist/chunks/{index.C_OZL-ky.js → index.CREsouo5.js} +1 -1
  16. package/dist/chunks/{index.uzB9FupG.js → index.CqtcPR4A.js} +2 -2
  17. package/dist/chunks/{index.CmXD-yP7.js → index.Cxd_WImT.js} +1 -1
  18. package/dist/chunks/{index.RnO-M1tm.js → index.DX8g0zp_.js} +2 -2
  19. package/dist/chunks/{index.FbsVqChk.js → index.Dxke1YD_.js} +1 -1
  20. package/dist/chunks/{index.BqnKf1sr.js → index.Tr3TVoxP.js} +1 -1
  21. package/dist/chunks/{index.nSgn5ZFo.js → index.zCqfAEjf.js} +1 -1
  22. package/dist/chunks/{useMarkdown.rLeRHXfb.js → useMarkdown.DBF4PL2-.js} +6 -6
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/package.json +3 -3
  26. package/dist/chunks/HistoryEntry.Cj5Hwpkx.js +0 -327
@@ -0,0 +1,333 @@
1
+ import { jsxs as n, jsx as t, Fragment as ee } from "react/jsx-runtime";
2
+ import { I as te, n as z, INFINITE_SCROLL_LIMIT as P, INFINITE_SCROLL_THRESHOLD as re, LOCAL_STORAGE_PREFIX as T, LOCAL_STORAGE_SORT_TIMESTAMP as ae, LOCAL_STORAGE_SORT_TOKEN_USAGE as se, LOCAL_STORAGE_SORT as oe, J as D, useUserPreferences as ie, useDeleteChat as ne, useToggleFavoriteChat as ce, APP_CLASSNAME as le, TOAST_CHAT_DELETED as de, graphQLRequest as he, SERVICE_TYPES as me, setNewProvider as ue, ACTION_SORT as Ce, Q as Se, TOAST_PROVIDER_CHANGED as fe, useChatsHistory as pe, LOCAL_STORAGE_SEARCH as ye, LOCAL_STORAGE_FAVORITES_ONLY as Te, HISTORY_TITLE as ge, S as Ae, Y as Ee, debounce as ve, C as _e, ACTION_SEARCH as De } from "./index.CqtcPR4A.js";
3
+ import { HistoryContext as G, ChatContext as M, useAiChat as Oe, E as g, e as u, ConfirmationPanel as Re, LazyToastContainerWrapper as Le, showErrorToast as Ie, CHAT_SET_PROVIDER as ke, showSuccessToast as be, CHAT_SET_STATUS as we, oe as Ne, G as xe } from "./App.tbzd8U0K.js";
4
+ import { useRef as N, useState as x, useContext as O, useCallback as V, Suspense as He, lazy as Fe, useEffect as Pe } from "react";
5
+ const Ve = ({
6
+ className: c,
7
+ viewBox: d,
8
+ title: f,
9
+ monotone: C,
10
+ ...p
11
+ }) => /* @__PURE__ */ n(
12
+ te,
13
+ {
14
+ defaultViewBox: "0 0 512 512",
15
+ size: "size-5",
16
+ viewBox: d,
17
+ className: c,
18
+ title: f || "Search",
19
+ ...p,
20
+ children: [
21
+ /* @__PURE__ */ t(
22
+ "path",
23
+ {
24
+ d: "M0 208a208 208 0 1 0 416 0 208 208 0 1 0-416 0m352 0a144 144 0 1 1-288 0 144 144 0 1 1 288 0",
25
+ opacity: C ? "1" : "0.4"
26
+ }
27
+ ),
28
+ /* @__PURE__ */ t("path", { d: "m330.7 376 126.7 126.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L376 330.7c-12.7 17.3-28 32.6-45.3 45.3" })
29
+ ]
30
+ }
31
+ ), ze = Fe(
32
+ () => import(
33
+ /* webpackChunkName: "history-table" */
34
+ "./ChatHistoryTable.C6I638cE.js"
35
+ ).then((c) => ({ default: c.ChatHistoryTable }))
36
+ ), Ge = ({
37
+ filteredHistory: c,
38
+ dispatch: d,
39
+ onOpenChange: f,
40
+ mutate: C,
41
+ isLoading: p = !1
42
+ }) => {
43
+ const { user: S, getAccessToken: h } = z(), l = N(null), s = N({
44
+ id: "",
45
+ timestamp: "",
46
+ message: ""
47
+ }), [A, m] = x(!1), [R, L] = x(
48
+ P + re
49
+ ), { state: i, dispatch: I } = O(G), y = {
50
+ searchString: i.searchString || "",
51
+ sortDirection: i.sortDirection || u.DESC,
52
+ sortedCell: i.sortedCell || D
53
+ }, {
54
+ state: { provider: k },
55
+ setChatId: E,
56
+ setInitialMessages: b
57
+ } = O(M), { setInput: w } = Oe(), [v, a] = g({
58
+ key: T + ae,
59
+ initialValue: u.DESC
60
+ }), [U, B] = g({
61
+ key: T + se,
62
+ initialValue: u.ASC
63
+ }), [, Y] = g({
64
+ key: T + oe,
65
+ initialValue: D
66
+ }), { refetch: j } = ie({
67
+ user: S?.username,
68
+ getAccessToken: h
69
+ }), { mutateAsync: $ } = ne({ getAccessToken: h }), { mutateAsync: Q } = ce({
70
+ getAccessToken: h
71
+ }), q = (e) => {
72
+ const o = i.sortedCell === e;
73
+ let r, _;
74
+ switch (e) {
75
+ case D:
76
+ _ = a, r = o ? i.sortDirection : v;
77
+ break;
78
+ case Se:
79
+ _ = B, r = o ? i.sortDirection : U;
80
+ break;
81
+ default:
82
+ _ = a, r = o ? i.sortDirection : v;
83
+ break;
84
+ }
85
+ const F = r === u.ASC ? u.DESC : u.ASC;
86
+ _(F), Y(e), I({
87
+ type: Ce,
88
+ payload: {
89
+ sortedCell: e,
90
+ sortDirection: F
91
+ }
92
+ });
93
+ }, J = async () => {
94
+ const e = s.current;
95
+ try {
96
+ await $({
97
+ userId: S?.username || "",
98
+ id: e.id
99
+ }), C(""), await Ie(de, {
100
+ autoClose: 2e3,
101
+ containerId: "history-table"
102
+ });
103
+ } catch {
104
+ }
105
+ }, K = async (e) => {
106
+ try {
107
+ const o = await h(), r = await he({
108
+ accessToken: o,
109
+ type: me.GET_CHAT,
110
+ params: {
111
+ id: e.id
112
+ }
113
+ });
114
+ r.data.provider !== k && (await ue({
115
+ provider: r.data.provider,
116
+ model: r.data.model,
117
+ accessToken: o,
118
+ username: S?.username || ""
119
+ }), d({
120
+ type: ke,
121
+ payload: {
122
+ provider: r.data.provider
123
+ }
124
+ }), j(), await be(
125
+ `${fe} ${r.data.provider}`,
126
+ {
127
+ containerId: "toggle-provider"
128
+ }
129
+ )), d({
130
+ type: we,
131
+ payload: {
132
+ restoring: !0,
133
+ restoredModel: r.data?.model || "",
134
+ restoredUsage: r.data?.tokenUsage || 0
135
+ }
136
+ }), w(""), E(e.id), b(r.data.messages), f(!1);
137
+ } catch {
138
+ }
139
+ }, W = (e) => {
140
+ s.current = {
141
+ id: e.id,
142
+ timestamp: e.timestamp,
143
+ message: e.messages.length > 0 ? e.messages[0]?.content : ""
144
+ }, m(!A);
145
+ }, X = async (e) => {
146
+ try {
147
+ await Q({
148
+ userId: S?.username || "",
149
+ id: e.id
150
+ }), C("");
151
+ } catch {
152
+ }
153
+ }, H = V((e) => {
154
+ e[0].isIntersecting && L((r) => r + P);
155
+ }, []), Z = V(
156
+ (e) => {
157
+ if (l.current && l.current.disconnect(), e) {
158
+ const o = {
159
+ rootMargin: "20px"
160
+ }, r = new IntersectionObserver(H, o);
161
+ r.observe(e), l.current = r;
162
+ }
163
+ },
164
+ [H]
165
+ );
166
+ return /* @__PURE__ */ n(ee, { children: [
167
+ /* @__PURE__ */ n(
168
+ Re,
169
+ {
170
+ showConfirmation: A,
171
+ setShowConfirmation: m,
172
+ action: J,
173
+ customStrings: {
174
+ confirmAction: "Delete",
175
+ cancelAction: "Cancel",
176
+ title: "Delete chat"
177
+ },
178
+ children: [
179
+ /* @__PURE__ */ t("p", { className: "m-0", children: "Are you sure you want to delete the following chat:" }),
180
+ /* @__PURE__ */ n("ul", { className: "m-0", children: [
181
+ /* @__PURE__ */ n("li", { children: [
182
+ "Timestamp:",
183
+ " ",
184
+ /* @__PURE__ */ t("span", { className: "text-lg", children: s.current && s.current.timestamp })
185
+ ] }),
186
+ /* @__PURE__ */ n("li", { children: [
187
+ "First message:",
188
+ " ",
189
+ /* @__PURE__ */ t("span", { className: "text-lg", children: s.current?.message })
190
+ ] })
191
+ ] })
192
+ ]
193
+ }
194
+ ),
195
+ /* @__PURE__ */ t("div", { className: le, children: /* @__PURE__ */ t(Le, { containerId: "history-table" }) }),
196
+ /* @__PURE__ */ t(He, { fallback: /* @__PURE__ */ t("div", {}), children: /* @__PURE__ */ t(
197
+ ze,
198
+ {
199
+ filteredHistory: c,
200
+ historyState: y,
201
+ lastEntryToLoad: R,
202
+ onClickSort: q,
203
+ onClickRestore: K,
204
+ onClickDelete: W,
205
+ onClickFavorite: X,
206
+ infinityScrollMarkerRef: Z,
207
+ isLoading: p
208
+ }
209
+ ) })
210
+ ] });
211
+ }, je = ({
212
+ open: c,
213
+ onOpenChange: d
214
+ }) => {
215
+ const { getAccessToken: f, user: C } = z(), { dispatch: p } = O(M), [S, h] = x([]), l = N(null), { state: s, dispatch: A } = O(G), {
216
+ data: m,
217
+ refetch: R,
218
+ isLoading: L,
219
+ isError: i
220
+ } = pe({
221
+ enabled: c,
222
+ user: C?.username || "",
223
+ searchString: s.searchString || "",
224
+ sortDirection: s.sortDirection || u.DESC,
225
+ sortedCell: s.sortedCell || D,
226
+ getAccessToken: f
227
+ }), [, I] = g({
228
+ key: T + ye,
229
+ initialValue: s.searchString
230
+ }), [y, k] = g({
231
+ key: T + Te,
232
+ initialValue: !1
233
+ });
234
+ Pe(() => {
235
+ m && h(
236
+ y ? m.filter((a) => a.favoriteChat === !0) : m
237
+ );
238
+ }, [m, y]);
239
+ const E = async (a) => {
240
+ I(a), A({
241
+ type: De,
242
+ payload: { searchString: a }
243
+ });
244
+ }, b = ve((a) => {
245
+ E(a.target.value.trim());
246
+ }, 500), w = async (a) => {
247
+ a.preventDefault();
248
+ }, v = (a) => {
249
+ k(a);
250
+ };
251
+ return /* @__PURE__ */ n(
252
+ Ne,
253
+ {
254
+ open: c,
255
+ onOpenChange: d,
256
+ title: ge,
257
+ animation: !0,
258
+ animationType: "fade",
259
+ children: [
260
+ /* @__PURE__ */ t(
261
+ Ae,
262
+ {
263
+ header: "Filters",
264
+ className: "prose-dark dark:prose-lighter mb-4",
265
+ noBorder: !0,
266
+ compact: !0,
267
+ children: /* @__PURE__ */ n("form", { autoComplete: "off", onSubmit: w, children: [
268
+ /* @__PURE__ */ t(
269
+ Ee,
270
+ {
271
+ placeholder: "Search",
272
+ labelHidden: !0,
273
+ noBorder: !0,
274
+ autoCapitalize: "off",
275
+ autoComplete: "off",
276
+ autoCorrect: "off",
277
+ ref: l,
278
+ defaultValue: s.searchString,
279
+ mode: "alt-system",
280
+ name: "Search",
281
+ label: "Search",
282
+ onChange: b,
283
+ className: "my-2",
284
+ rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Ve, { monotone: !0, size: "size-3" }) })
285
+ }
286
+ ),
287
+ /* @__PURE__ */ n("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
288
+ /* @__PURE__ */ t("div", { className: "order-1 sm:order-0", children: /* @__PURE__ */ t(
289
+ xe,
290
+ {
291
+ name: "favorites-only",
292
+ checked: y,
293
+ onChange: v,
294
+ label: "Show favorites only",
295
+ narrow: !0,
296
+ noBorder: !0
297
+ }
298
+ ) }),
299
+ /* @__PURE__ */ t(
300
+ _e,
301
+ {
302
+ size: "small",
303
+ disabled: s.searchString === "",
304
+ onClick: () => {
305
+ E(""), l.current?.value && (l.current.value = "", l.current.focus());
306
+ },
307
+ children: "Reset Search"
308
+ }
309
+ )
310
+ ] })
311
+ ] })
312
+ }
313
+ ),
314
+ /* @__PURE__ */ n("div", { className: "flex flex-col sm:flex-row max-h-[65vh] sm:max-h-[75vh] min-h-[60vh]", children: [
315
+ i && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
316
+ !i && /* @__PURE__ */ t(
317
+ Ge,
318
+ {
319
+ mutate: R,
320
+ filteredHistory: S,
321
+ dispatch: p,
322
+ onOpenChange: d,
323
+ isLoading: L
324
+ }
325
+ )
326
+ ] })
327
+ ]
328
+ }
329
+ );
330
+ };
331
+ export {
332
+ je as HistoryPanel
333
+ };
@@ -1,6 +1,6 @@
1
1
  import { jsxs as t, Fragment as $, jsx as e } from "react/jsx-runtime";
2
- import { preloadToast as D, showSuccessToast as K, showErrorToast as W, ConfirmationPanel as Y, LazyToastContainerWrapper as H, oe as V } from "./App.DcQF9Hq9.js";
3
- import { n as q, i as J, useUserPreferences as Q, useServerCapabilities as X, j$1 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.uzB9FupG.js";
2
+ import { preloadToast as D, showSuccessToast as K, showErrorToast as W, ConfirmationPanel as Y, LazyToastContainerWrapper as H, oe as V } from "./App.tbzd8U0K.js";
3
+ import { n as q, i as J, useUserPreferences as Q, useServerCapabilities as X, j$1 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.CqtcPR4A.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 = () => {
@@ -1,7 +1,7 @@
1
1
  import { jsxs as s, jsx as t, Fragment as D } from "react/jsx-runtime";
2
- import { n as ye, useEntitlements as De, useUserPreferences as Me, ot as se, LOCAL_STORAGE_OLED_MODE as Le, canEvaluateModels as Oe, Et as ve, getCacheInfo as _e, isServiceWorkerEnabled as xe, applyOledMode as ae, SETTINGS_TITLE as Ae, S as m, CARDS as r, $ as Re, C as M, PROMPTS_DESCRIPTION as Be, L as Pe, j as ne, getCurrentGeoLocation as Ge, graphQLRequest as re, handleServiceWorkerToggle as Ue, SERVICE_TYPES as le } from "./index.uzB9FupG.js";
3
- import { AppContext as Ve, useCapability as ce, E as We, oe as $e, G as l, APP_SET_OLED_MODE as ze } from "./App.DcQF9Hq9.js";
4
- import { Re as ie } from "./index.CmXD-yP7.js";
2
+ import { n as ye, useEntitlements as De, useUserPreferences as Me, ot as se, LOCAL_STORAGE_OLED_MODE as Le, canEvaluateModels as Oe, Et as ve, getCacheInfo as _e, isServiceWorkerEnabled as xe, applyOledMode as ae, SETTINGS_TITLE as Ae, S as m, CARDS as r, $ as Re, C as M, PROMPTS_DESCRIPTION as Be, L as Pe, j as ne, getCurrentGeoLocation as Ge, graphQLRequest as re, handleServiceWorkerToggle as Ue, SERVICE_TYPES as le } from "./index.CqtcPR4A.js";
3
+ import { AppContext as Ve, useCapability as ce, E as We, oe as $e, G as l, APP_SET_OLED_MODE as ze } from "./App.tbzd8U0K.js";
4
+ import { Re as ie } from "./index.Cxd_WImT.js";
5
5
  import { useContext as je, useState as n, useMemo as He, useCallback as Ye, useEffect as L } from "react";
6
6
  const Xe = ({
7
7
  open: de,
@@ -1,8 +1,8 @@
1
1
  import { jsxs as _, jsx as r } from "react/jsx-runtime";
2
- import { I as f, b$1 as v } from "./index.uzB9FupG.js";
2
+ import { I as f, b$1 as v } from "./index.CqtcPR4A.js";
3
3
  import C, { useContext as b } from "react";
4
4
  import o from "clsx";
5
- import { e as k } from "./App.DcQF9Hq9.js";
5
+ import { e as k } from "./App.tbzd8U0K.js";
6
6
  const L = ({
7
7
  className: e,
8
8
  viewBox: a,
@@ -1,13 +1,13 @@
1
1
  import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import { n as f, i as v, useUserChatStats as _, useChatsUsage as z, USAGE_TITLE as B, S as g, renderDataAsList as P, CARDS as a, L as p, j as A, C as i, pluralize as h } from "./index.uzB9FupG.js";
3
- import { oe as H } from "./App.DcQF9Hq9.js";
2
+ import { n as f, i as v, useUserChatStats as _, useChatsUsage as z, USAGE_TITLE as B, S as g, renderDataAsList as P, CARDS as a, L as p, j as A, C as i, pluralize as h } from "./index.CqtcPR4A.js";
3
+ import { oe as H } from "./App.tbzd8U0K.js";
4
4
  import { useState as C, Suspense as K, lazy as j } from "react";
5
5
  const s = [0, 3, 6, 9], n = {
6
6
  TOKEN: "token",
7
7
  MODEL: "model"
8
8
  }, w = j(() => import(
9
9
  /* webpackChunkName: "LazyChart" */
10
- "./Chart.DAdepX81.js"
10
+ "./Chart.D2MV2w_Q.js"
11
11
  )), R = ({
12
12
  open: k,
13
13
  onOpenChange: E
@@ -1,10 +1,10 @@
1
1
  import { jsxs as l, jsx as e, Fragment as _ } from "react/jsx-runtime";
2
- import { I as se, L as O, j as y, C as v, n as ce, LOCAL_STORAGE_PREFIX as q, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as oe, LOCAL_STORAGE_SORT_MEMORY_COLUMN as ie, useUserMemories as ae, useDeleteMemory as de, useDeleteAllMemories as me, useUpdateMemory as he, te as B } from "./index.uzB9FupG.js";
3
- import { oe as V, E as F, e as g, ConfirmationPanel as G, st as H } from "./App.DcQF9Hq9.js";
2
+ import { I as se, L as O, j as y, C as v, n as ce, LOCAL_STORAGE_PREFIX as q, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as oe, LOCAL_STORAGE_SORT_MEMORY_COLUMN as ie, useUserMemories as ae, useDeleteMemory as de, useDeleteAllMemories as me, useUpdateMemory as he, te as B } from "./index.CqtcPR4A.js";
3
+ import { oe as V, E as F, e as g, ConfirmationPanel as G, st as H } from "./App.tbzd8U0K.js";
4
4
  import E from "clsx";
5
5
  import { useState as x, useEffect as xe, useRef as j } from "react";
6
- import { Re as ue } from "./index.CmXD-yP7.js";
7
- import { j as pe, D as fe, G as b, M as d, F as ge, H as ye, l as Ce, U as Ne } from "./Table.J1RcsDNn.js";
6
+ import { Re as ue } from "./index.Cxd_WImT.js";
7
+ import { j as pe, D as fe, G as b, M as d, F as ge, H as ye, l as Ce, U as Ne } from "./Table.DwbGRt2o.js";
8
8
  const Ae = ({
9
9
  className: a,
10
10
  viewBox: m,
@@ -1,6 +1,6 @@
1
- import { getDefaultExportFromCjs as kn } from "./App.DcQF9Hq9.js";
2
- import { visit as In } from "./useMarkdown.rLeRHXfb.js";
3
- import { toText as Cn } from "./index.C_OZL-ky.js";
1
+ import { getDefaultExportFromCjs as kn } from "./App.tbzd8U0K.js";
2
+ import { visit as In } from "./useMarkdown.DBF4PL2-.js";
3
+ import { toText as Cn } from "./index.CREsouo5.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 E, convertElement as u } from "./useMarkdown.rLeRHXfb.js";
1
+ import { convert as E, convertElement as u } from "./useMarkdown.DBF4PL2-.js";
2
2
  const f = (
3
3
  // Note: overloads like this are needed to support optional generics.
4
4
  /**
@@ -4044,7 +4044,7 @@ const ls = () => {
4044
4044
  if (!e)
4045
4045
  throw new Error("useAuth must be used within an AuthHookProvider");
4046
4046
  return e;
4047
- }, oc = "I'm having trouble right now. Please try again later.", cc = "action-search", lc = "action-sort", uc = "action-toggle-prompt", dc = "action-reset-prompt", us = "sassy-saint-", hc = "search", fc = "sort", mc = "sort-timestamp", pc = "sort-token-usage", yc = "sort-memory-direction", gc = "sort-memory-column", bc = "favorites-only", Ec = "private-disclosure", wc = "reasoning-disclosure", ds = "service-worker", Sc = "chat-id", vc = "sassysaint-oled-mode", Sr = "data-oled-mode", vr = "b44c68f0-e5b3-4a1d-a3e3-df8632b0223b", Tc = 10, Ac = 30, Ic = "av-prompt", _c = "av-prompt-editable", Rc = "size-5 sm:size-4", Cc = 30, Oc = 15, kc = 130, Nc = 160, Pc = 16, $c = 24, xc = 76, Mc = 76;
4047
+ }, oc = "I'm having trouble right now. Please try again later.", cc = "action-search", lc = "action-sort", uc = "action-toggle-prompt", dc = "action-reset-prompt", us = "sassy-saint-", hc = "search", fc = "sort", mc = "sort-timestamp", pc = "sort-token-usage", yc = "sort-memory-direction", gc = "sort-memory-column", bc = "favorites-only", Ec = "private-disclosure", wc = "reasoning-disclosure", ds = "service-worker", Sc = "chat-id", vc = "sassysaint-oled-mode", Sr = "data-oled-mode", vr = "b44c68f0-e5b3-4a1d-a3e3-df8632b0223b", Tc = 20, Ac = 30, Ic = "av-prompt", _c = "av-prompt-editable", Rc = "size-5 sm:size-4", Cc = 30, Oc = 15, kc = 130, Nc = 160, Pc = 16, $c = 24, xc = 76, Mc = 76;
4048
4048
  let At = null, ae = !1;
4049
4049
  typeof window < "u" && "serviceWorker" in navigator && navigator.serviceWorker.addEventListener("controllerchange", () => {
4050
4050
  ae && (ae = !1, window.location.reload());
@@ -6971,7 +6971,7 @@ Press Ctrl+Enter to send it or Enter for new line.`, Tl = "{{clipboard}}", P = "
6971
6971
  ] });
6972
6972
  }, jo = new URL(document.location.href).searchParams, Cr = !!jo.get("debug") || !1, Qo = Ws(() => import(
6973
6973
  /* webpackChunkName: "LazyApp" */
6974
- "./App.DcQF9Hq9.js"
6974
+ "./App.tbzd8U0K.js"
6975
6975
  ).then((e) => e.App)), Jo = new ma(), Or = ({
6976
6976
  isComponent: e,
6977
6977
  headerHeight: t
@@ -1,5 +1,5 @@
1
1
  import { jsxs as oe, jsx as x } from "react/jsx-runtime";
2
- import { o as se, h as U, i as ie, x as de } from "./index.uzB9FupG.js";
2
+ import { o as se, h as U, i as ie, x as de } from "./index.CqtcPR4A.js";
3
3
  import ce, { useState as _, useEffect as ne, useRef as b, useLayoutEffect as T } from "react";
4
4
  import s from "clsx";
5
5
  function ue({
@@ -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.rLeRHXfb.js";
2
- import { toText as Ca } from "./index.C_OZL-ky.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.DBF4PL2-.js";
2
+ import { toText as Ca } from "./index.CREsouo5.js";
3
3
  const Gt = /[#.]/g;
4
4
  function qa(r, e) {
5
5
  const t = r || "", a = {};
@@ -1,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.rLeRHXfb.js";
1
+ import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.DBF4PL2-.js";
2
2
  import { longestStreak as q } from "./index.Cyw5OC0t.js";
3
3
  function b() {
4
4
  return {
@@ -1,5 +1,5 @@
1
1
  import { jsxs as p, jsx as i } from "react/jsx-runtime";
2
- import { te as B } from "./index.uzB9FupG.js";
2
+ import { te as B } from "./index.CqtcPR4A.js";
3
3
  import { useState as I, useEffect as k } from "react";
4
4
  import s from "clsx";
5
5
  const h = "av-bubble", w = ({
@@ -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.rLeRHXfb.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.DBF4PL2-.js";
2
2
  import { longestStreak as qe } from "./index.Cyw5OC0t.js";
3
3
  function ne(e, n) {
4
4
  const t = String(e);
@@ -1,8 +1,8 @@
1
1
  import * as rn from "react/jsx-runtime";
2
2
  import { jsx as se, jsxs as Pn } from "react/jsx-runtime";
3
- import { te as Ir, isTauri as Tr, unObfuscate as Pr, obfuscate as Ar } from "./index.uzB9FupG.js";
3
+ import { te as Ir, isTauri as Tr, unObfuscate as Pr, obfuscate as Ar } from "./index.CqtcPR4A.js";
4
4
  import zr, { useState as Lt, useEffect as _t, useCallback as vt, useRef as Re } from "react";
5
- import { getDefaultExportFromCjs as Nt } from "./App.DcQF9Hq9.js";
5
+ import { getDefaultExportFromCjs as Nt } from "./App.tbzd8U0K.js";
6
6
  import Lr from "clsx";
7
7
  const Rt = ({
8
8
  children: e,
@@ -6907,7 +6907,7 @@ class uu {
6907
6907
  if (!this.remarkGfm) {
6908
6908
  const { default: n } = await import(
6909
6909
  /* webpackChunkName: "md-remark" */
6910
- "./index.nSgn5ZFo.js"
6910
+ "./index.zCqfAEjf.js"
6911
6911
  );
6912
6912
  this.remarkGfm = n;
6913
6913
  }
@@ -6918,7 +6918,7 @@ class uu {
6918
6918
  hu("https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css");
6919
6919
  const { default: n } = await import(
6920
6920
  /* webpackChunkName: "md-rehype-katex" */
6921
- "./index.RnO-M1tm.js"
6921
+ "./index.DX8g0zp_.js"
6922
6922
  );
6923
6923
  this.rehypeKatex = n;
6924
6924
  }
@@ -6928,7 +6928,7 @@ class uu {
6928
6928
  if (!this.remarkMath) {
6929
6929
  const { default: n } = await import(
6930
6930
  /* webpackChunkName: "md-remark" */
6931
- "./index.FbsVqChk.js"
6931
+ "./index.Dxke1YD_.js"
6932
6932
  );
6933
6933
  this.remarkMath = n;
6934
6934
  }
@@ -6938,7 +6938,7 @@ class uu {
6938
6938
  if (!this.rehypeHighlight) {
6939
6939
  const { default: n } = await import(
6940
6940
  /* webpackChunkName: "md-rehype-highlight" */
6941
- "./index.CauWbyr8.js"
6941
+ "./index.BO_yfOl7.js"
6942
6942
  );
6943
6943
  this.rehypeHighlight = n;
6944
6944
  }
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { SassySaint as a } from "../../chunks/index.uzB9FupG.js";
2
+ import { SassySaint as a } from "../../chunks/index.CqtcPR4A.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.uzB9FupG.js";
1
+ import { SassySaint as r } from "./chunks/index.CqtcPR4A.js";
2
2
  /*!
3
- @sassysaint/client v8.73.1
3
+ @sassysaint/client v8.73.2
4
4
  © 2025 gizmette.com
5
5
  */
6
6
  try {
7
7
  window.__VERSINI_SASSY_GLOBAL__ || (window.__VERSINI_SASSY_GLOBAL__ = {
8
- version: "8.73.1",
9
- buildTime: "10/25/2025 03:04 PM EDT",
8
+ version: "8.73.2",
9
+ buildTime: "10/25/2025 05:34 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.73.1",
3
+ "version": "8.73.2",
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.73.1",
36
+ "@sassysaint/client": "8.73.2",
37
37
  "@tailwindcss/vite": "4.1.16",
38
38
  "@versini/ui-styles": "6.0.7"
39
39
  },
@@ -45,5 +45,5 @@
45
45
  "sideEffects": [
46
46
  "**/*.css"
47
47
  ],
48
- "gitHead": "7e32500820075709b3e4d55ec008492513e67a1f"
48
+ "gitHead": "de1a1cd131d7ea94b5de3ac17c92cc74918694d7"
49
49
  }