@versini/sassysaint 8.88.1 → 8.88.2

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.
Files changed (26) hide show
  1. package/dist/chunks/{AboutChangelog.CBqCirAO.js → AboutChangelog.lOUzPdPg.js} +3 -3
  2. package/dist/chunks/{AboutEntry.DZHyKc1k.js → AboutEntry.nrx_9raD.js} +5 -5
  3. package/dist/chunks/{App.Dv-cuxsd.js → App.CpTC12YE.js} +730 -730
  4. package/dist/chunks/{Chart.BG1bRPu-.js → Chart.C83kRI-n.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.BOi4Bwy2.js → ChatBubbleAssistant.CsDHg45T.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.CCECeH9j.js → ChatBubbleUser.DHKD4pkj.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.D4Qvf5go.js → ChatHistoryTable.BNe7yTzw.js} +3 -3
  8. package/dist/chunks/{HistoryEntry.BOTMN57U.js → HistoryEntry.Dq1k5JyM.js} +3 -3
  9. package/dist/chunks/{ProfileEntry.Cq7Qh-4Q.js → ProfileEntry.C-QU_Gmg.js} +2 -2
  10. package/dist/chunks/{SettingsEntry.DltFPOUE.js → SettingsEntry.CKR7KYh4.js} +3 -3
  11. package/dist/chunks/{UsageEntry.DHNMBIRz.js → UsageEntry.2XrCof7k.js} +3 -3
  12. package/dist/chunks/{UserMemoriesPanel.DmehGDV5.js → UserMemoriesPanel.BokhjC7d.js} +4 -4
  13. package/dist/chunks/{index.V4qMbeRe.js → index.BHySgpXD.js} +471 -470
  14. package/dist/chunks/{index.kZ7bd_RN.js → index.BXksRYaH.js} +1 -1
  15. package/dist/chunks/{index.BIaUgL1w.js → index.BoEUK5Es.js} +1 -1
  16. package/dist/chunks/{index.v_1aDRI6.js → index.BqkQUJZh.js} +3 -3
  17. package/dist/chunks/{index.x9T_FISK.js → index.DPv4aRcG.js} +1 -1
  18. package/dist/chunks/{index.DXs6ENaG.js → index.DUHPpcnH.js} +2 -2
  19. package/dist/chunks/{index.D87gMPDT.js → index.DigULJFG.js} +1 -1
  20. package/dist/chunks/{index.B4Rcs0Md.js → index.DpuJMZKy.js} +1 -1
  21. package/dist/chunks/{index.CgF3a0dP.js → index.ndUyIlvL.js} +1 -1
  22. package/dist/chunks/{useMarkdown.F2T6qxNe.js → useMarkdown.l1hNG47z.js} +6 -6
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/dist/style.css +1 -1
  26. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  import { jsx as c, jsxs as E, Fragment as Fr } from "react/jsx-runtime";
2
2
  import * as Q from "react";
3
- import Z, { createContext as Bt, useReducer as Br, useCallback as N, useRef as F, useEffect as R, useSyncExternalStore as Kr, useContext as Ge, useState as Y, useMemo as He, useId as Zs, useLayoutEffect as st, Suspense as en, lazy as tn } from "react";
3
+ import Z, { createContext as Bt, useReducer as Br, useCallback as M, useRef as F, useEffect as R, useSyncExternalStore as Kr, useContext as Ge, useState as Y, useMemo as He, useId as Zs, useLayoutEffect as st, Suspense as en, lazy as tn } from "react";
4
4
  import m from "clsx";
