@versini/sassysaint 8.83.0 → 8.84.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.Dnae3ZET.js → AboutChangelog.DZGAHTt1.js} +3 -3
- package/dist/chunks/{AboutEntry.DaKcxQlb.js → AboutEntry.attDhr6o.js} +5 -5
- package/dist/chunks/{App.CfJzwyx5.js → App.D5dFnMgi.js} +17 -23
- package/dist/chunks/{Chart.CmXf5ahL.js → Chart.BorMOymc.js} +2 -2
- package/dist/chunks/{ChatBubbleAssistant.rQ0E9CSF.js → ChatBubbleAssistant.C8Hj4aUT.js} +4 -4
- package/dist/chunks/{ChatBubbleUser.iSkDnxmM.js → ChatBubbleUser.dsKIG0uQ.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.3HSGoZd4.js → ChatHistoryTable.CZoqrM3Q.js} +3 -3
- package/dist/chunks/HistoryEntry.Bwj5sP0d.js +329 -0
- package/dist/chunks/ProfileEntry.C7jF-C7h.js +200 -0
- package/dist/chunks/{SettingsEntry.SAurNjp0.js → SettingsEntry.YOmhRpCr.js} +3 -3
- package/dist/chunks/{UsageEntry.DPp3sbic.js → UsageEntry.CuuhnKaa.js} +3 -3
- package/dist/chunks/{UserMemoriesPanel.DiSRjoNR.js → UserMemoriesPanel.DHYQrBf3.js} +7 -5
- package/dist/chunks/{index.D4xbtPpm.js → index.B-hcQUrf.js} +3 -3
- package/dist/chunks/{index.iKl0E1mP.js → index.B-uWa0B5.js} +1 -1
- package/dist/chunks/{index.BQXkk0E7.js → index.CB38V3Ui.js} +1 -1
- package/dist/chunks/{index.CoVeibJJ.js → index.CIkuBITJ.js} +1 -1
- package/dist/chunks/{index.ZpurL-_2.js → index.CZGr8f9z.js} +1 -1
- package/dist/chunks/{index.HO-K8Z3S.js → index.Ch3LqJXc.js} +1 -1
- package/dist/chunks/{index.DNDgXAMw.js → index.DYbaR-WD.js} +2 -2
- package/dist/chunks/{index.9ZW-D7id.js → index.DtdQADPo.js} +1 -1
- package/dist/chunks/{index.B6gxiXab.js → index.xkx1XY3w.js} +1 -1
- package/dist/chunks/{useMarkdown.D1WsA7gy.js → useMarkdown.B4zM1uwe.js} +6 -6
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +4 -4
- package/dist/style.css +1 -1
- package/package.json +3 -3
- package/dist/chunks/HistoryEntry.4IXWZ8qq.js +0 -298
- package/dist/chunks/ProfileEntry.Chfyj-dQ.js +0 -181
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as s, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { useInViewport as c } from "./index.
|
|
2
|
+
import { useInViewport as c } from "./index.CB38V3Ui.js";
|
|
3
3
|
import { useRef as n, useCallback as f, useLayoutEffect as u } from "react";
|
|
4
|
-
import { ButtonScroll as p } from "./App.
|
|
5
|
-
import { useMarkdown as d } from "./useMarkdown.
|
|
4
|
+
import { ButtonScroll as p } from "./App.D5dFnMgi.js";
|
|
5
|
+
import { useMarkdown as d } from "./useMarkdown.B4zM1uwe.js";
|
|
6
6
|
const x = ({ content: o }) => {
|
|
7
7
|
const [l, t] = d(), { ref: i, inViewport: a } = c(), e = n(null), m = f(() => {
|
|
8
8
|
e.current && e.current.scrollIntoView({
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs as b, Fragment as l, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { Panel as g } from "./App.
|
|
3
|
-
import { useUniqueId as d, useServerCapabilities as A, useChangelogs as I, Card as t, renderDataAsList as c, CARDS as r, pluralize as B, isProbablyMobile as E, ABOUT_TITLE as S } from "./index.
|
|
2
|
+
import { Panel as g } from "./App.D5dFnMgi.js";
|
|
3
|
+
import { useUniqueId as d, useServerCapabilities as A, useChangelogs as I, Card as t, renderDataAsList as c, CARDS as r, pluralize as B, isProbablyMobile as E, ABOUT_TITLE as S } from "./index.CB38V3Ui.js";
|
|
4
4
|
import O from "clsx";
|
|
5
5
|
import { Suspense as C, lazy as U } from "react";
|
|
6
6
|
const L = U(
|
|
7
7
|
() => import(
|
|
8
8
|
/* webpackChunkName: "LazyAboutChangelog" */
|
|
9
|
-
"./AboutChangelog.
|
|
9
|
+
"./AboutChangelog.DZGAHTt1.js"
|
|
10
10
|
)
|
|
11
11
|
), N = () => {
|
|
12
12
|
const s = d(), i = d(), { data: a, isSuccess: m } = A(), { data: T, isSuccess: h } = I(), u = a?.version || "", o = a?.models || [], p = a?.buildTime || "";
|
|
@@ -18,8 +18,8 @@ const L = U(
|
|
|
18
18
|
className: "prose-dark dark:prose-lighter mb-4",
|
|
19
19
|
noBorder: !0,
|
|
20
20
|
children: c(s, {
|
|
21
|
-
[r.ABOUT.VERSION]: "8.
|
|
22
|
-
[r.ABOUT.BUILD_TIMESTAMP]: "11/13/2025
|
|
21
|
+
[r.ABOUT.VERSION]: "8.84.0",
|
|
22
|
+
[r.ABOUT.BUILD_TIMESTAMP]: "11/13/2025 08:50 PM EST"
|
|
23
23
|
})
|
|
24
24
|
}
|
|
25
25
|
),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as d, jsxs as A, Fragment as Ae } from "react/jsx-runtime";
|
|
2
|
-
import { ACTION_SORT as oa, e as mt, ACTION_SEARCH as sa, ACTION_RESET_PROMPT as uo, ACTION_TOGGLE_PROMPT as po, useLocalStorage as ke, LOCAL_STORAGE_PREFIX as Me, LOCAL_STORAGE_CHAT_ID as fo, n as me, isDev as aa, isPWAMode as ho, isTauri as yt, useChat as ia, useClickOutside as ca, useInterval as la, useTheme as xe, ButtonIcon as Ie, IconAddLight as ua, DEFAULT_ICON_ACTION_SIZE as Ce, ChatContext as Ee, useUserPreferences as je, useHotkeys as Ur, isProbablyiPhone as $e, IconCloseLight as da, IconEditLight as pa, serverUrl as mo, useEntitlements as jr, IconClose as go, useHaptic as fa, L as Er, j as st, Button as on, LOCAL_STORAGE_PRIVATE_DISCLOSURE as ha, V as Ht, IconLockedLight as ma, IconUnlockedLight as ga, IconSelected as va, IconUnSelected as ya, IconNext as _a, PromptsContext as Fr, IconBookSparklesLight as ba, IconRewrite as wa, IconProofread as Ia, IconMagic as Ea, LOCAL_STORAGE_REASONING_DISCLOSURE as Ta, IconLightBulbLight as Sa, useSaveChat as ka, IconDownloadLight as Ca, TOAST_CHAT_SAVED as xa, IconSendLight as Aa, AppContext as St, HistoryContext as vo, useChatsHistory as Na, useUniqueId as Oa, PROMPT_EDITABLE_AREA_CLASSNAME as za, PROMPT_CLASSNAME as Pa, B as yo, ERROR_MESSAGE as Ra, _ as _t, CLIPBOARD_PROMPT as sn, INPUT_PLACEHOLDER_TEXT_MOBILE as an, INPUT_PLACEHOLDER_TEXT_ENTER as cn, INPUT_PLACEHOLDER_TEXT_CMD_ENTER as ln, isProbablyMobile as Tr, getHotkeyHandler as Ma, m as $a, FOOTER_DISCLAIMERS as un, useViewportSize as Za, useVisualViewportSize as Da, useResizeObserver as _o, isProbablyiPad as La, INPUT_BOTTOM_OFFSET_EXTRA as dn, INPUT_BOTTOM_OFFSET_IPHONE as Ua, INPUT_BOTTOM_OFFSET_IPAD as ja, INPUT_BOTTOM_OFFSET as bo, APP_SET_FOOTER_HEIGHT as Fa, FOOTER_TOP as Sr, FOOTER_BOTTOM as gt, APP_SET_FOOTER_POSITION as lr, getLayoutPaddingClass as kr, canEvaluateModels as pn, w as Ba, IconOpenAI as Va, q as Ha, IconAnthropic as Ga, E as Ja, IconGoogleGemini as Wa, K as Ya, x as qa, d as ur, setNewProvider as fn, TOAST_PROVIDER_CHANGED as hn, useQueryClient as Xa, LOG_OUT as mn, IconProfile as Ka, IconSliders as Qa, IconHistory as ei, IconEditUser as ti, IconChart as ri, IconInfo as ni, IconBack as oi, IconSettings as si, ee as wo, Q as gn, useInViewport as ai, useServerCapabilities as ii, getMessageContaintWrapperClass as ci, UI_FOOTER_BUFFER as Io, UI_BUTTON_SCROLL_BUFFER as li, Logo as ui, UI_DEFAULT_MAIN_HEIGHT as vn, k as di, appReducer as pi, applyOledMode as fi, APP_SET_OLED_MODE as hi, APP_SET_FULL_SCREEN as mi, APP_SET_THEME_MODE as gi, UI_DEFAULT_MAIN_HEIGHT_IPHONE as vi, APP_CLASSNAME as yi, f as yn, h as _i, LOCAL_STORAGE_SORT as bi, LOCAL_STORAGE_SEARCH as wi, LOCAL_STORAGE_OLED_MODE as Ii, LOCAL_STORAGE_FULL_SCREEN as Ei, LOCAL_STORAGE_SORT_TIMESTAMP as Ti, LOCAL_STORAGE_SORT_TOKEN_USAGE as Si, TOAST_CACHE_ENABLED as ki, TOAST_CACHE_DISABLED as Ci } from "./index.
|
|
2
|
+
import { ACTION_SORT as oa, e as mt, ACTION_SEARCH as sa, ACTION_RESET_PROMPT as uo, ACTION_TOGGLE_PROMPT as po, useLocalStorage as ke, LOCAL_STORAGE_PREFIX as Me, LOCAL_STORAGE_CHAT_ID as fo, n as me, isDev as aa, isPWAMode as ho, isTauri as yt, useChat as ia, useClickOutside as ca, useInterval as la, useTheme as xe, ButtonIcon as Ie, IconAddLight as ua, DEFAULT_ICON_ACTION_SIZE as Ce, ChatContext as Ee, useUserPreferences as je, useHotkeys as Ur, isProbablyiPhone as $e, IconCloseLight as da, IconEditLight as pa, serverUrl as mo, useEntitlements as jr, IconClose as go, useHaptic as fa, L as Er, j as st, Button as on, LOCAL_STORAGE_PRIVATE_DISCLOSURE as ha, V as Ht, IconLockedLight as ma, IconUnlockedLight as ga, IconSelected as va, IconUnSelected as ya, IconNext as _a, PromptsContext as Fr, IconBookSparklesLight as ba, IconRewrite as wa, IconProofread as Ia, IconMagic as Ea, LOCAL_STORAGE_REASONING_DISCLOSURE as Ta, IconLightBulbLight as Sa, useSaveChat as ka, IconDownloadLight as Ca, TOAST_CHAT_SAVED as xa, IconSendLight as Aa, AppContext as St, HistoryContext as vo, useChatsHistory as Na, useUniqueId as Oa, PROMPT_EDITABLE_AREA_CLASSNAME as za, PROMPT_CLASSNAME as Pa, B as yo, ERROR_MESSAGE as Ra, _ as _t, CLIPBOARD_PROMPT as sn, INPUT_PLACEHOLDER_TEXT_MOBILE as an, INPUT_PLACEHOLDER_TEXT_ENTER as cn, INPUT_PLACEHOLDER_TEXT_CMD_ENTER as ln, isProbablyMobile as Tr, getHotkeyHandler as Ma, m as $a, FOOTER_DISCLAIMERS as un, useViewportSize as Za, useVisualViewportSize as Da, useResizeObserver as _o, isProbablyiPad as La, INPUT_BOTTOM_OFFSET_EXTRA as dn, INPUT_BOTTOM_OFFSET_IPHONE as Ua, INPUT_BOTTOM_OFFSET_IPAD as ja, INPUT_BOTTOM_OFFSET as bo, APP_SET_FOOTER_HEIGHT as Fa, FOOTER_TOP as Sr, FOOTER_BOTTOM as gt, APP_SET_FOOTER_POSITION as lr, getLayoutPaddingClass as kr, canEvaluateModels as pn, w as Ba, IconOpenAI as Va, q as Ha, IconAnthropic as Ga, E as Ja, IconGoogleGemini as Wa, K as Ya, x as qa, d as ur, setNewProvider as fn, TOAST_PROVIDER_CHANGED as hn, useQueryClient as Xa, LOG_OUT as mn, IconProfile as Ka, IconSliders as Qa, IconHistory as ei, IconEditUser as ti, IconChart as ri, IconInfo as ni, IconBack as oi, IconSettings as si, ee as wo, Q as gn, useInViewport as ai, useServerCapabilities as ii, getMessageContaintWrapperClass as ci, UI_FOOTER_BUFFER as Io, UI_BUTTON_SCROLL_BUFFER as li, Logo as ui, UI_DEFAULT_MAIN_HEIGHT as vn, k as di, appReducer as pi, applyOledMode as fi, APP_SET_OLED_MODE as hi, APP_SET_FULL_SCREEN as mi, APP_SET_THEME_MODE as gi, UI_DEFAULT_MAIN_HEIGHT_IPHONE as vi, APP_CLASSNAME as yi, f as yn, h as _i, LOCAL_STORAGE_SORT as bi, LOCAL_STORAGE_SEARCH as wi, LOCAL_STORAGE_OLED_MODE as Ii, LOCAL_STORAGE_FULL_SCREEN as Ei, LOCAL_STORAGE_SORT_TIMESTAMP as Ti, LOCAL_STORAGE_SORT_TOKEN_USAGE as Si, TOAST_CACHE_ENABLED as ki, TOAST_CACHE_DISABLED as Ci } from "./index.CB38V3Ui.js";
|
|
3
3
|
import Eo, { useRef as W, useCallback as q, useSyncExternalStore as dr, useEffect as $, useState as M, createContext as Br, useContext as X, forwardRef as Xe, cloneElement as xi, useId as To, useLayoutEffect as Vr, useMemo as we, Suspense as Gt, lazy as Oe, useReducer as zt } from "react";
|
|
4
4
|
import O, { clsx as Ai } from "clsx";
|
|
5
5
|
import { computePosition as Ni, offset as So, flip as ko, shift as Co, arrow as Oi, useMergeRefs as Hr, FloatingPortal as Cr, FloatingOverlay as zi, FloatingFocusManager as xr, useFloating as xo, useClick as Ao, useDismiss as No, useRole as Oo, useInteractions as zo, useFloatingParentNodeId as Po, FloatingTree as Pi, useListItem as Ro, useFloatingTree as Mo, useFloatingNodeId as Ri, autoUpdate as Mi, useHover as $i, safePolygon as Zi, useListNavigation as Di, useTypeahead as Li, FloatingNode as _n, FloatingList as bn } from "@floating-ui/react";
|
|
@@ -5700,7 +5700,7 @@ const Ds = async () => (yr || (yr = import(
|
|
|
5700
5700
|
"./index.790ujKXR.js"
|
|
5701
5701
|
)), yr), Ls = async () => (_r || (_r = import(
|
|
5702
5702
|
/* webpackChunkName: "toast-utilities" */
|
|
5703
|
-
"./index.
|
|
5703
|
+
"./index.CB38V3Ui.js"
|
|
5704
5704
|
).then((e) => e.utilities)), _r), Pf = async () => {
|
|
5705
5705
|
try {
|
|
5706
5706
|
await Promise.all([Ds(), Ls()]);
|
|
@@ -6943,13 +6943,7 @@ const mh = "av-toggle", gh = ({ narrow: e }) => O(
|
|
|
6943
6943
|
},
|
|
6944
6944
|
className: "text-sm",
|
|
6945
6945
|
disabled: !(m && I) || n && o > 0,
|
|
6946
|
-
children: n ? /* @__PURE__ */ d(
|
|
6947
|
-
ma,
|
|
6948
|
-
{
|
|
6949
|
-
size: Ce,
|
|
6950
|
-
className: l(c.PrivateChat)
|
|
6951
|
-
}
|
|
6952
|
-
) : /* @__PURE__ */ d(
|
|
6946
|
+
children: n ? /* @__PURE__ */ d(ma, { size: Ce }) : /* @__PURE__ */ d(
|
|
6953
6947
|
ga,
|
|
6954
6948
|
{
|
|
6955
6949
|
size: Ce,
|
|
@@ -8286,38 +8280,38 @@ const kh = ({ className: e, ...t }) => {
|
|
|
8286
8280
|
}, Kh = Oe(
|
|
8287
8281
|
() => import(
|
|
8288
8282
|
/* webpackChunkName: "modal-chunk" */
|
|
8289
|
-
"./ProfileEntry.
|
|
8283
|
+
"./ProfileEntry.C7jF-C7h.js"
|
|
8290
8284
|
).then((e) => ({
|
|
8291
8285
|
default: e.Profile
|
|
8292
8286
|
}))
|
|
8293
8287
|
), Qh = Oe(
|
|
8294
8288
|
() => import(
|
|
8295
8289
|
/* webpackChunkName: "modal-chunk" */
|
|
8296
|
-
"./SettingsEntry.
|
|
8290
|
+
"./SettingsEntry.YOmhRpCr.js"
|
|
8297
8291
|
).then((e) => ({
|
|
8298
8292
|
default: e.SettingsPanel
|
|
8299
8293
|
}))
|
|
8300
8294
|
), em = Oe(
|
|
8301
8295
|
() => import(
|
|
8302
8296
|
/* webpackChunkName: "modal-chunk" */
|
|
8303
|
-
"./HistoryEntry.
|
|
8297
|
+
"./HistoryEntry.Bwj5sP0d.js"
|
|
8304
8298
|
).then((e) => ({
|
|
8305
8299
|
default: e.HistoryPanel
|
|
8306
8300
|
}))
|
|
8307
8301
|
), tm = Oe(
|
|
8308
8302
|
() => import(
|
|
8309
8303
|
/* webpackChunkName: "modal-chunk" */
|
|
8310
|
-
"./AboutEntry.
|
|
8304
|
+
"./AboutEntry.attDhr6o.js"
|
|
8311
8305
|
).then((e) => ({ default: e.About }))
|
|
8312
8306
|
), rm = Oe(
|
|
8313
8307
|
() => import(
|
|
8314
8308
|
/* webpackChunkName: "modal-chunk" */
|
|
8315
|
-
"./UsageEntry.
|
|
8309
|
+
"./UsageEntry.CuuhnKaa.js"
|
|
8316
8310
|
).then((e) => ({ default: e.Usage }))
|
|
8317
8311
|
), nm = Oe(
|
|
8318
8312
|
() => import(
|
|
8319
8313
|
/* webpackChunkName: "modal-chunk" */
|
|
8320
|
-
"./UserMemoriesPanel.
|
|
8314
|
+
"./UserMemoriesPanel.DHYQrBf3.js"
|
|
8321
8315
|
).then(
|
|
8322
8316
|
(e) => ({ default: e.default })
|
|
8323
8317
|
)
|
|
@@ -8367,23 +8361,23 @@ const kh = ({ className: e, ...t }) => {
|
|
|
8367
8361
|
h || Promise.all([
|
|
8368
8362
|
import(
|
|
8369
8363
|
/* webpackChunkName: "modal-chunk" */
|
|
8370
|
-
"./ProfileEntry.
|
|
8364
|
+
"./ProfileEntry.C7jF-C7h.js"
|
|
8371
8365
|
),
|
|
8372
8366
|
import(
|
|
8373
8367
|
/* webpackChunkName: "modal-chunk" */
|
|
8374
|
-
"./SettingsEntry.
|
|
8368
|
+
"./SettingsEntry.YOmhRpCr.js"
|
|
8375
8369
|
),
|
|
8376
8370
|
import(
|
|
8377
8371
|
/* webpackChunkName: "modal-chunk" */
|
|
8378
|
-
"./HistoryEntry.
|
|
8372
|
+
"./HistoryEntry.Bwj5sP0d.js"
|
|
8379
8373
|
),
|
|
8380
8374
|
import(
|
|
8381
8375
|
/* webpackChunkName: "modal-chunk" */
|
|
8382
|
-
"./AboutEntry.
|
|
8376
|
+
"./AboutEntry.attDhr6o.js"
|
|
8383
8377
|
),
|
|
8384
8378
|
import(
|
|
8385
8379
|
/* webpackChunkName: "modal-chunk" */
|
|
8386
|
-
"./UsageEntry.
|
|
8380
|
+
"./UsageEntry.CuuhnKaa.js"
|
|
8387
8381
|
)
|
|
8388
8382
|
]).finally(() => f(!0));
|
|
8389
8383
|
}, [h]), m = q((U) => {
|
|
@@ -8653,18 +8647,18 @@ const co = "av-spinner", qs = ({ spinnerRef: e, mode: t = "system", type: r = "c
|
|
|
8653
8647
|
]
|
|
8654
8648
|
});
|
|
8655
8649
|
}, cm = Oe(
|
|
8656
|
-
() => import("./index.
|
|
8650
|
+
() => import("./index.Ch3LqJXc.js").then((e) => ({ default: e.Bubble }))
|
|
8657
8651
|
), tn = (e) => /* @__PURE__ */ d(Gt, { fallback: /* @__PURE__ */ d("span", { className: "inline-block" }), children: /* @__PURE__ */ d(cm, { ...e }) });
|
|
8658
8652
|
tn.displayName = "AsyncBubble";
|
|
8659
8653
|
const lo = 1, lm = 150, um = Oe(
|
|
8660
8654
|
() => import(
|
|
8661
8655
|
/* webpackChunkName: "LazyMessageAssistant" */
|
|
8662
|
-
"./ChatBubbleAssistant.
|
|
8656
|
+
"./ChatBubbleAssistant.C8Hj4aUT.js"
|
|
8663
8657
|
)
|
|
8664
8658
|
), dm = Oe(
|
|
8665
8659
|
() => import(
|
|
8666
8660
|
/* webpackChunkName: "LazyMessageUser" */
|
|
8667
|
-
"./ChatBubbleUser.
|
|
8661
|
+
"./ChatBubbleUser.dsKIG0uQ.js"
|
|
8668
8662
|
)
|
|
8669
8663
|
), pm = Eo.memo(
|
|
8670
8664
|
({
|
|
@@ -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.D5dFnMgi.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.CB38V3Ui.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 { ChatContext as P, AppContext as R, n as y, useUserPreferences as L, convertCamelCaseToReadable as _, numberFormatter as v, pluralize as B, Q as G } from "./index.
|
|
3
|
-
import { BUBBLE_FOOTER_EMPTY as D } from "./index.
|
|
2
|
+
import { ChatContext as P, AppContext as R, n as y, useUserPreferences as L, convertCamelCaseToReadable as _, numberFormatter as v, pluralize as B, Q as G } from "./index.CB38V3Ui.js";
|
|
3
|
+
import { BUBBLE_FOOTER_EMPTY as D } from "./index.Ch3LqJXc.js";
|
|
4
4
|
import U from "clsx";
|
|
5
5
|
import j, { useState as M, useRef as E, useEffect as F, useContext as S } from "react";
|
|
6
|
-
import { AsyncBubble as k } from "./App.
|
|
7
|
-
import { useMarkdown as q } from "./useMarkdown.
|
|
6
|
+
import { AsyncBubble as k } from "./App.D5dFnMgi.js";
|
|
7
|
+
import { useMarkdown as q } from "./useMarkdown.B4zM1uwe.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.CB38V3Ui.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.D5dFnMgi.js";
|
|
5
|
+
import { useMarkdown as x } from "./useMarkdown.B4zM1uwe.js";
|
|
6
6
|
/*!
|
|
7
7
|
@versini/ui-truncate v5.2.0
|
|
8
8
|
© 2025 gizmette.com
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as c, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { f as x, h as u, INFINITE_SCROLL_THRESHOLD as v, CARDS as I, pluralize as f, ButtonIcon as i, IconRestore as U, IconStarInCircle as y, IconStarInCircleLight as D, IconDelete as z, numberFormatter as L, isProbablyMobile as _ } from "./index.
|
|
3
|
-
import { W as P, j as $, G as m, H as B, M as a, F as M } from "./index.
|
|
4
|
-
import { Tooltip as d } from "./App.
|
|
2
|
+
import { f as x, h as u, INFINITE_SCROLL_THRESHOLD as v, CARDS as I, pluralize as f, ButtonIcon as i, IconRestore as U, IconStarInCircle as y, IconStarInCircleLight as D, IconDelete as z, numberFormatter as L, isProbablyMobile as _ } from "./index.CB38V3Ui.js";
|
|
3
|
+
import { W as P, j as $, G as m, H as B, M as a, F as M } from "./index.CZGr8f9z.js";
|
|
4
|
+
import { Tooltip as d } from "./App.D5dFnMgi.js";
|
|
5
5
|
import h from "clsx";
|
|
6
6
|
import { Fragment as W } from "react";
|
|
7
7
|
const s = {
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { jsxs as c, Fragment as ee, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { n as V, INFINITE_SCROLL_LIMIT as G, INFINITE_SCROLL_THRESHOLD as te, HistoryContext as U, ChatContext as re, useLocalStorage as y, LOCAL_STORAGE_PREFIX as p, LOCAL_STORAGE_SORT_TIMESTAMP as ae, e as h, LOCAL_STORAGE_SORT_TOKEN_USAGE as se, LOCAL_STORAGE_SORT as oe, f as v, useDeleteChat as ne, useToggleFavoriteChat as ie, APP_CLASSNAME as ce, TOAST_CHAT_DELETED as le, graphQLRequest as de, SERVICE_TYPES as he, ACTION_SORT as me, h as ue, useChatsHistory as Ce, useUserChatStats as Se, LOCAL_STORAGE_SEARCH as fe, LOCAL_STORAGE_FAVORITES_ONLY as ye, HISTORY_TITLE as pe, Card as ge, TextInput as Te, debounce as Ae, IconSearch as Ee, Button as M, L as De, j as _e, ACTION_SEARCH as Le } from "./index.CB38V3Ui.js";
|
|
3
|
+
import { useAiChat as ke, ConfirmationPanel as ve, LazyToastContainerWrapper as Oe, showErrorToast as be, CHAT_SET_STATUS as Re, Panel as Ie, Toggle as xe } from "./App.D5dFnMgi.js";
|
|
4
|
+
import Ne from "clsx";
|
|
5
|
+
import { useRef as N, useState as H, useContext as w, useCallback as P, Suspense as He, lazy as we, useEffect as Fe } from "react";
|
|
6
|
+
const ze = we(
|
|
7
|
+
() => import(
|
|
8
|
+
/* webpackChunkName: "history-table" */
|
|
9
|
+
"./ChatHistoryTable.CZoqrM3Q.js"
|
|
10
|
+
).then((m) => ({ default: m.ChatHistoryTable }))
|
|
11
|
+
), Ge = ({
|
|
12
|
+
filteredHistory: m,
|
|
13
|
+
onOpenChange: C,
|
|
14
|
+
mutate: S,
|
|
15
|
+
isLoading: g = !1,
|
|
16
|
+
totalHistoryCount: O,
|
|
17
|
+
isFiltered: T = !1
|
|
18
|
+
}) => {
|
|
19
|
+
const { user: l, getAccessToken: s } = V(), f = N(null), n = N({
|
|
20
|
+
id: "",
|
|
21
|
+
timestamp: "",
|
|
22
|
+
message: ""
|
|
23
|
+
}), [A, E] = H(!1), [D, d] = H(
|
|
24
|
+
G + te
|
|
25
|
+
), { state: i, dispatch: b } = w(U), u = {
|
|
26
|
+
searchString: i.searchString || "",
|
|
27
|
+
sortDirection: i.sortDirection || h.DESC,
|
|
28
|
+
sortedCell: i.sortedCell || v
|
|
29
|
+
}, {
|
|
30
|
+
setChatId: R,
|
|
31
|
+
setInitialMessages: _,
|
|
32
|
+
dispatch: I
|
|
33
|
+
} = w(re), { setInput: x } = ke(), [L, r] = y({
|
|
34
|
+
key: p + ae,
|
|
35
|
+
initialValue: h.DESC
|
|
36
|
+
}), [B, j] = y({
|
|
37
|
+
key: p + se,
|
|
38
|
+
initialValue: h.ASC
|
|
39
|
+
}), [, Y] = y({
|
|
40
|
+
key: p + oe,
|
|
41
|
+
initialValue: v
|
|
42
|
+
}), { mutateAsync: q } = ne({ getAccessToken: s }), { mutateAsync: K } = ie({
|
|
43
|
+
getAccessToken: s
|
|
44
|
+
}), Q = (e) => {
|
|
45
|
+
const o = i.sortedCell === e;
|
|
46
|
+
let a, k;
|
|
47
|
+
switch (e) {
|
|
48
|
+
case v:
|
|
49
|
+
k = r, a = o ? i.sortDirection : L;
|
|
50
|
+
break;
|
|
51
|
+
case ue:
|
|
52
|
+
k = j, a = o ? i.sortDirection : B;
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
k = r, a = o ? i.sortDirection : L;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
const z = a === h.ASC ? h.DESC : h.ASC;
|
|
59
|
+
k(z), Y(e), b({
|
|
60
|
+
type: me,
|
|
61
|
+
payload: {
|
|
62
|
+
sortedCell: e,
|
|
63
|
+
sortDirection: z
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}, W = async () => {
|
|
67
|
+
const e = n.current;
|
|
68
|
+
try {
|
|
69
|
+
await q({
|
|
70
|
+
userId: l?.username || "",
|
|
71
|
+
id: e.id
|
|
72
|
+
}), S(""), await be(le, {
|
|
73
|
+
autoClose: 2e3,
|
|
74
|
+
containerId: "history-table"
|
|
75
|
+
});
|
|
76
|
+
} catch {
|
|
77
|
+
}
|
|
78
|
+
}, X = async (e) => {
|
|
79
|
+
try {
|
|
80
|
+
const o = await s(), a = await de({
|
|
81
|
+
accessToken: o,
|
|
82
|
+
type: he.GET_CHAT,
|
|
83
|
+
params: {
|
|
84
|
+
id: e.id
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
I({
|
|
88
|
+
type: Re,
|
|
89
|
+
payload: {
|
|
90
|
+
streaming: !1,
|
|
91
|
+
loading: !1,
|
|
92
|
+
restoring: !0,
|
|
93
|
+
restoredModel: a.data?.model || "",
|
|
94
|
+
restoredUsage: a.data?.tokenUsage || 0
|
|
95
|
+
}
|
|
96
|
+
}), x(""), R(e.id), _(a.data.messages), C(!1);
|
|
97
|
+
} catch {
|
|
98
|
+
}
|
|
99
|
+
}, J = (e) => {
|
|
100
|
+
n.current = {
|
|
101
|
+
id: e.id,
|
|
102
|
+
timestamp: e.timestamp,
|
|
103
|
+
message: e.messages.length > 0 ? e.messages[0]?.content : ""
|
|
104
|
+
}, E(!A);
|
|
105
|
+
}, Z = async (e) => {
|
|
106
|
+
try {
|
|
107
|
+
await K({
|
|
108
|
+
userId: l?.username || "",
|
|
109
|
+
id: e.id
|
|
110
|
+
}), S("");
|
|
111
|
+
} catch {
|
|
112
|
+
}
|
|
113
|
+
}, F = P((e) => {
|
|
114
|
+
e[0].isIntersecting && d((a) => a + G);
|
|
115
|
+
}, []), $ = P(
|
|
116
|
+
(e) => {
|
|
117
|
+
if (f.current && f.current.disconnect(), e) {
|
|
118
|
+
const o = {
|
|
119
|
+
rootMargin: "20px"
|
|
120
|
+
}, a = new IntersectionObserver(F, o);
|
|
121
|
+
a.observe(e), f.current = a;
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
[F]
|
|
125
|
+
);
|
|
126
|
+
return /* @__PURE__ */ c(ee, { children: [
|
|
127
|
+
/* @__PURE__ */ c(
|
|
128
|
+
ve,
|
|
129
|
+
{
|
|
130
|
+
showConfirmation: A,
|
|
131
|
+
setShowConfirmation: E,
|
|
132
|
+
action: W,
|
|
133
|
+
customStrings: {
|
|
134
|
+
confirmAction: "Delete",
|
|
135
|
+
cancelAction: "Cancel",
|
|
136
|
+
title: "Delete chat"
|
|
137
|
+
},
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ t("p", { className: "m-0", children: "Are you sure you want to delete the following chat:" }),
|
|
140
|
+
/* @__PURE__ */ c("ul", { className: "m-0", children: [
|
|
141
|
+
/* @__PURE__ */ c("li", { children: [
|
|
142
|
+
"Timestamp:",
|
|
143
|
+
" ",
|
|
144
|
+
/* @__PURE__ */ t("span", { className: "text-lg", children: n.current && n.current.timestamp })
|
|
145
|
+
] }),
|
|
146
|
+
/* @__PURE__ */ c("li", { children: [
|
|
147
|
+
"First message:",
|
|
148
|
+
" ",
|
|
149
|
+
/* @__PURE__ */ t("span", { className: "text-lg", children: n.current?.message })
|
|
150
|
+
] })
|
|
151
|
+
] })
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ t("div", { className: ce, children: /* @__PURE__ */ t(Oe, { containerId: "history-table" }) }),
|
|
156
|
+
/* @__PURE__ */ t(He, { fallback: /* @__PURE__ */ t("div", {}), children: /* @__PURE__ */ t(
|
|
157
|
+
ze,
|
|
158
|
+
{
|
|
159
|
+
filteredHistory: m,
|
|
160
|
+
historyState: u,
|
|
161
|
+
lastEntryToLoad: D,
|
|
162
|
+
onClickSort: Q,
|
|
163
|
+
onClickRestore: X,
|
|
164
|
+
onClickDelete: J,
|
|
165
|
+
onClickFavorite: Z,
|
|
166
|
+
infinityScrollMarkerRef: $,
|
|
167
|
+
isLoading: g,
|
|
168
|
+
totalHistoryCount: O,
|
|
169
|
+
isFiltered: T
|
|
170
|
+
}
|
|
171
|
+
) })
|
|
172
|
+
] });
|
|
173
|
+
}, je = ({
|
|
174
|
+
open: m,
|
|
175
|
+
onOpenChange: C
|
|
176
|
+
}) => {
|
|
177
|
+
const { getAccessToken: S, user: g } = V(), [O, T] = H([]), l = N(null), { state: s, dispatch: f } = w(U), {
|
|
178
|
+
data: n,
|
|
179
|
+
refetch: A,
|
|
180
|
+
isLoading: E,
|
|
181
|
+
isError: D
|
|
182
|
+
} = Ce({
|
|
183
|
+
enabled: m,
|
|
184
|
+
user: g?.username || "",
|
|
185
|
+
searchString: s.searchString || "",
|
|
186
|
+
sortDirection: s.sortDirection || h.DESC,
|
|
187
|
+
sortedCell: s.sortedCell || v,
|
|
188
|
+
getAccessToken: S
|
|
189
|
+
}), { data: d } = Se({
|
|
190
|
+
user: g?.username,
|
|
191
|
+
getAccessToken: S
|
|
192
|
+
}), i = d && d.totalChats ? d.totalChats - d.privateChats - d.deletedChats : 0, [, b] = y({
|
|
193
|
+
key: p + fe,
|
|
194
|
+
initialValue: s.searchString
|
|
195
|
+
}), [u, R] = y({
|
|
196
|
+
key: p + ye,
|
|
197
|
+
initialValue: !1
|
|
198
|
+
});
|
|
199
|
+
Fe(() => {
|
|
200
|
+
n && T(
|
|
201
|
+
u ? n.filter((r) => r.favoriteChat === !0) : n
|
|
202
|
+
);
|
|
203
|
+
}, [n, u]);
|
|
204
|
+
const _ = async (r) => {
|
|
205
|
+
b(r), f({
|
|
206
|
+
type: Le,
|
|
207
|
+
payload: { searchString: r }
|
|
208
|
+
});
|
|
209
|
+
}, I = Ae((r) => {
|
|
210
|
+
_(r.target.value.trim());
|
|
211
|
+
}, 500), x = async (r) => {
|
|
212
|
+
r.preventDefault();
|
|
213
|
+
}, L = (r) => {
|
|
214
|
+
R(r);
|
|
215
|
+
};
|
|
216
|
+
return /* @__PURE__ */ c(
|
|
217
|
+
Ie,
|
|
218
|
+
{
|
|
219
|
+
open: m,
|
|
220
|
+
onOpenChange: C,
|
|
221
|
+
title: pe,
|
|
222
|
+
animation: !0,
|
|
223
|
+
animationType: "fade",
|
|
224
|
+
footer: /* @__PURE__ */ t(
|
|
225
|
+
De,
|
|
226
|
+
{
|
|
227
|
+
columnGap: 2,
|
|
228
|
+
alignHorizontal: "flex-end",
|
|
229
|
+
className: "pb-8 sm:pb-0",
|
|
230
|
+
children: /* @__PURE__ */ t(_e, { children: /* @__PURE__ */ t(
|
|
231
|
+
M,
|
|
232
|
+
{
|
|
233
|
+
mode: "dark",
|
|
234
|
+
variant: "secondary",
|
|
235
|
+
focusMode: "light",
|
|
236
|
+
noBorder: !0,
|
|
237
|
+
onClick: () => C(!1),
|
|
238
|
+
children: "Dismiss"
|
|
239
|
+
}
|
|
240
|
+
) })
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
children: [
|
|
244
|
+
/* @__PURE__ */ t(
|
|
245
|
+
ge,
|
|
246
|
+
{
|
|
247
|
+
header: s.searchString ? "Filters applied" : "Filters",
|
|
248
|
+
className: "prose-dark dark:prose-lighter mb-4",
|
|
249
|
+
noBorder: !0,
|
|
250
|
+
compact: !0,
|
|
251
|
+
children: /* @__PURE__ */ c("form", { autoComplete: "off", onSubmit: x, children: [
|
|
252
|
+
/* @__PURE__ */ t(
|
|
253
|
+
Te,
|
|
254
|
+
{
|
|
255
|
+
placeholder: "Search",
|
|
256
|
+
labelHidden: !0,
|
|
257
|
+
noBorder: !0,
|
|
258
|
+
autoCapitalize: "off",
|
|
259
|
+
autoComplete: "off",
|
|
260
|
+
autoCorrect: "off",
|
|
261
|
+
ref: l,
|
|
262
|
+
defaultValue: s.searchString,
|
|
263
|
+
mode: "alt-system",
|
|
264
|
+
name: "Search",
|
|
265
|
+
label: "Search",
|
|
266
|
+
onChange: I,
|
|
267
|
+
className: "my-2",
|
|
268
|
+
rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Ee, { monotone: !0, size: "size-3" }) })
|
|
269
|
+
}
|
|
270
|
+
),
|
|
271
|
+
/* @__PURE__ */ c("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
|
|
272
|
+
/* @__PURE__ */ t("div", { className: "order-1 sm:order-0", children: /* @__PURE__ */ t(
|
|
273
|
+
xe,
|
|
274
|
+
{
|
|
275
|
+
name: "favorites-only",
|
|
276
|
+
checked: u,
|
|
277
|
+
onChange: L,
|
|
278
|
+
label: "Show favorites only",
|
|
279
|
+
narrow: !0,
|
|
280
|
+
noBorder: !0
|
|
281
|
+
}
|
|
282
|
+
) }),
|
|
283
|
+
/* @__PURE__ */ t(
|
|
284
|
+
M,
|
|
285
|
+
{
|
|
286
|
+
size: "small",
|
|
287
|
+
disabled: s.searchString === "",
|
|
288
|
+
onClick: () => {
|
|
289
|
+
_(""), l.current?.value && (l.current.value = "", l.current.focus());
|
|
290
|
+
},
|
|
291
|
+
children: "Reset Search"
|
|
292
|
+
}
|
|
293
|
+
)
|
|
294
|
+
] })
|
|
295
|
+
] })
|
|
296
|
+
}
|
|
297
|
+
),
|
|
298
|
+
/* @__PURE__ */ c(
|
|
299
|
+
"div",
|
|
300
|
+
{
|
|
301
|
+
className: Ne(
|
|
302
|
+
"flex flex-col sm:flex-row",
|
|
303
|
+
"max-h-[65vh]",
|
|
304
|
+
"sm:max-h-[75vh]",
|
|
305
|
+
"min-h-[60vh]"
|
|
306
|
+
),
|
|
307
|
+
children: [
|
|
308
|
+
D && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
|
|
309
|
+
!D && /* @__PURE__ */ t(
|
|
310
|
+
Ge,
|
|
311
|
+
{
|
|
312
|
+
mutate: A,
|
|
313
|
+
filteredHistory: O,
|
|
314
|
+
onOpenChange: C,
|
|
315
|
+
isLoading: E,
|
|
316
|
+
totalHistoryCount: i,
|
|
317
|
+
isFiltered: !!(s.searchString || u)
|
|
318
|
+
}
|
|
319
|
+
)
|
|
320
|
+
]
|
|
321
|
+
}
|
|
322
|
+
)
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
};
|
|
327
|
+
export {
|
|
328
|
+
je as HistoryPanel
|
|
329
|
+
};
|