@versini/sassysaint 8.135.0 → 8.135.1

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 (82) hide show
  1. package/dist/chunks/{AboutChangelog.C_9s7oCO.js → AboutChangelog.BFh8ukCp.js} +2 -2
  2. package/dist/chunks/{AboutEntry.B_rrl3Hx.js → AboutEntry.BfABiXLF.js} +8 -8
  3. package/dist/chunks/{App.CQ-x0yjq.js → App.zShMOQq9.js} +37 -29
  4. package/dist/chunks/{BubbleActions.CzRiFTYP.js → BubbleActions.B5kDm2j_.js} +3 -3
  5. package/dist/chunks/{ButtonIconDelete.ibVM3xGr.js → ButtonIconDelete.DwNJLOq2.js} +4 -4
  6. package/dist/chunks/{Chart.s2ABR6B-.js → Chart.CGX1wHyQ.js} +2 -2
  7. package/dist/chunks/{ChatBubbleAssistant.e9NPTZBB.js → ChatBubbleAssistant.DFyGfa72.js} +5 -5
  8. package/dist/chunks/{ChatBubbleUser.CPnyeNCZ.js → ChatBubbleUser.DIsFz4pf.js} +4 -4
  9. package/dist/chunks/{GenericPanel.DJDVEtx5.js → GenericPanel.Bj2vNTff.js} +1 -1
  10. package/dist/chunks/{HistoryEntry.JyK-P6YP.js → HistoryEntry.j5_np-1i.js} +6 -6
  11. package/dist/chunks/{LoginEntry.C5kMsDY4.js → LoginEntry.L034DvA5.js} +4 -4
  12. package/dist/chunks/{LogoEntry.By34kRtw.js → LogoEntry.r-vdXCN2.js} +1 -1
  13. package/dist/chunks/{MemoriesEntry.C5fgunhi.js → MemoriesEntry.Bjv3r7Hy.js} +6 -6
  14. package/dist/chunks/{ProfileEntry.CkTJi0fr.js → ProfileEntry.eUeHbAk1.js} +6 -6
  15. package/dist/chunks/{SettingsEntry.Do5WjlU8.js → SettingsEntry.2yvNhcXH.js} +6 -6
  16. package/dist/chunks/{UsageEntry.B33DA69H.js → UsageEntry.DKwZBmKL.js} +36 -29
  17. package/dist/chunks/{_baseUniq.XzsFtfuq.js → _baseUniq.BoQJ-_HW.js} +1 -1
  18. package/dist/chunks/{arc.C40sUEgl.js → arc.CY_r8ZMf.js} +1 -1
  19. package/dist/chunks/{architecture-U656AL7Q.KaUIAE_r.js → architecture-U656AL7Q.DkoEYMrE.js} +1 -1
  20. package/dist/chunks/{architectureDiagram-VXUJARFQ.ZXsg70_n.js → architectureDiagram-VXUJARFQ.B8tD0Wf9.js} +4 -4
  21. package/dist/chunks/{blockDiagram-VD42YOAC.Bh7ex6y4.js → blockDiagram-VD42YOAC.DSorHGCj.js} +5 -5
  22. package/dist/chunks/{browser.BpsUi4PF.js → browser.B5LIEeBr.js} +1 -1
  23. package/dist/chunks/{c4Diagram-YG6GDRKO.CV0RGhzA.js → c4Diagram-YG6GDRKO.CUVTFswr.js} +2 -2
  24. package/dist/chunks/{channel.BbPXzGpe.js → channel.CWEc_XNK.js} +1 -1
  25. package/dist/chunks/{chunk-4BX2VUAB.Ug-JP9jY.js → chunk-4BX2VUAB.CWTLyRbm.js} +1 -1
  26. package/dist/chunks/{chunk-55IACEB6.J4fjQRux.js → chunk-55IACEB6.BiSsWdAh.js} +1 -1
  27. package/dist/chunks/{chunk-B4BG7PRW.N9SSh-h3.js → chunk-B4BG7PRW.CRVs15Yq.js} +4 -4
  28. package/dist/chunks/{chunk-DI55MBZ5.DBTjJcBy.js → chunk-DI55MBZ5.DXp07gIA.js} +3 -3
  29. package/dist/chunks/{chunk-FMBD7UC4.DIIiW7EP.js → chunk-FMBD7UC4.BmcsX5hQ.js} +1 -1
  30. package/dist/chunks/{chunk-QN33PNHL.BJsjr57b.js → chunk-QN33PNHL.BY_SdwN-.js} +1 -1
  31. package/dist/chunks/{chunk-QZHKN3VN.D31gj9Cc.js → chunk-QZHKN3VN.MjytHIRJ.js} +1 -1
  32. package/dist/chunks/{chunk-TZMSLE5B.u0AV-0eO.js → chunk-TZMSLE5B.BvQSeNwE.js} +1 -1
  33. package/dist/chunks/{classDiagram-2ON5EDUG.CHT9Q154.js → classDiagram-2ON5EDUG.DDfWI1iS.js} +2 -2
  34. package/dist/chunks/{classDiagram-v2-WZHVMYZB.CHT9Q154.js → classDiagram-v2-WZHVMYZB.DDfWI1iS.js} +2 -2
  35. package/dist/chunks/{clone.KEPs55yD.js → clone.4hmFXZGB.js} +1 -1
  36. package/dist/chunks/{cose-bilkent-S5V4N54A.CR3vwNcD.js → cose-bilkent-S5V4N54A.vtfvV07j.js} +2 -2
  37. package/dist/chunks/{dagre-6UL2VRFP.DVxyyjOu.js → dagre-6UL2VRFP.JkC-kAPp.js} +5 -5
  38. package/dist/chunks/{diagram-PSM6KHXK.CplvmYx7.js → diagram-PSM6KHXK.sop7a3k7.js} +4 -4
  39. package/dist/chunks/{diagram-QEK2KX5R.CtD7IGzP.js → diagram-QEK2KX5R.Bx-sWtcB.js} +3 -3
  40. package/dist/chunks/{diagram-S2PKOQOG.CHIqI_zd.js → diagram-S2PKOQOG.CWZGBMGC.js} +3 -3
  41. package/dist/chunks/{erDiagram-Q2GNP2WA.BYi2D85v.js → erDiagram-Q2GNP2WA.BRwuuUi9.js} +4 -4
  42. package/dist/chunks/{flowDiagram-NV44I4VS.CwRRUppU.js → flowDiagram-NV44I4VS.aS_0XYcu.js} +5 -5
  43. package/dist/chunks/{ganttDiagram-JELNMOA3.DieZfAsW.js → ganttDiagram-JELNMOA3.BsUUbJwy.js} +2 -2
  44. package/dist/chunks/{gitGraph-F6HP7TQM.HO-q5YOl.js → gitGraph-F6HP7TQM.2SyUh64j.js} +1 -1
  45. package/dist/chunks/{gitGraphDiagram-NY62KEGX.BR9m1GKA.js → gitGraphDiagram-NY62KEGX.gQoF09oR.js} +4 -4
  46. package/dist/chunks/{graph.Dg54Q4TQ.js → graph.3uZHl3-y.js} +2 -2
  47. package/dist/chunks/{index.DAUFmnOE.js → index.BGVSo5bF.js} +3 -3
  48. package/dist/chunks/{index.rOS_YiXx.js → index.BQczTuMX.js} +1 -1
  49. package/dist/chunks/{index.BZDGt3yC.js → index.BwjcCqqd.js} +1 -1
  50. package/dist/chunks/{index.T_9M13To.js → index.ByFIEUIn.js} +1 -1
  51. package/dist/chunks/{index.CTOdiTsh.js → index.CHAhFpi_.js} +1 -1
  52. package/dist/chunks/{index.DkEba4n_.js → index.CdYKPITo.js} +3 -3
  53. package/dist/chunks/{index.CAaGYw1A.js → index.D0VZeadY.js} +1 -1
  54. package/dist/chunks/{index.O7mAbj0a.js → index.DtsGz-nk.js} +1 -1
  55. package/dist/chunks/{index.BL3Q2Toc.js → index.UuHYEgmi.js} +1 -1
  56. package/dist/chunks/{index.CzW9JmR_.js → index.sc0P6mn_.js} +2 -2
  57. package/dist/chunks/{info-NVLQJR56.DiiCz6Vw.js → info-NVLQJR56.C4Rnv-gF.js} +1 -1
  58. package/dist/chunks/{infoDiagram-WHAUD3N6.B7Ecn8Ov.js → infoDiagram-WHAUD3N6.k6Nqa6_n.js} +2 -2
  59. package/dist/chunks/{journeyDiagram-XKPGCS4Q.CBDrqopu.js → journeyDiagram-XKPGCS4Q.BxydSWSU.js} +4 -4
  60. package/dist/chunks/{kanban-definition-3W4ZIXB7.Bl0nz069.js → kanban-definition-3W4ZIXB7.CbQ2PbqL.js} +2 -2
  61. package/dist/chunks/{layout.W19Iz1Sq.js → layout.CzQPfYpk.js} +4 -4
  62. package/dist/chunks/{mermaid-parser.core.DWOKEC2F.js → mermaid-parser.core.BR3W-Erf.js} +10 -10
  63. package/dist/chunks/{min.C-q7qM16.js → min.Bcqww540.js} +2 -2
  64. package/dist/chunks/{mindmap-definition-VGOIOE7T.C8qbSJMn.js → mindmap-definition-VGOIOE7T.Dx8Vxrt-.js} +3 -3
  65. package/dist/chunks/{packet-BFZMPI3H.BN-mSVpD.js → packet-BFZMPI3H.fT9X5wLG.js} +1 -1
  66. package/dist/chunks/{pie-7BOR55EZ.DfxOaWOP.js → pie-7BOR55EZ.W6qGPA_7.js} +1 -1
  67. package/dist/chunks/{pieDiagram-ADFJNKIX.DvVcGGFd.js → pieDiagram-ADFJNKIX.DwFt9UD4.js} +4 -4
  68. package/dist/chunks/{quadrantDiagram-AYHSOK5B.CDFFwGk-.js → quadrantDiagram-AYHSOK5B.BuCvuRiE.js} +1 -1
  69. package/dist/chunks/{radar-NHE76QYJ.BW7h5mdA.js → radar-NHE76QYJ.BBrz34_s.js} +1 -1
  70. package/dist/chunks/{rehype-mermaid.Dyd7emFj.js → rehype-mermaid.DoqqoD0v.js} +33 -33
  71. package/dist/chunks/{requirementDiagram-UZGBJVZJ.Be1FG-pF.js → requirementDiagram-UZGBJVZJ.D7jfiKxB.js} +3 -3
  72. package/dist/chunks/{sankeyDiagram-TZEHDZUN.pRYwKx06.js → sankeyDiagram-TZEHDZUN.q_Q0eRRQ.js} +1 -1
  73. package/dist/chunks/{sequenceDiagram-WL72ISMW.DC8eL0iq.js → sequenceDiagram-WL72ISMW.C9xSBNkm.js} +3 -3
  74. package/dist/chunks/{stateDiagram-FKZM4ZOC.C1VJI_Pm.js → stateDiagram-FKZM4ZOC.CDzQK2vr.js} +4 -4
  75. package/dist/chunks/{stateDiagram-v2-4FDKWEC3.DuYL5Rd4.js → stateDiagram-v2-4FDKWEC3.CNt5KhBr.js} +2 -2
  76. package/dist/chunks/{timeline-definition-IT6M3QCI.B8gG4HpI.js → timeline-definition-IT6M3QCI.CQytMJWu.js} +2 -2
  77. package/dist/chunks/{treemap-KMMF4GRG.CCe0MnQu.js → treemap-KMMF4GRG.C8RaqthH.js} +1 -1
  78. package/dist/chunks/{useMarkdown.BvrAhphK.js → useMarkdown.BwimB2J8.js} +9 -9
  79. package/dist/chunks/{xychartDiagram-PRI3JC2R.BYXe6zpi.js → xychartDiagram-PRI3JC2R.C_oUQMsD.js} +1 -1
  80. package/dist/components/SassySaint/SassySaint.js +1 -1
  81. package/dist/index.js +3 -3
  82. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
