@versini/sassysaint 8.106.0 → 8.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/chunks/{AboutChangelog.s7GI6rKD.js → AboutChangelog.SjeBKoP3.js} +2 -2
  2. package/dist/chunks/{AboutEntry.C1pRBz7A.js → AboutEntry.Dx70PfSW.js} +7 -7
  3. package/dist/chunks/{App.BeuOuicv.js → App.CRK1D8_p.js} +30 -32
  4. package/dist/chunks/Bubble.BfOIcmYO.js +183 -0
  5. package/dist/chunks/{Chart.C88S0q6n.js → Chart.BDkv6_qF.js} +2 -2
  6. package/dist/chunks/{ChatBubbleAssistant.nUmdAzup.js → ChatBubbleAssistant.BXp6-ZoJ.js} +462 -430
  7. package/dist/chunks/{ChatBubbleUser.BUuPXYPp.js → ChatBubbleUser.BcziRDGl.js} +3 -3
  8. package/dist/chunks/{ChatHistoryTable.BIjlz3xY.js → ChatHistoryTable.Dh8i_P43.js} +51 -51
  9. package/dist/chunks/{HistoryEntry.B-078Lxf.js → HistoryEntry.CRqDuJuI.js} +29 -28
  10. package/dist/chunks/{LoginEntry.B2RvYN-T.js → LoginEntry.MulnQ2ox.js} +4 -4
  11. package/dist/chunks/{LogoEntry.1MaZ0gB8.js → LogoEntry.DYecYZ2Y.js} +23 -23
  12. package/dist/chunks/{MemoriesEntry.DpL1iLZb.js → MemoriesEntry.agins9xZ.js} +39 -39
  13. package/dist/chunks/{ProfileEntry.T8wth0Is.js → ProfileEntry.DcvJm9lG.js} +4 -4
  14. package/dist/chunks/{SettingsEntry.CjOxw1Yx.js → SettingsEntry.CjUNaeTF.js} +34 -34
  15. package/dist/chunks/{Table.Bgj47jSZ.js → Table.CAFliCT0.js} +1 -1
  16. package/dist/chunks/{UsageEntry.B4I_GNgi.js → UsageEntry._XHUaG2y.js} +5 -5
  17. package/dist/chunks/{index.BBcCFGIa.js → index.BxFuyW85.js} +1 -1
  18. package/dist/chunks/{index.BV0ooasI.js → index.CGRIKPif.js} +1 -1
  19. package/dist/chunks/{index.DlzoJhEl.js → index.COrehOGK.js} +197 -183
  20. package/dist/chunks/{index.CzK9z_fW.js → index.COvsBKt7.js} +2 -2
  21. package/dist/chunks/{index.B3dMRcN0.js → index.ClDN1LM3.js} +3 -3
  22. package/dist/chunks/{index.C09CfrST.js → index.Cvhs29M0.js} +1 -1
  23. package/dist/chunks/{index.DbqNbLqk.js → index.D2r8OZJ8.js} +1 -1
  24. package/dist/chunks/{index.DaJTH3fN.js → index.DnIWTzcM.js} +1 -1
  25. package/dist/chunks/{index.lXY3xvX_.js → index.mPjUzcCU.js} +1 -1
  26. package/dist/chunks/{useMarkdown.BNKEX2AA.js → useMarkdown.B8MP9bLa.js} +7 -7
  27. package/dist/components/SassySaint/SassySaint.js +1 -1
  28. package/dist/index.js +4 -4
  29. package/dist/style.css +2 -2
  30. package/package.json +3 -3
  31. package/dist/chunks/index.B-dNm2To.js +0 -153
@@ -1,8 +1,8 @@
1
1
  import { jsx as i, Fragment as S, jsxs as C } from "react/jsx-runtime";
2
- import { Button as _ } from "./LogoEntry.1MaZ0gB8.js";
2
+ import { Button as _ } from "./LogoEntry.DYecYZ2Y.js";
3
3
  import { useState as h, useMemo as m, isValidElement as T, useEffect as B } from "react";
