@versini/sassysaint 8.76.0 → 8.76.1

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 (34) hide show
  1. package/dist/chunks/{AboutChangelog.0kKcS_nT.js → AboutChangelog.Bi_-dpeZ.js} +10 -9
  2. package/dist/chunks/{AboutEntry.pKgicvGA.js → AboutEntry.CTwezLPC.js} +11 -11
  3. package/dist/chunks/App.CV0Bjlae.js +9011 -0
  4. package/dist/chunks/{Chart.DD1RkG8X.js → Chart.uzxgAiX2.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.K55U7Bno.js → ChatBubbleAssistant.BVlp2GoO.js} +8 -8
  6. package/dist/chunks/ChatBubbleUser.BrWZttfQ.js +130 -0
  7. package/dist/chunks/ChatHistoryTable.uFTyBF2A.js +236 -0
  8. package/dist/chunks/HistoryEntry.ThaD-b5r.js +307 -0
  9. package/dist/chunks/{ProfileEntry.Bb-kLfDX.js → ProfileEntry.CyBWFkHS.js} +26 -26
  10. package/dist/chunks/{SettingsEntry.DrmBVh-w.js → SettingsEntry.QaYvHkdk.js} +39 -39
  11. package/dist/chunks/Table.Ckql2SnG.js +359 -0
  12. package/dist/chunks/{UsageEntry.O3YdUF30.js → UsageEntry.CDzDYeHf.js} +19 -19
  13. package/dist/chunks/{UserMemoriesPanel.Dl5GlyBr.js → UserMemoriesPanel.B6egCowo.js} +184 -210
  14. package/dist/chunks/{index.DUl-LwyU.js → index.A4p6x5_T.js} +1 -1
  15. package/dist/chunks/index.BXdpJpQs.js +266 -0
  16. package/dist/chunks/{index.B9mUNJfd.js → index.BdPmgM6G.js} +1 -1
  17. package/dist/chunks/index.C3aZ0rB_.js +142 -0
  18. package/dist/chunks/{index.DGkW9g6n.js → index.C4Rma01G.js} +3 -3
  19. package/dist/chunks/{index.BeIiCAAq.js → index.C6T0AZQ_.js} +2 -2
  20. package/dist/chunks/{index.DEKgWsou.js → index.CgUGA3LA.js} +1 -1
  21. package/dist/chunks/index.rzw7MU5J.js +7894 -0
  22. package/dist/chunks/{useMarkdown.Bf7wGKkC.js → useMarkdown.B4NWSGJz.js} +2004 -2130
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/dist/style.css +2 -2
  26. package/package.json +5 -5
  27. package/dist/chunks/App.CtFpHv2O.js +0 -10007
  28. package/dist/chunks/ChatBubbleUser.DsX56Kxx.js +0 -128
  29. package/dist/chunks/ChatHistoryTable.BvEUTjiq.js +0 -288
  30. package/dist/chunks/HistoryEntry.BSOPWYO2.js +0 -333
  31. package/dist/chunks/Table.BbIvEnBz.js +0 -456
  32. package/dist/chunks/index.BNusLsEn.js +0 -357
  33. package/dist/chunks/index.Czv_1MTM.js +0 -7203
  34. package/dist/chunks/index.icjUE8II.js +0 -249