- import { useInViewport as c, ButtonScroll as n } from "./App.CQ-x0yjq.js";
2
+ import { useInViewport as c, ButtonScroll as n } from "./App.zShMOQq9.js";
3
3
  import { useRef as f, useCallback as u, useLayoutEffect as p } from "react";
4
- import { useMarkdown as d } from "./useMarkdown.BvrAhphK.js";
4
+ import { useMarkdown as d } from "./useMarkdown.BwimB2J8.js";
5
5
  const b = ({ content: o }) => {
6
6
  const [l, r] = d(), { ref: a, inViewport: m } = c(), e = f(null), i = u(() => {
7
7
  e.current && e.current.scrollIntoView({
@@ -1,15 +1,15 @@
1
1
  import { jsxs as b, Fragment as n, jsx as e } from "react/jsx-runtime";
2
2
  import { Suspense as A, lazy as g, useRef as B } from "react";
3
- import { useUniqueId as c, CARDS as r, ABOUT_TITLE as I } from "./LogoEntry.By34kRtw.js";
4
- import { pluralize as E, isProbablyMobile as S, ButtonCancel as f } from "./App.CQ-x0yjq.js";
5
- import { GenericPanel as C } from "./GenericPanel.DJDVEtx5.js";
6
- import { Card as s } from "./index.CAaGYw1A.js";
3
+ import { useUniqueId as c, CARDS as r, ABOUT_TITLE as I } from "./LogoEntry.r-vdXCN2.js";
4
+ import { pluralize as E, isProbablyMobile as S, ButtonCancel as f } from "./App.zShMOQq9.js";
5
+ import { GenericPanel as C } from "./GenericPanel.Bj2vNTff.js";
6
+ import { Card as s } from "./index.D0VZeadY.js";
7
7
  import O from "clsx";
8
- import { useServerCapabilities as U, useChangelogs as L, renderDataAsList as d } from "./index.CzW9JmR_.js";
8
+ import { useServerCapabilities as U, useChangelogs as L, renderDataAsList as d } from "./index.sc0P6mn_.js";
9
9
  const N = g(
10
10
  () => import(
11
11
  /* webpackChunkName: "LazyAboutChangelog" */
12
- "./AboutChangelog.C_9s7oCO.js"
12
+ "./AboutChangelog.BFh8ukCp.js"
13
13
  )
14
14
  ), R = () => {
15
15
  const l = c(), t = c(), { data: i, isSuccess: m } = U(), { data: u, isSuccess: T } = L(), h = i?.version || "", o = i?.models || [], p = i?.buildTime || "";
@@ -21,8 +21,8 @@ const N = g(
21
21
  className: "plume-dark dark:plume-lighter mb-4",
22
22
  noBorder: !0,
23
23
  children: d(l, {
24
- [r.ABOUT.VERSION]: "8.135.0",
25
- [r.ABOUT.BUILD_TIMESTAMP]: "02/08/2026 06:53 PM EST"
24
+ [r.ABOUT.VERSION]: "8.135.1",
25
+ [r.ABOUT.BUILD_TIMESTAMP]: "02/11/2026 07:41 AM EST"
26
26
  })
27
27
  }
28
28
  ),
@@ -1,8 +1,8 @@
1
1
  import { jsx as g, jsxs as z, Fragment as rt } from "react/jsx-runtime";
2
- import { ACTION_SORT as xu, ACTION_SEARCH as Tu, ACTION_RESET_PROMPT as ei, ACTION_TOGGLE_PROMPT as ti, LOCAL_STORAGE_PREFIX as Te, LOCAL_STORAGE_CHAT_ID as nr, n as je, useChat as Iu, DEFAULT_ICON_ACTION_SIZE as Xe, isTauri as mn, useUserPreferences as bt, serverUrl as ni, useEntitlements as Zo, useSaveChat as Au, LOCAL_STORAGE_PRIVATE_DISCLOSURE as Ru, k as Ut, LOCAL_STORAGE_REASONING_DISCLOSURE as Ou, useQueryClient as ri, graphQLRequest as Vr, CHATS_QUERY_KEY as vs, SERVICE_TYPES as Wr, PROMPT_EDITABLE_AREA_CLASSNAME as Nu, PROMPT_CLASSNAME as ku, X as oi, ERROR_MESSAGE as Mu, o as Wt, n$1 as fr, v as Pu, INPUT_BOTTOM_OFFSET_IPHONE as Du, INPUT_BOTTOM_OFFSET_IPAD as $u, INPUT_BOTTOM_OFFSET as si, INPUT_BOTTOM_OFFSET_EXTRA as Gr, getLayoutPaddingClass as yo, canEvaluateModels as ys, x as Lu, a as zu, i as Fu, s as Zu, j as Uu, G as Yr, setNewProvider as bs, LOCAL_STORAGE_KEYWORD_MATCH_ALL as ju, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as Bu, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as Hu, useChatsHistory as Vu, B as bo, useServerCapabilities as Wu, getMessageContaintWrapperClass as Gu, UI_FOOTER_BUFFER as ai, UI_BUTTON_SCROLL_BUFFER as Yu, UI_DEFAULT_MAIN_HEIGHT as ws, q as Ju, applyOledMode as Ku, UI_DEFAULT_MAIN_HEIGHT_IPHONE as qu, V as Xu, LOCAL_STORAGE_SORT as Qu, LOCAL_STORAGE_SEARCH as ed, LOCAL_STORAGE_OLED_MODE as td, LOCAL_STORAGE_FULL_SCREEN as nd, LOCAL_STORAGE_SORT_TIMESTAMP as rd, LOCAL_STORAGE_SORT_TOKEN_USAGE as od } from "./index.CzW9JmR_.js";
2
+ import { ACTION_SORT as xu, ACTION_SEARCH as Tu, ACTION_RESET_PROMPT as ei, ACTION_TOGGLE_PROMPT as ti, LOCAL_STORAGE_PREFIX as Te, LOCAL_STORAGE_CHAT_ID as nr, n as je, useChat as Iu, DEFAULT_ICON_ACTION_SIZE as Xe, isTauri as mn, useUserPreferences as bt, serverUrl as ni, useEntitlements as Zo, useSaveChat as Au, LOCAL_STORAGE_PRIVATE_DISCLOSURE as Ru, k as Ut, LOCAL_STORAGE_REASONING_DISCLOSURE as Ou, useQueryClient as ri, graphQLRequest as Vr, CHATS_QUERY_KEY as vs, SERVICE_TYPES as Wr, PROMPT_EDITABLE_AREA_CLASSNAME as Nu, PROMPT_CLASSNAME as ku, X as oi, ERROR_MESSAGE as Mu, o as Wt, n$1 as fr, v as Pu, INPUT_BOTTOM_OFFSET_IPHONE as Du, INPUT_BOTTOM_OFFSET_IPAD as $u, INPUT_BOTTOM_OFFSET as si, INPUT_BOTTOM_OFFSET_EXTRA as Gr, getLayoutPaddingClass as yo, canEvaluateModels as ys, x as Lu, a as zu, i as Fu, s as Zu, j as Uu, G as Yr, setNewProvider as bs, LOCAL_STORAGE_KEYWORD_MATCH_ALL as ju, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as Bu, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as Hu, useChatsHistory as Vu, B as bo, useServerCapabilities as Wu, getMessageContaintWrapperClass as Gu, UI_FOOTER_BUFFER as ai, UI_BUTTON_SCROLL_BUFFER as Yu, UI_DEFAULT_MAIN_HEIGHT as ws, q as Ju, applyOledMode as Ku, UI_DEFAULT_MAIN_HEIGHT_IPHONE as qu, V as Xu, LOCAL_STORAGE_SORT as Qu, LOCAL_STORAGE_SEARCH as ed, LOCAL_STORAGE_OLED_MODE as td, LOCAL_STORAGE_FULL_SCREEN as nd, LOCAL_STORAGE_SORT_TIMESTAMP as rd, LOCAL_STORAGE_SORT_TOKEN_USAGE as od } from "./index.sc0P6mn_.js";
3
3
  import * as w from "react";
4
4
  import Ve, { useSyncExternalStore as rr, useCallback as W, useEffect as j, useRef as Y, useState as U, createContext as ii, useContext as le, useMemo as Ie, useId as ci, useLayoutEffect as Cn, cloneElement as li, Suspense as wo, lazy as wt, useReducer as Zn } from "react";
5
- import { SortDirections as jt, ChatContext as Oe, ButtonIcon as Gt, useTheme as Be, IconAddLight as sd, IconCloseLight as ad, IconEditLight as id, Button as dn, IconLockedLight as cd, IconUnlockedLight as ld, IconSelected as ud, IconUnSelected as dd, IconNext as fd, PromptsContext as Uo, IconBookSparklesLight as pd, IconRewrite as md, IconProofread as hd, IconMagic as gd, IconLightBulbLight as vd, IconSendLight as yd, CARDS as me, IconUploadLight as bd, INPUT_PLACEHOLDER_TEXT_IN_SESSION as ui, INPUT_PLACEHOLDER_TEXT_MORNING as wd, INPUT_PLACEHOLDER_TEXT_TODAY as _d, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Ed, INPUT_PLACEHOLDER_TEXT_EVENING as Sd, INPUT_PLACEHOLDER_TEXT_NIGHT as Cd, INPUT_PLACEHOLDER_TEXT_DEFAULT as xd, IconClose as Td, AppContext as xn, useUniqueId as Id, CLIPBOARD_PROMPT as _s, FOOTER_DISCLAIMERS as Es, useResizeObserver as di, APP_SET_FOOTER_HEIGHT as Ad, FOOTER_TOP as _o, FOOTER_BOTTOM as fn, APP_SET_FOOTER_POSITION as Jr, IconOpenAI as Rd, IconAnthropic as Od, IconGoogleGemini as Nd, TOAST_PROVIDER_CHANGED as Ss, HistoryContext as fi, LOG_OUT as Cs, IconBack as Un, IconSliders as kd, IconHistory as Md, IconChart as Pd, IconSettings as Dd, Logo as $d, appReducer as Ld, APP_SET_OLED_MODE as zd, APP_SET_FULL_SCREEN as Fd, APP_SET_THEME_PALETTE as Zd } from "./LogoEntry.By34kRtw.js";
5
+ import { SortDirections as jt, ChatContext as Oe, ButtonIcon as Gt, useTheme as Be, IconAddLight as sd, IconCloseLight as ad, IconEditLight as id, Button as dn, IconLockedLight as cd, IconUnlockedLight as ld, IconSelected as ud, IconUnSelected as dd, IconNext as fd, PromptsContext as Uo, IconBookSparklesLight as pd, IconRewrite as md, IconProofread as hd, IconMagic as gd, IconLightBulbLight as vd, IconSendLight as yd, CARDS as me, IconUploadLight as bd, INPUT_PLACEHOLDER_TEXT_IN_SESSION as ui, INPUT_PLACEHOLDER_TEXT_MORNING as wd, INPUT_PLACEHOLDER_TEXT_TODAY as _d, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Ed, INPUT_PLACEHOLDER_TEXT_EVENING as Sd, INPUT_PLACEHOLDER_TEXT_NIGHT as Cd, INPUT_PLACEHOLDER_TEXT_DEFAULT as xd, IconClose as Td, AppContext as xn, useUniqueId as Id, CLIPBOARD_PROMPT as _s, FOOTER_DISCLAIMERS as Es, useResizeObserver as di, APP_SET_FOOTER_HEIGHT as Ad, FOOTER_TOP as _o, FOOTER_BOTTOM as fn, APP_SET_FOOTER_POSITION as Jr, IconOpenAI as Rd, IconAnthropic as Od, IconGoogleGemini as Nd, TOAST_PROVIDER_CHANGED as Ss, HistoryContext as fi, LOG_OUT as Cs, IconBack as Un, IconSliders as kd, IconHistory as Md, IconChart as Pd, IconSettings as Dd, Logo as $d, appReducer as Ld, APP_SET_OLED_MODE as zd, APP_SET_FULL_SCREEN as Fd, APP_SET_THEME_PALETTE as Zd } from "./LogoEntry.r-vdXCN2.js";
6
6
  import * as pi from "react-dom";
7
7
  import Ud, { createPortal as jd } from "react-dom";
8
8
  import $, { clsx as pt } from "clsx";
@@ -56,7 +56,7 @@ function ke({ key: e, initialValue: t }) {
56
56
  i
57
57
  ];
58
58
  }
59
- const q0 = (e, t) => {
59
+ const X0 = (e, t) => {
60
60
  let n;
61
61
  return (...r) => {
62
62
  window.clearTimeout(n), n = window.setTimeout(() => e(...r), t);
@@ -73,12 +73,12 @@ const q0 = (e, t) => {
73
73
  "iPad"
74
74
  ].includes(navigator.platform) || navigator.userAgent.includes("Mac") && "ontouchend" in document || window.indexedDB !== null, t = of(), n = navigator.maxTouchPoints > 1;
75
75
  return e && t && n;
76
- }, af = () => window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0, X0 = (e, t) => t === 1 ? e : `${e}s`, Q0 = new Intl.NumberFormat("en", {
76
+ }, af = () => window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0, Q0 = (e, t) => t === 1 ? e : `${e}s`, eC = new Intl.NumberFormat("en", {
77
77
  signDisplay: "never",
78
78
  maximumFractionDigits: 0
79
- }), eC = (e) => window.btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, function(n, r) {
79
+ }), tC = (e) => window.btoa(encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, function(n, r) {
80
80
  return String.fromCharCode(+`0x${r}`);
81
- })), tC = (e) => decodeURIComponent(window.atob(e).split("").map(function(t) {
81
+ })), nC = (e) => decodeURIComponent(window.atob(e).split("").map(function(t) {
82
82
  return `%${`00${t.charCodeAt(0).toString(16)}`.slice(-2)}`;
83
83
  }).join(""));
84
84
  var hi = "vercel.ai.error", cf = Symbol.for(hi), Is, As, Qe = class gi extends (As = Error, Is = cf, As) {
@@ -12933,38 +12933,38 @@ const ZS = [".png", ".jpg", ".jpeg", ".webp"], US = [".pdf", ".txt"], jS = [
12933
12933
  }, y0 = wt(
12934
12934
  () => import(
12935
12935
  /* webpackChunkName: "modal-chunk" */
12936
- "./ProfileEntry.CkTJi0fr.js"
12936
+ "./ProfileEntry.eUeHbAk1.js"
12937
12937
  ).then((e) => ({
12938
12938
  default: e.Profile
12939
12939
  }))
12940
12940
  ), b0 = wt(
12941
12941
  () => import(
12942
12942
  /* webpackChunkName: "modal-chunk" */
12943
- "./SettingsEntry.Do5WjlU8.js"
12943
+ "./SettingsEntry.2yvNhcXH.js"
12944
12944
  ).then((e) => ({
12945
12945
  default: e.SettingsPanel
12946
12946
  }))
12947
12947
  ), w0 = wt(
12948
12948
  () => import(
12949
12949
  /* webpackChunkName: "modal-chunk" */
12950
- "./HistoryEntry.JyK-P6YP.js"
12950
+ "./HistoryEntry.j5_np-1i.js"
12951
12951
  ).then((e) => ({
12952
12952
  default: e.HistoryPanel
12953
12953
  }))
12954
12954
  ), _0 = wt(
12955
12955
  () => import(
12956
12956
  /* webpackChunkName: "modal-chunk" */
12957
- "./AboutEntry.B_rrl3Hx.js"
12957
+ "./AboutEntry.BfABiXLF.js"
12958
12958
  ).then((e) => ({ default: e.About }))
12959
12959
  ), E0 = wt(
12960
12960
  () => import(
12961
12961
  /* webpackChunkName: "modal-chunk" */
12962
- "./UsageEntry.B33DA69H.js"
12962
+ "./UsageEntry.DKwZBmKL.js"
12963
12963
  ).then((e) => ({ default: e.Usage }))
12964
12964
  ), S0 = wt(
12965
12965
  () => import(
12966
12966
  /* webpackChunkName: "modal-chunk" */
12967
- "./MemoriesEntry.C5fgunhi.js"
12967
+ "./MemoriesEntry.Bjv3r7Hy.js"
12968
12968
  ).then((e) => ({ default: e.default }))
12969
12969
  ), C0 = ({
12970
12970
  open: e,
@@ -13036,23 +13036,23 @@ const ZS = [".png", ".jpg", ".jpeg", ".webp"], US = [".pdf", ".txt"], jS = [
13036
13036
  f || Promise.all([
13037
13037
  import(
13038
13038
  /* webpackChunkName: "modal-chunk" */
13039
- "./ProfileEntry.CkTJi0fr.js"
13039
+ "./ProfileEntry.eUeHbAk1.js"
13040
13040
  ),
13041
13041
  import(
13042
13042
  /* webpackChunkName: "modal-chunk" */
13043
- "./SettingsEntry.Do5WjlU8.js"
13043
+ "./SettingsEntry.2yvNhcXH.js"
13044
13044
  ),
13045
13045
  import(
13046
13046
  /* webpackChunkName: "modal-chunk" */
13047
- "./HistoryEntry.JyK-P6YP.js"
13047
+ "./HistoryEntry.j5_np-1i.js"
13048
13048
  ),
13049
13049
  import(
13050
13050
  /* webpackChunkName: "modal-chunk" */
13051
- "./AboutEntry.B_rrl3Hx.js"
13051
+ "./AboutEntry.BfABiXLF.js"
13052
13052
  ),
13053
13053
  import(
13054
13054
  /* webpackChunkName: "modal-chunk" */
13055
- "./UsageEntry.B33DA69H.js"
13055
+ "./UsageEntry.DKwZBmKL.js"
13056
13056
  )
13057
13057
  ]).finally(() => y(!0));
13058
13058
  }, [f]), N = W((k) => {
@@ -13425,12 +13425,12 @@ const Xa = "av-spinner", mu = ({ spinnerRef: e, mode: t = "system", type: n = "c
13425
13425
  }, Qa = 1, $0 = 150, L0 = wt(
13426
13426
  () => import(
13427
13427
  /* webpackChunkName: "LazyMessageAssistant" */
13428
- "./ChatBubbleAssistant.e9NPTZBB.js"
13428
+ "./ChatBubbleAssistant.DFyGfa72.js"
13429
13429
  )
13430
13430
  ), z0 = wt(
13431
13431
  () => import(
13432
13432
  /* webpackChunkName: "LazyMessageUser" */
13433
- "./ChatBubbleUser.CPnyeNCZ.js"
13433
+ "./ChatBubbleUser.DIsFz4pf.js"
13434
13434
  )
13435
13435
  ), F0 = Ve.memo(
13436
13436
  ({
@@ -13619,7 +13619,7 @@ const j0 = () => {
13619
13619
  }
13620
13620
  )
13621
13621
  ] });
13622
- };
13622
+ }, B0 = Intl.DateTimeFormat().resolvedOptions().timeZone;
13623
13623
  function gu({
13624
13624
  isComponent: e = !1,
13625
13625
  headerHeight: t = 0
@@ -13690,9 +13690,17 @@ function gu({
13690
13690
  getAccessToken: r
13691
13691
  }), k = Ie(() => new Ko({
13692
13692
  api: `${ni}/api/generate`,
13693
- // Only include static values in transport body.
13693
+ /**
13694
+ * Only include static values in transport body. Timezone is sent here for
13695
+ * usage WRITES (appendUsageToDB normalizes dates to the user's local day).
13696
+ * This is separate from the timezone sent via the GraphQL usage query
13697
+ * (UsageEntry.tsx), which is needed for usage READS (getUserLocalDate
13698
+ * computes "today"/"yesterday" in the user's locale). Both are required
13699
+ * because chat requests and usage queries are independent HTTP round trips.
13700
+ */
13694
13701
  body: {
13695
- username: n?.username
13702
+ username: n?.username,
13703
+ timezone: B0
13696
13704
  }
13697
13705
  }), [n?.username]);
13698
13706
  return fy({
@@ -13810,9 +13818,9 @@ function gu({
13810
13818
  );
13811
13819
  }
13812
13820
  gu.displayName = "App";
13813
- const nC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: gu }, Symbol.toStringTag, { value: "Module" }));
13821
+ const rC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: gu }, Symbol.toStringTag, { value: "Module" }));
13814
13822
  export {
13815
- nC as App,
13823
+ rC as App,
13816
13824
  pu as Bubble,
13817
13825
  rw as ButtonCancel,
13818
13826
  A0 as ButtonScroll,
@@ -13828,16 +13836,16 @@ export {
13828
13836
  Bb as Panel,
13829
13837
  Pr as ResponsiveTooltip,
13830
13838
  nw as Toggle,
13831
- q0 as debounce,
13839
+ X0 as debounce,
13832
13840
  hv as getDefaultExportFromCjs,
13833
13841
  Yt as isProbablyMobile,
13834
- Q0 as numberFormatter,
13835
- eC as obfuscate,
13836
- X0 as pluralize,
13842
+ eC as numberFormatter,
13843
+ tC as obfuscate,
13844
+ Q0 as pluralize,
13837
13845
  kb as preloadToast,
13838
13846
  Mb as showErrorToast,
13839
13847
  Ia as showSuccessToast,
13840
- tC as unObfuscate,
13848
+ nC as unObfuscate,
13841
13849
  _t as useAiChat,
13842
13850
  Ht as useCapability,
13843
13851
  I0 as useInViewport,
@@ -1,8 +1,8 @@
1
1
  import { jsxs as b, Fragment as S, jsx as t } from "react/jsx-runtime";
2
- import { n as M, useUserPreferences as _ } from "./index.CzW9JmR_.js";
3
- import { ButtonIcon as g, IconCopied as I, IconCopy as z, ChatContext as H, IconBranch as N, TOAST_CHAT_BRANCHED as R } from "./LogoEntry.By34kRtw.js";
2
+ import { n as M, useUserPreferences as _ } from "./index.sc0P6mn_.js";
3
+ import { ButtonIcon as g, IconCopied as I, IconCopy as z, ChatContext as H, IconBranch as N, TOAST_CHAT_BRANCHED as R } from "./LogoEntry.r-vdXCN2.js";
4
4
  import { useState as k, useRef as E, useCallback as y, useEffect as O, useContext as L } from "react";
5
- import { ResponsiveTooltip as w, useAiChat as U, v4 as j, CHAT_RESET as D, CHAT_SET_ATTACHMENTS as F, CHAT_SET_STATUS as P, showSuccessToast as q, CHAT_SCROLL_TO_BOTTOM as G } from "./App.CQ-x0yjq.js";
5
+ import { ResponsiveTooltip as w, useAiChat as U, v4 as j, CHAT_RESET as D, CHAT_SET_ATTACHMENTS as F, CHAT_SET_STATUS as P, showSuccessToast as q, CHAT_SCROLL_TO_BOTTOM as G } from "./App.zShMOQq9.js";
6
6
  const J = ({ children: e, richText: a = !1, mode: o = "system", focusMode: l = "system" }) => {
7
7
  const [n, c] = k(!1), r = E(null), p = y(async () => {
8
8
  if (navigator.clipboard)
@@ -1,10 +1,10 @@
1
1
  import { jsx as i, jsxs as A, Fragment as pe } from "react/jsx-runtime";
2
2
  import ye, { useRef as N, useState as w, useLayoutEffect as L, createContext as ve, useContext as Ce, useCallback as D, useMemo as Q, useId as ke, useEffect as Z } from "react";
3
- import { IconSearch as xe, Button as He, CellWrapper as z, BlurEffects as R, IconSortUp as we, IconSortDown as Ne, IconSort as Se, ButtonIcon as Te, IconDelete as Ae } from "./LogoEntry.By34kRtw.js";
4
- import { Card as Ie } from "./index.CAaGYw1A.js";
5
- import { TextInput as Fe } from "./index.O7mAbj0a.js";
3
+ import { IconSearch as xe, Button as He, CellWrapper as z, BlurEffects as R, IconSortUp as we, IconSortDown as Ne, IconSort as Se, ButtonIcon as Te, IconDelete as Ae } from "./LogoEntry.r-vdXCN2.js";
4
+ import { Card as Ie } from "./index.D0VZeadY.js";
5
+ import { TextInput as Fe } from "./index.DtsGz-nk.js";
6
6
  import g from "clsx";
7
- import { ResponsiveTooltip as Be } from "./App.CQ-x0yjq.js";
7
+ import { ResponsiveTooltip as Be } from "./App.zShMOQq9.js";
8
8
  const Re = 300;
9
9
  function De(e, s) {
10
10
  const { duration: r = Re, enabled: n = !0 } = s ?? {}, t = N(null), [o, a] = w({
@@ -1,7 +1,7 @@
1
1
  import { jsx as Up } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.CQ-x0yjq.js";
2
+ import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.zShMOQq9.js";
3
3
  import Vp, { useMemo as qp } from "react";
4
- import { TRIMESTERS_SHORT as Zp, TRIMESTERS as Mn, TIME_RANGES as xs, TIME_RANGE_LABELS as Sn } from "./LogoEntry.By34kRtw.js";
4
+ import { TRIMESTERS_SHORT as Zp, TRIMESTERS as Mn, TIME_RANGES as xs, TIME_RANGE_LABELS as Sn } from "./LogoEntry.r-vdXCN2.js";
5
5
  var ys = { exports: {} }, Kp = ys.exports, Tn;
6
6
  function _p() {
7
7
  return Tn || (Tn = 1, (function(Ce, ce) {
@@ -1,11 +1,11 @@
1
1
  import { jsx as St } from "react/jsx-runtime";
2
- import { n as os, useUserPreferences as ls, formatTimestamp as Vt } from "./index.CzW9JmR_.js";
3
- import { numberFormatter as us, pluralize as cs, Bubble as fs } from "./App.CQ-x0yjq.js";
2
+ import { n as os, useUserPreferences as ls, formatTimestamp as Vt } from "./index.sc0P6mn_.js";
3
+ import { numberFormatter as us, pluralize as cs, Bubble as fs } from "./App.zShMOQq9.js";
4
4
  import Jt from "clsx";
5
5
  import hs, { useState as xe, useEffect as Qt, useContext as At } from "react";
6
- import { useMarkdown as ds } from "./useMarkdown.BvrAhphK.js";
7
- import { ChatContext as ps, AppContext as ms } from "./LogoEntry.By34kRtw.js";
8
- import { BubbleActions as gs } from "./BubbleActions.CzRiFTYP.js";
6
+ import { useMarkdown as ds } from "./useMarkdown.BwimB2J8.js";
7
+ import { ChatContext as ps, AppContext as ms } from "./LogoEntry.r-vdXCN2.js";
8
+ import { BubbleActions as gs } from "./BubbleActions.B5kDm2j_.js";
9
9
  const we = {
10
10
  isEmpty: !0
11
11
  };
@@ -1,9 +1,9 @@
1
1
  import { jsx as o, Fragment as S, jsxs as b } from "react/jsx-runtime";
2
- import { Bubble as k } from "./App.CQ-x0yjq.js";
3
- import { Button as C } from "./LogoEntry.By34kRtw.js";
2
+ import { Bubble as k } from "./App.zShMOQq9.js";
3
+ import { Button as C } from "./LogoEntry.r-vdXCN2.js";
4
4
  import { useState as H, useMemo as m, isValidElement as T, useEffect as O } from "react";
5
- import { useMarkdown as w } from "./useMarkdown.BvrAhphK.js";
6
- import { BubbleCopyToClipboard as I } from "./BubbleActions.CzRiFTYP.js";
5
+ import { useMarkdown as w } from "./useMarkdown.BwimB2J8.js";
6
+ import { BubbleCopyToClipboard as I } from "./BubbleActions.B5kDm2j_.js";
7
7
  const L = 200, h = ({ string: e, idealLength: t = L }) => {
8
8
  if (e.length <= t)
9
9
  return {
@@ -1,5 +1,5 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { Panel as l, isProbablyMobile as f } from "./App.CQ-x0yjq.js";
2
+ import { Panel as l, isProbablyMobile as f } from "./App.zShMOQq9.js";
3
3
  const s = ({
4
4
  open: r,
5
5
  onOpenChange: a,
@@ -1,11 +1,11 @@
1
1
  import { jsx as e, jsxs as p, Fragment as F } from "react/jsx-runtime";
2
- import { B as L, V as ee, INFINITE_SCROLL_THRESHOLD as me, INFINITE_SCROLL_LIMIT as ue, n as ae, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_SORT_TIMESTAMP as he, LOCAL_STORAGE_SORT_TOKEN_USAGE as fe, LOCAL_STORAGE_SORT as pe, LOCAL_STORAGE_CHAT_ID as Ce, useDeleteChat as ye, graphQLRequest as Se, SERVICE_TYPES as ge, ACTION_SORT as Te, LOCAL_STORAGE_SEARCH as xe, LOCAL_STORAGE_KEYWORD_MATCH_ALL as Ae, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as De, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as _e, useChatsHistory as ke, useUserChatStats as we, ACTION_SEARCH as Re } from "./index.CzW9JmR_.js";
3
- import { DataGridContext as z, useColumnMeasurement as Ee, getBodyClass as Ie, DataGridHeader as Oe, DataGridRow as oe, DataGridCell as w, DataGridCellSort as Q, ButtonIconDelete as be, DataGrid as Le, InlineFilter as Ne, AnimatedWrapper as ve } from "./ButtonIconDelete.ibVM3xGr.js";
4
- import { pluralize as te, numberFormatter as He, ResponsiveTooltip as Me, isProbablyMobile as Ge, useAiChat as Be, useLocalStorage as v, v4 as Fe, CHAT_RESET as Ue, CHAT_SET_ATTACHMENTS as Ve, CHAT_SET_STATUS as Pe, showErrorToast as We, ConfirmationPanel as Ye, debounce as $e, Toggle as Z, ButtonCancel as qe } from "./App.CQ-x0yjq.js";
2
+ import { B as L, V as ee, INFINITE_SCROLL_THRESHOLD as me, INFINITE_SCROLL_LIMIT as ue, n as ae, LOCAL_STORAGE_PREFIX as N, LOCAL_STORAGE_SORT_TIMESTAMP as he, LOCAL_STORAGE_SORT_TOKEN_USAGE as fe, LOCAL_STORAGE_SORT as pe, LOCAL_STORAGE_CHAT_ID as Ce, useDeleteChat as ye, graphQLRequest as Se, SERVICE_TYPES as ge, ACTION_SORT as Te, LOCAL_STORAGE_SEARCH as xe, LOCAL_STORAGE_KEYWORD_MATCH_ALL as Ae, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as De, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as _e, useChatsHistory as ke, useUserChatStats as we, ACTION_SEARCH as Re } from "./index.sc0P6mn_.js";
3
+ import { DataGridContext as z, useColumnMeasurement as Ee, getBodyClass as Ie, DataGridHeader as Oe, DataGridRow as oe, DataGridCell as w, DataGridCellSort as Q, ButtonIconDelete as be, DataGrid as Le, InlineFilter as Ne, AnimatedWrapper as ve } from "./ButtonIconDelete.DwNJLOq2.js";
4
+ import { pluralize as te, numberFormatter as He, ResponsiveTooltip as Me, isProbablyMobile as Ge, useAiChat as Be, useLocalStorage as v, v4 as Fe, CHAT_RESET as Ue, CHAT_SET_ATTACHMENTS as Ve, CHAT_SET_STATUS as Pe, showErrorToast as We, ConfirmationPanel as Ye, debounce as $e, Toggle as Z, ButtonCancel as qe } from "./App.zShMOQq9.js";
5
5
  import { forwardRef as Ke, useContext as X, useRef as H, useState as W, useCallback as Y, useEffect as B, useImperativeHandle as je, useMemo as J } from "react";
6
- import { CellWrapper as ne, ButtonIcon as Xe, IconRotateLeft as ze, CARDS as Qe, HistoryContext as le, ChatContext as Ze, SortDirections as G, TOAST_CHAT_DELETED as Je, HISTORY_TITLE as et } from "./LogoEntry.By34kRtw.js";
7
- import { GenericPanel as tt } from "./GenericPanel.DJDVEtx5.js";
8
- import { Pill as re } from "./index.T_9M13To.js";
6
+ import { CellWrapper as ne, ButtonIcon as Xe, IconRotateLeft as ze, CARDS as Qe, HistoryContext as le, ChatContext as Ze, SortDirections as G, TOAST_CHAT_DELETED as Je, HISTORY_TITLE as et } from "./LogoEntry.r-vdXCN2.js";
7
+ import { GenericPanel as tt } from "./GenericPanel.Bj2vNTff.js";
8
+ import { Pill as re } from "./index.ByFIEUIn.js";
9
9
  import K from "clsx";
10
10
  const nt = 20, rt = 5, st = "20px", se = "data-row-index";
11
11
  function at(t) {
@@ -1,8 +1,8 @@
1
1
  import { jsxs as i, jsx as e, Fragment as x } from "react/jsx-runtime";
2
- import { n as N, getLayoutPaddingClass as C, getMessageContaintWrapperClass as v, isTauri as w } from "./index.CzW9JmR_.js";
3
- import { Logo as k, PASSWORD_PLACEHOLDER as M, ButtonIcon as u, IconShow as I, IconHide as L, Button as y, LOG_IN as E, LOG_IN_PASSKEY as S, IconPasskey as P } from "./LogoEntry.By34kRtw.js";
4
- import { Card as B } from "./index.CAaGYw1A.js";
5
- import { TextInput as O, TextInputMask as T } from "./index.O7mAbj0a.js";
2
+ import { n as N, getLayoutPaddingClass as C, getMessageContaintWrapperClass as v, isTauri as w } from "./index.sc0P6mn_.js";
3
+ import { Logo as k, PASSWORD_PLACEHOLDER as M, ButtonIcon as u, IconShow as I, IconHide as L, Button as y, LOG_IN as E, LOG_IN_PASSKEY as S, IconPasskey as P } from "./LogoEntry.r-vdXCN2.js";
4
+ import { Card as B } from "./index.D0VZeadY.js";
5
+ import { TextInput as O, TextInputMask as T } from "./index.DtsGz-nk.js";
6
6
  import { useState as r, useEffect as f } from "react";
7
7
  const G = () => {
8
8
  const { login: h, logoutReason: o, loginWithPasskey: g } = N(), [t, l] = r(""), [d, n] = r(""), [m, p] = r(!0), [s, c] = r({
@@ -1,7 +1,7 @@
1
1
  import Z, { useRef as H, useEffect as Q, useCallback as $1, useState as t2, useMemo as h1, useContext as e2, useId as c2, useLayoutEffect as _1 } from "react";
2
2
  import { jsxs as l, jsx as n } from "react/jsx-runtime";
3
3
  import a from "clsx";
4
- import { q as o2, R as s2, Y as p, E as n2 } from "./index.CzW9JmR_.js";
4
+ import { q as o2, R as s2, Y as p, E as n2 } from "./index.sc0P6mn_.js";
5
5
  const r2 = {
6
6
  ASC: "asc",
7
7
  DESC: "desc"
@@ -1,11 +1,11 @@
1
1
  import { jsx as e, jsxs as o, Fragment as S } from "react/jsx-runtime";
2
- import { n as Ae, LOCAL_STORAGE_PREFIX as H, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as De, LOCAL_STORAGE_SORT_MEMORY_COLUMN as Se, useUserMemories as we, useExpiredMemories as Te, useDeleteMemory as Ee, useDeleteAllActiveMemories as Me, useDeleteAllExpiredMemories as ke, useUpdateMemory as Re, useRestoreMemory as Le } from "./index.CzW9JmR_.js";
3
- import { Button as R, CellWrapper as Ie, SortDirections as b, ButtonIcon as G, IconEdit as Pe, IconRestore as Oe, IconDelete as Be } from "./LogoEntry.By34kRtw.js";
4
- import { DataGridContext as Q, useColumnMeasurement as _e, getBodyClass as Ge, DataGridHeader as Fe, DataGridRow as ie, DataGridCell as y, DataGridCellSort as K, ButtonIconDelete as ze, DataGrid as qe, InlineFilter as $e, AnimatedWrapper as je } from "./ButtonIconDelete.ibVM3xGr.js";
5
- import { Panel as Ue, Toggle as E, ButtonCancel as ne, ResponsiveTooltip as F, useLocalStorage as J, debounce as Ve, ConfirmationPanel as Z } from "./App.CQ-x0yjq.js";
2
+ import { n as Ae, LOCAL_STORAGE_PREFIX as H, LOCAL_STORAGE_SORT_MEMORY_DIRECTION as De, LOCAL_STORAGE_SORT_MEMORY_COLUMN as Se, useUserMemories as we, useExpiredMemories as Te, useDeleteMemory as Ee, useDeleteAllActiveMemories as Me, useDeleteAllExpiredMemories as ke, useUpdateMemory as Re, useRestoreMemory as Le } from "./index.sc0P6mn_.js";
3
+ import { Button as R, CellWrapper as Ie, SortDirections as b, ButtonIcon as G, IconEdit as Pe, IconRestore as Oe, IconDelete as Be } from "./LogoEntry.r-vdXCN2.js";
4
+ import { DataGridContext as Q, useColumnMeasurement as _e, getBodyClass as Ge, DataGridHeader as Fe, DataGridRow as ie, DataGridCell as y, DataGridCellSort as K, ButtonIconDelete as ze, DataGrid as qe, InlineFilter as $e, AnimatedWrapper as je } from "./ButtonIconDelete.DwNJLOq2.js";
5
+ import { Panel as Ue, Toggle as E, ButtonCancel as ne, ResponsiveTooltip as F, useLocalStorage as J, debounce as Ve, ConfirmationPanel as Z } from "./App.zShMOQq9.js";
6
6
  import { useState as f, useEffect as We, useContext as Xe, useRef as w, useMemo as ee, useCallback as Ye } from "react";
7
- import { TextArea as He } from "./index.BL3Q2Toc.js";
8
- import { GenericPanel as Qe } from "./GenericPanel.DJDVEtx5.js";
7
+ import { TextArea as He } from "./index.UuHYEgmi.js";
8
+ import { GenericPanel as Qe } from "./GenericPanel.Bj2vNTff.js";
9
9
  import M from "clsx";
10
10
  const Ke = ({
11
11
  open: r,
@@ -1,11 +1,11 @@
1
1
  import { jsxs as t, jsx as e, Fragment as F } from "react/jsx-runtime";
2
2
  import { useState as m, useMemo as M, useCallback as T, useRef as D } from "react";
3
- import { useUniqueId as G, CARDS as n, Button as K, ButtonIcon as O, IconPasskey as L, PROFILE_TITLE as Y } from "./LogoEntry.By34kRtw.js";
4
- import { preloadToast as j, showSuccessToast as H, showErrorToast as W, ConfirmationPanel as $, ButtonCancel as q } from "./App.CQ-x0yjq.js";
5
- import { GenericPanel as V } from "./GenericPanel.DJDVEtx5.js";
6
- import { n as J, useUserPreferences as Q, useServerCapabilities as X, G as Z, setUserPlan as ee, renderDataAsList as se, ct as re, isTauri as ae } from "./index.CzW9JmR_.js";
7
- import { Card as P } from "./index.CAaGYw1A.js";
8
- import { Pill as ne } from "./index.T_9M13To.js";
3
+ import { useUniqueId as G, CARDS as n, Button as K, ButtonIcon as O, IconPasskey as L, PROFILE_TITLE as Y } from "./LogoEntry.r-vdXCN2.js";
4
+ import { preloadToast as j, showSuccessToast as H, showErrorToast as W, ConfirmationPanel as $, ButtonCancel as q } from "./App.zShMOQq9.js";
5
+ import { GenericPanel as V } from "./GenericPanel.Bj2vNTff.js";
6
+ import { n as J, useUserPreferences as Q, useServerCapabilities as X, G as Z, setUserPlan as ee, renderDataAsList as se, ct as re, isTauri as ae } from "./index.sc0P6mn_.js";
7
+ import { Card as P } from "./index.D0VZeadY.js";
8
+ import { Pill as ne } from "./index.ByFIEUIn.js";
9
9
  import te from "clsx";
10
10
  const le = ({
11
11
  requestConfirmation: d
@@ -1,11 +1,11 @@
1
1
  import { jsx as o, jsxs as c, Fragment as Re } from "react/jsx-runtime";
2
- import { n as ke, useEntitlements as Pe, useUserPreferences as Be, k as B, LOCAL_STORAGE_OLED_MODE as ve, LOCAL_STORAGE_FULL_SCREEN as Ge, canEvaluateModels as Ue, z as xe, Y as Ve, applyOledMode as re, getCurrentGeoLocation as Fe, graphQLRequest as ce, SERVICE_TYPES as ie, q as He } from "./index.CzW9JmR_.js";
3
- import { AppContext as $e, SETTINGS_TITLE as ze, Button as de, CARDS as s, PROMPTS_DESCRIPTION as Ye, APP_SET_OLED_MODE as ue, APP_SET_FULL_SCREEN as me } from "./LogoEntry.By34kRtw.js";
4
- import { Card as N } from "./index.CAaGYw1A.js";
5
- import { Toggle as D, useCapability as v, useLocalStorage as he, ButtonCancel as je } from "./App.CQ-x0yjq.js";
6
- import { TextArea as Se } from "./index.BL3Q2Toc.js";
2
+ import { n as ke, useEntitlements as Pe, useUserPreferences as Be, k as B, LOCAL_STORAGE_OLED_MODE as ve, LOCAL_STORAGE_FULL_SCREEN as Ge, canEvaluateModels as Ue, z as xe, Y as Ve, applyOledMode as re, getCurrentGeoLocation as Fe, graphQLRequest as ce, SERVICE_TYPES as ie, q as He } from "./index.sc0P6mn_.js";
3
+ import { AppContext as $e, SETTINGS_TITLE as ze, Button as de, CARDS as s, PROMPTS_DESCRIPTION as Ye, APP_SET_OLED_MODE as ue, APP_SET_FULL_SCREEN as me } from "./LogoEntry.r-vdXCN2.js";
4
+ import { Card as N } from "./index.D0VZeadY.js";
5
+ import { Toggle as D, useCapability as v, useLocalStorage as he, ButtonCancel as je } from "./App.zShMOQq9.js";
6
+ import { TextArea as Se } from "./index.UuHYEgmi.js";
7
7
  import { useRef as We, useContext as qe, useState as a, useMemo as Ke, useEffect as Qe } from "react";
8
- import { GenericPanel as Je } from "./GenericPanel.DJDVEtx5.js";
8
+ import { GenericPanel as Je } from "./GenericPanel.Bj2vNTff.js";
9
9
  const r = ({
10
10
  label: L,
11
11
  subLabel: C,
@@ -1,14 +1,14 @@
1
1
  import { jsxs as c, jsx as t } from "react/jsx-runtime";
2
- import { n as W, useUserChatStats as q, LOCAL_STORAGE_PREFIX as C, LOCAL_STORAGE_USAGE_VIEW_MODE as X, LOCAL_STORAGE_USAGE_TIME_RANGE as Z, LOCAL_STORAGE_USAGE_SELECTED_MONTH as J, useChatsUsage as Q, renderDataAsList as $ } from "./index.CzW9JmR_.js";
3
- import { Card as p } from "./index.CAaGYw1A.js";
4
- import { useLocalStorage as _, DropdownMenu as ee, DropdownMenuGroupLabel as te, DropdownMenuItem as L, DropdownMenuSub as re, ButtonCancel as le, pluralize as M } from "./App.CQ-x0yjq.js";
5
- import { useUniqueId as se, TIME_RANGES as e, USAGE_TITLE as ne, CARDS as d, TIME_RANGE_LABELS as Y, MONTHS as N, ButtonIcon as u, IconChart as ae, IconSelected as v, IconUnSelected as k, IconPrevious as oe, IconNext as ie } from "./LogoEntry.By34kRtw.js";
2
+ import { n as W, useUserChatStats as Z, LOCAL_STORAGE_PREFIX as _, LOCAL_STORAGE_USAGE_VIEW_MODE as q, LOCAL_STORAGE_USAGE_TIME_RANGE as X, LOCAL_STORAGE_USAGE_SELECTED_MONTH as J, useChatsUsage as Q, renderDataAsList as $ } from "./index.sc0P6mn_.js";
3
+ import { Card as p } from "./index.D0VZeadY.js";
4
+ import { useLocalStorage as C, DropdownMenu as ee, DropdownMenuGroupLabel as te, DropdownMenuItem as L, DropdownMenuSub as re, ButtonCancel as le, pluralize as M } from "./App.zShMOQq9.js";
5
+ import { useUniqueId as se, TIME_RANGES as e, USAGE_TITLE as ne, CARDS as d, TIME_RANGE_LABELS as Y, MONTHS as N, ButtonIcon as u, IconChart as ae, IconSelected as v, IconUnSelected as k, IconPrevious as oe, IconNext as ie } from "./LogoEntry.r-vdXCN2.js";
6
6
  import { useRef as ce, useState as z, Suspense as de, lazy as ue } from "react";
7
- import { GenericPanel as Te } from "./GenericPanel.DJDVEtx5.js";
8
- const a = [0, 3, 6, 9], n = {
7
+ import { GenericPanel as Te } from "./GenericPanel.Bj2vNTff.js";
8
+ const Ee = Intl.DateTimeFormat().resolvedOptions().timeZone, a = [0, 3, 6, 9], n = {
9
9
  TOKEN: "token",
10
10
  MODEL: "model"
11
- }, Ee = [
11
+ }, Se = [
12
12
  e.TODAY,
13
13
  e.YESTERDAY,
14
14
  e.MONTH_TO_DATE,
@@ -17,33 +17,40 @@ const a = [0, 3, 6, 9], n = {
17
17
  ], me = ue(
18
18
  () => import(
19
19
  /* webpackChunkName: "chart-highcharts" */
20
- "./Chart.s2ABR6B-.js"
20
+ "./Chart.CGX1wHyQ.js"
21
21
  )
22
- ), Me = ({
22
+ ), Ne = ({
23
23
  open: P,
24
24
  onOpenChange: f
25
25
  }) => {
26
- const D = ce(null), { getAccessToken: g, user: x } = W(), U = se(), { data: o, isSuccess: H } = q({
27
- user: x?.username,
26
+ const D = ce(null), { getAccessToken: g, user: R } = W(), U = se(), { data: o, isSuccess: H } = Z({
27
+ user: R?.username,
28
28
  getAccessToken: g
29
- }), R = Math.floor((/* @__PURE__ */ new Date()).getMonth() / 3) * 3, [I, A] = z(R), [i, b] = _({
30
- key: C + X,
29
+ }), x = Math.floor((/* @__PURE__ */ new Date()).getMonth() / 3) * 3, [I, A] = z(x), [i, b] = C({
30
+ key: _ + q,
31
31
  initialValue: n.MODEL
32
- }), [r, T] = _({
33
- key: C + Z,
32
+ }), [r, T] = C({
33
+ key: _ + X,
34
34
  initialValue: e.CURRENT_YEAR
35
- }), [s, E] = _({
36
- key: C + J,
35
+ }), [s, E] = C({
36
+ key: _ + J,
37
37
  initialValue: null
38
38
  }), [G, w] = z(
39
39
  (/* @__PURE__ */ new Date()).getFullYear()
40
- ), { data: m, isSuccess: F } = Q({
41
- user: x?.username,
40
+ ), { data: S, isSuccess: F } = Q({
41
+ user: R?.username,
42
42
  getAccessToken: g,
43
43
  timeRange: r,
44
44
  month: r === e.SPECIFIC_MONTH && s !== null ? String(s) : void 0,
45
45
  year: r === e.SPECIFIC_MONTH ? String(G) : void 0,
46
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
46
+ /**
47
+ * Timezone is sent here for usage READS (the resolver uses getUserLocalDate
48
+ * to compute "today"/"yesterday" in the user's locale). This is separate
49
+ * from the timezone sent in the chat transport body (App.tsx), which is
50
+ * needed for usage WRITES (appendUsageToDB normalizes dates to the user's
51
+ * local day). Both are required because these are independent HTTP requests.
52
+ */
53
+ timezone: Ee
47
54
  }), B = (l) => {
48
55
  if (l.preventDefault(), r === e.MONTH_TO_DATE)
49
56
  return;
@@ -77,7 +84,7 @@ const a = [0, 3, 6, 9], n = {
77
84
  const h = (a.indexOf(I) - 1 + a.length) % a.length;
78
85
  A(a[h]);
79
86
  }, V = (l) => {
80
- T(l), l !== e.SPECIFIC_MONTH && E(null), (l === e.CURRENT_YEAR || l === e.LAST_YEAR) && A(R);
87
+ T(l), l !== e.SPECIFIC_MONTH && E(null), (l === e.CURRENT_YEAR || l === e.LAST_YEAR) && A(x);
81
88
  }, j = (l) => {
82
89
  E(l), w((/* @__PURE__ */ new Date()).getFullYear()), T(e.SPECIFIC_MONTH);
83
90
  }, K = () => r === e.SPECIFIC_MONTH && s !== null ? N[s] : Y[r];
@@ -96,7 +103,7 @@ const a = [0, 3, 6, 9], n = {
96
103
  header: d.MAIN_STATISTICS.USAGE,
97
104
  className: "plume-dark dark:plume-lighter mb-4 min-h-144",
98
105
  noBorder: !0,
99
- children: F && m ? /* @__PURE__ */ c(de, { fallback: /* @__PURE__ */ t("div", {}), children: [
106
+ children: F && S ? /* @__PURE__ */ c(de, { fallback: /* @__PURE__ */ t("div", {}), children: [
100
107
  /* @__PURE__ */ t("div", { className: "flex flex-wrap justify-center mb-2", children: /* @__PURE__ */ t("div", { className: "box-border max-w-full basis-auto", children: /* @__PURE__ */ c(
101
108
  ee,
102
109
  {
@@ -115,7 +122,7 @@ const a = [0, 3, 6, 9], n = {
115
122
  defaultPlacement: "bottom-start",
116
123
  children: [
117
124
  /* @__PURE__ */ t(te, { children: "Date Range" }),
118
- Ee.map((l) => /* @__PURE__ */ t(
125
+ Se.map((l) => /* @__PURE__ */ t(
119
126
  L,
120
127
  {
121
128
  label: Y[l],
@@ -124,12 +131,12 @@ const a = [0, 3, 6, 9], n = {
124
131
  },
125
132
  l
126
133
  )),
127
- /* @__PURE__ */ t(re, { label: "Month", children: N.map((l, S) => /* @__PURE__ */ t(
134
+ /* @__PURE__ */ t(re, { label: "Month", children: N.map((l, m) => /* @__PURE__ */ t(
128
135
  L,
129
136
  {
130
137
  label: l,
131
- selected: r === e.SPECIFIC_MONTH && s === S,
132
- onClick: () => j(S)
138
+ selected: r === e.SPECIFIC_MONTH && s === m,
139
+ onClick: () => j(m)
133
140
  },
134
141
  l
135
142
  )) })
@@ -163,11 +170,11 @@ const a = [0, 3, 6, 9], n = {
163
170
  /* @__PURE__ */ t(
164
171
  me,
165
172
  {
166
- tokenUsage: i === n.TOKEN ? m.tokenUsage?.series || [] : m.modelUsage?.series || [],
173
+ tokenUsage: i === n.TOKEN ? S.tokenUsage?.series || [] : S.modelUsage?.series || [],
167
174
  page: I,
168
175
  viewMode: i,
169
176
  timeRange: r,
170
- categories: m.categories,
177
+ categories: S.categories,
171
178
  chartTitle: r === e.SPECIFIC_MONTH && s !== null ? N[s] : void 0
172
179
  }
173
180
  ),
@@ -224,5 +231,5 @@ const a = [0, 3, 6, 9], n = {
224
231
  );
225
232
  };
226
233
  export {
227
- Me as Usage
234
+ Ne as Usage
228
235
  };
@@ -1,4 +1,4 @@
1
- import { isObjectLike as b, baseGetTag as gn, isArray as A, Symbol as v, arrayLikeKeys as an, baseKeys as dn, isArrayLike as W, memoize as hn, isArguments as z, MapCache as pn, eq as An, Uint8Array as m, getTag as N, isBuffer as U, Stack as R, isTypedArray as _n, isObject as on, isLength as wn, isIndex as On, identity as V, baseFor as Pn, Set as S } from "./rehype-mermaid.Dyd7emFj.js";
1
+ import { isObjectLike as b, baseGetTag as gn, isArray as A, Symbol as v, arrayLikeKeys as an, baseKeys as dn, isArrayLike as W, memoize as hn, isArguments as z, MapCache as pn, eq as An, Uint8Array as m, getTag as N, isBuffer as U, Stack as R, isTypedArray as _n, isObject as on, isLength as wn, isIndex as On, identity as V, baseFor as Pn, Set as S } from "./rehype-mermaid.DoqqoD0v.js";
2
2
  var vn = "[object Symbol]";
3
3
  function x(n) {
4
4
  return typeof n == "symbol" || b(n) && gn(n) == vn;
@@ -1,4 +1,4 @@
1
- import { withPath as ln, pi as un, cos as H, sin as q, constant as B, halfPi as rn, epsilon as y, tau as tn, sqrt as L, min as _, abs as an, atan2 as o, asin as sn, max as on, acos as fn } from "./rehype-mermaid.Dyd7emFj.js";
1
+ import { withPath as ln, pi as un, cos as H, sin as q, constant as B, halfPi as rn, epsilon as y, tau as tn, sqrt as L, min as _, abs as an, atan2 as o, asin as sn, max as on, acos as fn } from "./rehype-mermaid.DoqqoD0v.js";
2
2
  function cn(l) {
3
3
  return l.innerRadius;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { EmptyFileSystem as n, inject as i, MermaidGeneratedSharedModule as o, createDefaultSharedCoreModule as s, __name as a, ArchitectureGeneratedModule as l, createDefaultCoreModule as d, AbstractMermaidValueConverter as h, AbstractMermaidTokenBuilder as m } from "./mermaid-parser.core.DWOKEC2F.js";
1
+ import { EmptyFileSystem as n, inject as i, MermaidGeneratedSharedModule as o, createDefaultSharedCoreModule as s, __name as a, ArchitectureGeneratedModule as l, createDefaultCoreModule as d, AbstractMermaidValueConverter as h, AbstractMermaidTokenBuilder as m } from "./mermaid-parser.core.BR3W-Erf.js";
2
2
  var t, A = (t = class extends m {
3
3
  constructor() {
4
4
  super(["architecture"]);
@@ -1,8 +1,8 @@
1
- import { __name as dt, selectSvgElement as Ze, setupGraphViewbox as ke, log as Se, setAccTitle as qe, getAccTitle as Qe, setDiagramTitle as Je, getDiagramTitle as Ke, getAccDescription as je, setAccDescription as _e, clear as tr, cleanAndMerge as er, getConfig as rr, defaultConfig_default as ir, getConfig2 as Ee, createText as me, getIconSVG as pe, sanitizeText as ar, select as nr, getEdgeId as or, registerIconPacks as sr, unknownIcon as hr } from "./rehype-mermaid.Dyd7emFj.js";
2
- import { populateCommonDb as lr } from "./chunk-4BX2VUAB.Ug-JP9jY.js";
3
- import { parse as fr } from "./mermaid-parser.core.DWOKEC2F.js";
1
+ import { __name as dt, selectSvgElement as Ze, setupGraphViewbox as ke, log as Se, setAccTitle as qe, getAccTitle as Qe, setDiagramTitle as Je, getDiagramTitle as Ke, getAccDescription as je, setAccDescription as _e, clear as tr, cleanAndMerge as er, getConfig as rr, defaultConfig_default as ir, getConfig2 as Ee, createText as me, getIconSVG as pe, sanitizeText as ar, select as nr, getEdgeId as or, registerIconPacks as sr, unknownIcon as hr } from "./rehype-mermaid.DoqqoD0v.js";
2
+ import { populateCommonDb as lr } from "./chunk-4BX2VUAB.CWTLyRbm.js";
3
+ import { parse as fr } from "./mermaid-parser.core.BR3W-Erf.js";
4
4
  import { cytoscape as Fe } from "./cytoscape.esm.DmRZGnqW.js";
5
- import { getDefaultExportFromCjs as cr } from "./App.CQ-x0yjq.js";
5
+ import { getDefaultExportFromCjs as cr } from "./App.zShMOQq9.js";
6
6
  var he = { exports: {} }, le = { exports: {} }, fe = { exports: {} }, gr = fe.exports, we;
7
7
  function ur() {
8
8
  return we || (we = 1, (function(I, x) {