@versini/sassysaint 8.126.7 → 8.128.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.CW-Izs66.js → AboutChangelog.BaCzQIqD.js} +2 -2
- package/dist/chunks/{AboutEntry.DBy-y5Ti.js → AboutEntry.eW1BM9CA.js} +8 -8
- package/dist/chunks/{App.B-md2rcu.js → App.CC33vL5i.js} +2402 -2428
- package/dist/chunks/{BubbleActions.B8rq1SsN.js → BubbleActions.es9LLF18.js} +9 -12
- package/dist/chunks/{ButtonIconDelete.JtVTVoIm.js → ButtonIconDelete.90PiEjs7.js} +4 -4
- package/dist/chunks/{Chart.CtxoFzUx.js → Chart.DUt_7vIL.js} +2 -2
- package/dist/chunks/{ChatBubbleAssistant.BtzJwzIk.js → ChatBubbleAssistant.B5jxh8vW.js} +5 -5
- package/dist/chunks/{ChatBubbleUser.C34kYYGx.js → ChatBubbleUser.D5XEunyx.js} +4 -4
- package/dist/chunks/{GenericPanel.etdBsslu.js → GenericPanel.Bf-hQWg5.js} +1 -1
- package/dist/chunks/{HistoryEntry.CECnIGUg.js → HistoryEntry.BcJRi9F8.js} +82 -86
- package/dist/chunks/{LoginEntry.BYfbRBYg.js → LoginEntry.D3t0yZDn.js} +4 -4
- package/dist/chunks/{LogoEntry.CRQF4cxX.js → LogoEntry.BMOnjgmn.js} +191 -192
- package/dist/chunks/{MemoriesEntry.Pbp4i_A_.js → MemoriesEntry.CT7Tg3DJ.js} +6 -6
- package/dist/chunks/{ProfileEntry.CI9p9RFG.js → ProfileEntry.BJr9XGP9.js} +45 -50
- package/dist/chunks/{SettingsEntry.CLssrhX8.js → SettingsEntry.DvfCS9tj.js} +6 -6
- package/dist/chunks/{UsageEntry.w73jBoTN.js → UsageEntry.CBUbgFys.js} +6 -6
- package/dist/chunks/{_baseUniq.Cd1UQpLO.js → _baseUniq.C05YPW9C.js} +1 -1
- package/dist/chunks/{arc.D4c8to6F.js → arc.Cf5K6vl_.js} +1 -1
- package/dist/chunks/{architecture-U656AL7Q.B9lITtMs.js → architecture-U656AL7Q.CZy-Pdvp.js} +1 -1
- package/dist/chunks/{architectureDiagram-VXUJARFQ.BIC6ZHca.js → architectureDiagram-VXUJARFQ.BIs2ud_G.js} +4 -4
- package/dist/chunks/{blockDiagram-VD42YOAC.BBMb6Nqs.js → blockDiagram-VD42YOAC.BPoyL5aF.js} +5 -5
- package/dist/chunks/{browser.D7OX3j7D.js → browser.DObrbMlL.js} +1 -1
- package/dist/chunks/{c4Diagram-YG6GDRKO.DaMxCrVF.js → c4Diagram-YG6GDRKO.BB9IW_Rn.js} +2 -2
- package/dist/chunks/{channel.CnlPlGuY.js → channel.CgqWkmba.js} +1 -1
- package/dist/chunks/{chunk-4BX2VUAB.l1nq9vFq.js → chunk-4BX2VUAB.Cmc7-DdG.js} +1 -1
- package/dist/chunks/{chunk-55IACEB6.BF4RUrON.js → chunk-55IACEB6.CN2uBDDO.js} +1 -1
- package/dist/chunks/{chunk-B4BG7PRW.BK7fKwGA.js → chunk-B4BG7PRW.DBDBMwjU.js} +4 -4
- package/dist/chunks/{chunk-DI55MBZ5.BKjbItc8.js → chunk-DI55MBZ5.Cz3LdADZ.js} +3 -3
- package/dist/chunks/{chunk-FMBD7UC4.BE5Woiu7.js → chunk-FMBD7UC4.DapfiQi4.js} +1 -1
- package/dist/chunks/{chunk-QN33PNHL.gPNHlIzJ.js → chunk-QN33PNHL.Dvmk9wzi.js} +1 -1
- package/dist/chunks/{chunk-QZHKN3VN.5wNS8trN.js → chunk-QZHKN3VN.BwMfpp5t.js} +1 -1
- package/dist/chunks/{chunk-TZMSLE5B.BKh2yO_r.js → chunk-TZMSLE5B.BB9VNFNe.js} +1 -1
- package/dist/chunks/{classDiagram-2ON5EDUG.kipwuaZZ.js → classDiagram-2ON5EDUG.CoSYun8e.js} +2 -2
- package/dist/chunks/{classDiagram-v2-WZHVMYZB.kipwuaZZ.js → classDiagram-v2-WZHVMYZB.CoSYun8e.js} +2 -2
- package/dist/chunks/{clone.CCFxMO0c.js → clone.7t5Injbh.js} +1 -1
- package/dist/chunks/{cose-bilkent-S5V4N54A.CkCCiu8R.js → cose-bilkent-S5V4N54A.DcgFw2nC.js} +2 -2
- package/dist/chunks/{dagre-6UL2VRFP.Beoz6gTt.js → dagre-6UL2VRFP.stVQNin0.js} +5 -5
- package/dist/chunks/{diagram-PSM6KHXK.8RPMv7wd.js → diagram-PSM6KHXK.Bfp-k4dp.js} +4 -4
- package/dist/chunks/{diagram-QEK2KX5R.BnhMDTJF.js → diagram-QEK2KX5R.Dn4JXePy.js} +3 -3
- package/dist/chunks/{diagram-S2PKOQOG.Ug0j7YIr.js → diagram-S2PKOQOG.XP_j_ZFC.js} +3 -3
- package/dist/chunks/{erDiagram-Q2GNP2WA.C8rnB1TI.js → erDiagram-Q2GNP2WA.DvkJcNF9.js} +4 -4
- package/dist/chunks/{flowDiagram-NV44I4VS.BMqo2W_h.js → flowDiagram-NV44I4VS.Hn0PROgU.js} +5 -5
- package/dist/chunks/{ganttDiagram-JELNMOA3.CGcayHSs.js → ganttDiagram-JELNMOA3.Bf2PkTYR.js} +2 -2
- package/dist/chunks/{gitGraph-F6HP7TQM.oMl7XYpx.js → gitGraph-F6HP7TQM.BAL9tPb8.js} +1 -1
- package/dist/chunks/{gitGraphDiagram-NY62KEGX.B4aBo3Ma.js → gitGraphDiagram-NY62KEGX.D-INdXxg.js} +4 -4
- package/dist/chunks/{graph.P_jhAD76.js → graph.BdKcquxL.js} +2 -2
- package/dist/chunks/{index.DWQE2iX-.js → index.0JHn1e2U.js} +432 -457
- package/dist/chunks/{index.DwHqn9k5.js → index.5fyUtTLH.js} +1 -1
- package/dist/chunks/{index.DmPS0LKW.js → index.6L4XnWtC.js} +1 -1
- package/dist/chunks/{index.DdhYWjUr.js → index.B4AUmI6b.js} +1 -1
- package/dist/chunks/index.BPJsF71r.js +778 -0
- package/dist/chunks/{index.Du1LYe4A.js → index.Bc_G-sOy.js} +1 -1
- package/dist/chunks/{index.BEVp3tQU.js → index.DI-kWtZC.js} +1 -1
- package/dist/chunks/{index.DbzrE5oY.js → index.WIzP-Pra.js} +1 -1
- package/dist/chunks/{index.CgYK85eC.js → index.X8Fsvrzr.js} +3 -3
- package/dist/chunks/{index.kvM5mFnS.js → index.cfsSIuD8.js} +3 -3
- package/dist/chunks/{index.CIRTMm47.js → index.k2KcXUHd.js} +1 -1
- package/dist/chunks/{info-NVLQJR56.DUhWWJrK.js → info-NVLQJR56.DcGA1jrE.js} +1 -1
- package/dist/chunks/{infoDiagram-WHAUD3N6.DCcSzT7y.js → infoDiagram-WHAUD3N6.P7BalyWy.js} +2 -2
- package/dist/chunks/{journeyDiagram-XKPGCS4Q.qrZHRTxm.js → journeyDiagram-XKPGCS4Q.Bz2aO32S.js} +4 -4
- package/dist/chunks/{kanban-definition-3W4ZIXB7.BFukrzhr.js → kanban-definition-3W4ZIXB7.B6Xoovxx.js} +2 -2
- package/dist/chunks/{layout.BqCTDG8Y.js → layout.CCpEwh-_.js} +4 -4
- package/dist/chunks/{mermaid-parser.core.CondFBax.js → mermaid-parser.core.D_GFlU1z.js} +10 -10
- package/dist/chunks/{min.lZGJAA1K.js → min.DTnSBUC_.js} +2 -2
- package/dist/chunks/{mindmap-definition-VGOIOE7T.CT54E3Sw.js → mindmap-definition-VGOIOE7T.DHQdU4lr.js} +3 -3
- package/dist/chunks/{packet-BFZMPI3H.iK3_CF5T.js → packet-BFZMPI3H.D1zjOFZd.js} +1 -1
- package/dist/chunks/{pie-7BOR55EZ.D1Qq3bYW.js → pie-7BOR55EZ.CeO5-_U1.js} +1 -1
- package/dist/chunks/{pieDiagram-ADFJNKIX.DXGCDAKy.js → pieDiagram-ADFJNKIX.vlumWtQJ.js} +4 -4
- package/dist/chunks/{quadrantDiagram-AYHSOK5B.ojRkTS5g.js → quadrantDiagram-AYHSOK5B.C-pd5lvj.js} +1 -1
- package/dist/chunks/{radar-NHE76QYJ.DkDiAIKY.js → radar-NHE76QYJ.CnAfsBzR.js} +1 -1
- package/dist/chunks/{rehype-mermaid.RyRyGhWJ.js → rehype-mermaid.BnWXv7Wc.js} +33 -33
- package/dist/chunks/{requirementDiagram-UZGBJVZJ.BFd3U9DZ.js → requirementDiagram-UZGBJVZJ.CmVyiL7B.js} +3 -3
- package/dist/chunks/{sankeyDiagram-TZEHDZUN.pQuaGohB.js → sankeyDiagram-TZEHDZUN.BQjhJ4Tg.js} +1 -1
- package/dist/chunks/{sequenceDiagram-WL72ISMW.4Yva7tjD.js → sequenceDiagram-WL72ISMW.BtL6Q2gQ.js} +3 -3
- package/dist/chunks/{stateDiagram-FKZM4ZOC.ow8Ua1so.js → stateDiagram-FKZM4ZOC.ky8Am5SK.js} +4 -4
- package/dist/chunks/{stateDiagram-v2-4FDKWEC3.CzZfEcrx.js → stateDiagram-v2-4FDKWEC3.CKnfbP2Y.js} +2 -2
- package/dist/chunks/{timeline-definition-IT6M3QCI.B64DUZm1.js → timeline-definition-IT6M3QCI.BK4Qztez.js} +2 -2
- package/dist/chunks/{treemap-KMMF4GRG.CZ3EzCMU.js → treemap-KMMF4GRG.BdCfmZGD.js} +1 -1
- package/dist/chunks/{useMarkdown.CTShtPKa.js → useMarkdown.BF1KYabA.js} +8 -8
- package/dist/chunks/{xychartDiagram-PRI3JC2R.DT-Jxd2g.js → xychartDiagram-PRI3JC2R.X4OHZ3WQ.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/index.ri2Dr1rJ.js +0 -389
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as b, Fragment as S, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { n as
|
|
3
|
-
import { ButtonIcon as g, IconCopied as
|
|
2
|
+
import { n as M, useUserPreferences as _ } from "./index.0JHn1e2U.js";
|
|
3
|
+
import { ButtonIcon as g, IconCopied as I, IconCopy as z, ChatContext as H, IconBranch as N, TOAST_CHAT_BRANCHED as R } from "./LogoEntry.BMOnjgmn.js";
|
|
4
4
|
import { useState as k, useRef as E, useCallback as y, useEffect as O, useContext as L } from "react";
|
|
5
|
-
import { ResponsiveTooltip as w, useAiChat as U, v4 as j, CHAT_RESET as D, CHAT_SET_ATTACHMENTS as F, CHAT_SET_STATUS as P, showSuccessToast as q, CHAT_SCROLL_TO_BOTTOM as G } from "./App.
|
|
5
|
+
import { ResponsiveTooltip as w, useAiChat as U, v4 as j, CHAT_RESET as D, CHAT_SET_ATTACHMENTS as F, CHAT_SET_STATUS as P, showSuccessToast as q, CHAT_SCROLL_TO_BOTTOM as G } from "./App.CC33vL5i.js";
|
|
6
6
|
const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "system" }) => {
|
|
7
7
|
const [n, c] = k(!1), r = E(null), p = y(async () => {
|
|
8
8
|
if (navigator.clipboard)
|
|
@@ -62,7 +62,7 @@ const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "
|
|
|
62
62
|
label: n ? "Copied to clipboard" : "Copy to clipboard",
|
|
63
63
|
onClick: p,
|
|
64
64
|
disabled: n,
|
|
65
|
-
children: n ? /* @__PURE__ */ t(
|
|
65
|
+
children: n ? /* @__PURE__ */ t(I, {
|
|
66
66
|
size: "size-3"
|
|
67
67
|
}) : /* @__PURE__ */ t(z, {
|
|
68
68
|
size: "size-3"
|
|
@@ -89,7 +89,7 @@ const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "
|
|
|
89
89
|
messages: l,
|
|
90
90
|
annotations: n
|
|
91
91
|
}) => {
|
|
92
|
-
const { user: c, getAccessToken: r } =
|
|
92
|
+
const { user: c, getAccessToken: r } = M(), { data: p } = _({
|
|
93
93
|
user: c?.username,
|
|
94
94
|
getAccessToken: r
|
|
95
95
|
}), {
|
|
@@ -98,9 +98,9 @@ const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "
|
|
|
98
98
|
setChatId: d,
|
|
99
99
|
setInitialMessages: m
|
|
100
100
|
} = L(H), { setInput: h } = U(), B = p?.useBranchNewChat || !1, T = l?.reduce(
|
|
101
|
-
(f, C,
|
|
101
|
+
(f, C, v) => C.role === "assistant" ? v : f,
|
|
102
102
|
-1
|
|
103
|
-
) ?? -1, x = B && o !== void 0 && T !== -1 && o < T,
|
|
103
|
+
) ?? -1, x = B && o !== void 0 && T !== -1 && o < T, A = y(() => {
|
|
104
104
|
if (o === void 0 || !l)
|
|
105
105
|
return;
|
|
106
106
|
const f = l.slice(0, o + 1), C = j();
|
|
@@ -125,10 +125,7 @@ const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "
|
|
|
125
125
|
restoredTimestamp: String(Date.now()),
|
|
126
126
|
tokenUsage: -1
|
|
127
127
|
}
|
|
128
|
-
}), q(R, {
|
|
129
|
-
containerId: "toggle-save",
|
|
130
|
-
autoClose: 3e3
|
|
131
|
-
}), s({ type: G });
|
|
128
|
+
}), q(R), s({ type: G });
|
|
132
129
|
}, [
|
|
133
130
|
o,
|
|
134
131
|
l,
|
|
@@ -163,7 +160,7 @@ const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "
|
|
|
163
160
|
noBackground: !0,
|
|
164
161
|
mode: "light",
|
|
165
162
|
label: "Start new chat from here",
|
|
166
|
-
onClick:
|
|
163
|
+
onClick: A,
|
|
167
164
|
children: /* @__PURE__ */ t(N, { monotone: !0, size: "size-3", className: "text-copy-light" })
|
|
168
165
|
}
|
|
169
166
|
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as i, jsxs as A, Fragment as pe } from "react/jsx-runtime";
|
|
2
2
|
import ye, { useRef as N, useState as w, useLayoutEffect as L, createContext as ve, useContext as Ce, useCallback as D, useMemo as Q, useId as ke, useEffect as Z } from "react";
|
|
3
|
-
import { IconSearch as xe, Button as He, CellWrapper as z, BlurEffects as R, IconSortUp as we, IconSortDown as Ne, IconSort as Se, ButtonIcon as Te, IconDelete as Ae } from "./LogoEntry.
|
|
4
|
-
import { Card as Ie } from "./index.
|
|
5
|
-
import { TextInput as Fe } from "./index.
|
|
3
|
+
import { IconSearch as xe, Button as He, CellWrapper as z, BlurEffects as R, IconSortUp as we, IconSortDown as Ne, IconSort as Se, ButtonIcon as Te, IconDelete as Ae } from "./LogoEntry.BMOnjgmn.js";
|
|
4
|
+
import { Card as Ie } from "./index.6L4XnWtC.js";
|
|
5
|
+
import { TextInput as Fe } from "./index.WIzP-Pra.js";
|
|
6
6
|
import g from "clsx";
|
|
7
|
-
import { ResponsiveTooltip as Be } from "./App.
|
|
7
|
+
import { ResponsiveTooltip as Be } from "./App.CC33vL5i.js";
|
|
8
8
|
const Re = 300;
|
|
9
9
|
function De(e, s) {
|
|
10
10
|
const { duration: r = Re, enabled: n = !0 } = s ?? {}, t = N(null), [o, a] = w({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as Up } from "react/jsx-runtime";
|
|
2
|
-
import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.
|
|
2
|
+
import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.CC33vL5i.js";
|
|
3
3
|
import Vp, { useMemo as qp } from "react";
|
|
4
|
-
import { TRIMESTERS_SHORT as Zp, TRIMESTERS as Mn, TIME_RANGES as xs, TIME_RANGE_LABELS as Sn } from "./LogoEntry.
|
|
4
|
+
import { TRIMESTERS_SHORT as Zp, TRIMESTERS as Mn, TIME_RANGES as xs, TIME_RANGE_LABELS as Sn } from "./LogoEntry.BMOnjgmn.js";
|
|
5
5
|
var ys = { exports: {} }, Kp = ys.exports, Tn;
|
|
6
6
|
function _p() {
|
|
7
7
|
return Tn || (Tn = 1, (function(Ce, ce) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as vt } from "react/jsx-runtime";
|
|
2
|
-
import { n as as, useUserPreferences as os, formatTimestamp as St } from "./index.
|
|
3
|
-
import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.
|
|
2
|
+
import { n as as, useUserPreferences as os, formatTimestamp as St } from "./index.0JHn1e2U.js";
|
|
3
|
+
import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.CC33vL5i.js";
|
|
4
4
|
import Ht from "clsx";
|
|
5
5
|
import fs, { useState as Ae, useEffect as Jt, useContext as Vt } from "react";
|
|
6
|
-
import { useMarkdown as hs } from "./useMarkdown.
|
|
7
|
-
import { ChatContext as ds, AppContext as ms } from "./LogoEntry.
|
|
8
|
-
import { BubbleActions as ps } from "./BubbleActions.
|
|
6
|
+
import { useMarkdown as hs } from "./useMarkdown.BF1KYabA.js";
|
|
7
|
+
import { ChatContext as ds, AppContext as ms } from "./LogoEntry.BMOnjgmn.js";
|
|
8
|
+
import { BubbleActions as ps } from "./BubbleActions.es9LLF18.js";
|
|
9
9
|
const Me = {
|
|
10
10
|
isEmpty: !0
|
|
11
11
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as a, Fragment as S, jsxs as b } from "react/jsx-runtime";
|
|
2
|
-
import { Bubble as k } from "./App.
|
|
3
|
-
import { Button as C } from "./LogoEntry.
|
|
2
|
+
import { Bubble as k } from "./App.CC33vL5i.js";
|
|
3
|
+
import { Button as C } from "./LogoEntry.BMOnjgmn.js";
|
|
4
4
|
import { useState as H, useMemo as m, isValidElement as T, useEffect as O } from "react";
|
|
5
|
-
import { useMarkdown as w } from "./useMarkdown.
|
|
6
|
-
import { BubbleCopyToClipboard as I } from "./BubbleActions.
|
|
5
|
+
import { useMarkdown as w } from "./useMarkdown.BF1KYabA.js";
|
|
6
|
+
import { BubbleCopyToClipboard as I } from "./BubbleActions.es9LLF18.js";
|
|
7
7
|
const L = 200, h = ({ string: e, idealLength: r = L }) => {
|
|
8
8
|
if (e.length <= r)
|
|
9
9
|
return {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as e, jsxs as p, Fragment as B } from "react/jsx-runtime";
|
|
2
|
-
import { y as L, V as ee, INFINITE_SCROLL_THRESHOLD as ue, INFINITE_SCROLL_LIMIT as he, n as ae, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_SORT_TIMESTAMP as fe, LOCAL_STORAGE_SORT_TOKEN_USAGE as pe, LOCAL_STORAGE_SORT as Ce, LOCAL_STORAGE_CHAT_ID as ye, useDeleteChat as Se, graphQLRequest as ge, SERVICE_TYPES as Te, ACTION_SORT as xe, LOCAL_STORAGE_SEARCH as Ae, LOCAL_STORAGE_KEYWORD_MATCH_ALL as De, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as _e, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as ke, useChatsHistory as we, useUserChatStats as Re, ACTION_SEARCH as Ee } from "./index.
|
|
3
|
-
import { DataGridContext as
|
|
4
|
-
import { pluralize as te, isProbablyMobile as le, numberFormatter as Me, ResponsiveTooltip as Ge, useAiChat as Fe, useLocalStorage as v,
|
|
5
|
-
import { forwardRef as
|
|
6
|
-
import { CellWrapper as ne, ButtonIcon as Xe, IconRotateLeft as
|
|
7
|
-
import { GenericPanel as
|
|
8
|
-
import { Pill as re } from "./index.
|
|
2
|
+
import { y as L, V as ee, INFINITE_SCROLL_THRESHOLD as ue, INFINITE_SCROLL_LIMIT as he, n as ae, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_SORT_TIMESTAMP as fe, LOCAL_STORAGE_SORT_TOKEN_USAGE as pe, LOCAL_STORAGE_SORT as Ce, LOCAL_STORAGE_CHAT_ID as ye, useDeleteChat as Se, graphQLRequest as ge, SERVICE_TYPES as Te, ACTION_SORT as xe, LOCAL_STORAGE_SEARCH as Ae, LOCAL_STORAGE_KEYWORD_MATCH_ALL as De, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as _e, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as ke, useChatsHistory as we, useUserChatStats as Re, ACTION_SEARCH as Ee } from "./index.0JHn1e2U.js";
|
|
3
|
+
import { DataGridContext as z, useColumnMeasurement as Ie, getBodyClass as Oe, DataGridHeader as be, DataGridRow as oe, DataGridCell as w, DataGridCellSort as Q, ButtonIconDelete as Le, DataGrid as Ne, InlineFilter as ve, AnimatedWrapper as He } from "./ButtonIconDelete.90PiEjs7.js";
|
|
4
|
+
import { pluralize as te, isProbablyMobile as le, numberFormatter as Me, ResponsiveTooltip as Ge, useAiChat as Fe, useLocalStorage as v, v4 as Be, CHAT_RESET as Ue, CHAT_SET_ATTACHMENTS as Ve, CHAT_SET_STATUS as Pe, showErrorToast as We, ConfirmationPanel as Ye, debounce as $e, Toggle as Z, ButtonCancel as qe } from "./App.CC33vL5i.js";
|
|
5
|
+
import { forwardRef as Ke, useContext as X, useRef as H, useState as W, useCallback as Y, useEffect as F, useImperativeHandle as je, useMemo as J } from "react";
|
|
6
|
+
import { CellWrapper as ne, ButtonIcon as Xe, IconRotateLeft as ze, CARDS as Qe, HistoryContext as ie, ChatContext as Ze, SortDirections as G, TOAST_CHAT_DELETED as Je, HISTORY_TITLE as et } from "./LogoEntry.BMOnjgmn.js";
|
|
7
|
+
import { GenericPanel as tt } from "./GenericPanel.Bf-hQWg5.js";
|
|
8
|
+
import { Pill as re } from "./index.Bc_G-sOy.js";
|
|
9
9
|
import K from "clsx";
|
|
10
|
-
const
|
|
11
|
-
function
|
|
10
|
+
const nt = 20, rt = 5, st = "20px", se = "data-row-index";
|
|
11
|
+
function at(t) {
|
|
12
12
|
let n = t.parentElement;
|
|
13
13
|
for (; n; ) {
|
|
14
14
|
const o = getComputedStyle(n).overflowY;
|
|
@@ -18,8 +18,8 @@ function lt(t) {
|
|
|
18
18
|
}
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
const c = z
|
|
21
|
+
function ot({ data: t, children: n, batchSize: m = nt, threshold: o = rt, rootMargin: C = st, onVisibleCountChange: x, className: g }, i) {
|
|
22
|
+
const c = X(z), A = H(null), u = H(null), l = H(null), s = t.length, D = Math.min(m + o, s), [d, R] = W(D), T = d < s, h = Y((r) => {
|
|
23
23
|
const S = A.current;
|
|
24
24
|
if (!S)
|
|
25
25
|
return;
|
|
@@ -42,7 +42,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
42
42
|
}, [
|
|
43
43
|
d,
|
|
44
44
|
h
|
|
45
|
-
]),
|
|
45
|
+
]), je(i, () => ({
|
|
46
46
|
scrollToIndex: (r) => {
|
|
47
47
|
if (r < 0 || r >= s) {
|
|
48
48
|
console.warn(`scrollToIndex: index ${r} is out of bounds (0-${s - 1})`);
|
|
@@ -80,7 +80,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
80
80
|
s
|
|
81
81
|
]), E = Y((r) => {
|
|
82
82
|
if (u.current && (u.current.disconnect(), u.current = null), r && T) {
|
|
83
|
-
const S =
|
|
83
|
+
const S = at(r);
|
|
84
84
|
u.current = new IntersectionObserver(y, {
|
|
85
85
|
root: S,
|
|
86
86
|
rootMargin: C
|
|
@@ -94,7 +94,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
94
94
|
F(() => () => {
|
|
95
95
|
u.current?.disconnect();
|
|
96
96
|
}, []);
|
|
97
|
-
const
|
|
97
|
+
const b = J(() => T ? Math.max(0, d - o) : -1, [
|
|
98
98
|
T,
|
|
99
99
|
d,
|
|
100
100
|
o
|
|
@@ -106,7 +106,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
106
106
|
]), M = J(() => {
|
|
107
107
|
const r = [], S = Math.min(d, s) - 1;
|
|
108
108
|
for (let f = 0; f < d && f < s; f++) {
|
|
109
|
-
f ===
|
|
109
|
+
f === b && r.push(/* @__PURE__ */ e("div", {
|
|
110
110
|
ref: E,
|
|
111
111
|
"aria-hidden": "true",
|
|
112
112
|
style: {
|
|
@@ -115,7 +115,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
115
115
|
}
|
|
116
116
|
}, "__infinite-scroll-marker-inline__"));
|
|
117
117
|
const I = !T && f === S;
|
|
118
|
-
r.push(/* @__PURE__ */ e(
|
|
118
|
+
r.push(/* @__PURE__ */ e(z.Provider, {
|
|
119
119
|
value: {
|
|
120
120
|
...U,
|
|
121
121
|
isLastRow: I
|
|
@@ -129,7 +129,7 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
129
129
|
})
|
|
130
130
|
}, f));
|
|
131
131
|
}
|
|
132
|
-
return
|
|
132
|
+
return b === d && T && r.push(/* @__PURE__ */ e("div", {
|
|
133
133
|
ref: E,
|
|
134
134
|
"aria-hidden": "true",
|
|
135
135
|
style: {
|
|
@@ -141,15 +141,15 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
141
141
|
t,
|
|
142
142
|
d,
|
|
143
143
|
s,
|
|
144
|
-
|
|
144
|
+
b,
|
|
145
145
|
T,
|
|
146
146
|
n,
|
|
147
147
|
E,
|
|
148
148
|
U
|
|
149
149
|
]);
|
|
150
150
|
Ie(A, M);
|
|
151
|
-
const
|
|
152
|
-
return /* @__PURE__ */ e(
|
|
151
|
+
const V = Oe(g);
|
|
152
|
+
return /* @__PURE__ */ e(z.Provider, {
|
|
153
153
|
value: {
|
|
154
154
|
...c,
|
|
155
155
|
cellWrapper: ne.BODY
|
|
@@ -157,12 +157,12 @@ function it({ data: t, children: n, batchSize: m = st, threshold: o = at, rootMa
|
|
|
157
157
|
children: /* @__PURE__ */ e("div", {
|
|
158
158
|
ref: A,
|
|
159
159
|
role: "rowgroup",
|
|
160
|
-
className:
|
|
160
|
+
className: V,
|
|
161
161
|
children: M
|
|
162
162
|
})
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
const
|
|
165
|
+
const lt = /* @__PURE__ */ Ke(ot), it = ({
|
|
166
166
|
sortDirection: t,
|
|
167
167
|
sortedCell: n,
|
|
168
168
|
onSortChange: m,
|
|
@@ -173,7 +173,7 @@ const ct = /* @__PURE__ */ je(it), dt = ({
|
|
|
173
173
|
const g = (i) => {
|
|
174
174
|
m(i);
|
|
175
175
|
};
|
|
176
|
-
return /* @__PURE__ */ e(
|
|
176
|
+
return /* @__PURE__ */ e(be, { caption: o, children: /* @__PURE__ */ p(oe, { children: [
|
|
177
177
|
/* @__PURE__ */ e(w, { className: "invisible", children: "Row" }),
|
|
178
178
|
x ? /* @__PURE__ */ p(B, { children: [
|
|
179
179
|
/* @__PURE__ */ e(w, { className: "text-xs sm:text-sm", children: "Summary" }),
|
|
@@ -219,7 +219,7 @@ const ct = /* @__PURE__ */ je(it), dt = ({
|
|
|
219
219
|
/* @__PURE__ */ e(w, { align: "right", className: "text-xs sm:text-sm", children: "Actions" })
|
|
220
220
|
] }) });
|
|
221
221
|
};
|
|
222
|
-
function
|
|
222
|
+
function ct(t, n, m) {
|
|
223
223
|
return m && n > t ? `Showing ${te(`${t} chat`, t)} out of ${n}` : te(`${t} chat`, t);
|
|
224
224
|
}
|
|
225
225
|
const j = {
|
|
@@ -228,7 +228,7 @@ const j = {
|
|
|
228
228
|
timestamp: "dark:text-copy-medium sm:whitespace-nowrap text-xs sm:text-sm max-w-20 sm:max-w-none",
|
|
229
229
|
tokenUsage: "dark:text-copy-medium text-xs sm:text-sm"
|
|
230
230
|
};
|
|
231
|
-
function
|
|
231
|
+
function dt({
|
|
232
232
|
item: t,
|
|
233
233
|
index: n,
|
|
234
234
|
onClickRestore: m,
|
|
@@ -264,7 +264,7 @@ function ut({
|
|
|
264
264
|
await m(t);
|
|
265
265
|
},
|
|
266
266
|
children: /* @__PURE__ */ e(
|
|
267
|
-
|
|
267
|
+
ze,
|
|
268
268
|
{
|
|
269
269
|
size: "size-3",
|
|
270
270
|
monotone: !0,
|
|
@@ -299,7 +299,7 @@ function ut({
|
|
|
299
299
|
D
|
|
300
300
|
] });
|
|
301
301
|
}
|
|
302
|
-
const
|
|
302
|
+
const mt = ({
|
|
303
303
|
filteredHistory: t,
|
|
304
304
|
sortDirection: n,
|
|
305
305
|
sortedCell: m,
|
|
@@ -329,7 +329,7 @@ const ht = ({
|
|
|
329
329
|
}, [u, t]), F(() => {
|
|
330
330
|
D.current = !1;
|
|
331
331
|
}, [u]);
|
|
332
|
-
const d =
|
|
332
|
+
const d = ct(
|
|
333
333
|
t.length,
|
|
334
334
|
i ?? t.length,
|
|
335
335
|
c
|
|
@@ -347,7 +347,7 @@ const ht = ({
|
|
|
347
347
|
loading: g && t.length > 0,
|
|
348
348
|
children: [
|
|
349
349
|
/* @__PURE__ */ e(
|
|
350
|
-
|
|
350
|
+
it,
|
|
351
351
|
{
|
|
352
352
|
sortDirection: n,
|
|
353
353
|
sortedCell: m,
|
|
@@ -358,14 +358,14 @@ const ht = ({
|
|
|
358
358
|
}
|
|
359
359
|
),
|
|
360
360
|
g && t.length === 0 ? /* @__PURE__ */ e("div", { className: "p-4 text-center", role: "status", "aria-live": "polite", children: "Loading..." }) : /* @__PURE__ */ e(
|
|
361
|
-
|
|
361
|
+
lt,
|
|
362
362
|
{
|
|
363
363
|
ref: s,
|
|
364
364
|
data: t.filter((h) => h?.summary),
|
|
365
365
|
batchSize: he,
|
|
366
366
|
threshold: ue,
|
|
367
367
|
children: (h, y) => /* @__PURE__ */ e(
|
|
368
|
-
|
|
368
|
+
dt,
|
|
369
369
|
{
|
|
370
370
|
item: h,
|
|
371
371
|
index: y,
|
|
@@ -374,14 +374,14 @@ const ht = ({
|
|
|
374
374
|
showTokenUsage: !l,
|
|
375
375
|
isActive: u === h.id
|
|
376
376
|
},
|
|
377
|
-
`${
|
|
377
|
+
`${Qe.HISTORY.TITLE}-${h.id}-${y}`
|
|
378
378
|
)
|
|
379
379
|
}
|
|
380
380
|
)
|
|
381
381
|
]
|
|
382
382
|
}
|
|
383
383
|
);
|
|
384
|
-
},
|
|
384
|
+
}, ut = ({
|
|
385
385
|
filteredHistory: t,
|
|
386
386
|
onOpenChange: n,
|
|
387
387
|
mutate: m,
|
|
@@ -395,41 +395,41 @@ const ht = ({
|
|
|
395
395
|
id: "",
|
|
396
396
|
timestamp: "",
|
|
397
397
|
message: ""
|
|
398
|
-
}), { state: l, dispatch: s } =
|
|
398
|
+
}), { state: l, dispatch: s } = X(ie), D = {
|
|
399
399
|
sortDirection: l.sortDirection || G.DESC,
|
|
400
400
|
sortedCell: l.sortedCell || L
|
|
401
401
|
}, {
|
|
402
402
|
setChatId: d,
|
|
403
403
|
setInitialMessages: R,
|
|
404
404
|
dispatch: T
|
|
405
|
-
} =
|
|
405
|
+
} = X(Ze), { setInput: h } = Fe(), [y, E] = v({
|
|
406
406
|
key: N + fe,
|
|
407
407
|
initialValue: G.DESC
|
|
408
|
-
}), [
|
|
408
|
+
}), [b, U] = v({
|
|
409
409
|
key: N + pe,
|
|
410
410
|
initialValue: G.ASC
|
|
411
411
|
}), [, M] = v({
|
|
412
412
|
key: N + Ce,
|
|
413
413
|
initialValue: L
|
|
414
|
-
}), [
|
|
414
|
+
}), [V] = v({
|
|
415
415
|
key: N + ye,
|
|
416
416
|
initialValue: ""
|
|
417
417
|
}), { mutateAsync: r } = Se({ getAccessToken: A }), S = (a) => {
|
|
418
|
-
const
|
|
419
|
-
let _,
|
|
418
|
+
const O = l.sortedCell === a;
|
|
419
|
+
let _, P;
|
|
420
420
|
switch (a) {
|
|
421
421
|
case L:
|
|
422
|
-
|
|
422
|
+
P = E, _ = O ? l.sortDirection : y;
|
|
423
423
|
break;
|
|
424
424
|
case ee:
|
|
425
|
-
|
|
425
|
+
P = U, _ = O ? l.sortDirection : b;
|
|
426
426
|
break;
|
|
427
427
|
default:
|
|
428
|
-
|
|
428
|
+
P = E, _ = O ? l.sortDirection : y;
|
|
429
429
|
break;
|
|
430
430
|
}
|
|
431
431
|
const q = _ === G.ASC ? G.DESC : G.ASC;
|
|
432
|
-
|
|
432
|
+
P(q), M(a), s({
|
|
433
433
|
type: xe,
|
|
434
434
|
payload: {
|
|
435
435
|
sortedCell: a,
|
|
@@ -441,23 +441,22 @@ const ht = ({
|
|
|
441
441
|
await r({
|
|
442
442
|
userId: c?.username || "",
|
|
443
443
|
id: a
|
|
444
|
-
}), m(""), await
|
|
445
|
-
|
|
446
|
-
containerId: "history-table"
|
|
444
|
+
}), m(""), await We(Je, {
|
|
445
|
+
duration: 2e3
|
|
447
446
|
});
|
|
448
447
|
} catch {
|
|
449
448
|
}
|
|
450
449
|
}, I = async (a) => {
|
|
451
450
|
try {
|
|
452
|
-
const
|
|
453
|
-
accessToken:
|
|
451
|
+
const O = await A(), _ = await ge({
|
|
452
|
+
accessToken: O,
|
|
454
453
|
type: Te.GET_CHAT,
|
|
455
454
|
params: {
|
|
456
455
|
id: a.id
|
|
457
456
|
}
|
|
458
457
|
});
|
|
459
458
|
T({
|
|
460
|
-
type:
|
|
459
|
+
type: Pe,
|
|
461
460
|
payload: {
|
|
462
461
|
streaming: !1,
|
|
463
462
|
loading: !1,
|
|
@@ -489,8 +488,8 @@ const ht = ({
|
|
|
489
488
|
] })
|
|
490
489
|
] })
|
|
491
490
|
] })
|
|
492
|
-
),
|
|
493
|
-
type:
|
|
491
|
+
), V === a.id && (d(Be()), R([]), h(""), T({
|
|
492
|
+
type: Ue,
|
|
494
493
|
payload: {
|
|
495
494
|
privateChat: !1,
|
|
496
495
|
reasoningText: !1
|
|
@@ -502,30 +501,27 @@ const ht = ({
|
|
|
502
501
|
}
|
|
503
502
|
}));
|
|
504
503
|
};
|
|
505
|
-
return /* @__PURE__ */
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
)
|
|
523
|
-
] });
|
|
524
|
-
}, _t = ({
|
|
504
|
+
return /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(
|
|
505
|
+
mt,
|
|
506
|
+
{
|
|
507
|
+
filteredHistory: t,
|
|
508
|
+
sortDirection: D.sortDirection,
|
|
509
|
+
sortedCell: D.sortedCell,
|
|
510
|
+
onSortChange: S,
|
|
511
|
+
onClickRestore: I,
|
|
512
|
+
onClickDelete: $,
|
|
513
|
+
isLoading: o,
|
|
514
|
+
totalHistoryCount: C,
|
|
515
|
+
isFiltered: x,
|
|
516
|
+
isSearchActive: g,
|
|
517
|
+
activeChatId: V
|
|
518
|
+
}
|
|
519
|
+
) });
|
|
520
|
+
}, At = ({
|
|
525
521
|
open: t,
|
|
526
522
|
onOpenChange: n
|
|
527
523
|
}) => {
|
|
528
|
-
const m = H(null), { getAccessToken: o, user: C } = ae(), [x, g] = W([]), i = H(null), { state: c, dispatch: A } =
|
|
524
|
+
const m = H(null), { getAccessToken: o, user: C } = ae(), [x, g] = W([]), i = H(null), { state: c, dispatch: A } = X(ie), [, u] = v({
|
|
529
525
|
key: N + Ae,
|
|
530
526
|
initialValue: c.searchString
|
|
531
527
|
}), [l, s] = v({
|
|
@@ -537,13 +533,13 @@ const ht = ({
|
|
|
537
533
|
}), [R, T] = v({
|
|
538
534
|
key: N + ke,
|
|
539
535
|
initialValue: !1
|
|
540
|
-
}), [h, y] = W(!1), [E,
|
|
536
|
+
}), [h, y] = W(!1), [E, b] = W(null), [U, M] = W(null), V = Y(
|
|
541
537
|
(k, me) => {
|
|
542
|
-
|
|
538
|
+
b(() => k), M(me), y(!0);
|
|
543
539
|
},
|
|
544
540
|
[]
|
|
545
541
|
), r = Y(() => {
|
|
546
|
-
E && E(),
|
|
542
|
+
E && E(), b(null), M(null);
|
|
547
543
|
}, [E]), {
|
|
548
544
|
data: S,
|
|
549
545
|
refetch: f,
|
|
@@ -562,7 +558,7 @@ const ht = ({
|
|
|
562
558
|
}), { data: a } = Re({
|
|
563
559
|
user: C?.username,
|
|
564
560
|
getAccessToken: o
|
|
565
|
-
}),
|
|
561
|
+
}), O = a && a.totalChats ? a.totalChats - a.privateChats - a.deletedChats : 0;
|
|
566
562
|
F(() => {
|
|
567
563
|
S && g(S);
|
|
568
564
|
}, [S]);
|
|
@@ -571,7 +567,7 @@ const ht = ({
|
|
|
571
567
|
type: Ee,
|
|
572
568
|
payload: { searchString: k }
|
|
573
569
|
});
|
|
574
|
-
},
|
|
570
|
+
}, P = $e((k) => {
|
|
575
571
|
_(k.target.value.trim());
|
|
576
572
|
}, 800), q = (k) => {
|
|
577
573
|
s(k);
|
|
@@ -582,7 +578,7 @@ const ht = ({
|
|
|
582
578
|
};
|
|
583
579
|
return /* @__PURE__ */ p(B, { children: [
|
|
584
580
|
/* @__PURE__ */ e(
|
|
585
|
-
|
|
581
|
+
Ye,
|
|
586
582
|
{
|
|
587
583
|
showConfirmation: h,
|
|
588
584
|
setShowConfirmation: y,
|
|
@@ -596,13 +592,13 @@ const ht = ({
|
|
|
596
592
|
}
|
|
597
593
|
),
|
|
598
594
|
/* @__PURE__ */ e(
|
|
599
|
-
|
|
595
|
+
tt,
|
|
600
596
|
{
|
|
601
597
|
open: t,
|
|
602
598
|
onOpenChange: n,
|
|
603
|
-
title:
|
|
599
|
+
title: et,
|
|
604
600
|
initialFocus: m,
|
|
605
|
-
footer: /* @__PURE__ */ e(
|
|
601
|
+
footer: /* @__PURE__ */ e(qe, { onOpenChange: n, ref: m }),
|
|
606
602
|
children: /* @__PURE__ */ p("div", { className: "flex h-full flex-col gap-3", children: [
|
|
607
603
|
/* @__PURE__ */ e(
|
|
608
604
|
ve,
|
|
@@ -644,7 +640,7 @@ const ht = ({
|
|
|
644
640
|
)
|
|
645
641
|
] }),
|
|
646
642
|
inputSearchRef: i,
|
|
647
|
-
onSearchChange:
|
|
643
|
+
onSearchChange: P,
|
|
648
644
|
defaultValue: c.searchString,
|
|
649
645
|
resetDisabled: c.searchString === "",
|
|
650
646
|
onResetSearch: () => {
|
|
@@ -654,16 +650,16 @@ const ht = ({
|
|
|
654
650
|
),
|
|
655
651
|
$ && /* @__PURE__ */ e("p", { className: "m-0 text-copy-error-light", children: "Failed to load history." }),
|
|
656
652
|
!$ && /* @__PURE__ */ e(He, { dependency: x?.length ?? 0, children: /* @__PURE__ */ e(
|
|
657
|
-
|
|
653
|
+
ut,
|
|
658
654
|
{
|
|
659
655
|
mutate: f,
|
|
660
656
|
filteredHistory: x,
|
|
661
657
|
onOpenChange: n,
|
|
662
658
|
isLoading: I,
|
|
663
|
-
totalHistoryCount:
|
|
659
|
+
totalHistoryCount: O,
|
|
664
660
|
isFiltered: !!c.searchString,
|
|
665
661
|
isSearchActive: !!c.searchString,
|
|
666
|
-
requestConfirmation:
|
|
662
|
+
requestConfirmation: V
|
|
667
663
|
}
|
|
668
664
|
) })
|
|
669
665
|
] })
|
|
@@ -672,5 +668,5 @@ const ht = ({
|
|
|
672
668
|
] });
|
|
673
669
|
};
|
|
674
670
|
export {
|
|
675
|
-
|
|
671
|
+
At as HistoryPanel
|
|
676
672
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as i, jsx as e, Fragment as x } from "react/jsx-runtime";
|
|
2
|
-
import { n as N, getLayoutPaddingClass as C, getMessageContaintWrapperClass as v, isTauri as w } from "./index.
|
|
3
|
-
import { Logo as k, PASSWORD_PLACEHOLDER as M, ButtonIcon as u, IconShow as I, IconHide as L, Button as y, LOG_IN as E, LOG_IN_PASSKEY as S, IconPasskey as P } from "./LogoEntry.
|
|
4
|
-
import { Card as B } from "./index.
|
|
5
|
-
import { TextInput as O, TextInputMask as T } from "./index.
|
|
2
|
+
import { n as N, getLayoutPaddingClass as C, getMessageContaintWrapperClass as v, isTauri as w } from "./index.0JHn1e2U.js";
|
|
3
|
+
import { Logo as k, PASSWORD_PLACEHOLDER as M, ButtonIcon as u, IconShow as I, IconHide as L, Button as y, LOG_IN as E, LOG_IN_PASSKEY as S, IconPasskey as P } from "./LogoEntry.BMOnjgmn.js";
|
|
4
|
+
import { Card as B } from "./index.6L4XnWtC.js";
|
|
5
|
+
import { TextInput as O, TextInputMask as T } from "./index.WIzP-Pra.js";
|
|
6
6
|
import { useState as r, useEffect as f } from "react";
|
|
7
7
|
const G = () => {
|
|
8
8
|
const { login: h, logoutReason: o, loginWithPasskey: g } = N(), [t, l] = r(""), [d, n] = r(""), [m, p] = r(!0), [s, c] = r({
|