@versini/sassysaint 8.78.1 → 8.79.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.
- package/dist/chunks/{AboutChangelog.BvhLIP1v.js → AboutChangelog.RQ2dLRs9.js} +3 -3
- package/dist/chunks/{AboutEntry.BMArPbzV.js → AboutEntry.CpFMkr79.js} +5 -5
- package/dist/chunks/{App.CXdttE_S.js → App.DAaATEKV.js} +3150 -2960
- package/dist/chunks/{Chart.BiZtA34n.js → Chart.BKmafZak.js} +2 -2
- package/dist/chunks/{ChatBubbleAssistant.HqpcI9PY.js → ChatBubbleAssistant.B4IGyY5V.js} +4 -4
- package/dist/chunks/{ChatBubbleUser.BbNCjJdG.js → ChatBubbleUser.DsOMP5go.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.Bdw9DOhK.js → ChatHistoryTable.D4gYhSA9.js} +15 -15
- package/dist/chunks/{HistoryEntry.bMYtfHRX.js → HistoryEntry.CUbsjW_l.js} +3 -3
- package/dist/chunks/{ProfileEntry.DqXSU--M.js → ProfileEntry.Dz9CVci_.js} +2 -2
- package/dist/chunks/SettingsEntry.DuAYMX4m.js +517 -0
- package/dist/chunks/{Table.DQR9xnL6.js → Table.CjzaBOxn.js} +2 -2
- package/dist/chunks/{UsageEntry.CefbFF2K.js → UsageEntry.DpVRUiH5.js} +3 -3
- package/dist/chunks/{UserMemoriesPanel.DpIkY6nN.js → UserMemoriesPanel.DvYce5sW.js} +4 -4
- package/dist/chunks/{index.B-CC2ObP.js → index.0cE1U8yJ.js} +1 -1
- package/dist/chunks/{index.MiT5Y2Jo.js → index.B1uZUNzr.js} +3 -3
- package/dist/chunks/{index.DNRpmSxM.js → index.B9QORjw0.js} +1 -1
- package/dist/chunks/{index.CHFeeIY1.js → index.BCU0BgSz.js} +1 -1
- package/dist/chunks/{index.CT2_7ccW.js → index.IxOxnKDE.js} +2 -2
- package/dist/chunks/{index.pH_f3zgG.js → index.JBnaIFI9.js} +1409 -1326
- package/dist/chunks/{index.Bdy44ypN.js → index.TirpXeDY.js} +1 -1
- package/dist/chunks/{index.DBdmkvjR.js → index.YawG6Xex.js} +1 -1
- package/dist/chunks/{useMarkdown.CO4H_q0J.js → useMarkdown.BtHcsdXH.js} +6 -6
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +4 -4
- package/dist/style.css +2 -2
- package/package.json +5 -5
- package/dist/chunks/SettingsEntry.-m4AtVBU.js +0 -498
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as Ap } from "react/jsx-runtime";
|
|
2
|
-
import { getDefaultExportFromCjs as ln } from "./App.
|
|
2
|
+
import { getDefaultExportFromCjs as ln } from "./App.DAaATEKV.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.
|
|
4
|
+
import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.JBnaIFI9.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 P, useUserPreferences as R, convertCamelCaseToReadable as y, numberFormatter as L, pluralize as _,
|
|
3
|
-
import { BUBBLE_FOOTER_EMPTY as B } from "./index.
|
|
2
|
+
import { n as P, useUserPreferences as R, convertCamelCaseToReadable as y, numberFormatter as L, pluralize as _, Q as v } from "./index.JBnaIFI9.js";
|
|
3
|
+
import { BUBBLE_FOOTER_EMPTY as B } from "./index.YawG6Xex.js";
|
|
4
4
|
import U from "clsx";
|
|
5
5
|
import G, { useState as M, useRef as E, useEffect as F, useContext as S } from "react";
|
|
6
|
-
import { ChatContext as D, AppContext as j, AsyncBubble as k } from "./App.
|
|
7
|
-
import { useMarkdown as q } from "./useMarkdown.
|
|
6
|
+
import { ChatContext as D, AppContext as j, AsyncBubble as k } from "./App.DAaATEKV.js";
|
|
7
|
+
import { useMarkdown as q } from "./useMarkdown.BtHcsdXH.js";
|
|
8
8
|
const I = 2, W = I * 1e3, b = "", V = (e) => e * (2 - e);
|
|
9
9
|
function Y(e, n = !0) {
|
|
10
10
|
const [a, d] = M(0), [i, p] = M(0), [t, C] = M(e), r = E(0), s = E(0);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as a, Fragment as h, jsxs as S } from "react/jsx-runtime";
|
|
2
|
-
import { Button as C } from "./index.
|
|
2
|
+
import { Button as C } from "./index.JBnaIFI9.js";
|
|
3
3
|
import { useState as _, useMemo as m, isValidElement as T, useEffect as b } from "react";
|
|
4
|
-
import { AsyncBubble as w } from "./App.
|
|
5
|
-
import { useMarkdown as x } from "./useMarkdown.
|
|
4
|
+
import { AsyncBubble as w } from "./App.DAaATEKV.js";
|
|
5
|
+
import { useMarkdown as x } from "./useMarkdown.BtHcsdXH.js";
|
|
6
6
|
/*!
|
|
7
7
|
@versini/ui-truncate v5.2.0
|
|
8
8
|
© 2025 gizmette.com
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { f as p, h as u, INFINITE_SCROLL_THRESHOLD as
|
|
3
|
-
import { Tooltip as h } from "./App.
|
|
2
|
+
import { f as p, h as u, INFINITE_SCROLL_THRESHOLD as k, CARDS as D, pluralize as T, ButtonIcon as d, IconRestore as y, IconStarInCircle as U, IconStarInCircleLight as z, IconDelete as P, numberFormatter as L, C as _, IconGoogleGemini as G, IconOpenAI as $, IconAnthropic as B, isProbablyMobile as K, K as W, q as Y, E as H } from "./index.JBnaIFI9.js";
|
|
3
|
+
import { Tooltip as h } from "./App.DAaATEKV.js";
|
|
4
4
|
import l from "clsx";
|
|
5
5
|
import { Fragment as F } from "react";
|
|
6
|
-
import { W as V, j, G as x, H as
|
|
7
|
-
const
|
|
8
|
-
[
|
|
9
|
-
[
|
|
10
|
-
[
|
|
6
|
+
import { W as V, j, G as x, H as q, M as n, F as N } from "./Table.CjzaBOxn.js";
|
|
7
|
+
const J = {
|
|
8
|
+
[H]: B,
|
|
9
|
+
[Y]: $,
|
|
10
|
+
[W]: G
|
|
11
11
|
}, s = {
|
|
12
12
|
ROW: "row",
|
|
13
13
|
TIMESTAMP: p,
|
|
@@ -15,12 +15,12 @@ const q = {
|
|
|
15
15
|
PROVIDER: "provider",
|
|
16
16
|
TOKEN_USAGE: u,
|
|
17
17
|
ACTIONS: "actions"
|
|
18
|
-
},
|
|
18
|
+
}, Q = [
|
|
19
19
|
s.ROW,
|
|
20
20
|
s.TIMESTAMP,
|
|
21
21
|
s.SUMMARY,
|
|
22
22
|
s.ACTIONS
|
|
23
|
-
],
|
|
23
|
+
], X = [
|
|
24
24
|
s.ROW,
|
|
25
25
|
s.SUMMARY,
|
|
26
26
|
s.TIMESTAMP,
|
|
@@ -40,7 +40,7 @@ const q = {
|
|
|
40
40
|
totalHistoryCount: E,
|
|
41
41
|
isFiltered: v = !1
|
|
42
42
|
}) => {
|
|
43
|
-
const M =
|
|
43
|
+
const M = K() ? Q : X, w = (t) => {
|
|
44
44
|
switch (t) {
|
|
45
45
|
case s.ROW:
|
|
46
46
|
return /* @__PURE__ */ e(n, { className: "sr-only", children: "Row" }, t);
|
|
@@ -87,7 +87,7 @@ const q = {
|
|
|
87
87
|
default:
|
|
88
88
|
return null;
|
|
89
89
|
}
|
|
90
|
-
},
|
|
90
|
+
}, b = (t, r, i) => {
|
|
91
91
|
switch (t) {
|
|
92
92
|
case s.ROW:
|
|
93
93
|
return /* @__PURE__ */ e(n, { children: i + 1 }, t);
|
|
@@ -123,7 +123,7 @@ const q = {
|
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
125
|
case s.PROVIDER: {
|
|
126
|
-
const a = r.model ? _(r.model) : null, f = a ?
|
|
126
|
+
const a = r.model ? _(r.model) : null, f = a ? J[a] : null;
|
|
127
127
|
return /* @__PURE__ */ e(
|
|
128
128
|
n,
|
|
129
129
|
{
|
|
@@ -224,10 +224,10 @@ const q = {
|
|
|
224
224
|
return v && r > t ? `Showing ${T(`${t} chat`, t)} out of ${r}` : T(`${t} chat`, t);
|
|
225
225
|
})(), children: [
|
|
226
226
|
/* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(x, { children: M.map((t) => w(t)) }) }),
|
|
227
|
-
/* @__PURE__ */ e(
|
|
228
|
-
r === g -
|
|
227
|
+
/* @__PURE__ */ e(q, { children: I && c.length === 0 ? /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e(n, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : c.slice(0, g).map((t, r) => t?.messages?.length > 0 ? /* @__PURE__ */ m(F, { children: [
|
|
228
|
+
r === g - k && /* @__PURE__ */ e("tr", { ref: A }),
|
|
229
229
|
/* @__PURE__ */ e(x, { children: M.map(
|
|
230
|
-
(i) =>
|
|
230
|
+
(i) => b(i, t, r)
|
|
231
231
|
) })
|
|
232
232
|
] }, `${D.HISTORY.TITLE}-${t.id}-${r}`) : null) })
|
|
233
233
|
] });
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs as l, Fragment as re, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { n as M, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as ae, useLocalStorage as p, LOCAL_STORAGE_PREFIX as y, LOCAL_STORAGE_SORT_TIMESTAMP as se, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ne, f as R, useUserPreferences as ie, useDeleteChat as ce, useToggleFavoriteChat as le, APP_CLASSNAME as de, TOAST_CHAT_DELETED as he, graphQLRequest as ue, SERVICE_TYPES as me, setNewProvider as Ce, ACTION_SORT as Se, h as fe, TOAST_PROVIDER_CHANGED as pe, useChatsHistory as ye, useUserChatStats as Te, LOCAL_STORAGE_SEARCH as ge, LOCAL_STORAGE_FAVORITES_ONLY as Ae, HISTORY_TITLE as Ee, Card as ve, TextInput as _e, debounce as De, IconSearch as Oe, Button as Re, ACTION_SEARCH as Ie } from "./index.
|
|
3
|
-
import { HistoryContext as U, ChatContext as B, useAiChat as Le, e as h, ConfirmationPanel as ke, LazyToastContainerWrapper as be, showErrorToast as Ne, CHAT_SET_PROVIDER as we, showSuccessToast as xe, CHAT_SET_STATUS as He, Panel as Fe, Toggle as Pe } from "./App.
|
|
2
|
+
import { n as M, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as ae, useLocalStorage as p, LOCAL_STORAGE_PREFIX as y, LOCAL_STORAGE_SORT_TIMESTAMP as se, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ne, f as R, useUserPreferences as ie, useDeleteChat as ce, useToggleFavoriteChat as le, APP_CLASSNAME as de, TOAST_CHAT_DELETED as he, graphQLRequest as ue, SERVICE_TYPES as me, setNewProvider as Ce, ACTION_SORT as Se, h as fe, TOAST_PROVIDER_CHANGED as pe, useChatsHistory as ye, useUserChatStats as Te, LOCAL_STORAGE_SEARCH as ge, LOCAL_STORAGE_FAVORITES_ONLY as Ae, HISTORY_TITLE as Ee, Card as ve, TextInput as _e, debounce as De, IconSearch as Oe, Button as Re, ACTION_SEARCH as Ie } from "./index.JBnaIFI9.js";
|
|
3
|
+
import { HistoryContext as U, ChatContext as B, useAiChat as Le, e as h, ConfirmationPanel as ke, LazyToastContainerWrapper as be, showErrorToast as Ne, CHAT_SET_PROVIDER as we, showSuccessToast as xe, CHAT_SET_STATUS as He, Panel as Fe, Toggle as Pe } from "./App.DAaATEKV.js";
|
|
4
4
|
import { useRef as H, useState as F, useContext as I, useCallback as z, Suspense as Ve, lazy as Ge, useEffect as ze } from "react";
|
|
5
5
|
const Me = Ge(
|
|
6
6
|
() => import(
|
|
7
7
|
/* webpackChunkName: "history-table" */
|
|
8
|
-
"./ChatHistoryTable.
|
|
8
|
+
"./ChatHistoryTable.D4gYhSA9.js"
|
|
9
9
|
).then((u) => ({ default: u.ChatHistoryTable }))
|
|
10
10
|
), Ue = ({
|
|
11
11
|
filteredHistory: u,
|
|
@@ -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 $, Panel as V } from "./App.
|
|
3
|
-
import { n as q, useUniqueId as J, useUserPreferences as Q, useServerCapabilities as X,
|
|
2
|
+
import { preloadToast as K, showSuccessToast as W, showErrorToast as Y, ConfirmationPanel as H, LazyToastContainerWrapper as $, Panel as V } from "./App.DAaATEKV.js";
|
|
3
|
+
import { n as q, useUniqueId as J, useUserPreferences as Q, useServerCapabilities as X, d as Z, setUserPlan as ee, Card as d, renderDataAsList as ae, CARDS as s, L as P, j as c, Button as se, it as ne, isTauri as re, ButtonIcon as te, IconPasskey as L, PROFILE_TITLE as le } from "./index.JBnaIFI9.js";
|
|
4
4
|
import ie from "clsx";
|
|
5
5
|
import { useState as m, useMemo as ce, useCallback as f } from "react";
|
|
6
6
|
const oe = () => {
|
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
import { jsxs as n, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { n as je, useEntitlements as Ve, useUserPreferences as Fe, V as ie, useLocalStorage as de, LOCAL_STORAGE_OLED_MODE as We, LOCAL_STORAGE_FULL_SCREEN as $e, k as ue, canEvaluateModels as ze, Y as He, getCacheInfo as Ye, isServiceWorkerEnabled as qe, SETTINGS_TITLE as Ke, Card as E, CARDS as r, b as Qe, Button as v, PROMPTS_DESCRIPTION as Je, e_ as me, L as Xe, j as he, applyOledMode as Ee, getCurrentGeoLocation as Ze, graphQLRequest as fe, handleServiceWorkerToggle as et, SERVICE_TYPES as Se } from "./index.JBnaIFI9.js";
|
|
3
|
+
import { AppContext as tt, useCapability as pe, Panel as ot, Toggle as l, APP_SET_OLED_MODE as ge, APP_SET_FULL_SCREEN as be } from "./App.DAaATEKV.js";
|
|
4
|
+
import { TextArea as Te } from "./index.0cE1U8yJ.js";
|
|
5
|
+
import { useContext as at, useState as a, useMemo as st, useCallback as nt, useEffect as Ne } from "react";
|
|
6
|
+
const ut = ({
|
|
7
|
+
open: Ce,
|
|
8
|
+
onOpenChange: A
|
|
9
|
+
}) => {
|
|
10
|
+
const { getAccessToken: I, user: R } = je(), { allowedModels: w, status: B } = Ve(), { dispatch: g } = at(tt), {
|
|
11
|
+
data: o,
|
|
12
|
+
isSuccess: ye,
|
|
13
|
+
refetch: x
|
|
14
|
+
} = Fe({
|
|
15
|
+
user: R?.username,
|
|
16
|
+
getAccessToken: I
|
|
17
|
+
}), [G, b] = a({
|
|
18
|
+
loadingLocation: !1
|
|
19
|
+
}), [L, U] = a({
|
|
20
|
+
prompts: []
|
|
21
|
+
}), [j, V] = a(""), [F, T] = a(""), [W, $] = a(!1), [z, H] = a(!1), [N, Y] = a(!1), [C, q] = a(!1), [K, Q] = a(!1), [k, J] = a(!1), [f, X] = a(null), [Z, ee] = a(!1), [te, oe] = a(!1), ae = pe(ie.TOOL.MEMORIES), se = pe(ie.ADDON.REASONING), [i, Ie] = de({
|
|
22
|
+
key: We,
|
|
23
|
+
initialValue: !1
|
|
24
|
+
}), [u, we] = de({
|
|
25
|
+
key: $e,
|
|
26
|
+
initialValue: !1
|
|
27
|
+
}), [m, M] = a(!1), [S, D] = a(!1), [ne, re] = a(ue), Le = st(() => ze(w, B) ? He(w) : !1, [w, B]), ke = (e) => {
|
|
28
|
+
oe(e);
|
|
29
|
+
}, Me = (e) => {
|
|
30
|
+
$(e);
|
|
31
|
+
}, De = (e) => {
|
|
32
|
+
ae && H(e);
|
|
33
|
+
}, _e = (e) => {
|
|
34
|
+
q(e);
|
|
35
|
+
}, Oe = (e) => {
|
|
36
|
+
se && Q(e);
|
|
37
|
+
}, Pe = (e) => {
|
|
38
|
+
J(e);
|
|
39
|
+
}, ve = (e) => {
|
|
40
|
+
M(e);
|
|
41
|
+
}, Ae = (e) => {
|
|
42
|
+
D(e);
|
|
43
|
+
}, Re = (e) => {
|
|
44
|
+
re(e ? me : ue);
|
|
45
|
+
}, Be = async (e) => {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
try {
|
|
48
|
+
await fe({
|
|
49
|
+
accessToken: await I(),
|
|
50
|
+
type: Se.SET_USER_PREFERENCES,
|
|
51
|
+
params: {
|
|
52
|
+
user: R?.username,
|
|
53
|
+
instructions: j,
|
|
54
|
+
location: F,
|
|
55
|
+
provider: o?.provider,
|
|
56
|
+
/**
|
|
57
|
+
* When nested model selection is disabled, explicitly clear any stored
|
|
58
|
+
* model preference so the user relies solely on provider defaults.
|
|
59
|
+
* Empty string signals to backend to use provider's default model.
|
|
60
|
+
*/
|
|
61
|
+
model: k && o?.model || "",
|
|
62
|
+
tags: L.prompts,
|
|
63
|
+
sendOnEnter: W,
|
|
64
|
+
useMemory: z,
|
|
65
|
+
showDetails: te,
|
|
66
|
+
showReasoningButton: K,
|
|
67
|
+
useNestedModelSelection: k,
|
|
68
|
+
themeMode: ne
|
|
69
|
+
}
|
|
70
|
+
}), C !== N && (await et(C), Y(C)), m !== i && (Ie(m), Ee(m), g({
|
|
71
|
+
type: ge,
|
|
72
|
+
payload: { oledMode: m }
|
|
73
|
+
})), S !== u && (we(S), g({
|
|
74
|
+
type: be,
|
|
75
|
+
payload: { fullScreen: S }
|
|
76
|
+
})), x(), b({
|
|
77
|
+
loadingLocation: !1
|
|
78
|
+
});
|
|
79
|
+
} catch {
|
|
80
|
+
}
|
|
81
|
+
}, xe = async () => {
|
|
82
|
+
b({
|
|
83
|
+
loadingLocation: !0
|
|
84
|
+
}), T("...");
|
|
85
|
+
try {
|
|
86
|
+
const e = Date.now(), s = await Ze(), y = await fe({
|
|
87
|
+
accessToken: await I(),
|
|
88
|
+
type: Se.GET_LOCATION,
|
|
89
|
+
params: {
|
|
90
|
+
latitude: s.latitude,
|
|
91
|
+
longitude: s.longitude
|
|
92
|
+
}
|
|
93
|
+
}), h = Date.now() - e;
|
|
94
|
+
h < 2e3 && await new Promise((Ue) => setTimeout(Ue, 2e3 - h));
|
|
95
|
+
const { city: d, state: c, country: p, displayName: P } = y.data, Ge = d && c && p ? `${d}, ${c}, ${p}` : P;
|
|
96
|
+
b({
|
|
97
|
+
loadingLocation: !1
|
|
98
|
+
}), T(Ge);
|
|
99
|
+
} catch {
|
|
100
|
+
b({
|
|
101
|
+
loadingLocation: !1
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}, le = () => {
|
|
105
|
+
m !== i && (M(i), Ee(i), g({
|
|
106
|
+
type: ge,
|
|
107
|
+
payload: { oledMode: i }
|
|
108
|
+
})), S !== u && (D(u), g({
|
|
109
|
+
type: be,
|
|
110
|
+
payload: { fullScreen: u }
|
|
111
|
+
})), x(), A(!1);
|
|
112
|
+
}, _ = ({
|
|
113
|
+
enabled: e = !1,
|
|
114
|
+
privateChat: s = !1,
|
|
115
|
+
clipboardAccess: y = !1,
|
|
116
|
+
...O
|
|
117
|
+
}) => {
|
|
118
|
+
U((h) => {
|
|
119
|
+
const d = h.prompts, c = {
|
|
120
|
+
...O,
|
|
121
|
+
enabled: e,
|
|
122
|
+
privateChat: s,
|
|
123
|
+
clipboardAccess: y
|
|
124
|
+
};
|
|
125
|
+
y ? c.content = c.content.replace(/{{clipboard}}/g, "") + " {{clipboard}}" : c.content = c.content.replace(/{{clipboard}}/g, "");
|
|
126
|
+
const p = d.findIndex((P) => P.slot === O.slot);
|
|
127
|
+
return p === -1 ? {
|
|
128
|
+
...h,
|
|
129
|
+
prompts: [...d, { ...c }]
|
|
130
|
+
} : (d[p] = c, {
|
|
131
|
+
...h,
|
|
132
|
+
prompts: [...d]
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
}, ce = nt(async () => {
|
|
136
|
+
try {
|
|
137
|
+
ee(!0);
|
|
138
|
+
const e = await Ye();
|
|
139
|
+
X(e);
|
|
140
|
+
} catch {
|
|
141
|
+
} finally {
|
|
142
|
+
ee(!1);
|
|
143
|
+
}
|
|
144
|
+
}, []);
|
|
145
|
+
return Ne(() => {
|
|
146
|
+
if (!o)
|
|
147
|
+
return;
|
|
148
|
+
o.instructions && V(o.instructions), o.location && T(o.location), o.tags && U({ prompts: o.tags }), o.sendOnEnter !== void 0 && $(o.sendOnEnter), o.useMemory !== void 0 && H(o.useMemory), o.showDetails !== void 0 && oe(o.showDetails), o.showReasoningButton !== void 0 && Q(o.showReasoningButton), o.useNestedModelSelection !== void 0 && J(o.useNestedModelSelection), o.themeMode !== void 0 && re(o.themeMode);
|
|
149
|
+
const e = qe();
|
|
150
|
+
Y(e), q(e), M(i), D(u);
|
|
151
|
+
}, [o, i, u]), Ne(() => {
|
|
152
|
+
N ? ce() : X(null);
|
|
153
|
+
}, [N, ce]), ye ? /* @__PURE__ */ n(
|
|
154
|
+
ot,
|
|
155
|
+
{
|
|
156
|
+
open: Ce,
|
|
157
|
+
onOpenChange: le,
|
|
158
|
+
title: Ke,
|
|
159
|
+
animation: !0,
|
|
160
|
+
animationType: "fade",
|
|
161
|
+
footer: /* @__PURE__ */ n(
|
|
162
|
+
Xe,
|
|
163
|
+
{
|
|
164
|
+
columnGap: 2,
|
|
165
|
+
alignHorizontal: "flex-end",
|
|
166
|
+
className: "pb-8 sm:pb-0",
|
|
167
|
+
children: [
|
|
168
|
+
/* @__PURE__ */ t(he, { children: /* @__PURE__ */ t(
|
|
169
|
+
v,
|
|
170
|
+
{
|
|
171
|
+
mode: "dark",
|
|
172
|
+
variant: "secondary",
|
|
173
|
+
focusMode: "light",
|
|
174
|
+
noBorder: !0,
|
|
175
|
+
onClick: le,
|
|
176
|
+
children: "Cancel"
|
|
177
|
+
}
|
|
178
|
+
) }),
|
|
179
|
+
/* @__PURE__ */ t(he, { children: /* @__PURE__ */ t(
|
|
180
|
+
v,
|
|
181
|
+
{
|
|
182
|
+
mode: "dark",
|
|
183
|
+
focusMode: "light",
|
|
184
|
+
onClick: async (e) => {
|
|
185
|
+
A(!1), await Be(e);
|
|
186
|
+
},
|
|
187
|
+
children: "Save"
|
|
188
|
+
}
|
|
189
|
+
) })
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
),
|
|
193
|
+
children: [
|
|
194
|
+
/* @__PURE__ */ n(
|
|
195
|
+
E,
|
|
196
|
+
{
|
|
197
|
+
header: r.SETTINGS_DETAILS.TITLE,
|
|
198
|
+
className: "prose-dark dark:prose-lighter",
|
|
199
|
+
noBorder: !0,
|
|
200
|
+
children: [
|
|
201
|
+
/* @__PURE__ */ t(
|
|
202
|
+
l,
|
|
203
|
+
{
|
|
204
|
+
noBorder: !0,
|
|
205
|
+
narrow: !0,
|
|
206
|
+
className: "mt-2 justify-between",
|
|
207
|
+
labelPosition: "left",
|
|
208
|
+
label: "Show Message Statistics",
|
|
209
|
+
subLabel: r.SETTINGS_DETAILS.DETAILS,
|
|
210
|
+
name: "show-message-statistics",
|
|
211
|
+
onChange: ke,
|
|
212
|
+
checked: te
|
|
213
|
+
}
|
|
214
|
+
),
|
|
215
|
+
/* @__PURE__ */ t(
|
|
216
|
+
l,
|
|
217
|
+
{
|
|
218
|
+
noBorder: !0,
|
|
219
|
+
narrow: !0,
|
|
220
|
+
className: "mt-2 justify-between",
|
|
221
|
+
labelPosition: "left",
|
|
222
|
+
label: "Send Message on Enter",
|
|
223
|
+
subLabel: r.SETTINGS_DETAILS.SEND_ON_ENTER,
|
|
224
|
+
name: "send-message-on-enter",
|
|
225
|
+
onChange: Me,
|
|
226
|
+
checked: W
|
|
227
|
+
}
|
|
228
|
+
),
|
|
229
|
+
ae && /* @__PURE__ */ t(
|
|
230
|
+
l,
|
|
231
|
+
{
|
|
232
|
+
noBorder: !0,
|
|
233
|
+
narrow: !0,
|
|
234
|
+
className: "mt-2 justify-between",
|
|
235
|
+
labelPosition: "left",
|
|
236
|
+
label: "Use Memory",
|
|
237
|
+
subLabel: r.SETTINGS_DETAILS.USE_MEMORY,
|
|
238
|
+
name: "use-memory",
|
|
239
|
+
onChange: De,
|
|
240
|
+
checked: z
|
|
241
|
+
}
|
|
242
|
+
)
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
),
|
|
246
|
+
/* @__PURE__ */ n(
|
|
247
|
+
E,
|
|
248
|
+
{
|
|
249
|
+
header: "Custom Instructions",
|
|
250
|
+
className: "prose-dark dark:prose-lighter mt-4",
|
|
251
|
+
noBorder: !0,
|
|
252
|
+
children: [
|
|
253
|
+
/* @__PURE__ */ n("p", { className: "text-sm", children: [
|
|
254
|
+
"What would you like ",
|
|
255
|
+
/* @__PURE__ */ t("em", { children: Qe }),
|
|
256
|
+
" to know about you to provide better responses?"
|
|
257
|
+
] }),
|
|
258
|
+
/* @__PURE__ */ t(
|
|
259
|
+
Te,
|
|
260
|
+
{
|
|
261
|
+
mode: "alt-system",
|
|
262
|
+
autoCapitalize: "off",
|
|
263
|
+
autoComplete: "off",
|
|
264
|
+
autoCorrect: "off",
|
|
265
|
+
name: "customInstructions",
|
|
266
|
+
label: "Custom Instructions",
|
|
267
|
+
value: j,
|
|
268
|
+
onChange: (e) => {
|
|
269
|
+
V(e.target.value);
|
|
270
|
+
},
|
|
271
|
+
helperText: "Press ENTER to add a new line."
|
|
272
|
+
}
|
|
273
|
+
)
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
),
|
|
277
|
+
/* @__PURE__ */ n(
|
|
278
|
+
E,
|
|
279
|
+
{
|
|
280
|
+
header: "Location",
|
|
281
|
+
className: "prose-dark dark:prose-lighter mt-4",
|
|
282
|
+
noBorder: !0,
|
|
283
|
+
children: [
|
|
284
|
+
/* @__PURE__ */ t("p", { className: "text-sm", children: "You can share your location to receive customized responses based on your area." }),
|
|
285
|
+
/* @__PURE__ */ t(
|
|
286
|
+
Te,
|
|
287
|
+
{
|
|
288
|
+
mode: "alt-system",
|
|
289
|
+
name: "location",
|
|
290
|
+
label: "Location",
|
|
291
|
+
value: F,
|
|
292
|
+
onChange: (e) => {
|
|
293
|
+
T(e.target.value);
|
|
294
|
+
},
|
|
295
|
+
helperText: "Enter your location or press auto-detect."
|
|
296
|
+
}
|
|
297
|
+
),
|
|
298
|
+
/* @__PURE__ */ t(
|
|
299
|
+
v,
|
|
300
|
+
{
|
|
301
|
+
className: "mt-2",
|
|
302
|
+
size: "small",
|
|
303
|
+
noBorder: !0,
|
|
304
|
+
variant: "secondary",
|
|
305
|
+
disabled: G.loadingLocation,
|
|
306
|
+
onClick: xe,
|
|
307
|
+
children: G.loadingLocation ? "Detecting..." : "Auto-detect"
|
|
308
|
+
}
|
|
309
|
+
)
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
),
|
|
313
|
+
/* @__PURE__ */ n(
|
|
314
|
+
E,
|
|
315
|
+
{
|
|
316
|
+
header: r.SETTINGS_PROMPTS.TITLE,
|
|
317
|
+
className: "prose-dark dark:prose-lighter mt-4",
|
|
318
|
+
noBorder: !0,
|
|
319
|
+
children: [
|
|
320
|
+
/* @__PURE__ */ t("p", { className: "text-sm", children: Je }),
|
|
321
|
+
L.prompts && L.prompts.slice(0, 3).map((e) => /* @__PURE__ */ n(
|
|
322
|
+
E,
|
|
323
|
+
{
|
|
324
|
+
mode: "dark",
|
|
325
|
+
noBorder: !0,
|
|
326
|
+
header: e.label.replace("...", ""),
|
|
327
|
+
className: "prose-light mb-2",
|
|
328
|
+
children: [
|
|
329
|
+
/* @__PURE__ */ t("p", { className: "text-sm", children: e.description }),
|
|
330
|
+
/* @__PURE__ */ t(
|
|
331
|
+
l,
|
|
332
|
+
{
|
|
333
|
+
noBorder: !0,
|
|
334
|
+
narrow: !0,
|
|
335
|
+
mode: "dark",
|
|
336
|
+
focusMode: "light",
|
|
337
|
+
className: "mt-2",
|
|
338
|
+
label: "Enabled",
|
|
339
|
+
name: e.slot.toString(),
|
|
340
|
+
onChange: (s) => {
|
|
341
|
+
_({
|
|
342
|
+
...e,
|
|
343
|
+
enabled: s
|
|
344
|
+
});
|
|
345
|
+
},
|
|
346
|
+
checked: e.enabled
|
|
347
|
+
}
|
|
348
|
+
),
|
|
349
|
+
/* @__PURE__ */ t(
|
|
350
|
+
l,
|
|
351
|
+
{
|
|
352
|
+
noBorder: !0,
|
|
353
|
+
narrow: !0,
|
|
354
|
+
mode: "dark",
|
|
355
|
+
focusMode: "light",
|
|
356
|
+
className: "mt-2",
|
|
357
|
+
label: "Private Chat",
|
|
358
|
+
name: `private-${e.slot.toString()}`,
|
|
359
|
+
onChange: (s) => {
|
|
360
|
+
_({
|
|
361
|
+
...e,
|
|
362
|
+
privateChat: s
|
|
363
|
+
});
|
|
364
|
+
},
|
|
365
|
+
checked: e.privateChat
|
|
366
|
+
}
|
|
367
|
+
),
|
|
368
|
+
/* @__PURE__ */ t(
|
|
369
|
+
l,
|
|
370
|
+
{
|
|
371
|
+
noBorder: !0,
|
|
372
|
+
narrow: !0,
|
|
373
|
+
mode: "dark",
|
|
374
|
+
focusMode: "light",
|
|
375
|
+
className: "mt-2",
|
|
376
|
+
label: "Use Clipboard",
|
|
377
|
+
name: `clipboard-${e.slot.toString()}`,
|
|
378
|
+
onChange: (s) => {
|
|
379
|
+
_({
|
|
380
|
+
...e,
|
|
381
|
+
clipboardAccess: s
|
|
382
|
+
});
|
|
383
|
+
},
|
|
384
|
+
checked: e.clipboardAccess
|
|
385
|
+
}
|
|
386
|
+
)
|
|
387
|
+
]
|
|
388
|
+
},
|
|
389
|
+
`prompt-slot-${e.slot}`
|
|
390
|
+
))
|
|
391
|
+
]
|
|
392
|
+
}
|
|
393
|
+
),
|
|
394
|
+
/* @__PURE__ */ n(
|
|
395
|
+
E,
|
|
396
|
+
{
|
|
397
|
+
header: r.SETTINGS_ADVANCED.TITLE,
|
|
398
|
+
className: "prose-dark dark:prose-lighter mt-4 ",
|
|
399
|
+
noBorder: !0,
|
|
400
|
+
children: [
|
|
401
|
+
se && /* @__PURE__ */ t(
|
|
402
|
+
l,
|
|
403
|
+
{
|
|
404
|
+
noBorder: !0,
|
|
405
|
+
narrow: !0,
|
|
406
|
+
className: "mt-2 justify-between",
|
|
407
|
+
labelPosition: "left",
|
|
408
|
+
label: "Show Reasoning Button",
|
|
409
|
+
subLabel: r.SETTINGS_ADVANCED.REASONING_BUTTON_DESCRIPTION,
|
|
410
|
+
name: "show-reasoning-button",
|
|
411
|
+
onChange: Oe,
|
|
412
|
+
checked: K
|
|
413
|
+
}
|
|
414
|
+
),
|
|
415
|
+
Le && /* @__PURE__ */ t(
|
|
416
|
+
l,
|
|
417
|
+
{
|
|
418
|
+
noBorder: !0,
|
|
419
|
+
narrow: !0,
|
|
420
|
+
className: "mt-2 justify-between",
|
|
421
|
+
labelPosition: "left",
|
|
422
|
+
label: "Enable Model Selection",
|
|
423
|
+
subLabel: r.SETTINGS_ADVANCED.NESTED_MODEL_SELECTION_DESCRIPTION,
|
|
424
|
+
name: "use-nested-model-selection",
|
|
425
|
+
onChange: Pe,
|
|
426
|
+
checked: k
|
|
427
|
+
}
|
|
428
|
+
),
|
|
429
|
+
/* @__PURE__ */ t(
|
|
430
|
+
l,
|
|
431
|
+
{
|
|
432
|
+
noBorder: !0,
|
|
433
|
+
narrow: !0,
|
|
434
|
+
className: "mt-2 justify-between",
|
|
435
|
+
labelPosition: "left",
|
|
436
|
+
label: "Enable OLED Mode",
|
|
437
|
+
subLabel: r.SETTINGS_ADVANCED.BACKGROUND_THEME_DESCRIPTION,
|
|
438
|
+
name: "enable-oled-mode",
|
|
439
|
+
onChange: ve,
|
|
440
|
+
checked: m
|
|
441
|
+
}
|
|
442
|
+
),
|
|
443
|
+
/* @__PURE__ */ t(
|
|
444
|
+
l,
|
|
445
|
+
{
|
|
446
|
+
noBorder: !0,
|
|
447
|
+
narrow: !0,
|
|
448
|
+
className: "mt-2 justify-between",
|
|
449
|
+
labelPosition: "left",
|
|
450
|
+
label: "Enable Alternative Theme",
|
|
451
|
+
subLabel: r.SETTINGS_ADVANCED.THEME_MODE_DESCRIPTION,
|
|
452
|
+
name: "enable-alternative-theme",
|
|
453
|
+
onChange: Re,
|
|
454
|
+
checked: ne === me
|
|
455
|
+
}
|
|
456
|
+
),
|
|
457
|
+
/* @__PURE__ */ t(
|
|
458
|
+
l,
|
|
459
|
+
{
|
|
460
|
+
noBorder: !0,
|
|
461
|
+
narrow: !0,
|
|
462
|
+
className: "mt-2 justify-between",
|
|
463
|
+
labelPosition: "left",
|
|
464
|
+
label: "Enable Full Screen",
|
|
465
|
+
subLabel: r.SETTINGS_ADVANCED.FULL_SCREEN_DESCRIPTION,
|
|
466
|
+
name: "enable-full-screen",
|
|
467
|
+
onChange: Ae,
|
|
468
|
+
checked: S
|
|
469
|
+
}
|
|
470
|
+
),
|
|
471
|
+
/* @__PURE__ */ t(
|
|
472
|
+
l,
|
|
473
|
+
{
|
|
474
|
+
noBorder: !0,
|
|
475
|
+
narrow: !0,
|
|
476
|
+
className: "mt-2 justify-between",
|
|
477
|
+
labelPosition: "left",
|
|
478
|
+
label: "Enable Assets Caching",
|
|
479
|
+
subLabel: r.SETTINGS_ADVANCED.CACHE_DESCRIPTION,
|
|
480
|
+
name: "enable-service-worker",
|
|
481
|
+
onChange: _e,
|
|
482
|
+
checked: C
|
|
483
|
+
}
|
|
484
|
+
),
|
|
485
|
+
N && /* @__PURE__ */ n("div", { className: "mt-4 p-3 border border-dashed border-neutral-700 dark:border-neutral-400 rounded @container/optimizations", children: [
|
|
486
|
+
/* @__PURE__ */ t("h3", { className: "m-0 mb-2 text-xs uppercase opacity-70", children: "Cache Info" }),
|
|
487
|
+
f ? /* @__PURE__ */ n("div", { className: "text-xs space-y-2", children: [
|
|
488
|
+
/* @__PURE__ */ n("p", { className: "m-0", children: [
|
|
489
|
+
"Version: ",
|
|
490
|
+
/* @__PURE__ */ t("strong", { children: f.version })
|
|
491
|
+
] }),
|
|
492
|
+
/* @__PURE__ */ n("p", { className: "m-0", children: [
|
|
493
|
+
"Total Items: ",
|
|
494
|
+
/* @__PURE__ */ t("strong", { children: f.totalItems })
|
|
495
|
+
] }),
|
|
496
|
+
f.caches.map((e) => /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t("ul", { className: "not-prose font-mono mt-2 list-none w-[95cqw]", children: e.urls.map((s) => /* @__PURE__ */ t(
|
|
497
|
+
"li",
|
|
498
|
+
{
|
|
499
|
+
className: "truncate text-xs text-copy-dark dark:text-copy-light overflow-hidden text-ellipsis",
|
|
500
|
+
title: s,
|
|
501
|
+
children: new URL(s).pathname
|
|
502
|
+
},
|
|
503
|
+
s
|
|
504
|
+
)) }) }, e.name)),
|
|
505
|
+
f.totalItems === 0 && !Z && /* @__PURE__ */ t("p", { className: "italic m-0 opacity-70", children: "No cached assets yet." })
|
|
506
|
+
] }) : /* @__PURE__ */ t("p", { className: "text-xs opacity-70 m-0", children: Z ? "Loading cache info..." : "No cache info available." })
|
|
507
|
+
] })
|
|
508
|
+
]
|
|
509
|
+
}
|
|
510
|
+
)
|
|
511
|
+
]
|
|
512
|
+
}
|
|
513
|
+
) : null;
|
|
514
|
+
};
|
|
515
|
+
export {
|
|
516
|
+
ut as SettingsPanel
|
|
517
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as l, jsxs as y } from "react/jsx-runtime";
|
|
2
|
-
import { ButtonSort_private as f } from "./index.
|
|
2
|
+
import { ButtonSort_private as f } from "./index.JBnaIFI9.js";
|
|
3
3
|
import o from "clsx";
|
|
4
4
|
import v, { useContext as b } from "react";
|
|
5
|
-
import { e as k } from "./App.
|
|
5
|
+
import { e as k } from "./App.DAaATEKV.js";
|
|
6
6
|
/*!
|
|
7
7
|
@versini/ui-icons v4.15.1
|
|
8
8
|
© 2025 gizmette.com
|