@versini/sassysaint 1.0.12 → 1.0.13

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.
@@ -0,0 +1,1280 @@
1
+ import { jsxs as c, jsx as e, Fragment as k } from "react/jsx-runtime";
2
+ import { O as z, i$1 as le, N as de, p as De, o as _e, g as H, N$1 as B, CARDS as C, renderDataAsList as U, pluralize as Z, ABOUT_TITLE as ze, MODEL_GPT4 as Be, numberFormatter as Ve, durationFormatter as Ce, NA as Pe, ROLE_ASSISTANT as Fe, extractAverage as Ge, GPT4_MAX_TOKENS as $e, Wr as K, STATS as Ne, b as G, j as E, x as ee, LOCAL_STORAGE_PREFIX as te, LOCAL_STORAGE_SORT as Ue, ACTION_RESET as je, ACTION_RESTORE as Ye, truncate as Ke, ACTION_SORT as re, LOCAL_STORAGE_SEARCH as We, Y as Xe, ACTION_SEARCH as Je, HISTORY_TITLE as qe, LOCAL_STORAGE_CHAT_DETAILS as Qe, LOCAL_STORAGE_LOCATION as Ze, G as et, f$2 as tt, ACTION_LOCATION as me, getCurrentGeoLocation as at, convertLatitudeToDMS as st, convertLongitudeToDMS as nt, PROFILE_TITLE as rt, LOG_OUT as ue } from "./index.CJJY2C9o.js";
3
+ import * as ce from "react";
4
+ import ot, { forwardRef as Te, useState as T, useRef as j, useContext as L, useEffect as O, Suspense as ct, lazy as it, useId as lt } from "react";
5
+ import { g as dt, AppContext as W, serviceCall as se, SERVICE_TYPES as ne, HistoryContext as ye, E as ae, k as I, et as mt, at as ut, lt as oe, J as R, ct as ht, st as pt, rt as ft } from "./useLocalStorage.CzVJ5Eng.js";
6
+ import x from "clsx";
7
+ import { useFloatingTree as be, useFloatingNodeId as gt, useListItem as Se, useFloating as Ct, offset as Nt, flip as Tt, shift as yt, autoUpdate as bt, useClick as St, useRole as wt, useDismiss as kt, useListNavigation as Et, useTypeahead as xt, useInteractions as vt, useMergeRefs as we, FloatingNode as At, FloatingList as It, FloatingPortal as Ht, FloatingFocusManager as Mt, FloatingTree as Rt } from "@floating-ui/react";
8
+ const ie = ce.createContext({
9
+ getItemProps: () => ({}),
10
+ activeIndex: null,
11
+ /* v8 ignore next 2 */
12
+ setActiveIndex: () => {
13
+ },
14
+ setHasFocusInside: () => {
15
+ },
16
+ isOpen: !1
17
+ }), he = (t) => {
18
+ if (typeof t == "string")
19
+ return t;
20
+ if (typeof t == "function")
21
+ return t.displayName || t.name || "Component";
22
+ if (typeof t == "object" && t !== null && "type" in t) {
23
+ const a = t.type;
24
+ if (typeof a == "function" || typeof a == "object")
25
+ return a.displayName || a.name || "Component";
26
+ }
27
+ return "Element";
28
+ }, ke = Te(
29
+ ({
30
+ trigger: t,
31
+ children: a,
32
+ label: s = "Open menu",
33
+ defaultPlacement: n = "bottom-start",
34
+ onOpenChange: r,
35
+ spacing: o,
36
+ mode: i = "system",
37
+ focusMode: l = "system",
38
+ ...h
39
+ }, d) => {
40
+ const [N, m] = T(!1), [y, b] = T(!1), [S, g] = T(null), v = j([]), p = j([]), u = L(ie), f = be(), w = gt(), A = Se(), { floatingStyles: V, refs: D, context: M } = Ct({
41
+ nodeId: w,
42
+ open: N,
43
+ onOpenChange: (F) => {
44
+ m(F), r == null || r(F);
45
+ },
46
+ placement: n,
47
+ strategy: "fixed",
48
+ middleware: [Nt({ mainAxis: 10 }), Tt(), yt()],
49
+ whileElementsMounted: bt
50
+ }), q = St(M, {
51
+ event: "mousedown",
52
+ toggle: !0,
53
+ ignoreMouse: !1
54
+ }), P = wt(M, { role: "menu" }), ve = kt(M, { bubbles: !0 }), Ae = Et(M, {
55
+ listRef: v,
56
+ activeIndex: S,
57
+ nested: !1,
58
+ onNavigate: g,
59
+ loop: !0
60
+ }), Ie = xt(M, {
61
+ listRef: p,
62
+ onMatch: N ? g : void 0,
63
+ activeIndex: S
64
+ }), { getReferenceProps: He, getFloatingProps: Me, getItemProps: Re } = vt([q, P, ve, Ae, Ie]), Le = he(t) === "Button" || he(t) === "ButtonIcon", Oe = ot.cloneElement(t, {
65
+ mode: i,
66
+ focusMode: l,
67
+ spacing: o,
68
+ noInternalClick: Le,
69
+ "aria-label": s,
70
+ "data-open": N ? "" : void 0,
71
+ "data-focus-inside": y ? "" : void 0,
72
+ ref: we([D.setReference, A.ref, d]),
73
+ ...He(
74
+ u.getItemProps({
75
+ ...h
76
+ })
77
+ )
78
+ });
79
+ return O(() => {
80
+ if (!f)
81
+ return;
82
+ function F() {
83
+ m(!1), r == null || r(!1);
84
+ }
85
+ return f.events.on("click", F), () => {
86
+ f.events.off("click", F);
87
+ };
88
+ }, [f, r]), O(() => {
89
+ N && f && f.events.emit("menuopen", { nodeId: w });
90
+ }, [f, N, w]), /* @__PURE__ */ c(At, { id: w, children: [
91
+ Oe,
92
+ /* @__PURE__ */ e(
93
+ ie.Provider,
94
+ {
95
+ value: {
96
+ activeIndex: S,
97
+ setActiveIndex: g,
98
+ getItemProps: Re,
99
+ setHasFocusInside: b,
100
+ isOpen: N
101
+ },
102
+ children: /* @__PURE__ */ e(It, { elementsRef: v, labelsRef: p, children: N && /* @__PURE__ */ e(Ht, { children: /* @__PURE__ */ e(
103
+ Mt,
104
+ {
105
+ context: M,
106
+ modal: !1,
107
+ initialFocus: 0,
108
+ returnFocus: !0,
109
+ children: /* @__PURE__ */ e(
110
+ "div",
111
+ {
112
+ ref: D.setFloating,
113
+ className: "rounded-md bg-surface-light p-4 shadow-sm shadow-border-dark outline-none sm:p-2",
114
+ style: V,
115
+ ...Me(),
116
+ children: a
117
+ }
118
+ )
119
+ }
120
+ ) }) })
121
+ }
122
+ )
123
+ ] });
124
+ }
125
+ ), Ee = Te((t, a) => /* @__PURE__ */ e(Rt, { children: /* @__PURE__ */ e(ke, { ...t, ref: a }) }));
126
+ Ee.displayName = "Menu";
127
+ ke.displayName = "MenuComponent";
128
+ const _ = ce.forwardRef(({ label: t, disabled: a, icon: s, ...n }, r) => {
129
+ const o = ce.useContext(ie), i = Se({ label: a ? null : t }), l = be();
130
+ return /* @__PURE__ */ c(
131
+ "button",
132
+ {
133
+ ...n,
134
+ ref: we([i.ref, r]),
135
+ role: "menuitem",
136
+ className: "m-0 flex w-full rounded-md border border-transparent bg-none px-3 py-2 text-left text-base outline-none focus:border focus:border-border-medium focus:bg-surface-lighter focus:underline disabled:cursor-not-allowed disabled:text-copy-medium sm:py-1",
137
+ tabIndex: 0,
138
+ disabled: a,
139
+ ...o.getItemProps({
140
+ onClick(h) {
141
+ var d;
142
+ (d = n.onClick) == null || d.call(n, h), l == null || l.events.emit("click");
143
+ },
144
+ onFocus(h) {
145
+ var d;
146
+ (d = n.onFocus) == null || d.call(n, h), o.setHasFocusInside(!0);
147
+ }
148
+ }),
149
+ children: [
150
+ s,
151
+ t && /* @__PURE__ */ e("span", { className: "pl-2", children: t })
152
+ ]
153
+ }
154
+ );
155
+ });
156
+ _.displayName = "MenuItem";
157
+ const Lt = ({ className: t, ...a }) => {
158
+ const s = x(t, "my-1 border-t border-border-medium");
159
+ return /* @__PURE__ */ e("div", { className: s, ...a });
160
+ }, Ot = ({
161
+ className: t,
162
+ viewBox: a,
163
+ spacing: s,
164
+ title: n,
165
+ monotone: r,
166
+ ...o
167
+ }) => /* @__PURE__ */ e(
168
+ dt,
169
+ {
170
+ defaultViewBox: "0 0 384 512",
171
+ defaultClassName: "size-5",
172
+ viewBox: a,
173
+ className: t,
174
+ spacing: s,
175
+ title: n || "Close",
176
+ ...o,
177
+ children: /* @__PURE__ */ e("path", { d: "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3l105.4 105.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256l105.3-105.4z" })
178
+ }
179
+ ), $ = "panel", Q = "messagebox", Dt = ({
180
+ className: t,
181
+ kind: a,
182
+ borderMode: s
183
+ }) => ({
184
+ main: x("prose prose-lighter flex flex-col bg-surface-medium", {
185
+ [`${le} h-full min-h-[95%] sm:h-auto sm:min-h-[10rem] sm:rounded-lg sm:border-2`]: a === $,
186
+ [`${le} w-full sm:w-[95%] md:max-w-2xl`]: a === $ && !t,
187
+ [`${de} rounded-lg border-2`]: a === Q,
188
+ [`${de} w-[95%] sm:w-[50%] md:max-w-2xl`]: a === Q && !t,
189
+ [`${t}`]: !!t,
190
+ "sm:border-border-dark": s === "dark" && a === $,
191
+ "sm:border-border-accent": s === "light" && a === $,
192
+ "border-border-dark": s === "dark" && a === Q,
193
+ "border-border-accent": s === "light" && a === Q
194
+ }),
195
+ content: "flex flex-grow flex-col py-2 sm:py-4 px-4",
196
+ footer: "flex flex-grow flex-col p-4",
197
+ header: "p-4 mb-0",
198
+ close: "p-4"
199
+ }), X = (t) => it(
200
+ () => import("./index.DbAx5fhD.DTsRcXtK.js").then((a) => ({
201
+ default: a[t]
202
+ }))
203
+ ), _t = X("Modal"), zt = X("ModalClose"), Bt = X("ModalContent"), Vt = X("ModalDescription"), Pt = X("ModalHeading"), J = ({
204
+ open: t,
205
+ onOpenChange: a,
206
+ title: s,
207
+ children: n,
208
+ footer: r,
209
+ borderMode: o = "light",
210
+ kind: i = $,
211
+ className: l
212
+ }) => {
213
+ const h = j(""), d = Dt({ className: l, kind: i, borderMode: o });
214
+ return O(() => (t && (h.current = document.title, document.title = `${s} | ${h.current}`), () => {
215
+ t && (document.title = h.current);
216
+ }), [s, t]), /* @__PURE__ */ e(ct, { fallback: /* @__PURE__ */ e("div", {}), children: t && /* @__PURE__ */ e(_t, { open: t, onOpenChange: a, children: /* @__PURE__ */ c(Bt, { className: d.main, children: [
217
+ /* @__PURE__ */ c("div", { className: "flex flex-row-reverse items-center justify-between", children: [
218
+ /* @__PURE__ */ e(
219
+ zt,
220
+ {
221
+ className: d.close,
222
+ trigger: /* @__PURE__ */ e(
223
+ z,
224
+ {
225
+ mode: "dark",
226
+ focusMode: "light",
227
+ noBorder: !0,
228
+ label: "Close",
229
+ children: /* @__PURE__ */ e(Ot, {})
230
+ }
231
+ )
232
+ }
233
+ ),
234
+ /* @__PURE__ */ e(Pt, { className: d.header, children: s })
235
+ ] }),
236
+ /* @__PURE__ */ e(Vt, { className: d.content, children: n }),
237
+ r && /* @__PURE__ */ e("div", { className: d.footer, children: r })
238
+ ] }) }) });
239
+ }, Ft = () => x("peer", "h-6", "w-11", "rounded-full"), Gt = ({
240
+ focusMode: t
241
+ }) => x(
242
+ "peer-focus:outline",
243
+ "peer-focus:outline-2",
244
+ "peer-focus:outline-offset-2",
245
+ {
246
+ "peer-focus:outline-focus-dark": t === "dark",
247
+ "peer-focus:outline-focus-light": t === "light",
248
+ "peer-focus:outline-focus-light dark:peer-focus:outline-focus-dark": t === "alt-system",
249
+ "peer-focus:outline-focus-dark dark:peer-focus:outline-focus-light": t === "system"
250
+ }
251
+ ), $t = () => x(
252
+ "peer-checked:after:translate-x-full",
253
+ // background color when checked
254
+ "peer-checked:bg-violet-500",
255
+ // knob circle and border color when checked
256
+ "peer-checked:after:bg-white",
257
+ "peer-checked:after:border-white"
258
+ ), Ut = () => x(
259
+ "after:left-[2px]",
260
+ "after:top-[2px]",
261
+ "after:border",
262
+ "after:border-surface-light dark:after:border-surface-medium",
263
+ "after:bg-surface-light dark:after:bg-surface-medium",
264
+ "after:absolute",
265
+ "after:h-5",
266
+ "after:w-5",
267
+ "after:rounded-full",
268
+ "after:transition-all",
269
+ "after:content-['']"
270
+ ), jt = ({
271
+ mode: t,
272
+ noBorder: a
273
+ }) => x({
274
+ border: !a,
275
+ "border-border-dark bg-surface-medium": t === "light",
276
+ "border-border-light bg-surface-darker": t === "dark",
277
+ "border-border-light bg-surface-darker dark:border-border-dark dark:bg-surface-medium": t === "alt-system",
278
+ "border-border-dark bg-surface-medium dark:border-border-light dark:bg-surface-darker": t === "system"
279
+ }), Yt = ({
280
+ mode: t,
281
+ labelHidden: a
282
+ }) => a ? "sr-only" : x("ml-2 text-sm", {
283
+ "text-copy-dark": t === "light",
284
+ "text-copy-lighter": t === "dark",
285
+ "text-copy-lighter dark:text-copy-dark": t === "alt-system",
286
+ "text-copy-dark dark:text-copy-lighter": t === "system"
287
+ }), Kt = ({ spacing: t }) => x(
288
+ De,
289
+ "relative flex cursor-pointer items-center",
290
+ _e(t)
291
+ ), Wt = ({
292
+ mode: t,
293
+ focusMode: a,
294
+ labelHidden: s,
295
+ spacing: n,
296
+ noBorder: r
297
+ }) => ({
298
+ toggle: x(
299
+ Ft(),
300
+ jt({ mode: t, noBorder: r }),
301
+ Gt({ focusMode: a }),
302
+ Ut(),
303
+ $t()
304
+ ),
305
+ label: Yt({ mode: t, labelHidden: s }),
306
+ input: "peer sr-only",
307
+ wrapper: Kt({ spacing: n })
308
+ }), Xt = ({
309
+ checked: t = !1,
310
+ onChange: a,
311
+ label: s,
312
+ labelHidden: n = !1,
313
+ name: r,
314
+ mode: o = "system",
315
+ focusMode: i = "system",
316
+ spacing: l,
317
+ noBorder: h = !1
318
+ }) => {
319
+ const d = Wt({
320
+ mode: o,
321
+ focusMode: i,
322
+ labelHidden: n,
323
+ spacing: l,
324
+ noBorder: h
325
+ }), N = (m) => {
326
+ a == null || a(m.target.checked);
327
+ };
328
+ return /* @__PURE__ */ c("label", { className: d.wrapper, children: [
329
+ /* @__PURE__ */ e(
330
+ "input",
331
+ {
332
+ name: r,
333
+ checked: t,
334
+ type: "checkbox",
335
+ className: d.input,
336
+ onChange: N
337
+ }
338
+ ),
339
+ /* @__PURE__ */ e("div", { className: d.toggle }),
340
+ /* @__PURE__ */ e("span", { className: d.label, children: s })
341
+ ] });
342
+ }, Jt = ({
343
+ className: t,
344
+ viewBox: a,
345
+ spacing: s,
346
+ title: n,
347
+ monotone: r,
348
+ ...o
349
+ }) => /* @__PURE__ */ c(
350
+ H,
351
+ {
352
+ defaultViewBox: "0 0 512 512",
353
+ defaultClassName: "size-5",
354
+ viewBox: a,
355
+ className: t,
356
+ spacing: s,
357
+ title: n || "Back",
358
+ ...o,
359
+ children: [
360
+ /* @__PURE__ */ e(
361
+ "path",
362
+ {
363
+ opacity: r ? "1" : "0.4",
364
+ d: "M288.4 93.4c2.9-17.4 19.4-29.2 36.9-26.3C431.3 84.9 512 177 512 288c0 123.7-100.3 224-224 224C177 512 84.9 431.3 67.1 325.3c-2.9-17.4 8.8-33.9 26.3-36.9s33.9 8.8 36.9 26.3C142.9 390.4 208.8 448 288 448c88.4 0 160-71.6 160-160c0-79.2-57.6-145.1-133.3-157.8c-17.4-2.9-29.2-19.4-26.3-36.9z"
365
+ }
366
+ ),
367
+ /* @__PURE__ */ e("path", { d: "M32 0H192c17.7 0 32 14.3 32 32s-14.3 32-32 32H109.3L342.6 297.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L64 109.3V192c0 17.7-14.3 32-32 32s-32-14.3-32-32V32C0 14.3 14.3 0 32 0z" })
368
+ ]
369
+ }
370
+ ), qt = ({
371
+ className: t,
372
+ viewBox: a,
373
+ spacing: s,
374
+ title: n,
375
+ monotone: r,
376
+ ...o
377
+ }) => /* @__PURE__ */ c(
378
+ H,
379
+ {
380
+ defaultViewBox: "0 0 448 512",
381
+ defaultClassName: "size-5",
382
+ viewBox: a,
383
+ className: t,
384
+ spacing: s,
385
+ title: n || "Chart",
386
+ ...o,
387
+ children: [
388
+ /* @__PURE__ */ e(
389
+ "path",
390
+ {
391
+ opacity: r ? "1" : "0.4",
392
+ d: "M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80z"
393
+ }
394
+ ),
395
+ /* @__PURE__ */ e("path", { d: "M368 96c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H368zM48 224c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48H48z" })
396
+ ]
397
+ }
398
+ ), Qt = ({
399
+ className: t,
400
+ viewBox: a,
401
+ spacing: s,
402
+ title: n,
403
+ monotone: r,
404
+ ...o
405
+ }) => /* @__PURE__ */ c(
406
+ H,
407
+ {
408
+ defaultViewBox: "0 0 448 512",
409
+ defaultClassName: "size-5",
410
+ viewBox: a,
411
+ className: t,
412
+ spacing: s,
413
+ title: n || "Delete",
414
+ ...o,
415
+ children: [
416
+ /* @__PURE__ */ e(
417
+ "path",
418
+ {
419
+ opacity: r ? "1" : "0.4",
420
+ d: "M416 96H32V448c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V96zM144 176V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V176c0-8.8 7.2-16 16-16s16 7.2 16 16zm96 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V176c0-8.8 7.2-16 16-16s16 7.2 16 16zm96 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V176c0-8.8 7.2-16 16-16s16 7.2 16 16z"
421
+ }
422
+ ),
423
+ /* @__PURE__ */ e("path", { d: "M163.8 0c-12.1 0-23.2 6.8-28.6 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8z" })
424
+ ]
425
+ }
426
+ ), Zt = ({
427
+ className: t,
428
+ viewBox: a,
429
+ spacing: s,
430
+ title: n,
431
+ monotone: r,
432
+ ...o
433
+ }) => /* @__PURE__ */ c(
434
+ H,
435
+ {
436
+ defaultViewBox: "0 0 512 512",
437
+ defaultClassName: "size-5",
438
+ viewBox: a,
439
+ className: t,
440
+ spacing: s,
441
+ title: n || "History",
442
+ ...o,
443
+ children: [
444
+ /* @__PURE__ */ e(
445
+ "path",
446
+ {
447
+ opacity: r ? "1" : "0.4",
448
+ d: "M120.2 120.2C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8z"
449
+ }
450
+ ),
451
+ /* @__PURE__ */ e("path", { d: "M256 128c13.3 0 24 10.7 24 24v94.1l65 65c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72c-4.5-4.5-7-10.6-7-17V152c0-13.3 10.7-24 24-24z" })
452
+ ]
453
+ }
454
+ ), ea = ({
455
+ className: t,
456
+ viewBox: a,
457
+ spacing: s,
458
+ title: n,
459
+ monotone: r,
460
+ ...o
461
+ }) => /* @__PURE__ */ c(
462
+ H,
463
+ {
464
+ defaultViewBox: "0 0 512 512",
465
+ defaultClassName: "size-5",
466
+ viewBox: a,
467
+ className: t,
468
+ spacing: s,
469
+ title: n || "Info",
470
+ ...o,
471
+ children: [
472
+ /* @__PURE__ */ e(
473
+ "path",
474
+ {
475
+ opacity: "0.4",
476
+ d: "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"
477
+ }
478
+ ),
479
+ /* @__PURE__ */ e("path", { d: "M256 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM192 248c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h24V272H216c-13.3 0-24-10.7-24-24z" })
480
+ ]
481
+ }
482
+ ), ta = ({
483
+ className: t,
484
+ viewBox: a,
485
+ spacing: s,
486
+ title: n,
487
+ monotone: r,
488
+ ...o
489
+ }) => /* @__PURE__ */ c(
490
+ H,
491
+ {
492
+ defaultViewBox: "0 0 576 512",
493
+ defaultClassName: "size-5",
494
+ viewBox: a,
495
+ className: t,
496
+ spacing: s,
497
+ title: n || "Profile",
498
+ ...o,
499
+ children: [
500
+ /* @__PURE__ */ e(
501
+ "path",
502
+ {
503
+ opacity: "0.4",
504
+ d: "M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z"
505
+ }
506
+ ),
507
+ /* @__PURE__ */ e("path", { d: "M176 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H272c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H144z" })
508
+ ]
509
+ }
510
+ ), pe = ({
511
+ className: t,
512
+ viewBox: a,
513
+ spacing: s,
514
+ title: n,
515
+ monotone: r,
516
+ ...o
517
+ }) => /* @__PURE__ */ c(
518
+ H,
519
+ {
520
+ defaultViewBox: "0 0 512 512",
521
+ defaultClassName: "size-5",
522
+ viewBox: a,
523
+ className: t,
524
+ spacing: s,
525
+ title: n || "Refresh",
526
+ ...o,
527
+ children: [
528
+ /* @__PURE__ */ e(
529
+ "path",
530
+ {
531
+ className: "fa-secondary",
532
+ opacity: r ? "1" : "0.4",
533
+ d: "M80 396.9V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H125.6l17.2 17.1c62.5 62.5 163.8 62.5 226.3 0c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.5 87.5-229.3 87.5-316.7 0L80 396.9z"
534
+ }
535
+ ),
536
+ /* @__PURE__ */ e(
537
+ "path",
538
+ {
539
+ className: "fa-primary",
540
+ d: "M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5z"
541
+ }
542
+ )
543
+ ]
544
+ }
545
+ ), aa = ({
546
+ className: t,
547
+ viewBox: a,
548
+ spacing: s,
549
+ title: n,
550
+ monotone: r,
551
+ ...o
552
+ }) => /* @__PURE__ */ c(
553
+ H,
554
+ {
555
+ defaultViewBox: "0 0 512 512",
556
+ defaultClassName: "size-5",
557
+ viewBox: a,
558
+ className: t,
559
+ spacing: s,
560
+ title: n || "Restore",
561
+ ...o,
562
+ children: [
563
+ /* @__PURE__ */ e(
564
+ "path",
565
+ {
566
+ opacity: r ? "1" : "0.4",
567
+ d: "M208 64H432c8.8 0 16 7.2 16 16V304c0 8.8-7.2 16-16 16H416v64h16c44.2 0 80-35.8 80-80V80c0-44.2-35.8-80-80-80H208c-44.2 0-80 35.8-80 80V96h64V80c0-8.8 7.2-16 16-16z"
568
+ }
569
+ ),
570
+ /* @__PURE__ */ e("path", { d: "M64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z" })
571
+ ]
572
+ }
573
+ ), sa = ({
574
+ className: t,
575
+ viewBox: a,
576
+ spacing: s,
577
+ title: n,
578
+ monotone: r,
579
+ ...o
580
+ }) => /* @__PURE__ */ e(
581
+ H,
582
+ {
583
+ defaultViewBox: "0 0 448 512",
584
+ defaultClassName: "size-5",
585
+ viewBox: a,
586
+ className: t,
587
+ spacing: s,
588
+ title: n || "Settings",
589
+ ...o,
590
+ children: /* @__PURE__ */ e("path", { d: "M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z" })
591
+ }
592
+ );
593
+ function Y(t) {
594
+ return lt();
595
+ }
596
+ const na = ({ stats: t }) => {
597
+ const a = (t == null ? void 0 : t.plugins) || [], s = (t == null ? void 0 : t.version) || "", n = (t == null ? void 0 : t.models) || [], r = Y(), o = Y();
598
+ return /* @__PURE__ */ c(k, { children: [
599
+ /* @__PURE__ */ e("div", { className: "mb-4", children: /* @__PURE__ */ e(
600
+ B,
601
+ {
602
+ header: C.ABOUT.TITLE_CLIENT,
603
+ className: "prose-dark dark:prose-lighter",
604
+ children: U(r, {
605
+ [C.ABOUT.VERSION]: "3.4.8",
606
+ [C.ABOUT.BUILD_TIMESTAMP]: "08/12/2024 04:41 PM EDT"
607
+ })
608
+ }
609
+ ) }),
610
+ /* @__PURE__ */ e(
611
+ B,
612
+ {
613
+ header: C.ABOUT.TITLE_SERVER,
614
+ className: "prose-dark dark:prose-lighter",
615
+ children: U(o, {
616
+ [C.ABOUT.VERSION]: s,
617
+ [Z(C.ABOUT.ENGINE, n.length)]: /* @__PURE__ */ e(k, { children: n.map((i) => /* @__PURE__ */ e("div", { className: "text-right", children: i }, i)) }),
618
+ [Z(C.ABOUT.PLUGIN, a.length)]: /* @__PURE__ */ e(k, { children: a.map((i) => /* @__PURE__ */ e("div", { className: "text-right", children: i }, i)) })
619
+ })
620
+ }
621
+ )
622
+ ] });
623
+ }, ra = ({
624
+ open: t,
625
+ onOpenChange: a
626
+ }) => {
627
+ const { serverStats: s } = L(W);
628
+ return /* @__PURE__ */ e(J, { open: t, onOpenChange: a, title: ze, children: /* @__PURE__ */ e(na, { stats: s }) });
629
+ }, oa = (t) => Ce(t), ca = (t) => {
630
+ if (!t || t.length === 0)
631
+ return Pe;
632
+ const a = t.filter(
633
+ (s) => {
634
+ var n, r;
635
+ return ((n = s == null ? void 0 : s.message) == null ? void 0 : n.role) === Fe && typeof ((r = s == null ? void 0 : s.message) == null ? void 0 : r.processingTime) == "number";
636
+ }
637
+ ).map((s) => s.message.processingTime);
638
+ return Ge({
639
+ data: a,
640
+ formatter: oa
641
+ });
642
+ }, ia = ({
643
+ isAuthenticated: t,
644
+ stats: a
645
+ }) => {
646
+ const { state: s } = L(W), n = $e - Number(s == null ? void 0 : s.usage), r = Y(), o = Y();
647
+ return t ? /* @__PURE__ */ c(k, { children: [
648
+ s && s.messages.length > 0 && /* @__PURE__ */ e("div", { className: "mb-4", children: /* @__PURE__ */ e(
649
+ B,
650
+ {
651
+ header: C.CURRENT_STATISTICS.TITLE,
652
+ className: "prose-dark dark:prose-lighter",
653
+ children: U(r, {
654
+ [C.CURRENT_STATISTICS.MODEL_NAME]: (s == null ? void 0 : s.model) || Be,
655
+ [C.CURRENT_STATISTICS.TOKENS_USED]: s == null ? void 0 : s.usage,
656
+ [C.CURRENT_STATISTICS.REMAINING_TOKENS]: Ve.format(n),
657
+ [C.CURRENT_STATISTICS.PROCESSING_TIME]: ca(s == null ? void 0 : s.messages)
658
+ })
659
+ }
660
+ ) }),
661
+ /* @__PURE__ */ e(
662
+ B,
663
+ {
664
+ header: C.MAIN_STATISTICS.TITLE,
665
+ className: "prose-dark dark:prose-lighter",
666
+ children: U(o, {
667
+ [Z(C.MAIN_STATISTICS.TOTAL, a.totalChats)]: a.totalChats,
668
+ [C.MAIN_STATISTICS.PROCESSING_TIME]: Ce(
669
+ a.averageProcessingTimes
670
+ )
671
+ })
672
+ }
673
+ )
674
+ ] }) : null;
675
+ }, la = ({
676
+ open: t,
677
+ onOpenChange: a
678
+ }) => {
679
+ const [s, n] = T({
680
+ averageProcessingTimes: 0,
681
+ totalChats: 0
682
+ }), { isAuthenticated: r, getAccessToken: o, user: i } = K();
683
+ return O(() => {
684
+ !t || !i || (async () => {
685
+ try {
686
+ const l = await se({
687
+ accessToken: await o(),
688
+ type: ne.GET_CHATS_STATS,
689
+ params: {
690
+ userId: i.username
691
+ }
692
+ });
693
+ l.status === 200 && n(l.data);
694
+ } catch {
695
+ }
696
+ })();
697
+ }, [t, o, i]), /* @__PURE__ */ e(J, { open: t, onOpenChange: a, title: Ne, children: /* @__PURE__ */ e(ia, { isAuthenticated: r, stats: s }) });
698
+ }, xe = ({
699
+ showConfirmation: t,
700
+ setShowConfirmation: a,
701
+ action: s,
702
+ children: n,
703
+ customStrings: r
704
+ }) => /* @__PURE__ */ e(
705
+ J,
706
+ {
707
+ kind: "messagebox",
708
+ open: t,
709
+ onOpenChange: a,
710
+ title: r.title,
711
+ footer: /* @__PURE__ */ c(G, { columnGap: 2, alignHorizontal: "flex-end", children: [
712
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
713
+ ee,
714
+ {
715
+ mode: "dark",
716
+ variant: "secondary",
717
+ focusMode: "light",
718
+ onClick: () => {
719
+ a(!1);
720
+ },
721
+ children: r.cancelAction
722
+ }
723
+ ) }),
724
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
725
+ ee,
726
+ {
727
+ mode: "dark",
728
+ variant: "danger",
729
+ focusMode: "light",
730
+ onClick: () => {
731
+ a(!1), s();
732
+ },
733
+ children: r.confirmAction
734
+ }
735
+ ) })
736
+ ] }),
737
+ children: n
738
+ }
739
+ );
740
+ var da = typeof window < "u", ma = function(t, a) {
741
+ return da ? window.matchMedia(t).matches : (process.env.NODE_ENV !== "production" && console.warn("`useMedia` When server side rendering, defaultState should be defined to prevent a hydration mismatches."), !1);
742
+ }, ua = function(t, a) {
743
+ var s = T(ma(t)), n = s[0], r = s[1];
744
+ return O(function() {
745
+ var o = !0, i = window.matchMedia(t), l = function() {
746
+ o && r(!!i.matches);
747
+ };
748
+ return i.addEventListener("change", l), r(i.matches), function() {
749
+ o = !1, i.removeEventListener("change", l);
750
+ };
751
+ }, [t]), n;
752
+ };
753
+ const ha = async (t, a, s, n) => {
754
+ try {
755
+ const r = await se({
756
+ accessToken: n,
757
+ type: ne.GET_CHAT,
758
+ params: {
759
+ id: t.id
760
+ }
761
+ });
762
+ r.status === 200 && (a({
763
+ type: je
764
+ }), a({
765
+ type: Ye,
766
+ payload: {
767
+ id: t.id,
768
+ model: r.data.model,
769
+ usage: r.data.usage,
770
+ messages: r.data.messages
771
+ }
772
+ }), s(!1));
773
+ } catch {
774
+ }
775
+ }, fe = (t) => {
776
+ const a = t[0];
777
+ return Ke(a == null ? void 0 : a.content, 100);
778
+ }, pa = ({
779
+ filteredHistory: t,
780
+ setFilteredHistory: a,
781
+ setFullHistory: s,
782
+ dispatch: n,
783
+ onOpenChange: r
784
+ }) => {
785
+ var p;
786
+ const { user: o, getAccessToken: i } = K(), l = j({
787
+ id: 0,
788
+ timestamp: "",
789
+ message: ""
790
+ }), [h, d] = T(!1), N = ua("(min-width: 480px)"), { state: m, dispatch: y } = L(ye), [, b] = ae({
791
+ key: te + Ue,
792
+ initialValue: m.sortDirection
793
+ }), S = t.data.sort(
794
+ (u, f) => {
795
+ switch (m.sortedCell) {
796
+ case "timestamp":
797
+ if (m.sortDirection === I.ASC)
798
+ return new Date(u[m.sortedCell]).getTime() - new Date(f[m.sortedCell]).getTime();
799
+ if (m.sortDirection === I.DESC)
800
+ return new Date(f[m.sortedCell]).getTime() - new Date(u[m.sortedCell]).getTime();
801
+ break;
802
+ default:
803
+ return 0;
804
+ }
805
+ return 0;
806
+ }
807
+ ), g = (u) => {
808
+ switch (m.sortDirection) {
809
+ case !1:
810
+ b(I.ASC), y({
811
+ type: re,
812
+ payload: {
813
+ sortedCell: u,
814
+ sortDirection: I.ASC
815
+ }
816
+ });
817
+ break;
818
+ case I.ASC:
819
+ b(I.DESC), y({
820
+ type: re,
821
+ payload: {
822
+ sortedCell: u,
823
+ sortDirection: I.DESC
824
+ }
825
+ });
826
+ break;
827
+ default:
828
+ b(I.ASC), y({
829
+ type: re,
830
+ payload: {
831
+ sortedCell: u,
832
+ sortDirection: I.ASC
833
+ }
834
+ });
835
+ break;
836
+ }
837
+ };
838
+ return /* @__PURE__ */ c(k, { children: [
839
+ /* @__PURE__ */ c(
840
+ xe,
841
+ {
842
+ showConfirmation: h,
843
+ setShowConfirmation: d,
844
+ action: async () => {
845
+ const u = l.current;
846
+ try {
847
+ const f = await se({
848
+ accessToken: await i(),
849
+ type: ne.DELETE_CHAT,
850
+ params: {
851
+ userId: (o == null ? void 0 : o.username) || "",
852
+ id: u.id
853
+ }
854
+ });
855
+ f.status === 200 && (s(f.data), a({ data: f.data }));
856
+ } catch {
857
+ }
858
+ },
859
+ customStrings: {
860
+ confirmAction: "Delete",
861
+ cancelAction: "Cancel",
862
+ title: "Delete chat"
863
+ },
864
+ children: [
865
+ /* @__PURE__ */ e("p", { className: "m-0", children: "Are you sure you want to delete the following chat:" }),
866
+ /* @__PURE__ */ c("ul", { className: "m-0", children: [
867
+ /* @__PURE__ */ c("li", { children: [
868
+ "Timestamp:",
869
+ " ",
870
+ /* @__PURE__ */ e("span", { className: "text-lg", children: l.current && l.current.timestamp })
871
+ ] }),
872
+ /* @__PURE__ */ c("li", { children: [
873
+ "First message:",
874
+ " ",
875
+ /* @__PURE__ */ e("span", { className: "text-lg", children: (p = l.current) == null ? void 0 : p.message })
876
+ ] })
877
+ ] })
878
+ ]
879
+ }
880
+ ),
881
+ /* @__PURE__ */ c(mt, { stickyHeader: !0, stickyFooter: !0, wrapperClassName: "max-h-[60vh]", children: [
882
+ /* @__PURE__ */ e(ut, { children: /* @__PURE__ */ c(oe, { children: [
883
+ N && /* @__PURE__ */ e(R, { className: "sr-only", children: "Row" }),
884
+ /* @__PURE__ */ e(
885
+ ht,
886
+ {
887
+ cellId: "timestamp",
888
+ align: "left",
889
+ sortDirection: m.sortDirection,
890
+ sortedCell: m.sortedCell,
891
+ onClick: () => {
892
+ g("timestamp");
893
+ },
894
+ children: "Date"
895
+ }
896
+ ),
897
+ /* @__PURE__ */ e(R, { children: "First message" }),
898
+ /* @__PURE__ */ e(R, { className: "text-right", children: "Actions" })
899
+ ] }) }),
900
+ /* @__PURE__ */ e(pt, { children: S.map((u, f) => {
901
+ var w;
902
+ return ((w = u == null ? void 0 : u.messages) == null ? void 0 : w.length) > 0 ? /* @__PURE__ */ c(oe, { children: [
903
+ N && /* @__PURE__ */ e(R, { children: f + 1 }),
904
+ /* @__PURE__ */ e(
905
+ R,
906
+ {
907
+ component: "th",
908
+ scope: "row",
909
+ className: "font-medium text-gray-400 sm:whitespace-nowrap",
910
+ children: u.timestamp
911
+ }
912
+ ),
913
+ /* @__PURE__ */ e(R, { className: "max-w-[100px] text-white sm:max-w-full", children: fe(u.messages) }),
914
+ /* @__PURE__ */ e(R, { children: /* @__PURE__ */ c("div", { className: "flex justify-end gap-2", children: [
915
+ /* @__PURE__ */ e(
916
+ z,
917
+ {
918
+ focusMode: "alt-system",
919
+ noBorder: !0,
920
+ label: "Restore chat",
921
+ onClick: async () => {
922
+ const A = await i();
923
+ ha(
924
+ u,
925
+ n,
926
+ r,
927
+ A
928
+ );
929
+ },
930
+ children: /* @__PURE__ */ e(aa, { className: "h-3 w-3", monotone: !0 })
931
+ }
932
+ ),
933
+ /* @__PURE__ */ e(
934
+ z,
935
+ {
936
+ focusMode: "alt-system",
937
+ noBorder: !0,
938
+ label: "Delete chat",
939
+ onClick: () => {
940
+ l.current = {
941
+ id: u.id,
942
+ timestamp: u.timestamp,
943
+ message: fe(u.messages)
944
+ }, d(!h);
945
+ },
946
+ children: /* @__PURE__ */ e("div", { className: "text-red-400", children: /* @__PURE__ */ e(Qt, { className: "h-3 w-3", monotone: !0 }) })
947
+ }
948
+ )
949
+ ] }) })
950
+ ] }, `${C.HISTORY.TITLE}-${u.id}-${f}`) : null;
951
+ }) }),
952
+ /* @__PURE__ */ e(ft, { children: /* @__PURE__ */ e(oe, { children: /* @__PURE__ */ e(R, { colSpan: 4, children: /* @__PURE__ */ e("div", { children: Z(
953
+ `${t.data.length} chat`,
954
+ t.data.length
955
+ ) }) }) }) })
956
+ ] })
957
+ ] });
958
+ };
959
+ function ge(t, a) {
960
+ return a ? t.filter(
961
+ (s) => s.messages.some(
962
+ (n) => n.content !== null && n.content.toLowerCase().includes(a.toLowerCase())
963
+ )
964
+ ) : t;
965
+ }
966
+ const fa = ({
967
+ onOpenChange: t,
968
+ historyData: a
969
+ }) => {
970
+ const { isAuthenticated: s } = K(), n = j(null), { dispatch: r } = L(W), { state: o, dispatch: i } = L(ye), [, l] = ae({
971
+ key: te + We,
972
+ initialValue: o.searchString
973
+ }), [h, d] = T(a), [N, m] = T({
974
+ data: h
975
+ }), y = (g) => {
976
+ const v = ge(h, g);
977
+ m({
978
+ data: v
979
+ }), l(g), i({
980
+ type: Je,
981
+ payload: { searchString: g }
982
+ });
983
+ }, b = (g) => {
984
+ y(g.target.value);
985
+ }, S = async (g) => {
986
+ g.preventDefault();
987
+ };
988
+ return O(() => {
989
+ const g = ge(
990
+ h,
991
+ o.searchString
992
+ );
993
+ m({
994
+ data: g
995
+ });
996
+ }, [h, o.searchString]), s ? N && N.data && /* @__PURE__ */ c(k, { children: [
997
+ /* @__PURE__ */ e("form", { autoComplete: "off", onSubmit: S, children: /* @__PURE__ */ e(
998
+ Xe,
999
+ {
1000
+ ref: n,
1001
+ defaultValue: o.searchString,
1002
+ focusMode: "light",
1003
+ name: "Search",
1004
+ label: "Search",
1005
+ onChange: b,
1006
+ spacing: { t: 2, b: 2 },
1007
+ ...o.searchString && {
1008
+ rightElement: /* @__PURE__ */ e(
1009
+ ee,
1010
+ {
1011
+ disabled: !o.searchString,
1012
+ mode: "dark",
1013
+ noBorder: !0,
1014
+ size: "small",
1015
+ onClick: () => {
1016
+ var g;
1017
+ y(""), (g = n.current) != null && g.value && (n.current.value = "", n.current.focus());
1018
+ },
1019
+ children: "Reset"
1020
+ }
1021
+ )
1022
+ }
1023
+ }
1024
+ ) }),
1025
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-2 sm:flex-row", children: /* @__PURE__ */ e(
1026
+ pa,
1027
+ {
1028
+ filteredHistory: N,
1029
+ setFilteredHistory: m,
1030
+ setFullHistory: d,
1031
+ dispatch: r,
1032
+ onOpenChange: t
1033
+ }
1034
+ ) })
1035
+ ] }) : null;
1036
+ }, ga = ({
1037
+ open: t,
1038
+ onOpenChange: a,
1039
+ historyData: s
1040
+ }) => /* @__PURE__ */ e(J, { open: t, onOpenChange: a, title: qe, children: /* @__PURE__ */ e(fa, { onOpenChange: a, historyData: s }) }), Ca = () => {
1041
+ const { isAuthenticated: t, user: a, registeringForPasskey: s, authenticationType: n } = K(), [r, o] = ae({
1042
+ key: te + Qe,
1043
+ initialValue: !1
1044
+ }), [, i, l] = ae({
1045
+ key: te + Ze,
1046
+ initialValue: { latitude: 0, longitude: 0, accuracy: 0 }
1047
+ }), [h, d] = T(!0), N = Y(), { state: m, dispatch: y } = L(W), b = (a == null ? void 0 : a.username) || "", S = (p) => {
1048
+ o(p);
1049
+ }, g = async () => {
1050
+ d(!1), l(), y({
1051
+ type: me,
1052
+ payload: {
1053
+ location: {
1054
+ latitude: 0,
1055
+ longitude: 0,
1056
+ accuracy: 0
1057
+ }
1058
+ }
1059
+ });
1060
+ const p = await at();
1061
+ i(p), y({
1062
+ type: me,
1063
+ payload: {
1064
+ location: p
1065
+ }
1066
+ });
1067
+ };
1068
+ O(() => {
1069
+ let p;
1070
+ return h || (p = window.setTimeout(() => {
1071
+ d(!0);
1072
+ }, 3e3)), () => {
1073
+ clearTimeout(p);
1074
+ };
1075
+ }, [h]);
1076
+ const v = (p) => {
1077
+ const { city: u, state: f, country: w, displayName: A } = p || {};
1078
+ if (u && w && f || A)
1079
+ return /* @__PURE__ */ e(k, { children: /* @__PURE__ */ c(G, { alignVertical: "center", columnGap: 4, children: [
1080
+ /* @__PURE__ */ e(E, { children: u && f && w ? /* @__PURE__ */ c("div", { className: "mt-2", children: [
1081
+ /* @__PURE__ */ c("div", { className: "text-right", children: [
1082
+ u,
1083
+ ", ",
1084
+ f
1085
+ ] }),
1086
+ /* @__PURE__ */ e("div", { className: "text-right", children: w })
1087
+ ] }) : A ? /* @__PURE__ */ e("div", { className: "mt-2 text-right", children: A }) : null }),
1088
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(
1089
+ z,
1090
+ {
1091
+ disabled: !h,
1092
+ size: "small",
1093
+ className: "mt-2",
1094
+ onClick: g,
1095
+ children: /* @__PURE__ */ e(pe, { className: "size-3", monotone: !0 })
1096
+ }
1097
+ ) })
1098
+ ] }) });
1099
+ const V = st(p == null ? void 0 : p.latitude), D = nt(p == null ? void 0 : p.longitude);
1100
+ return /* @__PURE__ */ e(k, { children: /* @__PURE__ */ c(G, { alignVertical: "center", columnGap: 4, children: [
1101
+ /* @__PURE__ */ c(E, { children: [
1102
+ /* @__PURE__ */ e("div", { children: V }),
1103
+ /* @__PURE__ */ e("div", { children: D })
1104
+ ] }),
1105
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(z, { size: "small", onClick: g, children: /* @__PURE__ */ e(pe, { className: "size-3", monotone: !0 }) }) })
1106
+ ] }) });
1107
+ };
1108
+ return t && b ? /* @__PURE__ */ c(k, { children: [
1109
+ /* @__PURE__ */ e(
1110
+ B,
1111
+ {
1112
+ header: C.PREFERENCES.TITLE,
1113
+ className: "prose-dark dark:prose-lighter",
1114
+ children: U(N, {
1115
+ [C.PREFERENCES.NAME]: b,
1116
+ [C.PREFERENCES.ENGINE_DETAILS]: /* @__PURE__ */ e(
1117
+ Xt,
1118
+ {
1119
+ noBorder: !0,
1120
+ labelHidden: !0,
1121
+ label: C.PREFERENCES.ENGINE_DETAILS,
1122
+ name: C.PREFERENCES.ENGINE_DETAILS,
1123
+ onChange: S,
1124
+ checked: r
1125
+ }
1126
+ ),
1127
+ [C.PREFERENCES.LOCATION]: v(m == null ? void 0 : m.location)
1128
+ })
1129
+ }
1130
+ ),
1131
+ n !== et.PASSKEY && /* @__PURE__ */ e(
1132
+ B,
1133
+ {
1134
+ spacing: { t: 4 },
1135
+ className: "prose-dark dark:prose-lighter",
1136
+ header: /* @__PURE__ */ e("h2", { className: "m-0", children: /* @__PURE__ */ c(G, { columnGap: 3, alignVertical: "center", children: [
1137
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(tt, { className: "size-6 text-center" }) }),
1138
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e("div", { children: "Passkey" }) })
1139
+ ] }) }),
1140
+ children: /* @__PURE__ */ c(G, { columnGap: 3, alignVertical: "center", children: [
1141
+ /* @__PURE__ */ e(E, { children: "Sign in without a password using a passkey (face or fingerprint sign-in)." }),
1142
+ /* @__PURE__ */ e(E, { children: /* @__PURE__ */ e(ee, { spacing: { t: 2 }, onClick: s, children: "Create a Passkey" }) })
1143
+ ] })
1144
+ }
1145
+ )
1146
+ ] }) : null;
1147
+ }, Na = ({
1148
+ open: t,
1149
+ onOpenChange: a
1150
+ }) => /* @__PURE__ */ e(J, { open: t, onOpenChange: a, title: rt, children: /* @__PURE__ */ e(Ca, {}) }), Ea = () => {
1151
+ const { state: t } = L(W), [a, s] = T(!1), [n, r] = T(!1), [o, i] = T(!1), [l, h] = T(!1), [d, N] = T([]), [m, y] = T(!1), [b, S] = T({
1152
+ done: !1,
1153
+ progress: !1,
1154
+ timestamp: Date.now()
1155
+ }), { logout: g, getAccessToken: v, user: p } = K(), u = () => {
1156
+ s(!a);
1157
+ }, f = () => {
1158
+ r(!n);
1159
+ }, w = () => {
1160
+ i(!o);
1161
+ }, A = () => {
1162
+ h(!l);
1163
+ }, V = async (M) => {
1164
+ const q = Date.now();
1165
+ if (M && !(!p || !t || b.progress || b.done === !0 && q - b.timestamp < 5e3)) {
1166
+ S({
1167
+ done: !0,
1168
+ progress: !0,
1169
+ timestamp: q
1170
+ });
1171
+ try {
1172
+ const P = await se({
1173
+ accessToken: await v(),
1174
+ type: ne.GET_CHATS,
1175
+ params: {
1176
+ userId: p.username
1177
+ }
1178
+ });
1179
+ P.status === 200 && (N(P.data), S({
1180
+ done: !0,
1181
+ progress: !1,
1182
+ timestamp: Date.now()
1183
+ }));
1184
+ } catch {
1185
+ S({
1186
+ done: !0,
1187
+ progress: !1,
1188
+ timestamp: Date.now()
1189
+ });
1190
+ }
1191
+ }
1192
+ }, D = () => {
1193
+ y(!m);
1194
+ };
1195
+ return /* @__PURE__ */ c(k, { children: [
1196
+ /* @__PURE__ */ e(
1197
+ xe,
1198
+ {
1199
+ showConfirmation: m,
1200
+ setShowConfirmation: y,
1201
+ action: g,
1202
+ customStrings: {
1203
+ confirmAction: ue,
1204
+ cancelAction: "Cancel",
1205
+ title: ue
1206
+ },
1207
+ children: /* @__PURE__ */ e("p", { children: "Are you sure you want to log out?" })
1208
+ }
1209
+ ),
1210
+ /* @__PURE__ */ e(Na, { open: a, onOpenChange: s }),
1211
+ /* @__PURE__ */ e(la, { open: n, onOpenChange: r }),
1212
+ /* @__PURE__ */ e(
1213
+ ga,
1214
+ {
1215
+ open: o,
1216
+ onOpenChange: i,
1217
+ historyData: d
1218
+ }
1219
+ ),
1220
+ /* @__PURE__ */ e(ra, { open: l, onOpenChange: h }),
1221
+ /* @__PURE__ */ e("div", { className: "relative", children: /* @__PURE__ */ e("div", { className: "absolute bottom-[-28px] right-[-7px]", children: /* @__PURE__ */ c(
1222
+ Ee,
1223
+ {
1224
+ mode: "dark",
1225
+ focusMode: "light",
1226
+ trigger: /* @__PURE__ */ e(z, { children: /* @__PURE__ */ e(sa, {}) }),
1227
+ defaultPlacement: "bottom-end",
1228
+ onOpenChange: V,
1229
+ children: [
1230
+ /* @__PURE__ */ e(
1231
+ _,
1232
+ {
1233
+ label: "Profile",
1234
+ onClick: u,
1235
+ icon: /* @__PURE__ */ e(ta, {})
1236
+ }
1237
+ ),
1238
+ /* @__PURE__ */ e(
1239
+ _,
1240
+ {
1241
+ label: Ne,
1242
+ onClick: f,
1243
+ icon: /* @__PURE__ */ e(qt, {})
1244
+ }
1245
+ ),
1246
+ /* @__PURE__ */ e(
1247
+ _,
1248
+ {
1249
+ label: "History",
1250
+ onClick: w,
1251
+ icon: /* @__PURE__ */ e(Zt, {})
1252
+ }
1253
+ ),
1254
+ /* @__PURE__ */ e(
1255
+ _,
1256
+ {
1257
+ label: "About",
1258
+ onClick: A,
1259
+ icon: /* @__PURE__ */ e(ea, {})
1260
+ }
1261
+ ),
1262
+ t && t.id && !t.isComponent && /* @__PURE__ */ c(k, { children: [
1263
+ /* @__PURE__ */ e(Lt, {}),
1264
+ /* @__PURE__ */ e(
1265
+ _,
1266
+ {
1267
+ label: "Log out",
1268
+ onClick: D,
1269
+ icon: /* @__PURE__ */ e("div", { className: "text-red-700", children: /* @__PURE__ */ e(Jt, { monotone: !0 }) })
1270
+ }
1271
+ )
1272
+ ] })
1273
+ ]
1274
+ }
1275
+ ) }) })
1276
+ ] });
1277
+ };
1278
+ export {
1279
+ Ea as default
1280
+ };