@@ -1,128 +0,0 @@
1
- import { jsx as n, Fragment as b, jsxs as A } from "react/jsx-runtime";
2
- import { useState as C, useMemo as u, isValidElement as p, useEffect as I } from "react";
3
- import { AsyncBubble as w } from "./App.CtFpHv2O.js";
4
- import { useMarkdown as _ } from "./useMarkdown.Bf7wGKkC.js";
5
- import { C$1 as M } from "./index.Czv_1MTM.js";
6
- const R = 200, N = ({
7
- string: e,
8
- idealLength: r = R
9
- }) => {
10
- if (e.length <= r)
11
- return { string: e, isTruncated: !1 };
12
- if (e.charAt(r) === " ")
13
- return { string: e.slice(0, r), isTruncated: !0 };
14
- const o = e.slice(r).search(" ");
15
- return {
16
- string: e.slice(0, r + o),
17
- isTruncated: !0
18
- };
19
- }, l = (e) => e == null || typeof e == "boolean" ? "" : typeof e == "string" || typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(l).join("") : p(e) ? l(e.props.children) : "", D = /* @__PURE__ */ new Set([
20
- "P",
21
- "DIV",
22
- "UL",
23
- "OL",
24
- "LI",
25
- "SECTION",
26
- "ARTICLE",
27
- "HEADER",
28
- "FOOTER",
29
- "MAIN",
30
- "ASIDE",
31
- "TABLE",
32
- "THEAD",
33
- "TBODY",
34
- "TFOOT",
35
- "TR",
36
- "TD",
37
- "TH",
38
- "BLOCKQUOTE",
39
- "PRE",
40
- "H1",
41
- "H2",
42
- "H3",
43
- "H4",
44
- "H5",
45
- "H6"
46
- ]), c = (e) => {
47
- if (e == null || typeof e == "boolean" || typeof e == "string" || typeof e == "number")
48
- return !1;
49
- if (Array.isArray(e))
50
- return e.some(c);
51
- if (p(e)) {
52
- const r = e;
53
- return typeof r.type == "string" && D.has(r.type.toUpperCase()) ? !0 : c(r.props.children);
54
- }
55
- return !1;
56
- }, H = ({
57
- children: e,
58
- length: r = 200,
59
- mode: o = "system",
60
- focusMode: m = "system",
61
- enableRichTruncation: a = !1
62
- }) => {
63
- const [s, f] = C(!1), h = typeof e != "string" && !a, d = u(() => typeof e == "string" ? e : l(e), [e]), { string: T, isTruncated: t } = u(() => N({ string: d, idealLength: r }), [d, r]), y = (E) => {
64
- E.preventDefault(), f(!s);
65
- };
66
- if (h)
67
- return /* @__PURE__ */ n(b, { children: e });
68
- let i;
69
- t ? s ? i = e : i = T : i = e;
70
- const g = a ? c(e) : !1;
71
- return /* @__PURE__ */ A(
72
- "span",
73
- {
74
- style: { wordBreak: "break-word" },
75
- "data-testid": "truncate-root",
76
- "aria-expanded": t ? s : void 0,
77
- children: [
78
- i,
79
- t && /* @__PURE__ */ n(
80
- M,
81
- {
82
- mode: o,
83
- focusMode: m,
84
- className: a && s && g ? void 0 : "ml-2",
85
- size: "small",
86
- onClick: y,
87
- "aria-label": s ? "Show less" : "Show more",
88
- children: s ? "less..." : "more..."
89
- }
90
- )
91
- ]
92
- }
93
- );
94
- };
95
- /*!
96
- @versini/ui-truncate v5.1.6
97
- © 2025 gizmette.com
98
- */
99
- try {
100
- window.__VERSINI_UI_TRUNCATE__ || (window.__VERSINI_UI_TRUNCATE__ = {
101
- version: "5.1.6",
102
- buildTime: "10/24/2025 07:48 PM EDT",
103
- homepage: "https://github.com/aversini/ui-components",
104
- license: "MIT"
105
- });
106
- } catch {
107
- }
108
- const B = ({ content: e }) => {
109
- const [r, o] = _();
110
- return I(() => {
111
- e && o(e);
112
- }, [e, o]), /* @__PURE__ */ n(
113
- w,
114
- {
115
- tail: !0,
116
- copyToClipboardMode: "dark",
117
- copyToClipboardFocusMode: "light",
118
- copyToClipboard: e,
119
- kind: "right",
120
- className: "mt-3",
121
- contentClassName: "prose prose-lighter prose-p:only:my-0",
122
- children: /* @__PURE__ */ n(H, { mode: "light", focusMode: "light", enableRichTruncation: !0, children: r })
123
- }
124
- );
125
- };
126
- export {
127
- B as default
128
- };
@@ -1,288 +0,0 @@
1
- import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { I as R, f as N, h as g, INFINITE_SCROLL_THRESHOLD as E, CARDS as k, pluralize as b, te as u, numberFormatter as y, k as D, isProbablyMobile as U, z as I, Z as P, E as B } from "./index.Czv_1MTM.js";
3
- import { st as M, p$1 as L, z as $, p$2 as _ } from "./App.CtFpHv2O.js";
4
- import h from "clsx";
5
- import { Fragment as V } from "react";
6
- import { j as Y, D as F, G as x, H as G, M as a, U as K, F as f, n as W, l as H } from "./Table.BbIvEnBz.js";
7
- const j = ({
8
- className: l,
9
- viewBox: c,
10
- title: n,
11
- monotone: d,
12
- ...o
13
- }) => /* @__PURE__ */ m(
14
- R,
15
- {
16
- defaultViewBox: "0 0 512 512",
17
- size: "size-5",
18
- viewBox: c,
19
- className: l,
20
- title: n || "Star in Circle",
21
- ...o,
22
- children: [
23
- /* @__PURE__ */ e(
24
- "path",
25
- {
26
- d: "M0 256a256 256 0 1 0 512 0 256 256 0 1 0-512 0m111.4-47c1.9-5.8 6.9-10 12.9-10.9 27-3.9 54-7.9 81.1-11.8 12.1-24.5 24.2-49 36.2-73.4 2.7-5.5 8.3-8.9 14.3-8.9s11.7 3.5 14.3 8.9c12.1 24.5 24.2 49 36.2 73.4 27 3.9 54 7.9 81 11.8 6 .9 11 5.1 12.9 10.9s.3 12.2-4 16.4l-58.6 57.2 13.8 80.7c1 6-1.4 12.1-6.4 15.6-2.8 2-6.1 3.1-9.4 3.1-2.5 0-5.1-.6-7.4-1.8-24.2-12.7-48.3-25.4-72.5-38.1-24.2 12.7-48.3 25.4-72.5 38.1-2.3 1.2-4.9 1.8-7.4 1.8-3.3 0-6.6-1-9.4-3.1-4.9-3.6-7.4-9.6-6.4-15.6l13.8-80.7-58.6-57.2c-4.4-4.3-5.9-10.6-4-16.4z",
27
- opacity: ".4"
28
- }
29
- ),
30
- /* @__PURE__ */ e("path", { d: "M270.3 112.9c-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.1 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.9 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-11.8-36.2-73.4z" })
31
- ]
32
- }
33
- ), Z = ({
34
- className: l,
35
- viewBox: c,
36
- title: n,
37
- monotone: d,
38
- ...o
39
- }) => /* @__PURE__ */ m(
40
- R,
41
- {
42
- defaultViewBox: "0 0 512 512",
43
- size: "size-5",
44
- viewBox: c,
45
- className: l,
46
- title: n || "Star in Circle",
47
- ...o,
48
- children: [
49
- /* @__PURE__ */ e(
50
- "path",
51
- {
52
- d: "M32 256a224 224 0 1 0 448 0 224 224 0 1 0-448 0m79.4-47c1.9-5.8 6.9-10 12.9-10.9l81-11.8 36.2-73.4c2.7-5.5 8.3-8.9 14.3-8.9s11.7 3.5 14.3 8.9l36.2 73.4 81.1 11.8c6 .9 11 5.1 12.9 10.9s.3 12.2-4 16.4l-58.6 57.2 13.8 80.7c1 6-1.4 12.1-6.4 15.6s-11.5 4.1-16.9 1.2l-72.2-38-72.5 38.1c-5.4 2.8-11.9 2.4-16.8-1.2s-7.4-9.6-6.4-15.6l13.8-80.7-58.6-57.2c-4.4-4.3-5.9-10.6-4-16.4z",
53
- opacity: ".4"
54
- }
55
- ),
56
- /* @__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" })
57
- ]
58
- }
59
- ), q = {
60
- [B]: _,
61
- [P]: $,
62
- [I]: L
63
- }, t = {
64
- ROW: "row",
65
- TIMESTAMP: N,
66
- SUMMARY: "summary",
67
- PROVIDER: "provider",
68
- TOKEN_USAGE: g,
69
- ACTIONS: "actions"
70
- }, J = [
71
- t.ROW,
72
- t.TIMESTAMP,
73
- t.SUMMARY,
74
- t.ACTIONS
75
- ], Q = [
76
- t.ROW,
77
- t.SUMMARY,
78
- t.TIMESTAMP,
79
- t.TOKEN_USAGE,
80
- t.PROVIDER,
81
- t.ACTIONS
82
- ], ce = ({
83
- filteredHistory: l,
84
- historyState: c,
85
- lastEntryToLoad: n,
86
- onClickSort: d,
87
- onClickRestore: o,
88
- onClickDelete: O,
89
- onClickFavorite: T,
90
- infinityScrollMarkerRef: v,
91
- isLoading: w = !1
92
- }) => {
93
- const C = U() ? J : Q, z = (s) => {
94
- switch (s) {
95
- case t.ROW:
96
- return /* @__PURE__ */ e(a, { className: "sr-only", children: "Row" }, s);
97
- case t.TIMESTAMP:
98
- return /* @__PURE__ */ e(
99
- f,
100
- {
101
- focusMode: "system",
102
- buttonClassName: "text-xs sm:text-sm",
103
- cellId: N,
104
- align: "left",
105
- sortDirection: c.sortDirection,
106
- sortedCell: c.sortedCell,
107
- onClick: () => {
108
- d(N);
109
- },
110
- children: "Date"
111
- },
112
- s
113
- );
114
- case t.SUMMARY:
115
- return /* @__PURE__ */ e(a, { className: "text-xs sm:text-sm", children: "Summary" }, s);
116
- case t.PROVIDER:
117
- return /* @__PURE__ */ e(a, { className: "text-xs sm:text-sm", children: "Provider" }, s);
118
- case t.TOKEN_USAGE:
119
- return /* @__PURE__ */ e(
120
- f,
121
- {
122
- focusMode: "system",
123
- buttonClassName: "text-xs sm:text-sm",
124
- cellId: g,
125
- align: "right",
126
- sortDirection: c.sortDirection,
127
- sortedCell: c.sortedCell,
128
- onClick: () => {
129
- d(g);
130
- },
131
- children: "Tokens"
132
- },
133
- s
134
- );
135
- case t.ACTIONS:
136
- return /* @__PURE__ */ e(a, { className: "text-xs sm:text-sm text-right", children: "Actions" }, s);
137
- default:
138
- return null;
139
- }
140
- }, A = (s, r, p) => {
141
- switch (s) {
142
- case t.ROW:
143
- return /* @__PURE__ */ e(a, { children: p + 1 }, s);
144
- case t.TIMESTAMP:
145
- return /* @__PURE__ */ e(
146
- a,
147
- {
148
- component: "th",
149
- scope: "row",
150
- className: h(
151
- "dark:text-gray-400",
152
- "sm:whitespace-nowrap text-xs sm:text-sm max-w-20 sm:max-w-none"
153
- ),
154
- children: r.timestamp.split(",")[0]
155
- },
156
- s
157
- );
158
- case t.SUMMARY: {
159
- const i = r.summary || (r.messages.length > 0 ? r.messages[0]?.content : "");
160
- return /* @__PURE__ */ e(
161
- a,
162
- {
163
- className: h(
164
- "dark:text-white",
165
- "max-w-[100px] sm:max-w-full text-xs sm:text-sm"
166
- ),
167
- style: {
168
- wordBreak: "break-word"
169
- },
170
- children: i
171
- },
172
- s
173
- );
174
- }
175
- case t.PROVIDER: {
176
- const i = r.model ? D(r.model) : null, S = i ? q[i] : null;
177
- return /* @__PURE__ */ e(
178
- a,
179
- {
180
- component: "th",
181
- scope: "row",
182
- className: h("dark:text-gray-400"),
183
- align: "center",
184
- children: S ? /* @__PURE__ */ e(
185
- S,
186
- {
187
- size: "size-4 sm:size-5",
188
- semantic: !0,
189
- title: r.model || i
190
- }
191
- ) : null
192
- },
193
- s
194
- );
195
- }
196
- case t.TOKEN_USAGE:
197
- return /* @__PURE__ */ e(
198
- a,
199
- {
200
- className: h("dark:text-gray-400", "text-xs sm:text-sm"),
201
- align: "right",
202
- children: r.tokenUsage ? y.format(r.tokenUsage) : "0"
203
- },
204
- s
205
- );
206
- case t.ACTIONS:
207
- return /* @__PURE__ */ e(a, { children: /* @__PURE__ */ m("div", { className: "flex flex-col items-end sm:flex-row gap-2", children: [
208
- /* @__PURE__ */ e(
209
- M,
210
- {
211
- label: "Restore chat",
212
- placement: "top",
213
- trigger: /* @__PURE__ */ e(
214
- u,
215
- {
216
- noBorder: !0,
217
- label: "Restore chat",
218
- variant: "primary",
219
- iconClassName: "text-green-800 dark:text-green-500",
220
- onClick: async () => {
221
- await o(r);
222
- },
223
- children: /* @__PURE__ */ e(W, { size: "size-3", monotone: !0 })
224
- }
225
- )
226
- }
227
- ),
228
- /* @__PURE__ */ e(
229
- M,
230
- {
231
- label: r.favoriteChat ? "Remove from favorites" : "Add to favorites",
232
- placement: "top",
233
- trigger: /* @__PURE__ */ e(
234
- u,
235
- {
236
- noBorder: !0,
237
- label: r.favoriteChat ? "Remove from favorites" : "Add to favorites",
238
- variant: "primary",
239
- onClick: async () => {
240
- await T(r);
241
- },
242
- children: r.favoriteChat ? /* @__PURE__ */ e(j, { size: "size-4", monotone: !0 }) : /* @__PURE__ */ e(Z, { size: "size-4", monotone: !0 })
243
- }
244
- )
245
- }
246
- ),
247
- /* @__PURE__ */ e(
248
- M,
249
- {
250
- label: "Delete chat",
251
- placement: "top",
252
- trigger: /* @__PURE__ */ e(
253
- u,
254
- {
255
- noBorder: !0,
256
- label: "Delete chat",
257
- variant: "primary",
258
- iconClassName: "text-red-700 dark:text-red-500",
259
- onClick: () => {
260
- O(r);
261
- },
262
- children: /* @__PURE__ */ e(H, { size: "size-3", monotone: !0 })
263
- }
264
- )
265
- }
266
- )
267
- ] }) }, s);
268
- default:
269
- return null;
270
- }
271
- };
272
- return /* @__PURE__ */ m(Y, { stickyHeader: !0, stickyFooter: !0, compact: !0, mode: "alt-system", children: [
273
- /* @__PURE__ */ e(F, { children: /* @__PURE__ */ e(x, { children: C.map((s) => z(s)) }) }),
274
- /* @__PURE__ */ e(G, { children: w && l.length === 0 ? /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : l.slice(0, n).map((s, r) => s?.messages?.length > 0 ? /* @__PURE__ */ m(V, { children: [
275
- r === n - E && /* @__PURE__ */ e("tr", { ref: v }),
276
- /* @__PURE__ */ e(x, { children: C.map(
277
- (p) => A(p, s, r)
278
- ) })
279
- ] }, `${k.HISTORY.TITLE}-${s.id}-${r}`) : null) }),
280
- /* @__PURE__ */ e(K, { children: /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e(a, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: b(
281
- `${l.length} chat`,
282
- l.length
283
- ) }) }) }) })
284
- ] });
285
- };
286
- export {
287
- ce as ChatHistoryTable
288
- };