4
- import { useMarkdown as b } from "./useMarkdown.BNKEX2AA.js";
5
- import { AsyncBubble as k } from "./App.BeuOuicv.js";
4
+ import { useMarkdown as b } from "./useMarkdown.B8MP9bLa.js";
5
+ import { AsyncBubble as k } from "./App.CRK1D8_p.js";
6
6
  /*!
7
7
  @versini/ui-truncate v6.1.8
8
8
  © 2025 gizmette.com
@@ -1,10 +1,10 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import { y as w, v as M, INFINITE_SCROLL_THRESHOLD as L } from "./index.DlzoJhEl.js";
3
- import { IconCloseLight as U, CARDS as D, ButtonIcon as C, IconRestore as z, IconStarInCircle as B, IconStarInCircleLight as $, IconDelete as Y } from "./LogoEntry.1MaZ0gB8.js";
2
+ import { y as w, v as y, INFINITE_SCROLL_THRESHOLD as L } from "./index.COrehOGK.js";
3
+ import { IconCloseLight as U, CARDS as D, ButtonIcon as C, IconRestore as z, IconStarInCircle as B, IconStarInCircleLight as $, IconDelete as Y } from "./LogoEntry.DYecYZ2Y.js";
4
4
  import { useState as K, Fragment as V } from "react";
5
5
  import i from "clsx";
6
- import { H as W, F as j, q as N, Y as F, O as o, J as k } from "./Table.Bgj47jSZ.js";
7
- import { pluralize as I, ResponsiveTooltip as S, numberFormatter as G, isProbablyMobile as H } from "./App.BeuOuicv.js";
6
+ import { H as W, F as j, q as N, Y as F, O as n, J as k } from "./Table.CAFliCT0.js";
7
+ import { pluralize as I, ResponsiveTooltip as S, numberFormatter as G, isProbablyMobile as H } from "./App.CRK1D8_p.js";
8
8
  /*!
9
9
  @versini/ui-pill v5.2.4
10
10
  © 2025 gizmette.com
@@ -46,10 +46,10 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
46
46
  }))
47
47
  };
48
48
  }, O = ({ label: t, className: a, variant: l = "information", description: m, onClose: d }) => {
49
- const [h, p] = K(!0), g = (f) => {
49
+ const [x, p] = K(!0), g = (f) => {
50
50
  d && (d(f), f.defaultPrevented || p(!1));
51
51
  };
52
- if (!h)
52
+ if (!x)
53
53
  return null;
54
54
  const u = X({
55
55
  className: a,
@@ -77,43 +77,43 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
77
77
  })
78
78
  ]
79
79
  });
80
- }, n = {
80
+ }, o = {
81
81
  ROW: "row",
82
82
  TIMESTAMP: w,
83
83
  SUMMARY: "summary",
84
- TOKEN_USAGE: M,
84
+ TOKEN_USAGE: y,
85
85
  ACTIONS: "actions"
86
86
  }, Z = [
87
- n.ROW,
88
- n.TIMESTAMP,
89
- n.SUMMARY,
90
- n.ACTIONS
87
+ o.ROW,
88
+ o.TIMESTAMP,
89
+ o.SUMMARY,
90
+ o.ACTIONS
91
91
  ], ee = [
92
- n.ROW,
93
- n.SUMMARY,
94
- n.TIMESTAMP,
95
- n.TOKEN_USAGE,
96
- n.ACTIONS
92
+ o.ROW,
93
+ o.SUMMARY,
94
+ o.TIMESTAMP,
95
+ o.TOKEN_USAGE,
96
+ o.ACTIONS
97
97
  ], me = ({
98
98
  filteredHistory: t,
99
99
  historyState: a,
100
100
  lastEntryToLoad: l,
101
101
  onClickSort: m,
102
102
  onClickRestore: d,
103
- onClickDelete: h,
103
+ onClickDelete: x,
104
104
  onClickFavorite: p,
105
105
  infinityScrollMarkerRef: g,
106
106
  isLoading: u = !1,
107
107
  totalHistoryCount: f,
108
108
  isFiltered: R = !1,
109
- isSearchActive: T = !1
109
+ isSearchActive: M = !1
110
110
  }) => {
111
- const y = H() ? Z : ee, E = (r) => {
111
+ const T = H() ? Z : ee, E = (r) => {
112
112
  switch (r) {
113
- case n.ROW:
114
- return /* @__PURE__ */ e(o, { className: "sr-only", children: "Row" }, r);
115
- case n.TIMESTAMP:
116
- return T ? /* @__PURE__ */ e(o, { className: "text-xs sm:text-sm", children: "Date" }, r) : /* @__PURE__ */ e(
113
+ case o.ROW:
114
+ return /* @__PURE__ */ e(n, { className: "sr-only", children: "Row" }, r);
115
+ case o.TIMESTAMP:
116
+ return M ? /* @__PURE__ */ e(n, { className: "text-xs sm:text-sm", children: "Date" }, r) : /* @__PURE__ */ e(
117
117
  k,
118
118
  {
119
119
  focusMode: "system",
@@ -129,37 +129,37 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
129
129
  },
130
130
  r
131
131
  );
132
- case n.SUMMARY:
133
- return /* @__PURE__ */ e(o, { className: "text-xs sm:text-sm", children: "Summary" }, r);
134
- case n.TOKEN_USAGE:
135
- return T ? /* @__PURE__ */ e(o, { className: "text-xs sm:text-sm text-right", children: "Tokens" }, r) : /* @__PURE__ */ e(
132
+ case o.SUMMARY:
133
+ return /* @__PURE__ */ e(n, { className: "text-xs sm:text-sm", children: "Summary" }, r);
134
+ case o.TOKEN_USAGE:
135
+ return M ? /* @__PURE__ */ e(n, { className: "text-xs sm:text-sm text-right", children: "Tokens" }, r) : /* @__PURE__ */ e(
136
136
  k,
137
137
  {
138
138
  focusMode: "system",
139
139
  buttonClassName: "text-xs sm:text-sm",
140
- cellId: M,
140
+ cellId: y,
141
141
  align: "right",
142
142
  sortDirection: a.sortDirection,
143
143
  sortedCell: a.sortedCell,
144
144
  onClick: () => {
145
- m(M);
145
+ m(y);
146
146
  },
147
147
  children: "Tokens"
148
148
  },
149
149
  r
150
150
  );
151
- case n.ACTIONS:
152
- return /* @__PURE__ */ e(o, { className: "text-xs sm:text-sm text-right", children: "Actions" }, r);
151
+ case o.ACTIONS:
152
+ return /* @__PURE__ */ e(n, { className: "text-xs sm:text-sm text-right", children: "Actions" }, r);
153
153
  default:
154
154
  return null;
155
155
  }
156
156
  }, _ = (r, s, b) => {
157
157
  switch (r) {
158
- case n.ROW:
159
- return /* @__PURE__ */ e(o, { children: b + 1 }, r);
160
- case n.TIMESTAMP:
158
+ case o.ROW:
159
+ return /* @__PURE__ */ e(n, { children: b + 1 }, r);
160
+ case o.TIMESTAMP:
161
161
  return /* @__PURE__ */ e(
162
- o,
162
+ n,
163
163
  {
164
164
  className: i(
165
165
  "dark:text-copy-medium",
@@ -169,10 +169,10 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
169
169
  },
170
170
  r
171
171
  );
172
- case n.SUMMARY: {
173
- const x = s.similarityScore !== void 0 && s.similarityScore !== null ? Math.round(s.similarityScore * 100) : null, v = x !== null && x < 40 ? "warning" : "success", P = s.keywordMatch === !0;
172
+ case o.SUMMARY: {
173
+ const h = s.similarityScore !== void 0 && s.similarityScore !== null ? Math.round(s.similarityScore * 100) : null, v = h !== null && h < 40 ? "warning" : "success", P = s.keywordMatch === !0;
174
174
  return /* @__PURE__ */ e(
175
- o,
175
+ n,
176
176
  {
177
177
  className: i(
178
178
  "dark:text-white",
@@ -183,11 +183,11 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
183
183
  },
184
184
  children: /* @__PURE__ */ c("div", { className: "flex flex-col gap-1", children: [
185
185
  /* @__PURE__ */ c("div", { className: "flex flex-wrap gap-1", children: [
186
- x !== null && /* @__PURE__ */ e(
186
+ h !== null && /* @__PURE__ */ e(
187
187
  O,
188
188
  {
189
189
  variant: v,
190
- label: `${x}% semantic`
190
+ label: `${h}% semantic`
191
191
  }
192
192
  ),
193
193
  P && /* @__PURE__ */ e(O, { variant: "information", label: "keyword" })
@@ -198,9 +198,9 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
198
198
  r
199
199
  );
200
200
  }
201
- case n.TOKEN_USAGE:
201
+ case o.TOKEN_USAGE:
202
202
  return /* @__PURE__ */ e(
203
- o,
203
+ n,
204
204
  {
205
205
  className: i("dark:text-copy-medium", "text-xs sm:text-sm"),
206
206
  align: "right",
@@ -208,9 +208,9 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
208
208
  },
209
209
  r
210
210
  );
211
- case n.ACTIONS:
211
+ case o.ACTIONS:
212
212
  return /* @__PURE__ */ e(
213
- o,
213
+ n,
214
214
  {
215
215
  className: "border-l border-table-light dark:border-table-dark",
216
216
  children: /* @__PURE__ */ c("div", { className: "flex flex-col items-end sm:flex-row gap-2", children: [
@@ -225,7 +225,7 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
225
225
  noBorder: !0,
226
226
  label: "Restore chat",
227
227
  variant: "primary",
228
- iconClassName: "text-green-800 dark:text-green-500",
228
+ iconClassName: "text-copy-success dark:text-copy-success-light",
229
229
  onClick: async () => {
230
230
  await d(s);
231
231
  },
@@ -264,9 +264,9 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
264
264
  noBorder: !0,
265
265
  label: "Delete chat",
266
266
  variant: "primary",
267
- iconClassName: "text-red-700 dark:text-red-500",
267
+ iconClassName: "text-copy-error-dark dark:!text-copy-error-light",
268
268
  onClick: () => {
269
- h(s);
269
+ x(s);
270
270
  },
271
271
  children: /* @__PURE__ */ e(Y, { size: "size-3", monotone: !0 })
272
272
  }
@@ -293,10 +293,10 @@ const q = "av-pill", J = ({ variant: t }) => i("rounded-xs border", {
293
293
  })(),
294
294
  disabled: u && t.length > 0,
295
295
  children: [
296
- /* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(N, { children: y.map((r) => E(r)) }) }),
297
- /* @__PURE__ */ e(F, { children: u && t.length === 0 ? /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(o, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : t.slice(0, l).map((r, s) => r?.summary ? /* @__PURE__ */ c(V, { children: [
296
+ /* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(N, { children: T.map((r) => E(r)) }) }),
297
+ /* @__PURE__ */ e(F, { children: u && t.length === 0 ? /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(n, { colSpan: 1e3, children: /* @__PURE__ */ e("div", { children: "Loading..." }) }) }) : t.slice(0, l).map((r, s) => r?.summary ? /* @__PURE__ */ c(V, { children: [
298
298
  s === l - L && /* @__PURE__ */ e("tr", { ref: g }),
299
- /* @__PURE__ */ e(N, { children: y.map(
299
+ /* @__PURE__ */ e(N, { children: T.map(
300
300
  (b) => _(b, r, s)
301
301
  ) })
302
302
  ] }, `${D.HISTORY.TITLE}-${r.id}-${s}`) : null) })
@@ -1,15 +1,15 @@
1
- import { jsxs as i, Fragment as ae, jsx as t } from "react/jsx-runtime";
2
- import { n as K, INFINITE_SCROLL_LIMIT as U, INFINITE_SCROLL_THRESHOLD as re, LOCAL_STORAGE_PREFIX as u, LOCAL_STORAGE_SORT_TIMESTAMP as se, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ne, y as I, LOCAL_STORAGE_CHAT_ID as ie, useDeleteChat as ce, useToggleFavoriteChat as le, graphQLRequest as de, SERVICE_TYPES as he, ACTION_SORT as me, v as ue, LOCAL_STORAGE_SEARCH as Ce, LOCAL_STORAGE_FAVORITES_ONLY as Se, LOCAL_STORAGE_KEYWORD_MATCH_ALL as fe, useChatsHistory as ye, useUserChatStats as pe, ACTION_SEARCH as Te } from "./index.DlzoJhEl.js";
3
- import { HistoryContext as Y, ChatContext as ge, e as m, APP_CLASSNAME as Ae, TOAST_CHAT_DELETED as Ee, HISTORY_TITLE as _e, IconSearch as Le, Button as De, L as Oe, j as ke } from "./LogoEntry.1MaZ0gB8.js";
4
- import { Card as ve } from "./index.lXY3xvX_.js";
5
- import { useAiChat as Re, useLocalStorage as C, ConfirmationPanel as be, LazyToastContainerWrapper as Ie, showErrorToast as xe, v4 as we, CHAT_RESET as He, CHAT_SET_ATTACHMENTS as Ne, CHAT_SET_STATUS as Fe, Panel as Me, debounce as Ge, Toggle as B, CancelButton as Ve } from "./App.BeuOuicv.js";
6
- import { TextInput as ze } from "./index.DbqNbLqk.js";
1
+ import { jsxs as n, Fragment as ae, jsx as t } from "react/jsx-runtime";
2
+ import { n as K, INFINITE_SCROLL_LIMIT as U, INFINITE_SCROLL_THRESHOLD as re, LOCAL_STORAGE_PREFIX as u, LOCAL_STORAGE_SORT_TIMESTAMP as se, LOCAL_STORAGE_SORT_TOKEN_USAGE as oe, LOCAL_STORAGE_SORT as ie, y as I, LOCAL_STORAGE_CHAT_ID as ne, useDeleteChat as ce, useToggleFavoriteChat as le, graphQLRequest as de, SERVICE_TYPES as he, ACTION_SORT as me, v as ue, LOCAL_STORAGE_SEARCH as Ce, LOCAL_STORAGE_FAVORITES_ONLY as Se, LOCAL_STORAGE_KEYWORD_MATCH_ALL as fe, useChatsHistory as ye, useUserChatStats as pe, ACTION_SEARCH as Te } from "./index.COrehOGK.js";
3
+ import { HistoryContext as Y, ChatContext as ge, e as m, APP_CLASSNAME as Ae, TOAST_CHAT_DELETED as Ee, HISTORY_TITLE as _e, IconSearch as Le, Button as De, L as Oe, j as ke } from "./LogoEntry.DYecYZ2Y.js";
4
+ import { Card as ve } from "./index.mPjUzcCU.js";
5
+ import { useAiChat as Re, useLocalStorage as C, ConfirmationPanel as be, LazyToastContainerWrapper as Ie, showErrorToast as xe, v4 as we, CHAT_RESET as He, CHAT_SET_ATTACHMENTS as Ne, CHAT_SET_STATUS as Fe, Panel as Me, debounce as Ge, Toggle as B, CancelButton as Ve } from "./App.CRK1D8_p.js";
6
+ import { TextInput as ze } from "./index.D2r8OZJ8.js";
7
7
  import Pe from "clsx";
8
8
  import { useRef as x, useState as G, useContext as V, useCallback as j, Suspense as Ue, lazy as Be, useEffect as je } from "react";
9
9
  const Ke = Be(
10
10
  () => import(
11
11
  /* webpackChunkName: "history-table" */
12
- "./ChatHistoryTable.BIjlz3xY.js"
12
+ "./ChatHistoryTable.Dh8i_P43.js"
13
13
  ).then((S) => ({ default: S.ChatHistoryTable }))
14
14
  ), Ye = ({
15
15
  filteredHistory: S,
@@ -41,25 +41,25 @@ const Ke = Be(
41
41
  key: u + oe,
42
42
  initialValue: m.ASC
43
43
  }), [, r] = C({
44
- key: u + ne,
44
+ key: u + ie,
45
45
  initialValue: I
46
46
  }), [W] = C({
47
- key: u + ie,
47
+ key: u + ne,
48
48
  initialValue: ""
49
49
  }), { mutateAsync: q } = ce({ getAccessToken: a }), { mutateAsync: Q } = le({
50
50
  getAccessToken: a
51
51
  }), X = (e) => {
52
- const n = o.sortedCell === e;
52
+ const i = o.sortedCell === e;
53
53
  let s, b;
54
54
  switch (e) {
55
55
  case I:
56
- b = R, s = n ? o.sortDirection : v;
56
+ b = R, s = i ? o.sortDirection : v;
57
57
  break;
58
58
  case ue:
59
- b = M, s = n ? o.sortDirection : F;
59
+ b = M, s = i ? o.sortDirection : F;
60
60
  break;
61
61
  default:
62
- b = R, s = n ? o.sortDirection : v;
62
+ b = R, s = i ? o.sortDirection : v;
63
63
  break;
64
64
  }
65
65
  const P = s === m.ASC ? m.DESC : m.ASC;
@@ -84,8 +84,8 @@ const Ke = Be(
84
84
  }
85
85
  }, Z = async (e) => {
86
86
  try {
87
- const n = await a(), s = await de({
88
- accessToken: n,
87
+ const i = await a(), s = await de({
88
+ accessToken: i,
89
89
  type: he.GET_CHAT,
90
90
  params: {
91
91
  id: e.id
@@ -98,6 +98,7 @@ const Ke = Be(
98
98
  loading: !1,
99
99
  restoring: !0,
100
100
  restoredModel: s.data?.model || "",
101
+ restoredTimestamp: s.data?.timestamp || "",
101
102
  restoredUsage: s.data?.tokenUsage || 0
102
103
  }
103
104
  }), A(""), T(e.id), c(s.data.messages), f(!1);
@@ -133,16 +134,16 @@ const Ke = Be(
133
134
  }, []), te = j(
134
135
  (e) => {
135
136
  if (p.current && p.current.disconnect(), e) {
136
- const n = {
137
+ const i = {
137
138
  rootMargin: "20px"
138
- }, s = new IntersectionObserver(z, n);
139
+ }, s = new IntersectionObserver(z, i);
139
140
  s.observe(e), p.current = s;
140
141
  }
141
142
  },
142
143
  [z]
143
144
  );
144
- return /* @__PURE__ */ i(ae, { children: [
145
- /* @__PURE__ */ i(
145
+ return /* @__PURE__ */ n(ae, { children: [
146
+ /* @__PURE__ */ n(
146
147
  be,
147
148
  {
148
149
  showConfirmation: h,
@@ -155,13 +156,13 @@ const Ke = Be(
155
156
  },
156
157
  children: [
157
158
  /* @__PURE__ */ t("p", { className: "m-0", children: "Are you sure you want to delete the following chat:" }),
158
- /* @__PURE__ */ i("ul", { className: "m-0", children: [
159
- /* @__PURE__ */ i("li", { children: [
159
+ /* @__PURE__ */ n("ul", { className: "m-0", children: [
160
+ /* @__PURE__ */ n("li", { children: [
160
161
  "Timestamp:",
161
162
  " ",
162
163
  /* @__PURE__ */ t("span", { className: "text-lg", children: d.current && d.current.timestamp })
163
164
  ] }),
164
- /* @__PURE__ */ i("li", { children: [
165
+ /* @__PURE__ */ n("li", { children: [
165
166
  "First message:",
166
167
  " ",
167
168
  /* @__PURE__ */ t("span", { className: "text-lg", children: d.current?.message })
@@ -238,7 +239,7 @@ const Ke = Be(
238
239
  }, M = (r) => {
239
240
  H(r);
240
241
  };
241
- return /* @__PURE__ */ i(
242
+ return /* @__PURE__ */ n(
242
243
  Me,
243
244
  {
244
245
  open: S,
@@ -265,7 +266,7 @@ const Ke = Be(
265
266
  className: "prose-dark dark:prose-lighter mb-4",
266
267
  noBorder: !0,
267
268
  compact: !0,
268
- children: /* @__PURE__ */ i("form", { autoComplete: "off", onSubmit: R, children: [
269
+ children: /* @__PURE__ */ n("form", { autoComplete: "off", onSubmit: R, children: [
269
270
  /* @__PURE__ */ t(
270
271
  ze,
271
272
  {
@@ -285,8 +286,8 @@ const Ke = Be(
285
286
  rightElement: /* @__PURE__ */ t("div", { className: "dark:text-copy-dark text-copy-light", children: /* @__PURE__ */ t(Le, { monotone: !0, size: "size-3" }) })
286
287
  }
287
288
  ),
288
- /* @__PURE__ */ i("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
289
- /* @__PURE__ */ i("div", { className: "flex flex-col sm:flex-row gap-2 order-1 sm:order-0", children: [
289
+ /* @__PURE__ */ n("div", { className: "flex flex-col justify-between sm:flex-row gap-2 sm:mb-0 mb-1", children: [
290
+ /* @__PURE__ */ n("div", { className: "flex flex-col sm:flex-row gap-2 order-1 sm:order-0", children: [
290
291
  /* @__PURE__ */ t(
291
292
  B,
292
293
  {
@@ -326,7 +327,7 @@ const Ke = Be(
326
327
  ] })
327
328
  }
328
329
  ),
329
- /* @__PURE__ */ i(
330
+ /* @__PURE__ */ n(
330
331
  "div",
331
332
  {
332
333
  className: Pe(
@@ -336,7 +337,7 @@ const Ke = Be(
336
337
  "min-h-[60vh]"
337
338
  ),
338
339
  children: [
339
- T && /* @__PURE__ */ t("p", { className: "m-0 text-red-500", children: "Failed to load history." }),
340
+ T && /* @__PURE__ */ t("p", { className: "m-0 text-copy-error-light", children: "Failed to load history." }),
340
341
  !T && /* @__PURE__ */ t(
341
342
  Ye,
342
343
  {
@@ -1,8 +1,8 @@
1
1
  import { jsxs as i, jsx as e, Fragment as x } from "react/jsx-runtime";
2
- import { n as L, getLayoutPaddingClass as M, getMessageContaintWrapperClass as b, isTauri as I } from "./index.DlzoJhEl.js";
3
- import { Logo as N, L as E, j as t, PASSWORD_PLACEHOLDER as y, ButtonIcon as p, IconShow as S, IconHide as v, Button as w, LOG_IN as P, LOG_IN_PASSKEY as z, IconPasskey as B } from "./LogoEntry.1MaZ0gB8.js";
4
- import { Card as O } from "./index.lXY3xvX_.js";
5
- import { TextInput as T, TextInputMask as W } from "./index.DbqNbLqk.js";
2
+ import { n as L, getLayoutPaddingClass as M, getMessageContaintWrapperClass as b, isTauri as I } from "./index.COrehOGK.js";
3
+ import { Logo as N, L as E, j as t, PASSWORD_PLACEHOLDER as y, ButtonIcon as p, IconShow as S, IconHide as v, Button as w, LOG_IN as P, LOG_IN_PASSKEY as z, IconPasskey as B } from "./LogoEntry.DYecYZ2Y.js";
4
+ import { Card as O } from "./index.mPjUzcCU.js";
5
+ import { TextInput as T, TextInputMask as W } from "./index.D2r8OZJ8.js";
6
6
  import { useState as s, useEffect as h } from "react";
7
7
  const q = () => {
8
8
  const { login: g, logoutReason: o, loginWithPasskey: f } = L(), [n, l] = s(""), [d, m] = s(""), [c, C] = s(!0), [r, u] = s({
@@ -1,7 +1,7 @@
1
1
  import E, { useRef as N, useEffect as A, useCallback as e1, useState as h1, useMemo as Y, useContext as t1, useId as d1, useLayoutEffect as X } from "react";
2
2
  import { jsx as o, jsxs as l } from "react/jsx-runtime";
3
3
  import n from "clsx";
4
- import { V as d, e as u1, P as m1, r as p1 } from "./index.DlzoJhEl.js";
4
+ import { V as d, e as u1, P as m1, r as p1 } from "./index.COrehOGK.js";
5
5
  /*!
6
6
  @versini/ui-hooks v6.0.0
7
7
  © 2025 gizmette.com
@@ -133,7 +133,7 @@ const f1 = {
133
133
  3: ["Apr", "May", "Jun"],
134
134
  6: ["Jul", "Aug", "Sep"],
135
135
  9: ["Oct", "Nov", "Dec"]
136
- }, k = {
136
+ }, M = {
137
137
  TODAY: "today",
138
138
  YESTERDAY: "yesterday",
139
139
  MONTH_TO_DATE: "monthToDate",
@@ -153,13 +153,13 @@ const f1 = {
153
153
  "October",
154
154
  "November",
155
155
  "December"
156
- ], k2 = {
157
- [k.TODAY]: "Today",
158
- [k.YESTERDAY]: "Yesterday",
159
- [k.MONTH_TO_DATE]: "Month to date",
160
- [k.CURRENT_YEAR]: `${(/* @__PURE__ */ new Date()).getFullYear()} by trimester`,
161
- [k.LAST_YEAR]: `${(/* @__PURE__ */ new Date()).getFullYear() - 1} by trimester`
162
- }, M2 = {
156
+ ], M2 = {
157
+ [M.TODAY]: "Today",
158
+ [M.YESTERDAY]: "Yesterday",
159
+ [M.MONTH_TO_DATE]: "Month to date",
160
+ [M.CURRENT_YEAR]: `${(/* @__PURE__ */ new Date()).getFullYear()} by trimester`,
161
+ [M.LAST_YEAR]: `${(/* @__PURE__ */ new Date()).getFullYear() - 1} by trimester`
162
+ }, k2 = {
163
163
  PREFERENCES: {
164
164
  TITLE: "User profile",
165
165
  USERNAME: "Username",
@@ -312,7 +312,7 @@ try {
312
312
  });
313
313
  } catch {
314
314
  }
315
- function k1(e) {
315
+ function M1(e) {
316
316
  return Y(() => e.every((t) => t == null) ? () => {
317
317
  } : (t) => {
318
318
  e.forEach((c) => {
@@ -335,14 +335,14 @@ try {
335
335
  });
336
336
  } catch {
337
337
  }
338
- const M1 = (e, t, c) => {
338
+ const k1 = (e, t, c) => {
339
339
  !t && (!document.activeElement || document.activeElement !== e.currentTarget) && typeof e?.currentTarget?.focus == "function" && e.currentTarget.focus(), typeof c == "function" && c(e);
340
340
  }, j = /* @__PURE__ */ E.forwardRef((e, t) => {
341
341
  const { onClick: c, noInternalClick: s = !1, ...a } = e;
342
342
  return /* @__PURE__ */ o("button", {
343
343
  ref: t,
344
344
  onClick: (r) => {
345
- M1(r, s, c);
345
+ k1(r, s, c);
346
346
  },
347
347
  ...a
348
348
  });
@@ -606,7 +606,7 @@ const z = "icon", K = "button", G = "link", O1 = ({ type: e, size: t, labelRight
606
606
  }), n(a, c);
607
607
  }, U1 = ({ animated: e }) => n({
608
608
  "transition-opacity duration-300 ease-in-out": e
609
- }), c1 = ({ type: e, className: t, raw: c, mode: s, focusMode: a, disabled: r, fullWidth: h, size: m, noBorder: y, labelRight: f, labelLeft: v, noBackground: g, variant: p, truncate: T, align: C, radius: R, animated: M }) => (p || (p = "primary"), c ? n(Q, t) : n(Q, P1({
609
+ }), c1 = ({ type: e, className: t, raw: c, mode: s, focusMode: a, disabled: r, fullWidth: h, size: m, noBorder: y, labelRight: f, labelLeft: v, noBackground: g, variant: p, truncate: T, align: C, radius: R, animated: k }) => (p || (p = "primary"), c ? n(Q, t) : n(Q, P1({
610
610
  mode: s,
611
611
  variant: p,
612
612
  noBackground: g,
@@ -623,7 +623,7 @@ const z = "icon", K = "button", G = "link", O1 = ({ type: e, size: t, labelRight
623
623
  labelRight: f,
624
624
  labelLeft: v,
625
625
  align: C,
626
- animated: M
626
+ animated: k
627
627
  }), L1({
628
628
  type: e,
629
629
  size: m,
@@ -647,7 +647,7 @@ const z = "icon", K = "button", G = "link", O1 = ({ type: e, size: t, labelRight
647
647
  "w-full": h,
648
648
  "disabled:cursor-not-allowed disabled:opacity-50": r
649
649
  }, n({
650
- "transition-[width] duration-300 ease-in": e === z && M
650
+ "transition-[width] duration-300 ease-in": e === z && k
651
651
  }), t));
652
652
  /*!
653
653
  @versini/ui-button v11.0.0
@@ -670,7 +670,7 @@ const L = {
670
670
  small: 16,
671
671
  medium: 24,
672
672
  large: 32
673
- }, G1 = 2, F1 = 300, Y1 = /* @__PURE__ */ E.forwardRef(({ children: e, disabled: t = !1, mode: c = "system", focusMode: s = "system", fullWidth: a = !1, className: r, type: h = "button", raw: m = !1, noBorder: y = !1, "aria-label": f, label: v, size: g = "medium", labelRight: p, labelLeft: T, noBackground: C = !1, align: R = "center", radius: M = "large", variant: q = "secondary", iconClassName: s1, animated: I = !1, ...a1 }, o1) => {
673
+ }, G1 = 2, F1 = 300, Y1 = /* @__PURE__ */ E.forwardRef(({ children: e, disabled: t = !1, mode: c = "system", focusMode: s = "system", fullWidth: a = !1, className: r, type: h = "button", raw: m = !1, noBorder: y = !1, "aria-label": f, label: v, size: g = "medium", labelRight: p, labelLeft: T, noBackground: C = !1, align: R = "center", radius: k = "large", variant: q = "secondary", iconClassName: s1, animated: I = !1, ...a1 }, o1) => {
674
674
  const r1 = c1({
675
675
  type: z,
676
676
  mode: c,
@@ -685,7 +685,7 @@ const L = {
685
685
  labelLeft: T,
686
686
  noBackground: C,
687
687
  align: R,
688
- radius: M,
688
+ radius: k,
689
689
  variant: q,
690
690
  animated: I
691
691
  }), i1 = D1({
@@ -695,7 +695,7 @@ const L = {
695
695
  variant: q
696
696
  }), W = U1({
697
697
  animated: I
698
- }), n1 = "flex items-center justify-center relative w-full h-full overflow-hidden", [_, V] = U(), [b, H] = U(), [O, J] = U(), D = N(0), w = N(null), x = N(null), l1 = k1([
698
+ }), n1 = "flex items-center justify-center relative w-full h-full overflow-hidden", [_, V] = U(), [b, H] = U(), [O, J] = U(), D = N(0), w = N(null), x = N(null), l1 = M1([
699
699
  o1,
700
700
  w
701
701
  ]);
@@ -1605,7 +1605,7 @@ const be = ({
1605
1605
  "prose-h1:mb-0 prose-h2:mt-0",
1606
1606
  r,
1607
1607
  {
1608
- "prose-h2:text-red-500 dark:prose-h2:text-red-500": t && c?.runningMode === "development"
1608
+ "prose-h2:text-copy-error-light!": t && c?.runningMode === "development"
1609
1609
  }
1610
1610
  ),
1611
1611
  children: [
@@ -1630,7 +1630,7 @@ export {
1630
1630
  S1 as AppContext,
1631
1631
  K1 as Button,
1632
1632
  Y1 as ButtonIcon,
1633
- M2 as CARDS,
1633
+ k2 as CARDS,
1634
1634
  v2 as CLIPBOARD_PROMPT,
1635
1635
  P2 as ChatContext,
1636
1636
  e2 as FOOTER_BOTTOM,
@@ -1694,8 +1694,8 @@ export {
1694
1694
  _2 as PROMPTS_DESCRIPTION,
1695
1695
  L2 as PromptsContext,
1696
1696
  n2 as SETTINGS_TITLE,
1697
- k as TIME_RANGES,
1698
- k2 as TIME_RANGE_LABELS,
1697
+ M as TIME_RANGES,
1698
+ M2 as TIME_RANGE_LABELS,
1699
1699
  E2 as TOAST_CACHE_DISABLED,
1700
1700
  w2 as TOAST_CACHE_ENABLED,
1701
1701
  I2 as TOAST_CHAT_DELETED,
@@ -1706,7 +1706,7 @@ export {
1706
1706
  t2 as appReducer,
1707
1707
  f1 as e,
1708
1708
  _e as j,
1709
- k1 as useMergeRefs,
1709
+ M1 as useMergeRefs,
1710
1710
  U as useResizeObserver,
1711
1711
  C1 as useTheme,
1712
1712
  B2 as useUniqueId