5
5
  var Le = class {
6
6
  constructor() {
@@ -124,18 +124,18 @@ function Kt(e, t) {
124
124
  function Te(e) {
125
125
  return JSON.stringify(
126
126
  e,
127
- (t, r) => Nt(r) ? Object.keys(r).sort().reduce((s, n) => (s[n] = r[n], s), {}) : r
127
+ (t, r) => Mt(r) ? Object.keys(r).sort().reduce((s, n) => (s[n] = r[n], s), {}) : r
128
128
  );
129
129
  }
130
130
  function Fe(e, t) {
131
131
  return e === t ? !0 : typeof e != typeof t ? !1 : e && t && typeof e == "object" && typeof t == "object" ? Object.keys(t).every((r) => Fe(e[r], t[r])) : !1;
132
132
  }
133
133
  var on = Object.prototype.hasOwnProperty;
134
- function Mt(e, t) {
134
+ function Nt(e, t) {
135
135
  if (e === t)
136
136
  return e;
137
137
  const r = ir(e) && ir(t);
138
- if (!r && !(Nt(e) && Nt(t))) return t;
138
+ if (!r && !(Mt(e) && Mt(t))) return t;
139
139
  const n = (r ? e : Object.keys(e)).length, a = r ? t : Object.keys(t), i = a.length, o = r ? new Array(i) : {};
140
140
  let l = 0;
141
141
  for (let f = 0; f < i; f++) {
@@ -148,7 +148,7 @@ function Mt(e, t) {
148
148
  o[d] = u;
149
149
  continue;
150
150
  }
151
- const p = Mt(h, u);
151
+ const p = Nt(h, u);
152
152
  o[d] = p, p === h && l++;
153
153
  }
154
154
  return n === i && l === n ? e : o;
@@ -164,7 +164,7 @@ function nt(e, t) {
164
164
  function ir(e) {
165
165
  return Array.isArray(e) && e.length === Object.keys(e).length;
166
166
  }
167
- function Nt(e) {
167
+ function Mt(e) {
168
168
  if (!or(e))
169
169
  return !1;
170
170
  const t = e.constructor;
@@ -187,13 +187,13 @@ function xt(e, t, r) {
187
187
  if (r.structuralSharing !== !1) {
188
188
  if (process.env.NODE_ENV !== "production")
189
189
  try {
190
- return Mt(e, t);
190
+ return Nt(e, t);
191
191
  } catch (s) {
192
192
  throw console.error(
193
193
  `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${r.queryHash}]: ${s}`
194
194
  ), s;
195
195
  }
196
- return Mt(e, t);
196
+ return Nt(e, t);
197
197
  }
198
198
  return t;
199
199
  }
@@ -928,7 +928,7 @@ var gn = class extends Le {
928
928
  this.#a = I;
929
929
  }
930
930
  this.#a && (p = this.#a, u = this.#h, y = Date.now(), g = "error");
931
- const b = d.fetchStatus === "fetching", x = g === "pending", C = g === "error", J = x && b, P = u !== void 0, M = {
931
+ const b = d.fetchStatus === "fetching", x = g === "pending", C = g === "error", J = x && b, P = u !== void 0, N = {
932
932
  status: g,
933
933
  fetchStatus: d.fetchStatus,
934
934
  isPending: x,
@@ -958,9 +958,9 @@ var gn = class extends Le {
958
958
  };
959
959
  if (this.options.experimental_prefetchInRender) {
960
960
  const I = (O) => {
961
- M.status === "error" ? O.reject(M.error) : M.data !== void 0 && O.resolve(M.data);
961
+ N.status === "error" ? O.reject(N.error) : N.data !== void 0 && O.resolve(N.data);
962
962
  }, V = () => {
963
- const O = this.#o = M.promise = Lt();
963
+ const O = this.#o = N.promise = Lt();
964
964
  I(O);
965
965
  }, k = this.#o;
966
966
  switch (k.status) {
@@ -968,14 +968,14 @@ var gn = class extends Le {
968
968
  e.queryHash === r.queryHash && I(k);
969
969
  break;
970
970
  case "fulfilled":
971
- (M.status === "error" || M.data !== k.value) && V();
971
+ (N.status === "error" || N.data !== k.value) && V();
972
972
  break;
973
973
  case "rejected":
974
- (M.status !== "error" || M.error !== k.reason) && V();
974
+ (N.status !== "error" || N.error !== k.reason) && V();
975
975
  break;
976
976
  }
977
977
  }
978
- return M;
978
+ return N;
979
979
  }
980
980
  updateResult() {
981
981
  const e = this.#n, t = this.createResult(this.#t, this.options);
@@ -1807,9 +1807,9 @@ function On() {
1807
1807
  isReset: () => e
1808
1808
  };
1809
1809
  }
1810
- var kn = Q.createContext(On()), Pn = () => Q.useContext(kn), Mn = (e, t) => {
1810
+ var kn = Q.createContext(On()), Pn = () => Q.useContext(kn), Nn = (e, t) => {
1811
1811
  (e.suspense || e.throwOnError || e.experimental_prefetchInRender) && (t.isReset() || (e.retryOnMount = !1));
1812
- }, Nn = (e) => {
1812
+ }, Mn = (e) => {
1813
1813
  Q.useEffect(() => {
1814
1814
  e.clearReset();
1815
1815
  }, [e]);
@@ -1840,7 +1840,7 @@ function Un(e, t, r) {
1840
1840
  i
1841
1841
  ), process.env.NODE_ENV !== "production" && (i.queryFn || console.error(
1842
1842
  `[${i.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`
1843
- )), i._optimisticResults = s ? "isRestoring" : "optimistic", Ln(i), Mn(i, n), Nn(n);
1843
+ )), i._optimisticResults = s ? "isRestoring" : "optimistic", Ln(i), Nn(i, n), Mn(n);
1844
1844
  const o = !a.getQueryCache().get(i.queryHash), [l] = Q.useState(
1845
1845
  () => new t(
1846
1846
  a,
@@ -2408,17 +2408,17 @@ function la(e) {
2408
2408
  function ua(e) {
2409
2409
  return e.kty === "oct" && typeof e.k == "string";
2410
2410
  }
2411
- let Ne;
2411
+ let Me;
2412
2412
  const mr = async (e, t, r, s = !1) => {
2413
- Ne ||= /* @__PURE__ */ new WeakMap();
2414
- let n = Ne.get(e);
2413
+ Me ||= /* @__PURE__ */ new WeakMap();
2414
+ let n = Me.get(e);
2415
2415
  if (n?.[r])
2416
2416
  return n[r];
2417
2417
  const a = await na({ ...t, alg: r });
2418
- return s && Object.freeze(e), n ? n[r] = a : Ne.set(e, { [r]: a }), a;
2418
+ return s && Object.freeze(e), n ? n[r] = a : Me.set(e, { [r]: a }), a;
2419
2419
  }, da = (e, t) => {
2420
- Ne ||= /* @__PURE__ */ new WeakMap();
2421
- let r = Ne.get(e);
2420
+ Me ||= /* @__PURE__ */ new WeakMap();
2421
+ let r = Me.get(e);
2422
2422
  if (r?.[t])
2423
2423
  return r[t];
2424
2424
  const s = e.type === "public", n = !!s;
@@ -2511,7 +2511,7 @@ const mr = async (e, t, r, s = !1) => {
2511
2511
  }
2512
2512
  if (!a)
2513
2513
  throw new TypeError("given KeyObject instance cannot be used for this algorithm");
2514
- return r ? r[t] = a : Ne.set(e, { [t]: a }), a;
2514
+ return r ? r[t] = a : Me.set(e, { [t]: a }), a;
2515
2515
  }, ha = async (e, t) => {
2516
2516
  if (e instanceof Uint8Array || rs(e))
2517
2517
  return e;
@@ -2531,7 +2531,7 @@ const mr = async (e, t, r, s = !1) => {
2531
2531
  if (zt(e))
2532
2532
  return e.k ? Ue(e.k) : mr(e, e, t, !0);
2533
2533
  throw new Error("unreachable");
2534
- }, Me = (e) => e?.[Symbol.toStringTag], Ut = (e, t, r) => {
2534
+ }, Ne = (e) => e?.[Symbol.toStringTag], Ut = (e, t, r) => {
2535
2535
  if (t.use !== void 0) {
2536
2536
  let s;
2537
2537
  switch (r) {
@@ -2584,7 +2584,7 @@ const mr = async (e, t, r, s = !1) => {
2584
2584
  if (!ns(t))
2585
2585
  throw new TypeError(ts(e, t, "CryptoKey", "KeyObject", "JSON Web Key", "Uint8Array"));
2586
2586
  if (t.type !== "secret")
2587
- throw new TypeError(`${Me(t)} instances for symmetric algorithms must be of type "secret"`);
2587
+ throw new TypeError(`${Ne(t)} instances for symmetric algorithms must be of type "secret"`);
2588
2588
  }
2589
2589
  }, pa = (e, t, r) => {
2590
2590
  if (zt(t))
@@ -2603,20 +2603,20 @@ const mr = async (e, t, r, s = !1) => {
2603
2603
  if (!ns(t))
2604
2604
  throw new TypeError(ts(e, t, "CryptoKey", "KeyObject", "JSON Web Key"));
2605
2605
  if (t.type === "secret")
2606
- throw new TypeError(`${Me(t)} instances for asymmetric algorithms must not be of type "secret"`);
2606
+ throw new TypeError(`${Ne(t)} instances for asymmetric algorithms must not be of type "secret"`);
2607
2607
  if (t.type === "public")
2608
2608
  switch (r) {
2609
2609
  case "sign":
2610
- throw new TypeError(`${Me(t)} instances for asymmetric algorithm signing must be of type "private"`);
2610
+ throw new TypeError(`${Ne(t)} instances for asymmetric algorithm signing must be of type "private"`);
2611
2611
  case "decrypt":
2612
- throw new TypeError(`${Me(t)} instances for asymmetric algorithm decryption must be of type "private"`);
2612
+ throw new TypeError(`${Ne(t)} instances for asymmetric algorithm decryption must be of type "private"`);
2613
2613
  }
2614
2614
  if (t.type === "private")
2615
2615
  switch (r) {
2616
2616
  case "verify":
2617
- throw new TypeError(`${Me(t)} instances for asymmetric algorithm verifying must be of type "public"`);
2617
+ throw new TypeError(`${Ne(t)} instances for asymmetric algorithm verifying must be of type "public"`);
2618
2618
  case "encrypt":
2619
- throw new TypeError(`${Me(t)} instances for asymmetric algorithm encryption must be of type "public"`);
2619
+ throw new TypeError(`${Ne(t)} instances for asymmetric algorithm encryption must be of type "public"`);
2620
2620
  }
2621
2621
  }, ya = (e, t, r) => {
2622
2622
  e.startsWith("HS") || e === "dir" || e.startsWith("PBES2") || /^A(?:128|192|256)(?:GCM)?(?:KW)?$/.test(e) || /^A(?:128|192|256)CBC-HS(?:256|384|512)$/.test(e) ? fa(e, t, r) : pa(e, t, r);
@@ -2899,7 +2899,7 @@ function ka(e, t = 0) {
2899
2899
  }
2900
2900
  let wt;
2901
2901
  const Pa = new Uint8Array(16);
2902
- function Ma() {
2902
+ function Na() {
2903
2903
  if (!wt) {
2904
2904
  if (typeof crypto > "u" || !crypto.getRandomValues)
2905
2905
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
@@ -2907,12 +2907,12 @@ function Ma() {
2907
2907
  }
2908
2908
  return wt(Pa);
2909
2909
  }
2910
- const Na = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), wr = { randomUUID: Na };
2910
+ const Ma = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), wr = { randomUUID: Ma };
2911
2911
  function Sr(e, t, r) {
2912
2912
  if (wr.randomUUID && !e)
2913
2913
  return wr.randomUUID();
2914
2914
  e = e || {};
2915
- const s = e.random ?? e.rng?.() ?? Ma();
2915
+ const s = e.random ?? e.rng?.() ?? Na();
2916
2916
  if (s.length < 16)
2917
2917
  throw new Error("Random bytes length must be >= 16");
2918
2918
  return s[6] = s[6] & 15 | 64, s[8] = s[8] & 63 | 128, ka(s);
@@ -3290,7 +3290,7 @@ function je({
3290
3290
  key: e,
3291
3291
  initialValue: t
3292
3292
  }) {
3293
- const r = Kr(Qa, () => Tr(e)), s = N(
3293
+ const r = Kr(Qa, () => Tr(e)), s = M(
3294
3294
  (i) => {
3295
3295
  try {
3296
3296
  const o = typeof i == "function" ? i(JSON.parse(r)) : i;
@@ -3300,9 +3300,9 @@ function je({
3300
3300
  }
3301
3301
  },
3302
3302
  [e, r]
3303
- ), n = N(() => {
3303
+ ), n = M(() => {
3304
3304
  s(t);
3305
- }, [t, s]), a = N(() => {
3305
+ }, [t, s]), a = M(() => {
3306
3306
  s(null);
3307
3307
  }, [s]);
3308
3308
  return R(() => {
@@ -3715,7 +3715,7 @@ const Pe = () => {
3715
3715
  authenticationType: ""
3716
3716
  }), di = () => ({
3717
3717
  ...Ge(ws)
3718
- }), hi = (e) => N(
3718
+ }), hi = (e) => M(
3719
3719
  (...t) => {
3720
3720
  e && console.info(`==> [Auth ${Date.now()}]: `, ...t);
3721
3721
  },
@@ -3765,7 +3765,7 @@ const Pe = () => {
3765
3765
  }
3766
3766
  ), [C, J, , P] = je({
3767
3767
  key: `${Qe}::${r}::@@nonce@@`
3768
- }), re = new ui(p, w), M = N(() => {
3768
+ }), re = new ui(p, w), N = M(() => {
3769
3769
  l("removeLocalStorage: removing local storage"), u(), g(), x(), P();
3770
3770
  }, [
3771
3771
  g,
@@ -3773,7 +3773,7 @@ const Pe = () => {
3773
3773
  P,
3774
3774
  x,
3775
3775
  l
3776
- ]), I = N(
3776
+ ]), I = M(
3777
3777
  (v) => {
3778
3778
  l(
3779
3779
  "removeStateAndLocalStorage: removing state and local storage with reason: ",
@@ -3783,10 +3783,10 @@ const Pe = () => {
3783
3783
  payload: {
3784
3784
  logoutReason: v || Ce
3785
3785
  }
3786
- }), M(), o({ type: De, payload: { isLoading: !1 } });
3786
+ }), N(), o({ type: De, payload: { isLoading: !1 } });
3787
3787
  },
3788
- [M, l]
3789
- ), V = N(
3788
+ [N, l]
3789
+ ), V = M(
3790
3790
  async (v) => {
3791
3791
  l("invalidateAndLogout: invalidating and logging out");
3792
3792
  const { user: _ } = i, T = _?.userId || ai(d);
@@ -3836,7 +3836,7 @@ const Pe = () => {
3836
3836
  };
3837
3837
  }, [i.isLoading, d, V, l]);
3838
3838
  const k = async (v, _) => {
3839
- o({ type: De, payload: { isLoading: !0 } }), M();
3839
+ o({ type: De, payload: { isLoading: !0 } }), N();
3840
3840
  const T = It();
3841
3841
  J(T), l("login: Logging in with password");
3842
3842
  const { code_verifier: me, code_challenge: ge } = await $a(), sr = await ci({
@@ -3950,7 +3950,7 @@ const Pe = () => {
3950
3950
  }
3951
3951
  return !1;
3952
3952
  }, _e = async () => {
3953
- o({ type: De, payload: { isLoading: !0 } }), M();
3953
+ o({ type: De, payload: { isLoading: !0 } }), N();
3954
3954
  const v = It();
3955
3955
  J(v), l("loginWithPasskey");
3956
3956
  const _ = It();
@@ -4178,34 +4178,289 @@ async function hl(e = {}) {
4178
4178
  return console.warn("[SW] getCacheInfo failed:", r), { version: Rt(), caches: [], totalItems: 0 };
4179
4179
  }
4180
4180
  }
4181
- let wi = "standard";
4182
- var A, Si = ((A = {})[A.NewChat = 0] = "NewChat", A[A.Prompts = 1] = "Prompts", A[A.Attachment = 2] = "Attachment", A[A.PrivateChat = 3] = "PrivateChat", A[A.SaveChat = 4] = "SaveChat", A[A.Reasoning = 5] = "Reasoning", A[A.Send = 6] = "Send", A[A.Header = 7] = "Header", A[A.Provider = 8] = "Provider", A[A.Logo = 9] = "Logo", A[A.Placeholder = 10] = "Placeholder", A[A.Footer = 11] = "Footer", A);
4183
- let fl = "user", pl = "assistant", yl = "data", yt = "OpenAI", Qt = "Anthropic", Jt = "Google", bi = "Perplexity", vi = yt, Ti = [yt, Qt, Jt], Is = "gpt-5", _s = "gpt-5-mini", As = "gpt-5-nano", Rs = "gpt-4.1-nano", Cs = "claude-haiku-4-5", Os = "claude-sonnet-4-5", ks = "gemini-2.5-flash", Ps = "gemini-2.5-pro", Ms = "sonar", Ns = "sonar-pro", ml = { [Is]: "GPT-5", [_s]: "GPT-5 Mini", [As]: "GPT-5 Nano", [Rs]: "GPT-4.1 Nano", [Cs]: "Claude Haiku 4.5", [Os]: "Claude Sonnet 4.5", [ks]: "Gemini 2.5 Flash", [Ps]: "Gemini 2.5 Pro", [Ms]: "Sonar", [Ns]: "Sonar Pro" }, xs = { [yt]: [Rs, Is, _s, As], [Qt]: [Cs, Os], [Jt]: [ks, Ps], [bi]: [Ms, Ns] }, gl = "x-diggidy-chat-id", El = "timestamp", wl = "tokenUsage", L = "Diggidy", Sl = { TOOL: { MEMORIES: "getUserMemories" }, ADDON: { ATTACHMENTS: "addon:attachments", REASONING: "addon:reasoning" } }, bl = (e) => {
4181
+ const Cr = (e) => Number.isFinite(e) ? e : 0;
4182
+ function wi(e) {
4183
+ return {
4184
+ days: Math.trunc(e / 864e5),
4185
+ hours: Math.trunc(e / 36e5 % 24),
4186
+ minutes: Math.trunc(e / 6e4 % 60),
4187
+ seconds: Math.trunc(e / 1e3 % 60),
4188
+ milliseconds: Math.trunc(e % 1e3),
4189
+ microseconds: Math.trunc(Cr(e * 1e3) % 1e3),
4190
+ nanoseconds: Math.trunc(Cr(e * 1e6) % 1e3)
4191
+ };
4192
+ }
4193
+ function Si(e) {
4194
+ return {
4195
+ days: e / 86400000n,
4196
+ hours: e / 3600000n % 24n,
4197
+ minutes: e / 60000n % 60n,
4198
+ seconds: e / 1000n % 60n,
4199
+ milliseconds: e % 1000n,
4200
+ microseconds: 0n,
4201
+ nanoseconds: 0n
4202
+ };
4203
+ }
4204
+ function bi(e) {
4205
+ switch (typeof e) {
4206
+ case "number": {
4207
+ if (Number.isFinite(e))
4208
+ return wi(e);
4209
+ break;
4210
+ }
4211
+ case "bigint":
4212
+ return Si(e);
4213
+ }
4214
+ throw new TypeError("Expected a finite number or bigint");
4215
+ }
4216
+ const vi = (e) => e === 0 || e === 0n, Ti = (e, t) => t === 1 || t === 1n ? e : `${e}s`, Ii = 1e-7, _i = 24n * 60n * 60n * 1000n;
4217
+ function Ai(e, t) {
4218
+ const r = typeof e == "bigint";
4219
+ if (!r && !Number.isFinite(e))
4220
+ throw new TypeError("Expected a finite number or bigint");
4221
+ t = { ...t };
4222
+ const s = e < 0 ? "-" : "";
4223
+ e = e < 0 ? -e : e, t.colonNotation && (t.compact = !1, t.formatSubMilliseconds = !1, t.separateMilliseconds = !1, t.verbose = !1), t.compact && (t.unitCount = 1, t.secondsDecimalDigits = 0, t.millisecondsDecimalDigits = 0);
4224
+ let n = [];
4225
+ const a = (d, h) => {
4226
+ const u = Math.floor(d * 10 ** h + Ii);
4227
+ return (Math.round(u) / 10 ** h).toFixed(h);
4228
+ }, i = (d, h, u, p) => {
4229
+ if (!((n.length === 0 || !t.colonNotation) && vi(d) && !(t.colonNotation && u === "m"))) {
4230
+ if (p ??= String(d), t.colonNotation) {
4231
+ const y = p.includes(".") ? p.split(".")[0].length : p.length, g = n.length > 0 ? 2 : 1;
4232
+ p = "0".repeat(Math.max(0, g - y)) + p;
4233
+ } else
4234
+ p += t.verbose ? " " + Ti(h, d) : u;
4235
+ n.push(p);
4236
+ }
4237
+ }, o = bi(e), l = BigInt(o.days);
4238
+ if (t.hideYearAndDays ? i(BigInt(l) * 24n + BigInt(o.hours), "hour", "h") : (t.hideYear ? i(l, "day", "d") : (i(l / 365n, "year", "y"), i(l % 365n, "day", "d")), i(Number(o.hours), "hour", "h")), i(Number(o.minutes), "minute", "m"), !t.hideSeconds)
4239
+ if (t.separateMilliseconds || t.formatSubMilliseconds || !t.colonNotation && e < 1e3 && !t.subSecondsAsDecimals) {
4240
+ const d = Number(o.seconds), h = Number(o.milliseconds), u = Number(o.microseconds), p = Number(o.nanoseconds);
4241
+ if (i(d, "second", "s"), t.formatSubMilliseconds)
4242
+ i(h, "millisecond", "ms"), i(u, "microsecond", "µs"), i(p, "nanosecond", "ns");
4243
+ else {
4244
+ const y = h + u / 1e3 + p / 1e6, g = typeof t.millisecondsDecimalDigits == "number" ? t.millisecondsDecimalDigits : 0, w = y >= 1 ? Math.round(y) : Math.ceil(y), b = g ? y.toFixed(g) : w;
4245
+ i(
4246
+ Number.parseFloat(b),
4247
+ "millisecond",
4248
+ "ms",
4249
+ b
4250
+ );
4251
+ }
4252
+ } else {
4253
+ const d = (r ? Number(e % _i) : e) / 1e3 % 60, h = typeof t.secondsDecimalDigits == "number" ? t.secondsDecimalDigits : 1, u = a(d, h), p = t.keepDecimalsOnWholeSeconds ? u : u.replace(/\.0+$/, "");
4254
+ i(Number.parseFloat(p), "second", "s", p);
4255
+ }
4256
+ if (n.length === 0)
4257
+ return s + "0" + (t.verbose ? " milliseconds" : "ms");
4258
+ const f = t.colonNotation ? ":" : " ";
4259
+ return typeof t.unitCount == "number" && (n = n.slice(0, Math.max(t.unitCount, 1))), s + n.join(f);
4260
+ }
4261
+ const Is = process.env.NODE_ENV === "production", Qt = !Is, _s = Qt ? "gizmette.local.com" : "gizmette.com", Jt = (e, t) => {
4262
+ const r = e < 0 ? t ? "W" : "S" : t ? "E" : "N", s = 0 | Math.abs(e), n = 0 | Math.abs(e) * 60 % 60, a = (0 | Math.abs(e) * 60 % 1 * 6e3) / 100;
4263
+ return {
4264
+ dir: r,
4265
+ deg: s,
4266
+ min: n,
4267
+ sec: a
4268
+ };
4269
+ }, Ri = (e) => {
4270
+ if (!e && e !== 0)
4271
+ return "N/A";
4272
+ const t = Jt(e, !1);
4273
+ return `${t.deg}° ${t.min}' ${t.sec}" ${t.dir}`;
4274
+ }, Ci = (e) => {
4275
+ if (!e && e !== 0)
4276
+ return "N/A";
4277
+ const t = Jt(e, !0);
4278
+ return `${t.deg}° ${t.min}' ${t.sec}" ${t.dir}`;
4279
+ }, Oi = async () => {
4280
+ const e = {
4281
+ /**
4282
+ * A boolean value that indicates the application would like to receive the
4283
+ * best possible results. If true and if the device is able to provide a more
4284
+ * accurate position, it will do so. Note that this can result in slower
4285
+ * response times or increased power consumption (with a GPS chip on a mobile
4286
+ * device for example). On the other hand, if false, the device can take the
4287
+ * liberty to save resources by responding more quickly and/or using less
4288
+ * power. Default: false.
4289
+ */
4290
+ enableHighAccuracy: !1,
4291
+ /**
4292
+ * A positive long value representing the maximum length of time (in
4293
+ * milliseconds) the device is allowed to take in order to return a position.
4294
+ * The default value is Infinity, meaning that getCurrentPosition() won't
4295
+ * return until the position is available.
4296
+ */
4297
+ timeout: 1e4,
4298
+ /**
4299
+ * A positive long value indicating the maximum age in milliseconds of a
4300
+ * possible cached position that is acceptable to return. If set to 0, it
4301
+ * means that the device cannot use a cached position and must attempt to
4302
+ * retrieve the real current position. If set to. Infinity the device must
4303
+ * return a cached position regardless of its age. Default: 0.
4304
+ */
4305
+ maximumAge: 6e4
4306
+ };
4307
+ return new Promise((t, r) => {
4308
+ navigator?.geolocation?.getCurrentPosition(
4309
+ (s) => {
4310
+ t({
4311
+ latitude: s.coords.latitude,
4312
+ longitude: s.coords.longitude,
4313
+ accuracy: s.coords.accuracy
4314
+ });
4315
+ },
4316
+ (s) => {
4317
+ r(s);
4318
+ },
4319
+ e
4320
+ );
4321
+ });
4322
+ }, ki = (e) => window.btoa(
4323
+ encodeURIComponent(e).replace(
4324
+ /%([0-9A-F]{2})/g,
4325
+ function(r, s) {
4326
+ return String.fromCharCode(+`0x${s}`);
4327
+ }
4328
+ )
4329
+ ), Pi = (e) => decodeURIComponent(
4330
+ window.atob(e).split("").map(function(t) {
4331
+ return `%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`;
4332
+ }).join("")
4333
+ ), Ni = (e, t, r) => t ? Object.keys(t).map((s) => /* @__PURE__ */ c("dl", { className: "my-0", children: /* @__PURE__ */ E("div", { className: "flex items-center justify-between", children: [
4334
+ /* @__PURE__ */ c(
4335
+ "dt",
4336
+ {
4337
+ className: m(
4338
+ { "my-0": r, "my-1": !r },
4339
+ "inline-block font-bold text-copy-dark dark:text-copy-lighter"
4340
+ ),
4341
+ children: s
4342
+ }
4343
+ ),
4344
+ /* @__PURE__ */ c(
4345
+ "dd",
4346
+ {
4347
+ className: m(
4348
+ { "my-0": r, "my-1": !r },
4349
+ "inline-block"
4350
+ ),
4351
+ children: t[s]
4352
+ }
4353
+ )
4354
+ ] }) }, `${e}-${s}`)) : null;
4355
+ function Mi({
4356
+ data: e,
4357
+ formatter: t = (r) => r
4358
+ }) {
4359
+ const r = e.filter(
4360
+ (n) => typeof n == "number" && n > 0
4361
+ ), s = r.reduce(
4362
+ (n, a) => (n || 0) + (a || 0),
4363
+ 0
4364
+ );
4365
+ return t(s ? s / r.length : 0);
4366
+ }
4367
+ const xi = (e, t) => t && t.messages.length > 0 && t.messages[t.messages.length - 1].message.role === e, Li = new Intl.NumberFormat("en", {
4368
+ style: "decimal",
4369
+ signDisplay: "never",
4370
+ minimumFractionDigits: 0,
4371
+ maximumFractionDigits: 0
4372
+ }), Di = (e) => e > 0 ? Ai(e, {
4373
+ secondsDecimalDigits: 2,
4374
+ unitCount: 2
4375
+ }) : "N/A", As = ({
4376
+ isAuthenticated: e,
4377
+ extraClass: t,
4378
+ oledMode: r
4379
+ }) => m("px-4", "flex-1 overflow-y-auto", e ? "pt-0" : "pt-10", t, {
4380
+ "bg-slate-900/95 dark:bg-slate-900": r,
4381
+ "bg-slate-900": !r
4382
+ }), Rs = ({
4383
+ extraClass: e,
4384
+ fullScreen: t
4385
+ } = {}) => m(
4386
+ "flex flex-col",
4387
+ "w-full md:mx-auto",
4388
+ "sm:px-5 px-2",
4389
+ "transition-all ease-in-out duration-500",
4390
+ {
4391
+ "md:max-w-4xl": !t,
4392
+ "md:max-w-svw": t
4393
+ },
4394
+ e
4395
+ ), $i = (e, t) => t === 1 ? e : `${e}s`, Ui = (e, t) => {
4396
+ let r;
4397
+ return (...s) => {
4398
+ window.clearTimeout(r), r = window.setTimeout(() => e(...s), t);
4399
+ };
4400
+ }, Cs = () => !!window?.__VERSINI_DIGGIDY_TAURI__, Os = () => window.innerWidth < 403, ks = () => window.innerWidth >= 403 && window.innerWidth <= 1220, Hi = () => {
4401
+ const e = ["iPhone Simulator", "iPhone"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = /iPhone/.test(navigator.userAgent), r = Os(), s = navigator.maxTouchPoints > 1;
4402
+ return e && t && r && s;
4403
+ }, Fi = () => {
4404
+ const e = ["iPad Simulator", "iPad"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = ks(), r = navigator.maxTouchPoints > 1;
4405
+ return e && t && r;
4406
+ }, Bi = () => window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0, Ki = (e) => {
4407
+ const t = e.replace(/([A-Z])/g, " $1");
4408
+ return t.charAt(0).toUpperCase() + t.slice(1);
4409
+ }, Vi = ({
4410
+ autoClose: e = 3e3,
4411
+ containerId: t,
4412
+ position: r = "top-center",
4413
+ hideProgressBar: s = !1,
4414
+ closeOnClick: n = !1,
4415
+ pauseOnHover: a = !0,
4416
+ draggable: i = !0,
4417
+ progress: o = void 0,
4418
+ theme: l = "colored",
4419
+ transition: f,
4420
+ icon: d = !1
4421
+ } = {}) => ({
4422
+ autoClose: e,
4423
+ containerId: t,
4424
+ position: r,
4425
+ hideProgressBar: s,
4426
+ closeOnClick: n,
4427
+ pauseOnHover: a,
4428
+ draggable: i,
4429
+ progress: o,
4430
+ theme: l,
4431
+ transition: f,
4432
+ icon: d
4433
+ }), Gi = (e, t) => t === "ready" && !!e && e.length > 0, zi = (e) => {
4434
+ e ? document.documentElement.setAttribute(Ar, "true") : document.documentElement.removeAttribute(Ar);
4435
+ }, fl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: _s, applyOledMode: zi, canEvaluateModels: Gi, convertCamelCaseToReadable: Ki, convertDDToDMS: Jt, convertLatitudeToDMS: Ri, convertLongitudeToDMS: Ci, debounce: Ui, durationFormatter: Di, extractAverage: Mi, getCurrentGeoLocation: Oi, getLayoutPaddingClass: Rs, getMessageContaintWrapperClass: As, isDev: Qt, isLastMessageFromRole: xi, isPWAMode: Bi, isProbablyMobile: Os, isProbablyTablet: ks, isProbablyiPad: Fi, isProbablyiPhone: Hi, isProd: Is, isTauri: Cs, numberFormatter: Li, obfuscate: ki, pluralize: $i, renderDataAsList: Ni, toastOptions: Vi, unObfuscate: Pi }, Symbol.toStringTag, { value: "Module" }));
4436
+ let qi = "standard";
4437
+ var A, Wi = ((A = {})[A.NewChat = 0] = "NewChat", A[A.Prompts = 1] = "Prompts", A[A.Attachment = 2] = "Attachment", A[A.PrivateChat = 3] = "PrivateChat", A[A.SaveChat = 4] = "SaveChat", A[A.Reasoning = 5] = "Reasoning", A[A.Send = 6] = "Send", A[A.Header = 7] = "Header", A[A.Provider = 8] = "Provider", A[A.Logo = 9] = "Logo", A[A.Placeholder = 10] = "Placeholder", A[A.Footer = 11] = "Footer", A);
4438
+ let pl = "user", yl = "assistant", ml = "data", yt = "OpenAI", Yt = "Anthropic", Xt = "Google", ji = "Perplexity", Qi = yt, Ji = [yt, Yt, Xt], Ps = "gpt-5", Ns = "gpt-5-mini", Ms = "gpt-5-nano", xs = "gpt-4.1-nano", Ls = "claude-haiku-4-5", Ds = "claude-sonnet-4-5", $s = "gemini-2.5-flash", Us = "gemini-2.5-pro", Hs = "sonar", Fs = "sonar-pro", gl = { [Ps]: "GPT-5", [Ns]: "GPT-5 Mini", [Ms]: "GPT-5 Nano", [xs]: "GPT-4.1 Nano", [Ls]: "Claude Haiku 4.5", [Ds]: "Claude Sonnet 4.5", [$s]: "Gemini 2.5 Flash", [Us]: "Gemini 2.5 Pro", [Hs]: "Sonar", [Fs]: "Sonar Pro" }, Bs = { [yt]: [xs, Ps, Ns, Ms], [Yt]: [Ls, Ds], [Xt]: [$s, Us], [ji]: [Hs, Fs] }, El = "x-diggidy-chat-id", wl = "timestamp", Sl = "tokenUsage", L = "Diggidy", bl = { TOOL: { MEMORIES: "getUserMemories" }, ADDON: { ATTACHMENTS: "addon:attachments", REASONING: "addon:reasoning" } }, vl = (e) => {
4184
4439
  if (!e || e.length === 0) return [];
4185
4440
  let t = /* @__PURE__ */ new Set();
4186
- for (let r of e) for (let [s, n] of Object.entries(xs)) n.includes(r) && (s === yt || s === Qt || s === Jt) && t.add(s);
4187
- return Ti.filter((r) => t.has(r));
4188
- }, Ii = (e) => {
4441
+ for (let r of e) for (let [s, n] of Object.entries(Bs)) n.includes(r) && (s === yt || s === Yt || s === Xt) && t.add(s);
4442
+ return Ji.filter((r) => t.has(r));
4443
+ }, Yi = (e) => {
4189
4444
  let t = /* @__PURE__ */ new Map();
4190
4445
  if (!e || e.length === 0) return t;
4191
- for (let r of e) for (let [s, n] of Object.entries(xs)) if (n.includes(r)) {
4446
+ for (let r of e) for (let [s, n] of Object.entries(Bs)) if (n.includes(r)) {
4192
4447
  t.has(s) || t.set(s, []), t.get(s)?.push(r);
4193
4448
  break;
4194
4449
  }
4195
4450
  return t;
4196
- }, vl = (e) => {
4197
- for (let t of Ii(e).values()) if (t.length > 1) return !0;
4451
+ }, Tl = (e) => {
4452
+ for (let t of Yi(e).values()) if (t.length > 1) return !0;
4198
4453
  return !1;
4199
- }, Tl = (e, t) => !!e && !!t && t.length !== 0 && t.includes(e);
4200
- function _i(e) {
4454
+ }, Il = (e, t) => !!e && !!t && t.length !== 0 && t.includes(e);
4455
+ function Xi(e) {
4201
4456
  return e ? new Set(e) : null;
4202
4457
  }
4203
- function Ai(e, t, r) {
4458
+ function Zi(e, t, r) {
4204
4459
  if (!t || Array.isArray(t) && t.length === 0) return !0;
4205
- let s = e instanceof Set ? e : _i(e);
4460
+ let s = e instanceof Set ? e : Xi(e);
4206
4461
  return !!s && s.size !== 0 && (typeof t == "string" ? s.has(t) : r?.any === !0 ? t.some((n) => s.has(n)) : t.every((n) => s.has(n)));
4207
4462
  }
4208
- var Il = "subtle";
4463
+ var _l = "subtle";
4209
4464
  const U = {
4210
4465
  GET_LOCATION: `query GetLocation($latitude: Float!, $longitude: Float!) {
4211
4466
  location(latitude: $latitude, longitude: $longitude) {
@@ -4529,12 +4784,12 @@ const U = {
4529
4784
  schema: U.RESTORE_MEMORY,
4530
4785
  method: "restoreMemory"
4531
4786
  }
4532
- }, Ri = process.env.PUBLIC_SASSY_API_SERVER_URL, ut = async ({
4787
+ }, eo = process.env.PUBLIC_SASSY_API_SERVER_URL, ut = async ({
4533
4788
  query: e,
4534
4789
  data: t,
4535
4790
  headers: r = {},
4536
4791
  ...s
4537
- }) => await fetch(`${Ri}/graphql`, {
4792
+ }) => await fetch(`${eo}/graphql`, {
4538
4793
  method: "POST",
4539
4794
  credentials: "include",
4540
4795
  headers: {
@@ -4579,7 +4834,7 @@ const U = {
4579
4834
  } catch (r) {
4580
4835
  throw console.error(r), r;
4581
4836
  }
4582
- }, _l = async ({
4837
+ }, Al = async ({
4583
4838
  provider: e,
4584
4839
  model: t,
4585
4840
  accessToken: r,
@@ -4594,7 +4849,7 @@ const U = {
4594
4849
  type: K.SET_USER_PREFERENCES,
4595
4850
  params: n
4596
4851
  });
4597
- }, Al = async ({
4852
+ }, Rl = async ({
4598
4853
  plan: e,
4599
4854
  accessToken: t,
4600
4855
  username: r
@@ -4615,13 +4870,13 @@ const U = {
4615
4870
  USAGE: "usage",
4616
4871
  USER_MEMORIES: "userMemories",
4617
4872
  EXPIRED_MEMORIES: "expiredMemories"
4618
- }, Rl = () => fe({
4873
+ }, Cl = () => fe({
4619
4874
  queryKey: [B.CAPABILITIES],
4620
4875
  queryFn: async () => await pe({
4621
4876
  type: K.GET_SERVER_CAPABILITIES,
4622
4877
  noAuth: !0
4623
4878
  })
4624
- }), Cl = () => fe({
4879
+ }), Ol = () => fe({
4625
4880
  queryKey: [B.CHANGELOGS],
4626
4881
  queryFn: async () => await pe({
4627
4882
  type: K.GET_CHANGELOGS,
@@ -4630,7 +4885,7 @@ const U = {
4630
4885
  client: !0
4631
4886
  }
4632
4887
  })
4633
- }), Ci = ({
4888
+ }), to = ({
4634
4889
  user: e,
4635
4890
  getAccessToken: t
4636
4891
  }) => fe({
@@ -4642,7 +4897,7 @@ const U = {
4642
4897
  type: K.GET_USER_PREFERENCES,
4643
4898
  getAccessToken: t
4644
4899
  })
4645
- }), Ol = ({
4900
+ }), kl = ({
4646
4901
  user: e,
4647
4902
  getAccessToken: t
4648
4903
  }) => fe({
@@ -4654,7 +4909,7 @@ const U = {
4654
4909
  type: K.GET_CHATS_STATS,
4655
4910
  getAccessToken: t
4656
4911
  })
4657
- }), kl = ({
4912
+ }), Pl = ({
4658
4913
  user: e,
4659
4914
  searchString: t,
4660
4915
  sortDirection: r,
@@ -4678,7 +4933,7 @@ const U = {
4678
4933
  type: K.GET_CHATS,
4679
4934
  getAccessToken: n
4680
4935
  })
4681
- }), Pl = ({
4936
+ }), Nl = ({
4682
4937
  chatId: e,
4683
4938
  getAccessToken: t,
4684
4939
  enabled: r = !0
@@ -4713,7 +4968,7 @@ const U = {
4713
4968
  t.invalidateQueries({ queryKey: [B.CHATS, s.userId] });
4714
4969
  }
4715
4970
  });
4716
- }, Nl = ({
4971
+ }, xl = ({
4717
4972
  getAccessToken: e
4718
4973
  }) => {
4719
4974
  const t = ce();
@@ -4730,7 +4985,7 @@ const U = {
4730
4985
  t.invalidateQueries({ queryKey: [B.CHATS, s.userId] });
4731
4986
  }
4732
4987
  });
4733
- }, xl = ({
4988
+ }, Ll = ({
4734
4989
  getAccessToken: e
4735
4990
  }) => {
4736
4991
  const t = ce();
@@ -4747,7 +5002,7 @@ const U = {
4747
5002
  t.invalidateQueries({ queryKey: [B.CHATS, s.userId] });
4748
5003
  }
4749
5004
  });
4750
- }, Ll = ({
5005
+ }, Dl = ({
4751
5006
  user: e,
4752
5007
  month: t,
4753
5008
  year: r = (/* @__PURE__ */ new Date()).getFullYear().toString(),
@@ -4765,7 +5020,7 @@ const U = {
4765
5020
  type: K.GET_USAGE,
4766
5021
  getAccessToken: s
4767
5022
  })
4768
- }), Dl = ({
5023
+ }), $l = ({
4769
5024
  user: e,
4770
5025
  query: t,
4771
5026
  getAccessToken: r,
@@ -4778,7 +5033,7 @@ const U = {
4778
5033
  type: K.GET_USER_MEMORIES,
4779
5034
  getAccessToken: r
4780
5035
  })
4781
- }), $l = ({
5036
+ }), Ul = ({
4782
5037
  getAccessToken: e
4783
5038
  }) => {
4784
5039
  const t = ce();
@@ -4802,7 +5057,7 @@ const U = {
4802
5057
  });
4803
5058
  }
4804
5059
  });
4805
- }, Ul = ({
5060
+ }, Hl = ({
4806
5061
  getAccessToken: e
4807
5062
  }) => {
4808
5063
  const t = ce();
@@ -4826,7 +5081,7 @@ const U = {
4826
5081
  });
4827
5082
  }
4828
5083
  });
4829
- }, Hl = ({
5084
+ }, Fl = ({
4830
5085
  getAccessToken: e
4831
5086
  }) => {
4832
5087
  const t = ce();
@@ -4845,7 +5100,7 @@ const U = {
4845
5100
  });
4846
5101
  }
4847
5102
  });
4848
- }, Fl = ({
5103
+ }, Bl = ({
4849
5104
  getAccessToken: e
4850
5105
  }) => {
4851
5106
  const t = ce();
@@ -4864,7 +5119,7 @@ const U = {
4864
5119
  });
4865
5120
  }
4866
5121
  });
4867
- }, Bl = ({
5122
+ }, Kl = ({
4868
5123
  user: e,
4869
5124
  query: t,
4870
5125
  getAccessToken: r,
@@ -4877,7 +5132,7 @@ const U = {
4877
5132
  type: K.GET_EXPIRED_MEMORIES,
4878
5133
  getAccessToken: r
4879
5134
  })
4880
- }), Kl = ({
5135
+ }), Vl = ({
4881
5136
  getAccessToken: e
4882
5137
  }) => {
4883
5138
  const t = ce();
@@ -4937,22 +5192,22 @@ const U = {
4937
5192
  } catch (n) {
4938
5193
  return Promise.reject(n);
4939
5194
  }
4940
- }, Ls = Bt(
5195
+ }, Ks = Bt(
4941
5196
  void 0
4942
- ), Cr = {
5197
+ ), Or = {
4943
5198
  capabilities: /* @__PURE__ */ new Set(),
4944
5199
  allowedModels: [],
4945
5200
  version: null,
4946
5201
  status: "idle"
4947
- }, Oi = ({
5202
+ }, ro = ({
4948
5203
  user: e,
4949
5204
  getAccessToken: t,
4950
5205
  children: r
4951
5206
  }) => {
4952
- const [s, n] = Y(Cr), a = He(
5207
+ const [s, n] = Y(Or), a = He(
4953
5208
  () => e ? `entitlements:${e}` : null,
4954
5209
  [e]
4955
- ), i = N(() => {
5210
+ ), i = M(() => {
4956
5211
  if (!a)
4957
5212
  return !1;
4958
5213
  try {
@@ -4974,7 +5229,7 @@ const U = {
4974
5229
  R(() => {
4975
5230
  s.status === "idle" && i();
4976
5231
  }, [i, s.status]);
4977
- const o = Ci({ user: e, getAccessToken: t });
5232
+ const o = to({ user: e, getAccessToken: t });
4978
5233
  R(() => {
4979
5234
  o.isLoading && s.status === "idle" && n((h) => ({ ...h, status: "loading" }));
4980
5235
  }, [o.isLoading, s.status]), R(() => {
@@ -5003,7 +5258,7 @@ const U = {
5003
5258
  } catch {
5004
5259
  }
5005
5260
  }, [o.data, a]);
5006
- const l = N(
5261
+ const l = M(
5007
5262
  (h) => {
5008
5263
  const u = h?.entitlements;
5009
5264
  if (u && (n({
@@ -5025,8 +5280,8 @@ const U = {
5025
5280
  }
5026
5281
  },
5027
5282
  [a]
5028
- ), f = N(() => {
5029
- if (n(Cr), a)
5283
+ ), f = M(() => {
5284
+ if (n(Or), a)
5030
5285
  try {
5031
5286
  sessionStorage.removeItem(a);
5032
5287
  } catch {
@@ -5034,275 +5289,20 @@ const U = {
5034
5289
  }, [a]), d = He(
5035
5290
  () => ({
5036
5291
  ...s,
5037
- check: (h, u) => s.status !== "ready" ? !1 : Ai(s.capabilities, h, { any: u?.any }),
5292
+ check: (h, u) => s.status !== "ready" ? !1 : Zi(s.capabilities, h, { any: u?.any }),
5038
5293
  loadFromProfile: l,
5039
5294
  reset: f
5040
5295
  }),
5041
5296
  [s, l, f]
5042
5297
  );
5043
- return /* @__PURE__ */ c(Ls.Provider, { value: d, children: r });
5298
+ return /* @__PURE__ */ c(Ks.Provider, { value: d, children: r });
5044
5299
  };
5045
- function Vl() {
5046
- const e = Ge(Ls);
5300
+ function Gl() {
5301
+ const e = Ge(Ks);
5047
5302
  if (!e)
5048
5303
  throw new Error("useEntitlements must be used within EntitlementsProvider");
5049
5304
  return e;
5050
5305
  }
5051
- const Or = (e) => Number.isFinite(e) ? e : 0;
5052
- function ki(e) {
5053
- return {
5054
- days: Math.trunc(e / 864e5),
5055
- hours: Math.trunc(e / 36e5 % 24),
5056
- minutes: Math.trunc(e / 6e4 % 60),
5057
- seconds: Math.trunc(e / 1e3 % 60),
5058
- milliseconds: Math.trunc(e % 1e3),
5059
- microseconds: Math.trunc(Or(e * 1e3) % 1e3),
5060
- nanoseconds: Math.trunc(Or(e * 1e6) % 1e3)
5061
- };
5062
- }
5063
- function Pi(e) {
5064
- return {
5065
- days: e / 86400000n,
5066
- hours: e / 3600000n % 24n,
5067
- minutes: e / 60000n % 60n,
5068
- seconds: e / 1000n % 60n,
5069
- milliseconds: e % 1000n,
5070
- microseconds: 0n,
5071
- nanoseconds: 0n
5072
- };
5073
- }
5074
- function Mi(e) {
5075
- switch (typeof e) {
5076
- case "number": {
5077
- if (Number.isFinite(e))
5078
- return ki(e);
5079
- break;
5080
- }
5081
- case "bigint":
5082
- return Pi(e);
5083
- }
5084
- throw new TypeError("Expected a finite number or bigint");
5085
- }
5086
- const Ni = (e) => e === 0 || e === 0n, xi = (e, t) => t === 1 || t === 1n ? e : `${e}s`, Li = 1e-7, Di = 24n * 60n * 60n * 1000n;
5087
- function $i(e, t) {
5088
- const r = typeof e == "bigint";
5089
- if (!r && !Number.isFinite(e))
5090
- throw new TypeError("Expected a finite number or bigint");
5091
- t = { ...t };
5092
- const s = e < 0 ? "-" : "";
5093
- e = e < 0 ? -e : e, t.colonNotation && (t.compact = !1, t.formatSubMilliseconds = !1, t.separateMilliseconds = !1, t.verbose = !1), t.compact && (t.unitCount = 1, t.secondsDecimalDigits = 0, t.millisecondsDecimalDigits = 0);
5094
- let n = [];
5095
- const a = (d, h) => {
5096
- const u = Math.floor(d * 10 ** h + Li);
5097
- return (Math.round(u) / 10 ** h).toFixed(h);
5098
- }, i = (d, h, u, p) => {
5099
- if (!((n.length === 0 || !t.colonNotation) && Ni(d) && !(t.colonNotation && u === "m"))) {
5100
- if (p ??= String(d), t.colonNotation) {
5101
- const y = p.includes(".") ? p.split(".")[0].length : p.length, g = n.length > 0 ? 2 : 1;
5102
- p = "0".repeat(Math.max(0, g - y)) + p;
5103
- } else
5104
- p += t.verbose ? " " + xi(h, d) : u;
5105
- n.push(p);
5106
- }
5107
- }, o = Mi(e), l = BigInt(o.days);
5108
- if (t.hideYearAndDays ? i(BigInt(l) * 24n + BigInt(o.hours), "hour", "h") : (t.hideYear ? i(l, "day", "d") : (i(l / 365n, "year", "y"), i(l % 365n, "day", "d")), i(Number(o.hours), "hour", "h")), i(Number(o.minutes), "minute", "m"), !t.hideSeconds)
5109
- if (t.separateMilliseconds || t.formatSubMilliseconds || !t.colonNotation && e < 1e3 && !t.subSecondsAsDecimals) {
5110
- const d = Number(o.seconds), h = Number(o.milliseconds), u = Number(o.microseconds), p = Number(o.nanoseconds);
5111
- if (i(d, "second", "s"), t.formatSubMilliseconds)
5112
- i(h, "millisecond", "ms"), i(u, "microsecond", "µs"), i(p, "nanosecond", "ns");
5113
- else {
5114
- const y = h + u / 1e3 + p / 1e6, g = typeof t.millisecondsDecimalDigits == "number" ? t.millisecondsDecimalDigits : 0, w = y >= 1 ? Math.round(y) : Math.ceil(y), b = g ? y.toFixed(g) : w;
5115
- i(
5116
- Number.parseFloat(b),
5117
- "millisecond",
5118
- "ms",
5119
- b
5120
- );
5121
- }
5122
- } else {
5123
- const d = (r ? Number(e % Di) : e) / 1e3 % 60, h = typeof t.secondsDecimalDigits == "number" ? t.secondsDecimalDigits : 1, u = a(d, h), p = t.keepDecimalsOnWholeSeconds ? u : u.replace(/\.0+$/, "");
5124
- i(Number.parseFloat(p), "second", "s", p);
5125
- }
5126
- if (n.length === 0)
5127
- return s + "0" + (t.verbose ? " milliseconds" : "ms");
5128
- const f = t.colonNotation ? ":" : " ";
5129
- return typeof t.unitCount == "number" && (n = n.slice(0, Math.max(t.unitCount, 1))), s + n.join(f);
5130
- }
5131
- const Ds = process.env.NODE_ENV === "production", Yt = !Ds, $s = Yt ? "gizmette.local.com" : "gizmette.com", Xt = (e, t) => {
5132
- const r = e < 0 ? t ? "W" : "S" : t ? "E" : "N", s = 0 | Math.abs(e), n = 0 | Math.abs(e) * 60 % 60, a = (0 | Math.abs(e) * 60 % 1 * 6e3) / 100;
5133
- return {
5134
- dir: r,
5135
- deg: s,
5136
- min: n,
5137
- sec: a
5138
- };
5139
- }, Ui = (e) => {
5140
- if (!e && e !== 0)
5141
- return "N/A";
5142
- const t = Xt(e, !1);
5143
- return `${t.deg}° ${t.min}' ${t.sec}" ${t.dir}`;
5144
- }, Hi = (e) => {
5145
- if (!e && e !== 0)
5146
- return "N/A";
5147
- const t = Xt(e, !0);
5148
- return `${t.deg}° ${t.min}' ${t.sec}" ${t.dir}`;
5149
- }, Fi = async () => {
5150
- const e = {
5151
- /**
5152
- * A boolean value that indicates the application would like to receive the
5153
- * best possible results. If true and if the device is able to provide a more
5154
- * accurate position, it will do so. Note that this can result in slower
5155
- * response times or increased power consumption (with a GPS chip on a mobile
5156
- * device for example). On the other hand, if false, the device can take the
5157
- * liberty to save resources by responding more quickly and/or using less
5158
- * power. Default: false.
5159
- */
5160
- enableHighAccuracy: !1,
5161
- /**
5162
- * A positive long value representing the maximum length of time (in
5163
- * milliseconds) the device is allowed to take in order to return a position.
5164
- * The default value is Infinity, meaning that getCurrentPosition() won't
5165
- * return until the position is available.
5166
- */
5167
- timeout: 1e4,
5168
- /**
5169
- * A positive long value indicating the maximum age in milliseconds of a
5170
- * possible cached position that is acceptable to return. If set to 0, it
5171
- * means that the device cannot use a cached position and must attempt to
5172
- * retrieve the real current position. If set to. Infinity the device must
5173
- * return a cached position regardless of its age. Default: 0.
5174
- */
5175
- maximumAge: 6e4
5176
- };
5177
- return new Promise((t, r) => {
5178
- navigator?.geolocation?.getCurrentPosition(
5179
- (s) => {
5180
- t({
5181
- latitude: s.coords.latitude,
5182
- longitude: s.coords.longitude,
5183
- accuracy: s.coords.accuracy
5184
- });
5185
- },
5186
- (s) => {
5187
- r(s);
5188
- },
5189
- e
5190
- );
5191
- });
5192
- }, Bi = (e) => window.btoa(
5193
- encodeURIComponent(e).replace(
5194
- /%([0-9A-F]{2})/g,
5195
- function(r, s) {
5196
- return String.fromCharCode(+`0x${s}`);
5197
- }
5198
- )
5199
- ), Ki = (e) => decodeURIComponent(
5200
- window.atob(e).split("").map(function(t) {
5201
- return `%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`;
5202
- }).join("")
5203
- ), Vi = (e, t, r) => t ? Object.keys(t).map((s) => /* @__PURE__ */ c("dl", { className: "my-0", children: /* @__PURE__ */ E("div", { className: "flex items-center justify-between", children: [
5204
- /* @__PURE__ */ c(
5205
- "dt",
5206
- {
5207
- className: m(
5208
- { "my-0": r, "my-1": !r },
5209
- "inline-block font-bold text-copy-dark dark:text-copy-lighter"
5210
- ),
5211
- children: s
5212
- }
5213
- ),
5214
- /* @__PURE__ */ c(
5215
- "dd",
5216
- {
5217
- className: m(
5218
- { "my-0": r, "my-1": !r },
5219
- "inline-block"
5220
- ),
5221
- children: t[s]
5222
- }
5223
- )
5224
- ] }) }, `${e}-${s}`)) : null;
5225
- function Gi({
5226
- data: e,
5227
- formatter: t = (r) => r
5228
- }) {
5229
- const r = e.filter(
5230
- (n) => typeof n == "number" && n > 0
5231
- ), s = r.reduce(
5232
- (n, a) => (n || 0) + (a || 0),
5233
- 0
5234
- );
5235
- return t(s ? s / r.length : 0);
5236
- }
5237
- const zi = (e, t) => t && t.messages.length > 0 && t.messages[t.messages.length - 1].message.role === e, qi = new Intl.NumberFormat("en", {
5238
- style: "decimal",
5239
- signDisplay: "never",
5240
- minimumFractionDigits: 0,
5241
- maximumFractionDigits: 0
5242
- }), Wi = (e) => e > 0 ? $i(e, {
5243
- secondsDecimalDigits: 2,
5244
- unitCount: 2
5245
- }) : "N/A", Us = ({
5246
- isAuthenticated: e,
5247
- extraClass: t,
5248
- oledMode: r
5249
- }) => m("px-4", "flex-1 overflow-y-auto", e ? "pt-0" : "pt-10", t, {
5250
- "bg-slate-900/95 dark:bg-slate-900": r,
5251
- "bg-slate-900": !r
5252
- }), Hs = ({
5253
- extraClass: e,
5254
- fullScreen: t
5255
- } = {}) => m(
5256
- "flex flex-col",
5257
- "w-full md:mx-auto",
5258
- "sm:px-5 px-2",
5259
- "transition-all ease-in-out duration-500",
5260
- {
5261
- "md:max-w-4xl": !t,
5262
- "md:max-w-svw": t
5263
- },
5264
- e
5265
- ), ji = (e, t) => t === 1 ? e : `${e}s`, Qi = (e, t) => {
5266
- let r;
5267
- return (...s) => {
5268
- window.clearTimeout(r), r = window.setTimeout(() => e(...s), t);
5269
- };
5270
- }, Fs = () => !!window?.__VERSINI_DIGGIDY_TAURI__, Bs = () => window.innerWidth < 403, Ks = () => window.innerWidth >= 403 && window.innerWidth <= 1220, Ji = () => {
5271
- const e = ["iPhone Simulator", "iPhone"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = /iPhone/.test(navigator.userAgent), r = Bs(), s = navigator.maxTouchPoints > 1;
5272
- return e && t && r && s;
5273
- }, Yi = () => {
5274
- const e = ["iPad Simulator", "iPad"].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = Ks(), r = navigator.maxTouchPoints > 1;
5275
- return e && t && r;
5276
- }, Xi = () => window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0, Zi = (e) => {
5277
- const t = e.replace(/([A-Z])/g, " $1");
5278
- return t.charAt(0).toUpperCase() + t.slice(1);
5279
- }, eo = ({
5280
- autoClose: e = 3e3,
5281
- containerId: t,
5282
- position: r = "top-center",
5283
- hideProgressBar: s = !1,
5284
- closeOnClick: n = !1,
5285
- pauseOnHover: a = !0,
5286
- draggable: i = !0,
5287
- progress: o = void 0,
5288
- theme: l = "colored",
5289
- transition: f,
5290
- icon: d = !1
5291
- } = {}) => ({
5292
- autoClose: e,
5293
- containerId: t,
5294
- position: r,
5295
- hideProgressBar: s,
5296
- closeOnClick: n,
5297
- pauseOnHover: a,
5298
- draggable: i,
5299
- progress: o,
5300
- theme: l,
5301
- transition: f,
5302
- icon: d
5303
- }), to = (e, t) => t === "ready" && !!e && e.length > 0, ro = (e) => {
5304
- e ? document.documentElement.setAttribute(Ar, "true") : document.documentElement.removeAttribute(Ar);
5305
- }, Gl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, DOMAIN: $s, applyOledMode: ro, canEvaluateModels: to, convertCamelCaseToReadable: Zi, convertDDToDMS: Xt, convertLatitudeToDMS: Ui, convertLongitudeToDMS: Hi, debounce: Qi, durationFormatter: Wi, extractAverage: Gi, getCurrentGeoLocation: Fi, getLayoutPaddingClass: Hs, getMessageContaintWrapperClass: Us, isDev: Yt, isLastMessageFromRole: zi, isPWAMode: Xi, isProbablyMobile: Bs, isProbablyTablet: Ks, isProbablyiPad: Yi, isProbablyiPhone: Ji, isProd: Ds, isTauri: Fs, numberFormatter: qi, obfuscate: Bi, pluralize: ji, renderDataAsList: Vi, toastOptions: eo, unObfuscate: Ki }, Symbol.toStringTag, { value: "Module" }));
5306
5306
  /*!
5307
5307
  @versini/ui-icons v4.15.1
5308
5308
  © 2025 gizmette.com
@@ -5983,7 +5983,7 @@ const lo = () => {
5983
5983
  e.current.clear(), Ye--, Ye === 0 && uo();
5984
5984
  };
5985
5985
  }, []);
5986
- const t = N(() => {
5986
+ const t = M(() => {
5987
5987
  try {
5988
5988
  if (navigator?.vibrate) {
5989
5989
  navigator.vibrate(Ct);
@@ -5994,7 +5994,7 @@ const lo = () => {
5994
5994
  }
5995
5995
  }, []);
5996
5996
  return {
5997
- haptic: N((s = 1) => {
5997
+ haptic: M((s = 1) => {
5998
5998
  if (!(typeof window > "u") && !(s < 1)) {
5999
5999
  if (navigator?.vibrate && s > 1) {
6000
6000
  const n = [];
@@ -6082,11 +6082,11 @@ function Ru(e, t = [
6082
6082
  ]);
6083
6083
  }
6084
6084
  function Cu(e, t) {
6085
- const [r, s] = Y(!1), n = F(null), a = F(null), i = N(() => {
6085
+ const [r, s] = Y(!1), n = F(null), a = F(null), i = M(() => {
6086
6086
  s((l) => (!l && (!n.current || n.current === -1) && (n.current = window.setInterval(a.current, t)), !0));
6087
6087
  }, [
6088
6088
  t
6089
- ]), o = N(() => {
6089
+ ]), o = M(() => {
6090
6090
  s(!1), window.clearInterval(n.current || -1), n.current = -1;
6091
6091
  }, []);
6092
6092
  return R(() => (a.current = e, r && i(), o), [
@@ -6103,7 +6103,7 @@ function Cu(e, t) {
6103
6103
  function Ou() {
6104
6104
  const e = F(null), [t, r] = Y(!1);
6105
6105
  return {
6106
- ref: N((n) => {
6106
+ ref: M((n) => {
6107
6107
  typeof IntersectionObserver < "u" && (n && !e.current ? e.current = new IntersectionObserver((a) => r(a.some((i) => i.isIntersecting))) : e.current?.disconnect(), n ? e.current?.observe(n) : r(!1));
6108
6108
  }, []),
6109
6109
  inViewport: t
@@ -6113,7 +6113,7 @@ function yo() {
6113
6113
  const e = F(!1);
6114
6114
  return R(() => (e.current = !0, () => {
6115
6115
  e.current = !1;
6116
- }), []), N(() => e.current, []);
6116
+ }), []), M(() => e.current, []);
6117
6117
  }
6118
6118
  function Gs(e, t) {
6119
6119
  window.dispatchEvent(new StorageEvent("storage", {
@@ -6121,36 +6121,36 @@ function Gs(e, t) {
6121
6121
  newValue: t
6122
6122
  }));
6123
6123
  }
6124
- const Mr = (e, t) => {
6124
+ const Nr = (e, t) => {
6125
6125
  const r = JSON.stringify(typeof t == "function" ? t() : t);
6126
6126
  window.localStorage.setItem(e, r), Gs(e, r);
6127
6127
  }, mo = (e) => {
6128
6128
  window.localStorage.removeItem(e), Gs(e, null);
6129
- }, Nr = (e) => window.localStorage.getItem(e), go = (e) => (window.addEventListener("storage", e), () => window.removeEventListener("storage", e));
6129
+ }, Mr = (e) => window.localStorage.getItem(e), go = (e) => (window.addEventListener("storage", e), () => window.removeEventListener("storage", e));
6130
6130
  function ku({ key: e, initialValue: t }) {
6131
- const s = Kr(go, () => Nr(e)), n = N((o) => {
6131
+ const s = Kr(go, () => Mr(e)), n = M((o) => {
6132
6132
  try {
6133
6133
  const l = typeof o == "function" ? o(JSON.parse(s)) : o;
6134
- l == null ? mo(e) : Mr(e, l);
6134
+ l == null ? mo(e) : Nr(e, l);
6135
6135
  } catch (l) {
6136
6136
  console.warn(l);
6137
6137
  }
6138
6138
  }, [
6139
6139
  e,
6140
6140
  s
6141
- ]), a = N(() => {
6141
+ ]), a = M(() => {
6142
6142
  n(t);
6143
6143
  }, [
6144
6144
  t,
6145
6145
  n
6146
- ]), i = N(() => {
6146
+ ]), i = M(() => {
6147
6147
  n(null);
6148
6148
  }, [
6149
6149
  n
6150
6150
  ]);
6151
6151
  return R(() => {
6152
6152
  try {
6153
- Nr(e) === null && typeof t < "u" && Mr(e, t);
6153
+ Mr(e) === null && typeof t < "u" && Nr(e, t);
6154
6154
  } catch (o) {
6155
6155
  console.warn(o);
6156
6156
  }
@@ -6247,11 +6247,11 @@ function xr(e, t) {
6247
6247
  t
6248
6248
  ]);
6249
6249
  }
6250
- function Mu() {
6250
+ function Nu() {
6251
6251
  const [e, t] = Y({
6252
6252
  width: 0,
6253
6253
  height: 0
6254
- }), r = N(() => {
6254
+ }), r = M(() => {
6255
6255
  t({
6256
6256
  width: window.innerWidth || 0,
6257
6257
  height: window.innerHeight || 0
@@ -6259,11 +6259,11 @@ function Mu() {
6259
6259
  }, []);
6260
6260
  return xr("resize", r), xr("orientationchange", r), R(r, []), e;
6261
6261
  }
6262
- function Nu() {
6262
+ function Mu() {
6263
6263
  const [e, t] = Y({
6264
6264
  width: 0,
6265
6265
  height: 0
6266
- }), r = N(() => {
6266
+ }), r = M(() => {
6267
6267
  t({
6268
6268
  width: window?.visualViewport?.width || window.innerWidth || 0,
6269
6269
  height: window?.visualViewport?.height || window.innerHeight || 0
@@ -6610,7 +6610,7 @@ const Xe = {
6610
6610
  small: 16,
6611
6611
  medium: 24,
6612
6612
  large: 32
6613
- }, Mo = 2, No = 300, Ve = /* @__PURE__ */ Z.forwardRef(({ children: e, disabled: t = !1, mode: r = "system", focusMode: s = "system", fullWidth: n = !1, className: a, type: i = "button", raw: o = !1, noBorder: l = !1, "aria-label": f, label: d, size: h = "medium", labelRight: u, labelLeft: p, noBackground: y = !1, align: g = "center", radius: w = "large", variant: b = "secondary", iconClassName: x, animated: C = !1, ...J }, P) => {
6613
+ }, No = 2, Mo = 300, Ve = /* @__PURE__ */ Z.forwardRef(({ children: e, disabled: t = !1, mode: r = "system", focusMode: s = "system", fullWidth: n = !1, className: a, type: i = "button", raw: o = !1, noBorder: l = !1, "aria-label": f, label: d, size: h = "medium", labelRight: u, labelLeft: p, noBackground: y = !1, align: g = "center", radius: w = "large", variant: b = "secondary", iconClassName: x, animated: C = !1, ...J }, P) => {
6614
6614
  const re = tr({
6615
6615
  type: mt,
6616
6616
  mode: r,
@@ -6628,7 +6628,7 @@ const Xe = {
6628
6628
  radius: w,
6629
6629
  variant: b,
6630
6630
  animated: C
6631
- }), M = Oo({
6631
+ }), N = Oo({
6632
6632
  mode: r,
6633
6633
  raw: o,
6634
6634
  iconClassName: x,
@@ -6640,7 +6640,7 @@ const Xe = {
6640
6640
  _
6641
6641
  ]);
6642
6642
  return st(() => {
6643
- ye && ye.current && C && (v.current = _e.width + Po[h] + (l ? 0 : Mo), _.current && !_.current.style.width && (_.current.style.width = `${Xe[h]}px`));
6643
+ ye && ye.current && C && (v.current = _e.width + Po[h] + (l ? 0 : No), _.current && !_.current.style.width && (_.current.style.width = `${Xe[h]}px`));
6644
6644
  }, [
6645
6645
  _e,
6646
6646
  ye,
@@ -6652,7 +6652,7 @@ const Xe = {
6652
6652
  let ge = Xe[h];
6653
6653
  u && k && O.width > 0 ? ge = O.width + v.current : p && D && ee.width > 0 && (ge = ee.width + v.current), T.current && clearTimeout(T.current), ge !== parseInt(_.current.style.width || "0", 10) && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"), _.current.style.width = `${ge}px`, ge > Xe[h] && (T.current = setTimeout(() => {
6654
6654
  k.current && u && (k.current.style.opacity = "1"), D.current && p && (D.current.style.opacity = "1"), T.current = null;
6655
- }, No * 0.8))), ge === Xe[h] && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"));
6655
+ }, Mo * 0.8))), ge === Xe[h] && (k.current && (k.current.style.opacity = "0"), D.current && (D.current.style.opacity = "0"));
6656
6656
  }
6657
6657
  }, [
6658
6658
  O,
@@ -6684,7 +6684,7 @@ const Xe = {
6684
6684
  }),
6685
6685
  /* @__PURE__ */ c("span", {
6686
6686
  ref: ye,
6687
- className: M,
6687
+ className: N,
6688
6688
  children: e
6689
6689
  }),
6690
6690
  /* @__PURE__ */ c(Dr, {
@@ -7278,7 +7278,7 @@ const Ys = "av-text-input", Wo = "av-text-input-wrapper", kt = "av-text-input-he
7278
7278
  rightElement: w
7279
7279
  };
7280
7280
  }, rr = /* @__PURE__ */ Z.forwardRef(({ id: e, name: t, label: r, error: s = !1, raw: n = !1, className: a, inputClassName: i, mode: o = "system", focusMode: l = "system", disabled: f = !1, noBorder: d = !1, labelId: h, labelHidden: u = !1, type: p = "text", helperText: y = "", rightElement: g, rightElementClassName: w, size: b = "md", ...x }, C) => {
7281
- const [J, P] = tt(), [re, M] = Y(0), I = qs({
7281
+ const [J, P] = tt(), [re, N] = Y(0), I = qs({
7282
7282
  id: e,
7283
7283
  prefix: `${Ys}-`
7284
7284
  }), V = `${t} error, ${y}`, k = F(null), O = F(null), D = {
@@ -7315,7 +7315,7 @@ const Ys = "av-text-input", Wo = "av-text-input-wrapper", kt = "av-text-input-he
7315
7315
  rightElementClassName: w
7316
7316
  });
7317
7317
  return st(() => {
7318
- P && P.width && M(P.width + 18 + 10);
7318
+ P && P.width && N(P.width + 18 + 10);
7319
7319
  }, [
7320
7320
  P
7321
7321
  ]), st(() => {
@@ -7403,11 +7403,11 @@ const ec = 500, tc = 5e3, rc = 2e4, Xs = /* @__PURE__ */ Z.forwardRef(({ name: e
7403
7403
  politeness: "assertive",
7404
7404
  message: D ? "Characters hidden" : "Characters showing"
7405
7405
  }), n && n(D);
7406
- }, M = (O) => {
7406
+ }, N = (O) => {
7407
7407
  const { relatedTarget: D } = O;
7408
7408
  x.current?.parentElement?.contains(D) || l && l();
7409
7409
  }, I = (O) => {
7410
- P(), i && i(O), M(O);
7410
+ P(), i && i(O), N(O);
7411
7411
  }, V = (O) => {
7412
7412
  P(), o && o(O);
7413
7413
  }, k = (O) => {
@@ -7431,7 +7431,7 @@ const ec = 500, tc = 5e3, rc = 2e4, Xs = /* @__PURE__ */ Z.forwardRef(({ name: e
7431
7431
  ref: h,
7432
7432
  label: J,
7433
7433
  onClick: re,
7434
- onBlur: M,
7434
+ onBlur: N,
7435
7435
  disabled: t
7436
7436
  }),
7437
7437
  ...d
@@ -7446,7 +7446,7 @@ const ec = 500, tc = 5e3, rc = 2e4, Xs = /* @__PURE__ */ Z.forwardRef(({ name: e
7446
7446
  });
7447
7447
  });
7448
7448
  Xs.displayName = "TextInputMask";
7449
- const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in with a Passkey", xu = "Log out", ic = "Password", Lu = "Usage", Du = "Profile", $u = "Settings", Uu = "Chat history", Hu = "About", Fu = "How can I help you this morning?", Bu = "How can I help you this afternoon?", Ku = "How can I help you this evening?", Vu = "How can I help you tonight?", Gu = "How can I help you?", zu = "{{clipboard}}", $ = "Review important details.", qu = [
7449
+ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in with a Passkey", xu = "Log out", ic = "Password", Lu = "Usage", Du = "Profile", $u = "Settings", Uu = "Chat history", Hu = "About", Fu = "How can I help you this morning?", Bu = "How can I help you this afternoon?", Ku = "How can I help you this evening?", Vu = "How can I help you tonight?", Gu = "How can I help you today?", zu = "How can I help you?", qu = "{{clipboard}}", $ = "Review important details.", Wu = [
7450
7450
  `Sometimes, ${L} just makes stuff up. ${$}`,
7451
7451
  `${L} may invent facts on the fly. ${$}`,
7452
7452
  `${L} may be confidently wrong. ${$}`,
@@ -7467,17 +7467,17 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7467
7467
  `Sometimes, ${L} howls at the moon. ${$}`,
7468
7468
  `${L} may dig up imaginary bones. ${$}`,
7469
7469
  `${L} may sniff out nonsense. ${$}`
7470
- ], Wu = "Prompts are pre-filled menus available on the main screen, to help you quickly start requests. If you select the 'Private Chat' checkbox, the corresponding chat will not be saved. If you select the 'Clipboard Access' checkbox, your clipboard content (if any) will be provided to the request.", ju = "Default provider set to", Qu = "Chat successfully deleted!", Ju = "Chat successfully saved!", Yu = "Caching enabled. Assets are now stored locally.", Xu = "Caching disabled. Local asset cache cleared.", Zu = "av-sassy", ed = {
7470
+ ], ju = "Prompts are pre-filled menus available on the main screen, to help you quickly start requests. If you select the 'Private Chat' checkbox, the corresponding chat will not be saved. If you select the 'Clipboard Access' checkbox, your clipboard content (if any) will be provided to the request.", Qu = "Default provider set to", Ju = "Chat successfully deleted!", Yu = "Chat successfully saved!", Xu = "Caching enabled. Assets are now stored locally.", Zu = "Caching disabled. Local asset cache cleared.", ed = "av-sassy", td = {
7471
7471
  0: ["January", "February", "March"],
7472
7472
  3: ["April", "May", "June"],
7473
7473
  6: ["July", "August", "September"],
7474
7474
  9: ["October", "November", "December"]
7475
- }, td = {
7475
+ }, rd = {
7476
7476
  0: ["Jan", "Feb", "Mar"],
7477
7477
  3: ["Apr", "May", "Jun"],
7478
7478
  6: ["Jul", "Aug", "Sep"],
7479
7479
  9: ["Oct", "Nov", "Dec"]
7480
- }, rd = {
7480
+ }, sd = {
7481
7481
  PREFERENCES: {
7482
7482
  TITLE: "User profile",
7483
7483
  USERNAME: "Username",
@@ -7532,7 +7532,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7532
7532
  }, oc = {
7533
7533
  ASC: "asc",
7534
7534
  DESC: "desc"
7535
- }, sd = "FOOTER_BOTTOM", cc = "FOOTER_TOP", lc = "APP_SET_FOOTER_POSITION", uc = "APP_SET_FOOTER_HEIGHT", dc = "APP_SET_OLED_MODE", hc = "APP_SET_FULL_SCREEN", fc = "APP_SET_THEME_MODE", pc = "APP_SET_THEME_PALETTE", nd = (e, t) => {
7535
+ }, nd = "FOOTER_BOTTOM", cc = "FOOTER_TOP", lc = "APP_SET_FOOTER_POSITION", uc = "APP_SET_FOOTER_HEIGHT", dc = "APP_SET_OLED_MODE", hc = "APP_SET_FULL_SCREEN", fc = "APP_SET_THEME_MODE", pc = "APP_SET_THEME_PALETTE", ad = (e, t) => {
7536
7536
  switch (t.type) {
7537
7537
  case lc:
7538
7538
  return {
@@ -7568,7 +7568,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7568
7568
  default:
7569
7569
  return e;
7570
7570
  }
7571
- }, ad = Z.createContext({
7571
+ }, id = Z.createContext({
7572
7572
  state: {
7573
7573
  searchString: "",
7574
7574
  sortedCell: "",
@@ -7576,13 +7576,13 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7576
7576
  },
7577
7577
  dispatch: () => {
7578
7578
  }
7579
- }), id = Z.createContext({
7579
+ }), od = Z.createContext({
7580
7580
  state: { prompt: "", lastTriggeredTimestamp: 0 },
7581
7581
  dispatch: () => {
7582
7582
  }
7583
- }), od = Z.createContext({
7583
+ }), cd = Z.createContext({
7584
7584
  state: {
7585
- provider: vi,
7585
+ provider: Qi,
7586
7586
  privateChat: !1,
7587
7587
  reasoning: !1,
7588
7588
  streaming: !1,
@@ -7607,7 +7607,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7607
7607
  footerOffset: 0,
7608
7608
  oledMode: !1,
7609
7609
  fullScreen: !1,
7610
- themeMode: wi
7610
+ themeMode: qi
7611
7611
  },
7612
7612
  dispatch: () => {
7613
7613
  }
@@ -7625,10 +7625,10 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7625
7625
  }, [t, e]);
7626
7626
  return R(() => {
7627
7627
  r?.cssVariables && mc(r.cssVariables);
7628
- }, [r]), [N(
7628
+ }, [r]), [M(
7629
7629
  (n) => r?.colors[n] || "",
7630
7630
  [r]
7631
- ), Si];
7631
+ ), Wi];
7632
7632
  }, Ec = ({
7633
7633
  className: e,
7634
7634
  isCapabilitiesSuccess: t,
@@ -7679,11 +7679,11 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7679
7679
  }, 500);
7680
7680
  }), R(() => {
7681
7681
  t && i(t);
7682
- }, [t]), /* @__PURE__ */ E("main", { className: Hs({ extraClass: "mt-5" }), children: [
7682
+ }, [t]), /* @__PURE__ */ E("main", { className: Rs({ extraClass: "mt-5" }), children: [
7683
7683
  /* @__PURE__ */ c(
7684
7684
  "div",
7685
7685
  {
7686
- className: Us({
7686
+ className: As({
7687
7687
  extraClass: "rounded-md pb-10"
7688
7688
  }),
7689
7689
  children: /* @__PURE__ */ c(Ec, {})
@@ -7756,7 +7756,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7756
7756
  children: nc
7757
7757
  }
7758
7758
  ) }),
7759
- !Fs() && /* @__PURE__ */ E(Fr, { children: [
7759
+ !Cs() && /* @__PURE__ */ E(Fr, { children: [
7760
7760
  /* @__PURE__ */ c(Se, { span: 12, children: /* @__PURE__ */ c("div", { className: "text-center text-copy-light mt-2 mb-2", children: "or" }) }),
7761
7761
  /* @__PURE__ */ c(Se, { span: 12, children: /* @__PURE__ */ c(
7762
7762
  Ve,
@@ -7776,14 +7776,14 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7776
7776
  ] });
7777
7777
  }, Sc = new URL(document.location.href).searchParams, Ur = !!Sc.get("debug") || !1, bc = tn(() => import(
7778
7778
  /* webpackChunkName: "LazyApp" */
7779
- "./App.Dv-cuxsd.js"
7779
+ "./App.CpTC12YE.js"
7780
7780
  ).then((e) => e.App)), vc = new _n(), Hr = ({
7781
7781
  isComponent: e,
7782
7782
  headerHeight: t
7783
7783
  }) => {
7784
7784
  const { isAuthenticated: r, isLoading: s, user: n, getAccessToken: a } = Ss();
7785
7785
  return s ? /* @__PURE__ */ c("div", {}) : r ? /* @__PURE__ */ c(en, { fallback: /* @__PURE__ */ c("div", {}), children: /* @__PURE__ */ c(An, { client: vc, children: /* @__PURE__ */ c(
7786
- Oi,
7786
+ ro,
7787
7787
  {
7788
7788
  user: n?.username,
7789
7789
  getAccessToken: a,
@@ -7793,12 +7793,12 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7793
7793
  }, Tc = ({
7794
7794
  isComponent: e = !1,
7795
7795
  headerHeight: t = 0,
7796
- domain: r = $s
7796
+ domain: r = _s
7797
7797
  }) => (R(() => {
7798
7798
  e || Ts().catch((s) => {
7799
7799
  console.error("[SW] Failed to register service worker:", s);
7800
7800
  });
7801
- }, [e]), Yt ? /* @__PURE__ */ c(
7801
+ }, [e]), Qt ? /* @__PURE__ */ c(
7802
7802
  _r,
7803
7803
  {
7804
7804
  clientId: Rr,
@@ -7807,7 +7807,7 @@ const sc = "ASK! ME! ANYTHING!", nc = "Log in with a password", ac = "Log in wit
7807
7807
  endpoint: process.env.PUBLIC_AUTH_SERVER_URL,
7808
7808
  children: /* @__PURE__ */ c(Hr, { isComponent: e, headerHeight: t })
7809
7809
  }
7810
- ) : /* @__PURE__ */ c(_r, { clientId: Rr, domain: r, debug: Ur, children: /* @__PURE__ */ c(Hr, { isComponent: e, headerHeight: t }) })), cd = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ c(
7810
+ ) : /* @__PURE__ */ c(_r, { clientId: Rr, domain: r, debug: Ur, children: /* @__PURE__ */ c(Hr, { isComponent: e, headerHeight: t }) })), ld = ({ domain: e, headerHeight: t }) => /* @__PURE__ */ c(
7811
7811
  Tc,
7812
7812
  {
7813
7813
  isComponent: !0,
@@ -7821,7 +7821,7 @@ export {
7821
7821
  Dc as ACTION_SEARCH,
7822
7822
  $c as ACTION_SORT,
7823
7823
  Uc as ACTION_TOGGLE_PROMPT,
7824
- Zu as APP_CLASSNAME,
7824
+ ed as APP_CLASSNAME,
7825
7825
  uc as APP_SET_FOOTER_HEIGHT,
7826
7826
  lc as APP_SET_FOOTER_POSITION,
7827
7827
  hc as APP_SET_FULL_SCREEN,
@@ -7829,24 +7829,24 @@ export {
7829
7829
  fc as APP_SET_THEME_MODE,
7830
7830
  pc as APP_SET_THEME_PALETTE,
7831
7831
  yc as AppContext,
7832
- El as B,
7832
+ wl as B,
7833
7833
  Ws as Button,
7834
7834
  xo as ButtonCopy,
7835
7835
  Ve as ButtonIcon,
7836
7836
  Do as ButtonSort_private,
7837
- rd as CARDS,
7838
- zu as CLIPBOARD_PROMPT,
7837
+ sd as CARDS,
7838
+ qu as CLIPBOARD_PROMPT,
7839
7839
  Ho as Card,
7840
- od as ChatContext,
7840
+ cd as ChatContext,
7841
7841
  rl as DEFAULT_ICON_ACTION_SIZE,
7842
7842
  Lc as ERROR_MESSAGE,
7843
- wl as F,
7844
- sd as FOOTER_BOTTOM,
7845
- qu as FOOTER_DISCLAIMERS,
7843
+ Sl as F,
7844
+ nd as FOOTER_BOTTOM,
7845
+ Wu as FOOTER_DISCLAIMERS,
7846
7846
  cc as FOOTER_TOP,
7847
- ml as H,
7847
+ gl as H,
7848
7848
  Uu as HISTORY_TITLE,
7849
- ad as HistoryContext,
7849
+ id as HistoryContext,
7850
7850
  Zc as INFINITE_SCROLL_LIMIT,
7851
7851
  Xc as INFINITE_SCROLL_THRESHOLD,
7852
7852
  ol as INPUT_BOTTOM_OFFSET,
@@ -7854,10 +7854,11 @@ export {
7854
7854
  ll as INPUT_BOTTOM_OFFSET_IPAD,
7855
7855
  cl as INPUT_BOTTOM_OFFSET_IPHONE,
7856
7856
  Bu as INPUT_PLACEHOLDER_TEXT_AFTERNOON,
7857
- Gu as INPUT_PLACEHOLDER_TEXT_DEFAULT,
7857
+ zu as INPUT_PLACEHOLDER_TEXT_DEFAULT,
7858
7858
  Ku as INPUT_PLACEHOLDER_TEXT_EVENING,
7859
7859
  Fu as INPUT_PLACEHOLDER_TEXT_MORNING,
7860
7860
  Vu as INPUT_PLACEHOLDER_TEXT_NIGHT,
7861
+ Gu as INPUT_PLACEHOLDER_TEXT_TODAY,
7861
7862
  zl as IconAddLight,
7862
7863
  ql as IconAnthropic,
7863
7864
  Wl as IconBack,
@@ -7911,83 +7912,83 @@ export {
7911
7912
  xu as LOG_OUT,
7912
7913
  Js as LiveRegion,
7913
7914
  Ec as Logo,
7914
- yl as O,
7915
+ ml as O,
7915
7916
  Du as PROFILE_TITLE,
7916
- Wu as PROMPTS_DESCRIPTION,
7917
+ ju as PROMPTS_DESCRIPTION,
7917
7918
  el as PROMPT_CLASSNAME,
7918
7919
  tl as PROMPT_EDITABLE_AREA_CLASSNAME,
7919
- id as PromptsContext,
7920
- Jt as R,
7920
+ od as PromptsContext,
7921
+ Xt as R,
7921
7922
  K as SERVICE_TYPES,
7922
7923
  $u as SETTINGS_TITLE,
7923
- cd as SassySaint,
7924
- Xu as TOAST_CACHE_DISABLED,
7925
- Yu as TOAST_CACHE_ENABLED,
7926
- Qu as TOAST_CHAT_DELETED,
7927
- Ju as TOAST_CHAT_SAVED,
7928
- ju as TOAST_PROVIDER_CHANGED,
7929
- ed as TRIMESTERS,
7930
- td as TRIMESTERS_SHORT,
7924
+ ld as SassySaint,
7925
+ Zu as TOAST_CACHE_DISABLED,
7926
+ Xu as TOAST_CACHE_ENABLED,
7927
+ Ju as TOAST_CHAT_DELETED,
7928
+ Yu as TOAST_CHAT_SAVED,
7929
+ Qu as TOAST_PROVIDER_CHANGED,
7930
+ td as TRIMESTERS,
7931
+ rd as TRIMESTERS_SHORT,
7931
7932
  rr as TextInput,
7932
7933
  nl as UI_BUTTON_SCROLL_BUFFER,
7933
7934
  al as UI_DEFAULT_MAIN_HEIGHT,
7934
7935
  il as UI_DEFAULT_MAIN_HEIGHT_IPHONE,
7935
7936
  sl as UI_FOOTER_BUFFER,
7936
7937
  Lu as USAGE_TITLE,
7937
- bl as X,
7938
- gl as Y,
7939
- vl as Z,
7940
- Qt as _,
7941
- nd as appReducer,
7942
- ro as applyOledMode,
7943
- to as canEvaluateModels,
7944
- Zi as convertCamelCaseToReadable,
7945
- Qi as debounce,
7946
- wi as e,
7938
+ vl as X,
7939
+ El as Y,
7940
+ Tl as Z,
7941
+ Yt as _,
7942
+ ad as appReducer,
7943
+ zi as applyOledMode,
7944
+ Gi as canEvaluateModels,
7945
+ Ki as convertCamelCaseToReadable,
7946
+ Ui as debounce,
7947
+ qi as e,
7947
7948
  oc as e$1,
7948
- Il as ee,
7949
+ _l as ee,
7949
7950
  hl as getCacheInfo,
7950
- Fi as getCurrentGeoLocation,
7951
+ Oi as getCurrentGeoLocation,
7951
7952
  Au as getHotkeyHandler,
7952
- Hs as getLayoutPaddingClass,
7953
- Us as getMessageContaintWrapperClass,
7953
+ Rs as getLayoutPaddingClass,
7954
+ As as getMessageContaintWrapperClass,
7954
7955
  le as graphQLRequest,
7955
7956
  dl as handleServiceWorkerToggle,
7956
- fl as i,
7957
- Yt as isDev,
7958
- Xi as isPWAMode,
7959
- Bs as isProbablyMobile,
7960
- Yi as isProbablyiPad,
7961
- Ji as isProbablyiPhone,
7957
+ pl as i,
7958
+ Qt as isDev,
7959
+ Bi as isPWAMode,
7960
+ Os as isProbablyMobile,
7961
+ Fi as isProbablyiPad,
7962
+ Hi as isProbablyiPhone,
7962
7963
  Ht as isServiceWorkerEnabled,
7963
- Fs as isTauri,
7964
+ Cs as isTauri,
7964
7965
  $e as it,
7965
- Sl as j,
7966
+ bl as j,
7966
7967
  Se as j$1,
7967
7968
  L as k,
7968
7969
  yt as l,
7969
7970
  Ss as n,
7970
- qi as numberFormatter,
7971
- pl as o,
7972
- Bi as obfuscate,
7973
- ji as pluralize,
7974
- Tl as q,
7975
- Vi as renderDataAsList,
7976
- Ri as serverUrl,
7977
- _l as setNewProvider,
7978
- Al as setUserPlan,
7979
- Ki as unObfuscate,
7980
- Cl as useChangelogs,
7981
- Pl as useChat,
7982
- kl as useChatsHistory,
7983
- Ll as useChatsUsage,
7971
+ Li as numberFormatter,
7972
+ yl as o,
7973
+ ki as obfuscate,
7974
+ $i as pluralize,
7975
+ Il as q,
7976
+ Ni as renderDataAsList,
7977
+ eo as serverUrl,
7978
+ Al as setNewProvider,
7979
+ Rl as setUserPlan,
7980
+ Pi as unObfuscate,
7981
+ Ol as useChangelogs,
7982
+ Nl as useChat,
7983
+ Pl as useChatsHistory,
7984
+ Dl as useChatsUsage,
7984
7985
  Iu as useClickOutside,
7985
- Hl as useDeleteAllActiveMemories,
7986
- Fl as useDeleteAllExpiredMemories,
7987
- Nl as useDeleteChat,
7988
- Ul as useDeleteMemory,
7989
- Vl as useEntitlements,
7990
- Bl as useExpiredMemories,
7986
+ Fl as useDeleteAllActiveMemories,
7987
+ Bl as useDeleteAllExpiredMemories,
7988
+ xl as useDeleteChat,
7989
+ Hl as useDeleteMemory,
7990
+ Gl as useEntitlements,
7991
+ Kl as useExpiredMemories,
7991
7992
  _u as useHaptic,
7992
7993
  Ru as useHotkeys,
7993
7994
  Ou as useInViewport,
@@ -7996,19 +7997,19 @@ export {
7996
7997
  zs as useMergeRefs,
7997
7998
  ce as useQueryClient,
7998
7999
  tt as useResizeObserver,
7999
- Kl as useRestoreMemory,
8000
+ Vl as useRestoreMemory,
8000
8001
  Ml as useSaveChat,
8001
- Rl as useServerCapabilities,
8002
+ Cl as useServerCapabilities,
8002
8003
  gc as useTheme,
8003
- xl as useToggleFavoriteChat,
8004
+ Ll as useToggleFavoriteChat,
8004
8005
  Pu as useUncontrolled,
8005
8006
  qs as useUniqueId,
8006
- $l as useUpdateMemory,
8007
- Ol as useUserChatStats,
8008
- Dl as useUserMemories,
8009
- Ci as useUserPreferences,
8010
- Mu as useViewportSize,
8011
- Nu as useVisualViewportSize,
8012
- Gl as utilities,
8013
- Ii as z
8007
+ Ul as useUpdateMemory,
8008
+ kl as useUserChatStats,
8009
+ $l as useUserMemories,
8010
+ to as useUserPreferences,
8011
+ Nu as useViewportSize,
8012
+ Mu as useVisualViewportSize,
8013
+ fl as utilities,
8014
+ Yi as z
8014
8015
  };