@versini/sassysaint 8.109.1 → 8.110.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.
- package/dist/chunks/{AboutChangelog.CHx3bA8W.js → AboutChangelog.BfOWMaYg.js} +2 -2
- package/dist/chunks/{AboutEntry.B7hjR8pi.js → AboutEntry.B7fBRGac.js} +7 -7
- package/dist/chunks/{App.CvQU6EGq.js → App.BD0e8HgV.js} +4268 -4005
- package/dist/chunks/{Bubble.B5Bk6utN.js → Bubble.fxUgvZMG.js} +1 -1
- package/dist/chunks/{ButtonIconDelete.C0IuterV.js → ButtonIconDelete.Bw7zU6Rb.js} +2 -2
- package/dist/chunks/{Chart.Bhit-mtQ.js → Chart.C-EqsPgy.js} +2 -2
- package/dist/chunks/{ChatBubbleAssistant.BFdbFREH.js → ChatBubbleAssistant.hM8owVIk.js} +4 -4
- package/dist/chunks/{ChatBubbleUser.BR5AqwE9.js → ChatBubbleUser.CnsuEhxO.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.BJUF2mNs.js → ChatHistoryTable.WRplbgo4.js} +4 -4
- package/dist/chunks/HistoryEntry.BgO_PD7Q.js +373 -0
- package/dist/chunks/{LoginEntry.DKzVM9lq.js → LoginEntry.DvDNWT7T.js} +4 -4
- package/dist/chunks/{LogoEntry.Et0a-97_.js → LogoEntry.CucXks5G.js} +2 -2
- package/dist/chunks/{MemoriesEntry.yJKFVG54.js → MemoriesEntry.OQ1K4KNa.js} +5 -5
- package/dist/chunks/ProfileEntry.CbZLIK8x.js +213 -0
- package/dist/chunks/{SettingsEntry.BP8H8gHu.js → SettingsEntry.ByPtC4lj.js} +5 -5
- package/dist/chunks/{UsageEntry.CamC3XI3.js → UsageEntry.CSkPteMr.js} +5 -5
- package/dist/chunks/_baseUniq.DJhemj5B.js +477 -0
- package/dist/chunks/{arc.ynrnfWOq.js → arc.ClK0mYh2.js} +1 -1
- package/dist/chunks/{architecture-U656AL7Q.DtWoTE88.js → architecture-U656AL7Q.DGORleeb.js} +1 -1
- package/dist/chunks/{architectureDiagram-VXUJARFQ.CDFvIr0j.js → architectureDiagram-VXUJARFQ.HR_eet_T.js} +4 -4
- package/dist/chunks/{blockDiagram-VD42YOAC.BLWWo36R.js → blockDiagram-VD42YOAC.CWrnXf_B.js} +5 -5
- package/dist/chunks/{browser.BvYD8dc4.js → browser.5ieI9QUP.js} +1 -1
- package/dist/chunks/{c4Diagram-YG6GDRKO.-whHC2cr.js → c4Diagram-YG6GDRKO.CaA0SaMc.js} +2 -2
- package/dist/chunks/{channel.CiPC9guK.js → channel.BI8KZVUl.js} +1 -1
- package/dist/chunks/{chunk-4BX2VUAB.BOZN6uSe.js → chunk-4BX2VUAB.CTzK9jPw.js} +1 -1
- package/dist/chunks/{chunk-55IACEB6.wEa6Vrrn.js → chunk-55IACEB6.DMb8Reca.js} +1 -1
- package/dist/chunks/{chunk-B4BG7PRW.sEhBCKvF.js → chunk-B4BG7PRW.BHBa3N2V.js} +4 -4
- package/dist/chunks/{chunk-DI55MBZ5.DJ2ZY0Xk.js → chunk-DI55MBZ5.Bqwg_jpX.js} +3 -3
- package/dist/chunks/{chunk-FMBD7UC4.jo8ibE98.js → chunk-FMBD7UC4.p8OpoFJE.js} +1 -1
- package/dist/chunks/{chunk-QN33PNHL.FbSApAGi.js → chunk-QN33PNHL._xYLGQNv.js} +1 -1
- package/dist/chunks/{chunk-QZHKN3VN.B-GQnYi1.js → chunk-QZHKN3VN.Bt1FHb64.js} +1 -1
- package/dist/chunks/{chunk-TZMSLE5B.DeXLG4gm.js → chunk-TZMSLE5B.hFsU0iJf.js} +1 -1
- package/dist/chunks/{classDiagram-2ON5EDUG.BFI_M0Vv.js → classDiagram-2ON5EDUG.DiSJfiEu.js} +2 -2
- package/dist/chunks/{classDiagram-v2-WZHVMYZB.BFI_M0Vv.js → classDiagram-v2-WZHVMYZB.DiSJfiEu.js} +2 -2
- package/dist/chunks/{clone.CoM2ipCS.js → clone.NcwizCyH.js} +1 -1
- package/dist/chunks/{cose-bilkent-S5V4N54A.CW44zK-a.js → cose-bilkent-S5V4N54A.DogEbzcD.js} +2 -2
- package/dist/chunks/{dagre-6UL2VRFP.VaYbgRPs.js → dagre-6UL2VRFP.Cy_GltZx.js} +21 -22
- package/dist/chunks/{diagram-PSM6KHXK.CrrlGnPy.js → diagram-PSM6KHXK.CazeYJ2F.js} +4 -4
- package/dist/chunks/{diagram-QEK2KX5R.BSo_CGEX.js → diagram-QEK2KX5R.ByhZHDpm.js} +3 -3
- package/dist/chunks/{diagram-S2PKOQOG.Rgo5A0oh.js → diagram-S2PKOQOG.D49-fpQd.js} +3 -3
- package/dist/chunks/{erDiagram-Q2GNP2WA.v7LUWRA_.js → erDiagram-Q2GNP2WA.nce3gDBb.js} +4 -4
- package/dist/chunks/{flowDiagram-NV44I4VS.CUK5d1OY.js → flowDiagram-NV44I4VS.DDUGMSKf.js} +5 -5
- package/dist/chunks/{ganttDiagram-JELNMOA3.DSpVGXrZ.js → ganttDiagram-JELNMOA3.NGXzLkaH.js} +2 -2
- package/dist/chunks/{gitGraph-F6HP7TQM.CR5ma9FN.js → gitGraph-F6HP7TQM.BzKXexyv.js} +1 -1
- package/dist/chunks/{gitGraphDiagram-NY62KEGX.ddzDD3PJ.js → gitGraphDiagram-NY62KEGX.C3cn9f8o.js} +4 -4
- package/dist/chunks/graph.CURTRirk.js +381 -0
- package/dist/chunks/{index.7QjsCYx3.js → index.BYDZbdMZ.js} +1 -1
- package/dist/chunks/{index.Bo0ZyMS6.js → index.BinkIORG.js} +1 -1
- package/dist/chunks/{index.DpqePp5S.js → index.BqIARWUR.js} +1 -1
- package/dist/chunks/{index.BNY6p-fk.js → index.CBEv2y_C.js} +2 -2
- package/dist/chunks/{index.D0bvjdAE.js → index.CURM9PiU.js} +1 -1
- package/dist/chunks/{index.D1HS2InQ.js → index.CkajM1v0.js} +1 -1
- package/dist/chunks/{index.CNOm7KYJ.js → index.DAuo-OH1.js} +1 -1
- package/dist/chunks/{index.DZn5_zSr.js → index.gy41K1EE.js} +4 -4
- package/dist/chunks/{index.D3lm4Af9.js → index.uUNtrS04.js} +3 -3
- package/dist/chunks/{info-NVLQJR56.DUQkycDd.js → info-NVLQJR56.CHnZmbT7.js} +1 -1
- package/dist/chunks/{infoDiagram-WHAUD3N6.NPaVwPcu.js → infoDiagram-WHAUD3N6.DCZfKYU8.js} +2 -2
- package/dist/chunks/{journeyDiagram-XKPGCS4Q.sLc-NUAF.js → journeyDiagram-XKPGCS4Q.B-0JNmK_.js} +4 -4
- package/dist/chunks/{kanban-definition-3W4ZIXB7.CJM-u6MS.js → kanban-definition-3W4ZIXB7.C7aI8iBJ.js} +2 -2
- package/dist/chunks/{katex.D0sQThIv.js → katex.6qoCFezb.js} +898 -896
- package/dist/chunks/layout.Bmgsrc8X.js +1438 -0
- package/dist/chunks/{mermaid-parser.core.3uaMP7ZS.js → mermaid-parser.core.BZIZyjyF.js} +6567 -5346
- package/dist/chunks/min.CtR4qhyM.js +38 -0
- package/dist/chunks/{mindmap-definition-VGOIOE7T.Q2m6DBXW.js → mindmap-definition-VGOIOE7T.DCsxzuhI.js} +3 -3
- package/dist/chunks/{packet-BFZMPI3H.sN5Fa0Sr.js → packet-BFZMPI3H.CQ2Sbdms.js} +1 -1
- package/dist/chunks/{pie-7BOR55EZ.BScE_xM_.js → pie-7BOR55EZ.BYs1omMd.js} +1 -1
- package/dist/chunks/{pieDiagram-ADFJNKIX.WKnsLjJ9.js → pieDiagram-ADFJNKIX.DqkDHdMo.js} +4 -4
- package/dist/chunks/{quadrantDiagram-AYHSOK5B.CF5uxytb.js → quadrantDiagram-AYHSOK5B.Cx-eq1uu.js} +1 -1
- package/dist/chunks/{radar-NHE76QYJ.C3c_hhO0.js → radar-NHE76QYJ.CIqwL1Hw.js} +1 -1
- package/dist/chunks/{rehype-mermaid.9DNnJpsp.js → rehype-mermaid.LJaY9ylI.js} +34 -36
- package/dist/chunks/{requirementDiagram-UZGBJVZJ.BgyWk-vG.js → requirementDiagram-UZGBJVZJ.C-YKp79x.js} +3 -3
- package/dist/chunks/{sankeyDiagram-TZEHDZUN.DGhb8Q2q.js → sankeyDiagram-TZEHDZUN.BbfUzvVS.js} +1 -1
- package/dist/chunks/{sequenceDiagram-WL72ISMW.BdgDMneu.js → sequenceDiagram-WL72ISMW.D5wDvZwT.js} +3 -3
- package/dist/chunks/{stateDiagram-FKZM4ZOC.WvFhN-Y1.js → stateDiagram-FKZM4ZOC.-65PQCxm.js} +4 -4
- package/dist/chunks/{stateDiagram-v2-4FDKWEC3.XGGE9T11.js → stateDiagram-v2-4FDKWEC3.BXy_3BUS.js} +2 -2
- package/dist/chunks/{timeline-definition-IT6M3QCI.BZ0pWBft.js → timeline-definition-IT6M3QCI.B2tmtGDZ.js} +2 -2
- package/dist/chunks/{treemap-KMMF4GRG.DkuK4pnF.js → treemap-KMMF4GRG.Dm_alnmO.js} +1 -1
- package/dist/chunks/{useMarkdown.C-Fn6Ae-.js → useMarkdown.BWJCktGN.js} +771 -771
- package/dist/chunks/{xychartDiagram-PRI3JC2R.D313uw2n.js → xychartDiagram-PRI3JC2R.XQCHu3eO.js} +1 -1
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +3 -3
- package/package.json +3 -3
- package/dist/chunks/HistoryEntry.BiqgKjR3.js +0 -362
- package/dist/chunks/ProfileEntry.8zXuUXK_.js +0 -197
- package/dist/chunks/_basePickBy.DwmlU26x.js +0 -151
- package/dist/chunks/_baseUniq.BQsx-qln.js +0 -614
- package/dist/chunks/graph.Dw7qTm3Q.js +0 -247
- package/dist/chunks/layout.BGNrNalg.js +0 -1332
package/dist/chunks/{xychartDiagram-PRI3JC2R.D313uw2n.js → xychartDiagram-PRI3JC2R.XQCHu3eO.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __name as a, setAccDescription as gi, getAccDescription as xi, getDiagramTitle as Xt, setDiagramTitle as di, getAccTitle as fi, setAccTitle as pi, log as Nt, selectSvgElement as mi, configureSvgSize as yi, clear as bi, getConfig as St, cleanAndMerge as Yt, defaultConfig_default as Ai, getThemeVariables3 as wi, sanitizeText as Ci, computeDimensionOfText as Si, line as Wt } from "./rehype-mermaid.
|
|
1
|
+
import { __name as a, setAccDescription as gi, getAccDescription as xi, getDiagramTitle as Xt, setDiagramTitle as di, getAccTitle as fi, setAccTitle as pi, log as Nt, selectSvgElement as mi, configureSvgSize as yi, clear as bi, getConfig as St, cleanAndMerge as Yt, defaultConfig_default as Ai, getThemeVariables3 as wi, sanitizeText as Ci, computeDimensionOfText as Si, line as Wt } from "./rehype-mermaid.LJaY9ylI.js";
|
|
2
2
|
import { initRange as _i } from "./init.DAGnb5BH.js";
|
|
3
3
|
import { ordinal as ki } from "./ordinal.EWT-qnu7.js";
|
|
4
4
|
import { linear as zt } from "./linear.CIDfImUo.js";
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SassySaint as r } from "./chunks/index.
|
|
1
|
+
import { SassySaint as r } from "./chunks/index.CBEv2y_C.js";
|
|
2
2
|
try {
|
|
3
3
|
window.__VERSINI_SASSY_GLOBAL__ || (window.__VERSINI_SASSY_GLOBAL__ = {
|
|
4
|
-
version: "8.
|
|
5
|
-
buildTime: "12/
|
|
4
|
+
version: "8.110.0",
|
|
5
|
+
buildTime: "12/28/2025 12:12 PM EST",
|
|
6
6
|
license: "MIT"
|
|
7
7
|
});
|
|
8
8
|
} catch {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@versini/sassysaint",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.110.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.
|
|
36
|
+
"@sassysaint/client": "8.110.0",
|
|
37
37
|
"@tailwindcss/vite": "4.1.18",
|
|
38
38
|
"@versini/ui-styles": "8.2.1"
|
|
39
39
|
},
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"sideEffects": [
|
|
46
46
|
"**/*.css"
|
|
47
47
|
],
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "f5fe92a6d7c6103ac57a02b13adfaba8d46f6d75"
|
|
49
49
|
}
|
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
import { jsxs as n, Fragment as ae, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { n as K, INFINITE_SCROLL_LIMIT as U, INFINITE_SCROLL_THRESHOLD as re, LOCAL_STORAGE_PREFIX as u, LOCAL_STORAGE_SORT_TIMESTAMP as se, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ie, y as I, LOCAL_STORAGE_CHAT_ID as ne, useDeleteChat as ce, useToggleFavoriteChat as le, graphQLRequest as de, SERVICE_TYPES as he, ACTION_SORT as me, v as ue, LOCAL_STORAGE_SEARCH as Ce, LOCAL_STORAGE_FAVORITES_ONLY as Se, LOCAL_STORAGE_KEYWORD_MATCH_ALL as fe, useChatsHistory as ye, useUserChatStats as pe, ACTION_SEARCH as Te } from "./index.BNY6p-fk.js";
|
|
3
|
-
import { HistoryContext as Y, ChatContext as ge, e as m, APP_CLASSNAME as Ae, TOAST_CHAT_DELETED as Ee, HISTORY_TITLE as _e, IconSearch as Le, Button as De, L as Oe, j as ke } from "./LogoEntry.Et0a-97_.js";
|
|
4
|
-
import { Card as ve } from "./index.7QjsCYx3.js";
|
|
5
|
-
import { useAiChat as Re, useLocalStorage as C, ConfirmationPanel as be, LazyToastContainerWrapper as Ie, showErrorToast as xe, v4 as we, CHAT_RESET as He, CHAT_SET_ATTACHMENTS as Ne, CHAT_SET_STATUS as Fe, Panel as Me, debounce as Ge, Toggle as B, ButtonCancel as Ve } from "./App.CvQU6EGq.js";
|
|
6
|
-
import { TextInput as ze } from "./index.D0bvjdAE.js";
|
|
7
|
-
import Pe from "clsx";
|
|
8
|
-
import { useRef as x, useState as G, useContext as V, useCallback as j, Suspense as Ue, lazy as Be, useEffect as je } from "react";
|
|
9
|
-
const Ke = Be(
|
|
10
|
-
() => import(
|
|
11
|
-
/* webpackChunkName: "history-table" */
|
|
12
|
-
"./ChatHistoryTable.BJUF2mNs.js"
|
|
13
|
-
).then((S) => ({ default: S.ChatHistoryTable }))
|
|
14
|
-
), Ye = ({
|
|
15
|
-
filteredHistory: S,
|
|
16
|
-
onOpenChange: f,
|
|
17
|
-
mutate: y,
|
|
18
|
-
isLoading: E = !1,
|
|
19
|
-
totalHistoryCount: _,
|
|
20
|
-
isFiltered: w = !1,
|
|
21
|
-
isSearchActive: L = !1
|
|
22
|
-
}) => {
|
|
23
|
-
const { user: l, getAccessToken: a } = K(), p = x(null), d = x({
|
|
24
|
-
id: "",
|
|
25
|
-
timestamp: "",
|
|
26
|
-
message: ""
|
|
27
|
-
}), [h, D] = G(!1), [O, H] = G(
|
|
28
|
-
U + re
|
|
29
|
-
), { state: o, dispatch: N } = V(Y), k = {
|
|
30
|
-
searchString: o.searchString || "",
|
|
31
|
-
sortDirection: o.sortDirection || m.DESC,
|
|
32
|
-
sortedCell: o.sortedCell || I
|
|
33
|
-
}, {
|
|
34
|
-
setChatId: T,
|
|
35
|
-
setInitialMessages: c,
|
|
36
|
-
dispatch: g
|
|
37
|
-
} = V(ge), { setInput: A } = Re(), [v, R] = C({
|
|
38
|
-
key: u + se,
|
|
39
|
-
initialValue: m.DESC
|
|
40
|
-
}), [F, M] = C({
|
|
41
|
-
key: u + oe,
|
|
42
|
-
initialValue: m.ASC
|
|
43
|
-
}), [, r] = C({
|
|
44
|
-
key: u + ie,
|
|
45
|
-
initialValue: I
|
|
46
|
-
}), [W] = C({
|
|
47
|
-
key: u + ne,
|
|
48
|
-
initialValue: ""
|
|
49
|
-
}), { mutateAsync: q } = ce({ getAccessToken: a }), { mutateAsync: Q } = le({
|
|
50
|
-
getAccessToken: a
|
|
51
|
-
}), X = (e) => {
|
|
52
|
-
const i = o.sortedCell === e;
|
|
53
|
-
let s, b;
|
|
54
|
-
switch (e) {
|
|
55
|
-
case I:
|
|
56
|
-
b = R, s = i ? o.sortDirection : v;
|
|
57
|
-
break;
|
|
58
|
-
case ue:
|
|
59
|
-
b = M, s = i ? o.sortDirection : F;
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
b = R, s = i ? o.sortDirection : v;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
const P = s === m.ASC ? m.DESC : m.ASC;
|
|
66
|
-
b(P), r(e), N({
|
|
67
|
-
type: me,
|
|
68
|
-
payload: {
|
|
69
|
-
sortedCell: e,
|
|
70
|
-
sortDirection: P
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}, J = async () => {
|
|
74
|
-
const e = d.current;
|
|
75
|
-
try {
|
|
76
|
-
await q({
|
|
77
|
-
userId: l?.username || "",
|
|
78
|
-
id: e.id
|
|
79
|
-
}), y(""), await xe(Ee, {
|
|
80
|
-
autoClose: 2e3,
|
|
81
|
-
containerId: "history-table"
|
|
82
|
-
});
|
|
83
|
-
} catch {
|
|
84
|
-
}
|
|
85
|
-
}, Z = async (e) => {
|
|
86
|
-
try {
|
|
87
|
-
const i = await a(), s = await de({
|
|
88
|
-
accessToken: i,
|
|
89
|
-
type: he.GET_CHAT,
|
|
90
|
-
params: {
|
|
91
|
-
id: e.id
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
g({
|
|
95
|
-
type: Fe,
|
|
96
|
-
payload: {
|
|
97
|
-
streaming: !1,
|
|
98
|
-
loading: !1,
|
|
99
|
-
restoring: !0,
|
|
100
|
-
restoredModel: s.data?.model || "",
|
|
101
|
-
restoredTimestamp: s.data?.timestamp || "",
|
|
102
|
-
restoredUsage: s.data?.tokenUsage || 0
|
|
103
|
-
}
|
|
104
|
-
}), A(""), T(e.id), c(s.data.messages), f(!1);
|
|
105
|
-
} catch {
|
|
106
|
-
}
|
|
107
|
-
}, $ = (e) => {
|
|
108
|
-
d.current = {
|
|
109
|
-
id: e.id,
|
|
110
|
-
timestamp: e.timestamp,
|
|
111
|
-
message: e.summary
|
|
112
|
-
}, D(!h), W === e.id && (T(we()), c([]), A(""), g({
|
|
113
|
-
type: He,
|
|
114
|
-
payload: {
|
|
115
|
-
privateChat: !1,
|
|
116
|
-
reasoning: !1
|
|
117
|
-
}
|
|
118
|
-
}), g({
|
|
119
|
-
type: Ne,
|
|
120
|
-
payload: {
|
|
121
|
-
attachments: 0
|
|
122
|
-
}
|
|
123
|
-
}));
|
|
124
|
-
}, ee = async (e) => {
|
|
125
|
-
try {
|
|
126
|
-
await Q({
|
|
127
|
-
userId: l?.username || "",
|
|
128
|
-
id: e.id
|
|
129
|
-
}), y("");
|
|
130
|
-
} catch {
|
|
131
|
-
}
|
|
132
|
-
}, z = j((e) => {
|
|
133
|
-
e[0].isIntersecting && H((s) => s + U);
|
|
134
|
-
}, []), te = j(
|
|
135
|
-
(e) => {
|
|
136
|
-
if (p.current && p.current.disconnect(), e) {
|
|
137
|
-
const i = {
|
|
138
|
-
rootMargin: "20px"
|
|
139
|
-
}, s = new IntersectionObserver(z, i);
|
|
140
|
-
s.observe(e), p.current = s;
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
[z]
|
|
144
|
-
);
|
|
145
|
-
return /* @__PURE__ */ n(ae, { children: [
|
|
146
|
-
/* @__PURE__ */ n(
|
|
147
|
-
be,
|
|
148
|
-
{
|
|
149
|
-
showConfirmation: h,
|
|
150
|
-
setShowConfirmation: D,
|
|
151
|
-
action: J,
|
|
152
|
-
customStrings: {
|
|
153
|
-
confirmAction: "Delete",
|
|
154
|
-
cancelAction: "Cancel",
|
|
155
|
-
title: "Delete chat"
|
|
156
|
-
},
|
|
157
|
-
children: [
|
|
158
|
-
/* @__PURE__ */ t("p", { className: "m-0", children: "Are you sure you want to delete the following chat:" }),
|
|
159
|
-
/* @__PURE__ */ n("ul", { className: "m-0", children: [
|
|
160
|
-
/* @__PURE__ */ n("li", { children: [
|
|
161
|
-
"Timestamp:",
|
|
162
|
-
" ",
|
|
163
|
-
/* @__PURE__ */ t("span", { className: "text-lg", children: d.current && d.current.timestamp })
|
|
164
|
-
] }),
|
|
165
|
-
/* @__PURE__ */ n("li", { children: [
|
|
166
|
-
"First message:",
|
|
167
|
-
" ",
|
|
168
|
-
/* @__PURE__ */ t("span", { className: "text-lg", children: d.current?.message })
|
|
169
|
-
] })
|
|
170
|
-
] })
|
|
171
|
-
]
|
|
172
|
-
}
|
|
173
|
-
),
|
|
174
|
-
/* @__PURE__ */ t("div", { className: Ae, children: /* @__PURE__ */ t(Ie, { containerId: "history-table" }) }),
|
|
175
|
-
/* @__PURE__ */ t(Ue, { fallback: /* @__PURE__ */ t("div", {}), children: /* @__PURE__ */ t(
|
|
176
|
-
Ke,
|
|
177
|
-
{
|
|
178
|
-
filteredHistory: S,
|
|
179
|
-
historyState: k,
|
|
180
|
-
lastEntryToLoad: O,
|
|
181
|
-
onClickSort: X,
|
|
182
|
-
onClickRestore: Z,
|
|
183
|
-
onClickDelete: $,
|
|
184
|
-
onClickFavorite: ee,
|
|
185
|
-
infinityScrollMarkerRef: te,
|
|
186
|
-
isLoading: E,
|
|
187
|
-
totalHistoryCount: _,
|
|
188
|
-
isFiltered: w,
|
|
189
|
-
isSearchActive: L
|
|
190
|
-
}
|
|
191
|
-
) })
|
|
192
|
-
] });
|
|
193
|
-
}, tt = ({
|
|
194
|
-
open: S,
|
|
195
|
-
onOpenChange: f
|
|
196
|
-
}) => {
|
|
197
|
-
const y = x(null), { getAccessToken: E, user: _ } = K(), [w, L] = G([]), l = x(null), { state: a, dispatch: p } = V(Y), [, d] = C({
|
|
198
|
-
key: u + Ce,
|
|
199
|
-
initialValue: a.searchString
|
|
200
|
-
}), [h, D] = C({
|
|
201
|
-
key: u + Se,
|
|
202
|
-
initialValue: !1
|
|
203
|
-
}), [O, H] = C({
|
|
204
|
-
key: u + fe,
|
|
205
|
-
initialValue: !0
|
|
206
|
-
}), {
|
|
207
|
-
data: o,
|
|
208
|
-
refetch: N,
|
|
209
|
-
isLoading: k,
|
|
210
|
-
isError: T
|
|
211
|
-
} = ye({
|
|
212
|
-
enabled: S,
|
|
213
|
-
user: _?.username || "",
|
|
214
|
-
searchString: a.searchString || "",
|
|
215
|
-
sortDirection: a.sortDirection || m.DESC,
|
|
216
|
-
sortedCell: a.sortedCell || I,
|
|
217
|
-
getAccessToken: E,
|
|
218
|
-
keywordMatchAll: O
|
|
219
|
-
}), { data: c } = pe({
|
|
220
|
-
user: _?.username,
|
|
221
|
-
getAccessToken: E
|
|
222
|
-
}), g = c && c.totalChats ? c.totalChats - c.privateChats - c.deletedChats : 0;
|
|
223
|
-
je(() => {
|
|
224
|
-
o && L(
|
|
225
|
-
h ? o.filter((r) => r.favoriteChat === !0) : o
|
|
226
|
-
);
|
|
227
|
-
}, [o, h]);
|
|
228
|
-
const A = async (r) => {
|
|
229
|
-
d(r), p({
|
|
230
|
-
type: Te,
|
|
231
|
-
payload: { searchString: r }
|
|
232
|
-
});
|
|
233
|
-
}, v = Ge((r) => {
|
|
234
|
-
A(r.target.value.trim());
|
|
235
|
-
}, 800), R = async (r) => {
|
|
236
|
-
r.preventDefault();
|
|
237
|
-
}, F = (r) => {
|
|
238
|
-
D(r);
|
|
239
|
-
}, M = (r) => {
|
|
240
|
-
H(r);
|
|
241
|
-
};
|
|
242
|
-
return /* @__PURE__ */ n(
|
|
243
|
-
Me,
|
|
244
|
-
{
|
|
245
|
-
open: S,
|
|
246
|
-
onOpenChange: f,
|
|
247
|
-
title: _e,
|
|
248
|
-
animation: !0,
|
|
249
|
-
animationType: "fade",
|
|
250
|
-
blurEffect: "large",
|
|
251
|
-
initialFocus: y,
|
|
252
|
-
footer: /* @__PURE__ */ t(
|
|
253
|
-
Oe,
|
|
254
|
-
{
|
|
255
|
-
columnGap: 2,
|
|
256
|
-
alignHorizontal: "flex-end",
|
|
257
|
-
className: "pb-8 sm:pb-0",
|
|
258
|
-
children: /* @__PURE__ */ t(ke, { children: /* @__PURE__ */ t(Ve, { onOpenChange: f, ref: y }) })
|
|
259
|
-
}
|
|
260
|
-
),
|
|
261
|
-
children: [
|
|
262
|
-
/* @__PURE__ */ t(
|
|
263
|
-
ve,
|
|
264
|
-
{
|
|
265
|
-
header: k && a.searchString ? "Loading..." : a.searchString ? "Filters applied" : "Filters",
|
|
266
|
-
className: "prose-dark dark:prose-lighter mb-4",
|
|
267
|
-
noBorder: !0,
|
|
268
|
-
compact: !0,
|
|
269
|
-
children: /* @__PURE__ */ n("form", { autoComplete: "off", onSubmit: R, children: [
|
|
270
|
-
/* @__PURE__ */ t(
|
|
271
|
-
ze,
|
|
272
|
-
{
|
|
273
|
-
placeholder: "Search",
|
|
274
|
-
labelHidden: !0,
|
|
275
|
-
noBorder: !0,
|
|
276
|
-
autoCapitalize: "off",
|
|
277
|
-
autoComplete: "off",
|
|
278
|
-
autoCorrect: "off",
|
|
279
|
-
ref: l,
|
|
280
|
-
defaultValue: a.searchString,
|
|
281
|
-
mode: "alt-system",
|
|
282
|
-
name: "Search",
|
|
283
|
-
label: "Search",
|
|
284
|
-
onChange: v,
|
|
285
|
-
className: "my-2",
|
|
286
|
-
rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Le, { monotone: !0, size: "size-3" }) })
|
|
287
|
-
}
|
|
288
|
-
),
|
|
289
|
-
/* @__PURE__ */ n("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
|
|
290
|
-
/* @__PURE__ */ n("div", { className: "flex flex-col sm:flex-row gap-2 order-1 sm:order-0", children: [
|
|
291
|
-
/* @__PURE__ */ t(
|
|
292
|
-
B,
|
|
293
|
-
{
|
|
294
|
-
name: "favorites-only",
|
|
295
|
-
checked: h,
|
|
296
|
-
onChange: F,
|
|
297
|
-
label: "Show favorites only",
|
|
298
|
-
narrow: !0,
|
|
299
|
-
noBorder: !0
|
|
300
|
-
}
|
|
301
|
-
),
|
|
302
|
-
/* @__PURE__ */ t(
|
|
303
|
-
B,
|
|
304
|
-
{
|
|
305
|
-
name: "keyword-match-all",
|
|
306
|
-
checked: O,
|
|
307
|
-
onChange: M,
|
|
308
|
-
label: "Match all keywords",
|
|
309
|
-
narrow: !0,
|
|
310
|
-
noBorder: !0
|
|
311
|
-
}
|
|
312
|
-
)
|
|
313
|
-
] }),
|
|
314
|
-
/* @__PURE__ */ t(
|
|
315
|
-
De,
|
|
316
|
-
{
|
|
317
|
-
mode: "light",
|
|
318
|
-
size: "small",
|
|
319
|
-
disabled: a.searchString === "",
|
|
320
|
-
onClick: () => {
|
|
321
|
-
A(""), l.current?.value && (l.current.value = "", l.current.focus());
|
|
322
|
-
},
|
|
323
|
-
children: "Reset Search"
|
|
324
|
-
}
|
|
325
|
-
)
|
|
326
|
-
] })
|
|
327
|
-
] })
|
|
328
|
-
}
|
|
329
|
-
),
|
|
330
|
-
/* @__PURE__ */ n(
|
|
331
|
-
"div",
|
|
332
|
-
{
|
|
333
|
-
className: Pe(
|
|
334
|
-
"flex flex-col sm:flex-row",
|
|
335
|
-
"max-h-[65vh]",
|
|
336
|
-
"sm:max-h-[75vh]",
|
|
337
|
-
"min-h-[60vh]"
|
|
338
|
-
),
|
|
339
|
-
children: [
|
|
340
|
-
T && /* @__PURE__ */ t("p", { className: "m-0 text-copy-error-light", children: "Failed to load history." }),
|
|
341
|
-
!T && /* @__PURE__ */ t(
|
|
342
|
-
Ye,
|
|
343
|
-
{
|
|
344
|
-
mutate: N,
|
|
345
|
-
filteredHistory: w,
|
|
346
|
-
onOpenChange: f,
|
|
347
|
-
isLoading: k,
|
|
348
|
-
totalHistoryCount: g,
|
|
349
|
-
isFiltered: !!(a.searchString || h),
|
|
350
|
-
isSearchActive: !!a.searchString
|
|
351
|
-
}
|
|
352
|
-
)
|
|
353
|
-
]
|
|
354
|
-
}
|
|
355
|
-
)
|
|
356
|
-
]
|
|
357
|
-
}
|
|
358
|
-
);
|
|
359
|
-
};
|
|
360
|
-
export {
|
|
361
|
-
tt as HistoryPanel
|
|
362
|
-
};
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { jsxs as t, Fragment as H, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { preloadToast as K, showSuccessToast as O, showErrorToast as W, ConfirmationPanel as Y, LazyToastContainerWrapper as $, Panel as V, ButtonCancel as q } from "./App.CvQU6EGq.js";
|
|
3
|
-
import { useUniqueId as J, CARDS as s, L as u, j as i, Button as Q, ButtonIcon as X, IconPasskey as L, PROFILE_TITLE as Z } from "./LogoEntry.Et0a-97_.js";
|
|
4
|
-
import { useState as m, useMemo as ee, useCallback as N, useRef as ae } from "react";
|
|
5
|
-
import { n as ne, useUserPreferences as se, useServerCapabilities as re, p as te, setUserPlan as le, renderDataAsList as ie, st as ce, isTauri as oe } from "./index.BNY6p-fk.js";
|
|
6
|
-
import { Card as h } from "./index.7QjsCYx3.js";
|
|
7
|
-
import de from "clsx";
|
|
8
|
-
const me = () => {
|
|
9
|
-
const {
|
|
10
|
-
isAuthenticated: p,
|
|
11
|
-
user: n,
|
|
12
|
-
registeringForPasskey: o,
|
|
13
|
-
authenticationType: y,
|
|
14
|
-
getAccessToken: f
|
|
15
|
-
} = ne(), [F, T] = m(null), [C, v] = m(!1), [x, R] = m(!1), [l, w] = m(null), U = J(), A = n?.username || "", {
|
|
16
|
-
data: E,
|
|
17
|
-
isSuccess: z,
|
|
18
|
-
refetch: I
|
|
19
|
-
} = se({
|
|
20
|
-
user: n?.username,
|
|
21
|
-
getAccessToken: f
|
|
22
|
-
}), { data: S, isSuccess: P } = re(), b = ee(() => !P || !S?.plans ? [] : S.plans.map((a) => ({
|
|
23
|
-
id: a.name,
|
|
24
|
-
label: a.label,
|
|
25
|
-
description: a.description,
|
|
26
|
-
features: a.features,
|
|
27
|
-
models: a.allowedModels.map(
|
|
28
|
-
(r) => te[r] || r
|
|
29
|
-
)
|
|
30
|
-
})), [P, S?.plans]), g = N(() => {
|
|
31
|
-
C || (K(), v(!0));
|
|
32
|
-
}, [C]), B = N(async () => {
|
|
33
|
-
if (!(!l || !n?.username))
|
|
34
|
-
try {
|
|
35
|
-
T(l.id), await le({
|
|
36
|
-
plan: l.id,
|
|
37
|
-
accessToken: await f(),
|
|
38
|
-
username: n.username
|
|
39
|
-
}), await I(), await O(
|
|
40
|
-
`${s.PLANS.SWITCH_SUCCESS} ${l.label}`,
|
|
41
|
-
{
|
|
42
|
-
containerId: "profile-plan-selection"
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
} catch {
|
|
46
|
-
await W(s.PLANS.SWITCH_ERROR, {
|
|
47
|
-
containerId: "profile-plan-selection"
|
|
48
|
-
});
|
|
49
|
-
} finally {
|
|
50
|
-
T(null), w(null);
|
|
51
|
-
}
|
|
52
|
-
}, [f, l, I, n?.username]), _ = N(
|
|
53
|
-
(a, r) => {
|
|
54
|
-
!n?.username || a === E?.plan || (w({ id: a, label: r }), R(!0));
|
|
55
|
-
},
|
|
56
|
-
[E?.plan, n?.username]
|
|
57
|
-
);
|
|
58
|
-
return p && A ? /* @__PURE__ */ t(H, { children: [
|
|
59
|
-
/* @__PURE__ */ e(
|
|
60
|
-
Y,
|
|
61
|
-
{
|
|
62
|
-
showConfirmation: x,
|
|
63
|
-
setShowConfirmation: R,
|
|
64
|
-
action: B,
|
|
65
|
-
customStrings: {
|
|
66
|
-
confirmAction: "Switch Plan",
|
|
67
|
-
cancelAction: "Cancel",
|
|
68
|
-
title: "Switch Plan"
|
|
69
|
-
},
|
|
70
|
-
children: l && /* @__PURE__ */ t("p", { className: "m-0", children: [
|
|
71
|
-
"Are you sure you want to switch to the following plan:",
|
|
72
|
-
" ",
|
|
73
|
-
/* @__PURE__ */ e("span", { className: "font-semibold", children: l.label })
|
|
74
|
-
] })
|
|
75
|
-
}
|
|
76
|
-
),
|
|
77
|
-
/* @__PURE__ */ e("div", { className: "av-sassy", children: /* @__PURE__ */ e($, { containerId: "profile-plan-selection" }) }),
|
|
78
|
-
/* @__PURE__ */ e(
|
|
79
|
-
h,
|
|
80
|
-
{
|
|
81
|
-
header: s.PREFERENCES.TITLE,
|
|
82
|
-
className: "prose-dark dark:prose-lighter",
|
|
83
|
-
noBorder: !0,
|
|
84
|
-
children: ie(U, {
|
|
85
|
-
[s.PREFERENCES.USERNAME]: A,
|
|
86
|
-
[s.PREFERENCES.EMAIL]: n?.email || ""
|
|
87
|
-
})
|
|
88
|
-
}
|
|
89
|
-
),
|
|
90
|
-
z && P && b.length > 0 && /* @__PURE__ */ t(
|
|
91
|
-
h,
|
|
92
|
-
{
|
|
93
|
-
header: s.PLANS.TITLE,
|
|
94
|
-
className: "prose-dark dark:prose-lighter mt-4",
|
|
95
|
-
noBorder: !0,
|
|
96
|
-
children: [
|
|
97
|
-
/* @__PURE__ */ e("p", { className: "text-sm", children: s.PLANS.DESCRIPTION }),
|
|
98
|
-
/* @__PURE__ */ e(u, { columnGap: 3, rowGap: 3, className: "mt-4", children: b.map(({ id: a, label: r, description: G, features: M, models: j }) => {
|
|
99
|
-
const d = E?.plan === a, D = d ? s.PLANS.ACTIVE_BADGE : `Get ${r}`, k = F === a;
|
|
100
|
-
return /* @__PURE__ */ e(i, { span: { fallback: 12, md: 4 }, children: /* @__PURE__ */ e(h, { mode: "darker", className: "prose-lighter h-full", children: /* @__PURE__ */ t(u, { direction: "column", children: [
|
|
101
|
-
/* @__PURE__ */ t(i, { children: [
|
|
102
|
-
/* @__PURE__ */ e("div", { className: "flex items-start justify-between gap-2", children: /* @__PURE__ */ t("div", { children: [
|
|
103
|
-
/* @__PURE__ */ e(
|
|
104
|
-
"h3",
|
|
105
|
-
{
|
|
106
|
-
className: de("m-0", {
|
|
107
|
-
"text-emerald-400": d
|
|
108
|
-
}),
|
|
109
|
-
children: r
|
|
110
|
-
}
|
|
111
|
-
),
|
|
112
|
-
/* @__PURE__ */ e("p", { className: "mb-0 text-sm opacity-80", children: G })
|
|
113
|
-
] }) }),
|
|
114
|
-
/* @__PURE__ */ e("h4", { children: "Features" }),
|
|
115
|
-
/* @__PURE__ */ e("ul", { className: "prose-li:text-sm", children: M.map((c) => /* @__PURE__ */ e("li", { children: c }, c)) }),
|
|
116
|
-
/* @__PURE__ */ e("h4", { children: "Models" }),
|
|
117
|
-
/* @__PURE__ */ e("ul", { className: "prose-li:text-sm", children: j.map((c) => /* @__PURE__ */ e("li", { children: c }, c)) })
|
|
118
|
-
] }),
|
|
119
|
-
/* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(
|
|
120
|
-
Q,
|
|
121
|
-
{
|
|
122
|
-
mode: "dark",
|
|
123
|
-
size: "small",
|
|
124
|
-
variant: d ? "selected" : "secondary",
|
|
125
|
-
className: "mt-4",
|
|
126
|
-
fullWidth: !0,
|
|
127
|
-
disabled: d || k,
|
|
128
|
-
onClick: () => {
|
|
129
|
-
_(a, r);
|
|
130
|
-
},
|
|
131
|
-
onMouseEnter: g,
|
|
132
|
-
onFocus: g,
|
|
133
|
-
children: k ? "Updating..." : D
|
|
134
|
-
}
|
|
135
|
-
) })
|
|
136
|
-
] }) }) }, a);
|
|
137
|
-
}) })
|
|
138
|
-
]
|
|
139
|
-
}
|
|
140
|
-
),
|
|
141
|
-
y !== ce.PASSKEY && !oe() && /* @__PURE__ */ t(
|
|
142
|
-
h,
|
|
143
|
-
{
|
|
144
|
-
className: "prose-dark dark:prose-lighter mt-4",
|
|
145
|
-
noBorder: !0,
|
|
146
|
-
header: /* @__PURE__ */ e("h2", { className: "m-0", children: /* @__PURE__ */ t(u, { columnGap: 3, alignVertical: "center", children: [
|
|
147
|
-
/* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(L, { size: "size-8" }) }),
|
|
148
|
-
/* @__PURE__ */ e(i, { children: /* @__PURE__ */ e("div", { children: s.PREFERENCES.PASSKEY_TITLE }) })
|
|
149
|
-
] }) }),
|
|
150
|
-
children: [
|
|
151
|
-
/* @__PURE__ */ e("p", { children: s.PREFERENCES.PASSKEY_INSTRUCTIONS }),
|
|
152
|
-
/* @__PURE__ */ e(
|
|
153
|
-
X,
|
|
154
|
-
{
|
|
155
|
-
variant: "selected",
|
|
156
|
-
size: "small",
|
|
157
|
-
className: "mt-2",
|
|
158
|
-
onClick: o,
|
|
159
|
-
labelLeft: s.PREFERENCES.PASSKEY_BUTTON,
|
|
160
|
-
children: /* @__PURE__ */ e(L, { size: "size-5", monotone: !0 })
|
|
161
|
-
}
|
|
162
|
-
)
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
)
|
|
166
|
-
] }) : null;
|
|
167
|
-
}, Ne = ({
|
|
168
|
-
open: p,
|
|
169
|
-
onOpenChange: n
|
|
170
|
-
}) => {
|
|
171
|
-
const o = ae(null);
|
|
172
|
-
return /* @__PURE__ */ e(
|
|
173
|
-
V,
|
|
174
|
-
{
|
|
175
|
-
open: p,
|
|
176
|
-
onOpenChange: n,
|
|
177
|
-
title: Z,
|
|
178
|
-
animation: !0,
|
|
179
|
-
animationType: "fade",
|
|
180
|
-
blurEffect: "large",
|
|
181
|
-
initialFocus: o,
|
|
182
|
-
footer: /* @__PURE__ */ e(
|
|
183
|
-
u,
|
|
184
|
-
{
|
|
185
|
-
columnGap: 2,
|
|
186
|
-
alignHorizontal: "flex-end",
|
|
187
|
-
className: "pb-8 sm:pb-0",
|
|
188
|
-
children: /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(q, { onOpenChange: n, ref: o }) })
|
|
189
|
-
}
|
|
190
|
-
),
|
|
191
|
-
children: /* @__PURE__ */ e(me, {})
|
|
192
|
-
}
|
|
193
|
-
);
|
|
194
|
-
};
|
|
195
|
-
export {
|
|
196
|
-
Ne as Profile
|
|
197
|
-
};
|