@versini/sassysaint 8.130.3 → 8.131.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 (86) hide show
  1. package/dist/chunks/AboutChangelog.C8uvcncO.js +33 -0
  2. package/dist/chunks/{AboutEntry.CK0gxCDB.js → AboutEntry.fkKsnRw7.js} +25 -25
  3. package/dist/chunks/{App.CMhxF_Ah.js → App.CbGVTonU.js} +21 -21
  4. package/dist/chunks/{BubbleActions.BQZWz316.js → BubbleActions.gsXkDh0M.js} +3 -3
  5. package/dist/chunks/{ButtonIconDelete.CGHKDnQ1.js → ButtonIconDelete.D9IhckYM.js} +6 -6
  6. package/dist/chunks/{Chart.CibqFXkw.js → Chart.D7q7cdYJ.js} +2 -2
  7. package/dist/chunks/{ChatBubbleAssistant.CAVPptKh.js → ChatBubbleAssistant.DVct7v8Z.js} +6 -6
  8. package/dist/chunks/{ChatBubbleUser.BwG7YphF.js → ChatBubbleUser.D4bC6RSr.js} +33 -33
  9. package/dist/chunks/{GenericPanel.Myj7Iisn.js → GenericPanel.CPzDXuAa.js} +1 -1
  10. package/dist/chunks/{HistoryEntry.MEsOcyGh.js → HistoryEntry.dvhdJbv7.js} +6 -6
  11. package/dist/chunks/{LoginEntry.i4ZOdP6q.js → LoginEntry.gU6r88Ot.js} +4 -4
  12. package/dist/chunks/{LogoEntry.BHJG8kbV.js → LogoEntry.DhPoevIR.js} +36 -36
  13. package/dist/chunks/{MemoriesEntry.CdZPyCu0.js → MemoriesEntry.DRiP4VAB.js} +6 -6
  14. package/dist/chunks/{ProfileEntry.DMVF_-Wi.js → ProfileEntry.DQvWIx6k.js} +30 -30
  15. package/dist/chunks/{SettingsEntry.B0cUm5SQ.js → SettingsEntry.b9l-Tz8O.js} +59 -59
  16. package/dist/chunks/{UsageEntry.DJEtJZ3m.js → UsageEntry.B1EmQNpd.js} +52 -52
  17. package/dist/chunks/{_baseUniq.DmjIR6td.js → _baseUniq.DJiJ_3zP.js} +1 -1
  18. package/dist/chunks/{arc.DcJee01o.js → arc.DMDA3a7p.js} +1 -1
  19. package/dist/chunks/{architecture-U656AL7Q.yV0M-1lY.js → architecture-U656AL7Q.B-QJzTGi.js} +1 -1
  20. package/dist/chunks/{architectureDiagram-VXUJARFQ.BhQzLbzT.js → architectureDiagram-VXUJARFQ.CA4dn-z_.js} +4 -4
  21. package/dist/chunks/{blockDiagram-VD42YOAC.C1THvAfp.js → blockDiagram-VD42YOAC.BhF_ITv_.js} +5 -5
  22. package/dist/chunks/{browser.CRXiahRg.js → browser.C9kX-Ad1.js} +1 -1
  23. package/dist/chunks/{c4Diagram-YG6GDRKO.3TsrAz3C.js → c4Diagram-YG6GDRKO.oSBYpWwX.js} +2 -2
  24. package/dist/chunks/{channel.BZRWOCms.js → channel.CeJMkKAE.js} +1 -1
  25. package/dist/chunks/{chunk-4BX2VUAB.DQSk9jBK.js → chunk-4BX2VUAB.BQAY0wlL.js} +1 -1
  26. package/dist/chunks/{chunk-55IACEB6.B6Nk9nSU.js → chunk-55IACEB6.DrJjL_-Q.js} +1 -1
  27. package/dist/chunks/{chunk-B4BG7PRW.CFobKCLL.js → chunk-B4BG7PRW.Cjxg_Qt4.js} +4 -4
  28. package/dist/chunks/{chunk-DI55MBZ5.CU7AoaWm.js → chunk-DI55MBZ5.D17BVe-A.js} +3 -3
  29. package/dist/chunks/{chunk-FMBD7UC4.DY-MN0cF.js → chunk-FMBD7UC4.rVpxeTek.js} +1 -1
  30. package/dist/chunks/{chunk-QN33PNHL.C7j_tG30.js → chunk-QN33PNHL.JNdM3ePb.js} +1 -1
  31. package/dist/chunks/{chunk-QZHKN3VN.DKkKx6TR.js → chunk-QZHKN3VN.DJIrHsOF.js} +1 -1
  32. package/dist/chunks/{chunk-TZMSLE5B.CVMp6S_N.js → chunk-TZMSLE5B.BFzKDsmS.js} +1 -1
  33. package/dist/chunks/{classDiagram-2ON5EDUG.CC6ALR5C.js → classDiagram-2ON5EDUG.Dqom3_PW.js} +2 -2
  34. package/dist/chunks/{classDiagram-v2-WZHVMYZB.CC6ALR5C.js → classDiagram-v2-WZHVMYZB.Dqom3_PW.js} +2 -2
  35. package/dist/chunks/{clone.Cd0gx_IV.js → clone.NfnpEOmU.js} +1 -1
  36. package/dist/chunks/{cose-bilkent-S5V4N54A.DbpRvBvG.js → cose-bilkent-S5V4N54A.BThJWxBt.js} +2 -2
  37. package/dist/chunks/{dagre-6UL2VRFP.Dg1_DyCK.js → dagre-6UL2VRFP.BZLyryRe.js} +5 -5
  38. package/dist/chunks/{diagram-PSM6KHXK.D6fULci9.js → diagram-PSM6KHXK.CLK8t3In.js} +4 -4
  39. package/dist/chunks/{diagram-QEK2KX5R.CLLYV_oO.js → diagram-QEK2KX5R.CPdidz1J.js} +3 -3
  40. package/dist/chunks/{diagram-S2PKOQOG.DS0ZsxP1.js → diagram-S2PKOQOG.B-J1d3zU.js} +3 -3
  41. package/dist/chunks/{erDiagram-Q2GNP2WA.cwUBf2fc.js → erDiagram-Q2GNP2WA.DrFGDol9.js} +4 -4
  42. package/dist/chunks/{flowDiagram-NV44I4VS.CJYFN_z-.js → flowDiagram-NV44I4VS.DvdAObX2.js} +5 -5
  43. package/dist/chunks/{ganttDiagram-JELNMOA3.wYxC4DUl.js → ganttDiagram-JELNMOA3.Vut_LMEp.js} +2 -2
  44. package/dist/chunks/{gitGraph-F6HP7TQM.Bww4kc5M.js → gitGraph-F6HP7TQM.6BQNTn_2.js} +1 -1
  45. package/dist/chunks/{gitGraphDiagram-NY62KEGX.Do1QSUSB.js → gitGraphDiagram-NY62KEGX.DRiFAHdm.js} +4 -4
  46. package/dist/chunks/{graph.C5fmxueZ.js → graph.zVycQPfo.js} +2 -2
  47. package/dist/chunks/{index.aRnGg0EU.js → index.B6YyB4XW.js} +2 -2
  48. package/dist/chunks/{index.CgIlyTry.js → index.B92GCn-d.js} +1 -1
  49. package/dist/chunks/{index.B93Uvssr.js → index.BMt3M4Nv.js} +3 -3
  50. package/dist/chunks/{index.BxFn8Omo.js → index.BlIHRLS6.js} +2 -2
  51. package/dist/chunks/{index.DB46hKHH.js → index.Bp9VVsVX.js} +3 -3
  52. package/dist/chunks/{index.DnGp_5--.js → index.ChmmVlFx.js} +2 -2
  53. package/dist/chunks/{index.DvzXUSUF.js → index.DUFWLD-w.js} +1 -1
  54. package/dist/chunks/{index.CsDd6Lmi.js → index.DnIZ0wJ0.js} +1 -1
  55. package/dist/chunks/{index.BPDoF0Dl.js → index.DtbNV8LP.js} +2 -2
  56. package/dist/chunks/index.orV6HL9H.js +90 -0
  57. package/dist/chunks/{index.Cq97D3yW.js → index.uY2EH_C1.js} +1 -1
  58. package/dist/chunks/{info-NVLQJR56.Cgnx1eoq.js → info-NVLQJR56.C0owDTpW.js} +1 -1
  59. package/dist/chunks/{infoDiagram-WHAUD3N6.DyzLr0ln.js → infoDiagram-WHAUD3N6.Dqidx1Et.js} +2 -2
  60. package/dist/chunks/{journeyDiagram-XKPGCS4Q.ChVgNk3s.js → journeyDiagram-XKPGCS4Q.C1355yds.js} +4 -4
  61. package/dist/chunks/{kanban-definition-3W4ZIXB7.BXaCGBlj.js → kanban-definition-3W4ZIXB7.CsunaSDa.js} +2 -2
  62. package/dist/chunks/{layout.D8csq-WL.js → layout.Bf74_Ahk.js} +4 -4
  63. package/dist/chunks/{mermaid-parser.core.CFw0EGGj.js → mermaid-parser.core.u9WQklBV.js} +10 -10
  64. package/dist/chunks/{min.hDS3-5im.js → min.CdbgUHN0.js} +2 -2
  65. package/dist/chunks/{mindmap-definition-VGOIOE7T.KUpa5Gtd.js → mindmap-definition-VGOIOE7T.BVTFryaY.js} +3 -3
  66. package/dist/chunks/{packet-BFZMPI3H.BuHURcSf.js → packet-BFZMPI3H.BBiH4yHP.js} +1 -1
  67. package/dist/chunks/{pie-7BOR55EZ.ehTx4vPy.js → pie-7BOR55EZ.DxwuY2B8.js} +1 -1
  68. package/dist/chunks/{pieDiagram-ADFJNKIX.BGXN4Hh0.js → pieDiagram-ADFJNKIX.Cmt96iXQ.js} +4 -4
  69. package/dist/chunks/{quadrantDiagram-AYHSOK5B.Dphm4v5_.js → quadrantDiagram-AYHSOK5B.CiUph7f0.js} +1 -1
  70. package/dist/chunks/{radar-NHE76QYJ.D6mllNgx.js → radar-NHE76QYJ.CYplnCts.js} +1 -1
  71. package/dist/chunks/{rehype-mermaid.DVN2yVRe.js → rehype-mermaid.Wl-O5hIy.js} +33 -33
  72. package/dist/chunks/{requirementDiagram-UZGBJVZJ.BfsOTyj5.js → requirementDiagram-UZGBJVZJ.eB3IRTwf.js} +3 -3
  73. package/dist/chunks/{sankeyDiagram-TZEHDZUN.8VvTFEub.js → sankeyDiagram-TZEHDZUN.BqLa2doe.js} +1 -1
  74. package/dist/chunks/{sequenceDiagram-WL72ISMW.Df1uY_57.js → sequenceDiagram-WL72ISMW.CH2e3I1x.js} +3 -3
  75. package/dist/chunks/{stateDiagram-FKZM4ZOC.CxbZTLYE.js → stateDiagram-FKZM4ZOC.aSJUllFH.js} +4 -4
  76. package/dist/chunks/{stateDiagram-v2-4FDKWEC3.X35_dco7.js → stateDiagram-v2-4FDKWEC3.CL5K8bj0.js} +2 -2
  77. package/dist/chunks/{timeline-definition-IT6M3QCI.Dz4XlRfl.js → timeline-definition-IT6M3QCI.CtsRnMNG.js} +2 -2
  78. package/dist/chunks/{treemap-KMMF4GRG.9nN1exS5.js → treemap-KMMF4GRG.CDiRec4x.js} +1 -1
  79. package/dist/chunks/{useMarkdown.zySbqIIq.js → useMarkdown.HJdsuTE1.js} +8 -8
  80. package/dist/chunks/{xychartDiagram-PRI3JC2R.BOTBBlzW.js → xychartDiagram-PRI3JC2R.vYb258V5.js} +1 -1
  81. package/dist/components/SassySaint/SassySaint.js +1 -1
  82. package/dist/index.js +3 -3
  83. package/dist/style.css +1 -1
  84. package/package.json +4 -4
  85. package/dist/chunks/AboutChangelog.BplyACyT.js +0 -33
  86. package/dist/chunks/index.Bi0z4EE1.js +0 -90
@@ -0,0 +1,33 @@
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
+ import { useInViewport as c, ButtonScroll as n } from "./App.CbGVTonU.js";
3
+ import { useRef as f, useCallback as u, useLayoutEffect as p } from "react";
4
+ import { useMarkdown as d } from "./useMarkdown.HJdsuTE1.js";
5
+ const b = ({ content: o }) => {
6
+ const [l, r] = d(), { ref: a, inViewport: m } = c(), e = f(null), i = u(() => {
7
+ e.current && e.current.scrollIntoView({
8
+ behavior: "smooth",
9
+ block: "end"
10
+ });
11
+ }, []);
12
+ return p(() => {
13
+ o && r(o);
14
+ }, [r, o]), /* @__PURE__ */ s("div", { className: "relative", children: [
15
+ /* @__PURE__ */ s("div", { className: "text-sm plume-li:text-sm plume-h3:first-of-type:mt-1 min-h-60 max-h-100 overflow-scroll", children: [
16
+ l,
17
+ /* @__PURE__ */ t("div", { ref: a, className: "scroll-marker" }),
18
+ /* @__PURE__ */ t("div", { ref: e, className: "pt-2" })
19
+ ] }),
20
+ /* @__PURE__ */ t(
21
+ n,
22
+ {
23
+ className: "z-10 absolute right-4",
24
+ show: !m,
25
+ bottom: 0,
26
+ onClick: i
27
+ }
28
+ )
29
+ ] });
30
+ };
31
+ export {
32
+ b as default
33
+ };
@@ -1,52 +1,52 @@
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.BHJG8kbV.js";
4
- import { pluralize as E, isProbablyMobile as S, ButtonCancel as f } from "./App.CMhxF_Ah.js";
5
- import { GenericPanel as C } from "./GenericPanel.Myj7Iisn.js";
6
- import { Card as t } from "./index.CgIlyTry.js";
3
+ import { useUniqueId as c, CARDS as r, ABOUT_TITLE as I } from "./LogoEntry.DhPoevIR.js";
4
+ import { pluralize as E, isProbablyMobile as S, ButtonCancel as f } from "./App.CbGVTonU.js";
5
+ import { GenericPanel as C } from "./GenericPanel.CPzDXuAa.js";
6
+ import { Card as s } from "./index.B92GCn-d.js";
7
7
  import O from "clsx";
8
- import { useServerCapabilities as U, useChangelogs as L, renderDataAsList as d } from "./index.aRnGg0EU.js";
8
+ import { useServerCapabilities as U, useChangelogs as L, renderDataAsList as d } from "./index.B6YyB4XW.js";
9
9
  const N = g(
10
10
  () => import(
11
11
  /* webpackChunkName: "LazyAboutChangelog" */
12
- "./AboutChangelog.BplyACyT.js"
12
+ "./AboutChangelog.C8uvcncO.js"
13
13
  )
14
14
  ), R = () => {
15
- const i = c(), o = c(), { data: s, isSuccess: m } = U(), { data: u, isSuccess: T } = L(), h = s?.version || "", a = s?.models || [], p = s?.buildTime || "";
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 || "";
16
16
  return /* @__PURE__ */ b(n, { children: [
17
17
  /* @__PURE__ */ e(
18
- t,
18
+ s,
19
19
  {
20
20
  header: r.ABOUT.TITLE_CLIENT,
21
- className: "prose-dark dark:prose-lighter mb-4",
21
+ className: "plume-dark dark:plume-lighter mb-4",
22
22
  noBorder: !0,
23
- children: d(i, {
24
- [r.ABOUT.VERSION]: "8.130.3",
25
- [r.ABOUT.BUILD_TIMESTAMP]: "01/24/2026 05:45 PM EST"
23
+ children: d(l, {
24
+ [r.ABOUT.VERSION]: "8.131.0",
25
+ [r.ABOUT.BUILD_TIMESTAMP]: "01/25/2026 02:23 PM EST"
26
26
  })
27
27
  }
28
28
  ),
29
29
  m ? /* @__PURE__ */ e(
30
- t,
30
+ s,
31
31
  {
32
32
  header: r.ABOUT.TITLE_SERVER,
33
- className: "prose-dark dark:prose-lighter mb-4",
33
+ className: "plume-dark dark:plume-lighter mb-4",
34
34
  noBorder: !0,
35
- children: d(o, {
35
+ children: d(t, {
36
36
  [r.ABOUT.VERSION]: h,
37
37
  [r.ABOUT.BUILD_TIMESTAMP]: p,
38
- [E(r.ABOUT.PROVIDER, a.length)]: /* @__PURE__ */ e(n, { children: a.map((l) => /* @__PURE__ */ e("div", { className: "text-right", children: l }, l)) })
38
+ [E(r.ABOUT.PROVIDER, o.length)]: /* @__PURE__ */ e(n, { children: o.map((a) => /* @__PURE__ */ e("div", { className: "text-right", children: a }, a)) })
39
39
  })
40
40
  }
41
41
  ) : null,
42
42
  /* @__PURE__ */ e(
43
- t,
43
+ s,
44
44
  {
45
45
  noBorder: !0,
46
46
  mode: "dark",
47
47
  header: r.ABOUT.TITLE_CHANGELOG,
48
48
  headerClassName: "av-card__header mt-0 border-b-2 border-border-accent mb-4 leading-10",
49
- className: O("prose-lighter dark:prose-lighter", "min-h-123", {
49
+ className: O("plume-lighter dark:plume-lighter", "min-h-123", {
50
50
  "mb-5": S()
51
51
  }),
52
52
  children: T ? /* @__PURE__ */ e(A, { fallback: /* @__PURE__ */ e("div", { children: "Loading..." }), children: /* @__PURE__ */ e(N, { content: u.client }) }) : null
@@ -54,18 +54,18 @@ const N = g(
54
54
  )
55
55
  ] });
56
56
  }, G = ({
57
- open: i,
58
- onOpenChange: o
57
+ open: l,
58
+ onOpenChange: t
59
59
  }) => {
60
- const s = B(null);
60
+ const i = B(null);
61
61
  return /* @__PURE__ */ e(
62
62
  C,
63
63
  {
64
- open: i,
65
- onOpenChange: o,
64
+ open: l,
65
+ onOpenChange: t,
66
66
  title: I,
67
- initialFocus: s,
68
- footer: /* @__PURE__ */ e(f, { onOpenChange: o, ref: s }),
67
+ initialFocus: i,
68
+ footer: /* @__PURE__ */ e(f, { onOpenChange: t, ref: i }),
69
69
  children: /* @__PURE__ */ e(R, {})
70
70
  }
71
71
  );
@@ -1,8 +1,8 @@
1
1
  import { jsx as g, jsxs as L, Fragment as rt } from "react/jsx-runtime";
2
- import { ACTION_SORT as Tu, ACTION_SEARCH as Iu, ACTION_RESET_PROMPT as ti, ACTION_TOGGLE_PROMPT as ni, LOCAL_STORAGE_PREFIX as Te, LOCAL_STORAGE_CHAT_ID as rr, n as Ue, useChat as Au, DEFAULT_ICON_ACTION_SIZE as Xe, isTauri as mn, useUserPreferences as bt, serverUrl as ri, useEntitlements as Uo, useSaveChat as Ru, LOCAL_STORAGE_PRIVATE_DISCLOSURE as Ou, F as Ut, LOCAL_STORAGE_REASONING_DISCLOSURE as Nu, useQueryClient as oi, graphQLRequest as Wr, CHATS_QUERY_KEY as ys, SERVICE_TYPES as Gr, PROMPT_EDITABLE_AREA_CLASSNAME as ku, PROMPT_CLASSNAME as Mu, z as si, ERROR_MESSAGE as Pu, o as Wt, n$1 as pr, v as Du, INPUT_BOTTOM_OFFSET_IPHONE as $u, INPUT_BOTTOM_OFFSET_IPAD as Lu, INPUT_BOTTOM_OFFSET as ai, INPUT_BOTTOM_OFFSET_EXTRA as Yr, getLayoutPaddingClass as bo, canEvaluateModels as bs, W as zu, a as Fu, i as Zu, s as Uu, x as Bu, p as Jr, setNewProvider as ws, LOCAL_STORAGE_KEYWORD_MATCH_ALL as ju, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as Hu, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as Vu, useChatsHistory as Wu, y as wo, useServerCapabilities as Gu, getMessageContaintWrapperClass as Yu, UI_FOOTER_BUFFER as ii, UI_BUTTON_SCROLL_BUFFER as Ju, UI_DEFAULT_MAIN_HEIGHT as _s, Z as Ku, applyOledMode as qu, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Xu, B as Qu, LOCAL_STORAGE_SORT as ed, LOCAL_STORAGE_SEARCH as td, LOCAL_STORAGE_OLED_MODE as nd, LOCAL_STORAGE_FULL_SCREEN as rd, LOCAL_STORAGE_SORT_TIMESTAMP as od, LOCAL_STORAGE_SORT_TOKEN_USAGE as sd } from "./index.aRnGg0EU.js";
2
+ import { ACTION_SORT as Tu, ACTION_SEARCH as Iu, ACTION_RESET_PROMPT as ti, ACTION_TOGGLE_PROMPT as ni, LOCAL_STORAGE_PREFIX as Te, LOCAL_STORAGE_CHAT_ID as rr, n as Ue, useChat as Au, DEFAULT_ICON_ACTION_SIZE as Xe, isTauri as mn, useUserPreferences as bt, serverUrl as ri, useEntitlements as Uo, useSaveChat as Ru, LOCAL_STORAGE_PRIVATE_DISCLOSURE as Ou, F as Ut, LOCAL_STORAGE_REASONING_DISCLOSURE as Nu, useQueryClient as oi, graphQLRequest as Wr, CHATS_QUERY_KEY as ys, SERVICE_TYPES as Gr, PROMPT_EDITABLE_AREA_CLASSNAME as ku, PROMPT_CLASSNAME as Mu, z as si, ERROR_MESSAGE as Pu, o as Wt, n$1 as pr, v as Du, INPUT_BOTTOM_OFFSET_IPHONE as $u, INPUT_BOTTOM_OFFSET_IPAD as Lu, INPUT_BOTTOM_OFFSET as ai, INPUT_BOTTOM_OFFSET_EXTRA as Yr, getLayoutPaddingClass as bo, canEvaluateModels as bs, W as zu, a as Fu, i as Zu, s as Uu, x as Bu, p as Jr, setNewProvider as ws, LOCAL_STORAGE_KEYWORD_MATCH_ALL as ju, LOCAL_STORAGE_HISTORY_WITH_MEDIA_ONLY as Hu, LOCAL_STORAGE_HISTORY_WITH_SHARED_ONLY as Vu, useChatsHistory as Wu, y as wo, useServerCapabilities as Gu, getMessageContaintWrapperClass as Yu, UI_FOOTER_BUFFER as ii, UI_BUTTON_SCROLL_BUFFER as Ju, UI_DEFAULT_MAIN_HEIGHT as _s, Z as Ku, applyOledMode as qu, UI_DEFAULT_MAIN_HEIGHT_IPHONE as Xu, B as Qu, LOCAL_STORAGE_SORT as ed, LOCAL_STORAGE_SEARCH as td, LOCAL_STORAGE_OLED_MODE as nd, LOCAL_STORAGE_FULL_SCREEN as rd, LOCAL_STORAGE_SORT_TIMESTAMP as od, LOCAL_STORAGE_SORT_TOKEN_USAGE as sd } from "./index.B6YyB4XW.js";
3
3
  import * as w from "react";
4
4
  import Ve, { useSyncExternalStore as or, useCallback as V, useEffect as B, useRef as G, useState as U, createContext as ci, useContext as de, useMemo as Ie, useId as li, useLayoutEffect as xn, cloneElement as ui, Suspense as _o, lazy as wt, useReducer as Un } from "react";
5
- import { SortDirections as Bt, ChatContext as Be, ButtonIcon as Gt, useTheme as je, IconAddLight as ad, IconCloseLight as id, IconEditLight as cd, Button as dn, IconLockedLight as ld, IconUnlockedLight as ud, IconSelected as dd, IconUnSelected as fd, IconNext as pd, PromptsContext as Bo, IconBookSparklesLight as md, IconRewrite as hd, IconProofread as gd, IconMagic as vd, IconLightBulbLight as yd, IconSendLight as bd, CARDS as me, IconUploadLight as wd, INPUT_PLACEHOLDER_TEXT_IN_SESSION as di, INPUT_PLACEHOLDER_TEXT_MORNING as _d, INPUT_PLACEHOLDER_TEXT_TODAY as Ed, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Sd, INPUT_PLACEHOLDER_TEXT_EVENING as Cd, INPUT_PLACEHOLDER_TEXT_NIGHT as xd, INPUT_PLACEHOLDER_TEXT_DEFAULT as Td, IconClose as Id, AppContext as Tn, useUniqueId as Ad, CLIPBOARD_PROMPT as Es, FOOTER_DISCLAIMERS as Ss, useResizeObserver as fi, APP_SET_FOOTER_HEIGHT as Rd, FOOTER_TOP as Eo, FOOTER_BOTTOM as fn, APP_SET_FOOTER_POSITION as Kr, IconOpenAI as Od, IconAnthropic as Nd, IconGoogleGemini as kd, TOAST_PROVIDER_CHANGED as Cs, HistoryContext as pi, LOG_OUT as xs, IconBack as Bn, IconSliders as Md, IconHistory as Pd, IconChart as Dd, IconSettings as $d, Logo as Ld, appReducer as zd, APP_SET_OLED_MODE as Fd, APP_SET_FULL_SCREEN as Zd, APP_SET_THEME_PALETTE as Ud } from "./LogoEntry.BHJG8kbV.js";
5
+ import { SortDirections as Bt, ChatContext as Be, ButtonIcon as Gt, useTheme as je, IconAddLight as ad, IconCloseLight as id, IconEditLight as cd, Button as dn, IconLockedLight as ld, IconUnlockedLight as ud, IconSelected as dd, IconUnSelected as fd, IconNext as pd, PromptsContext as Bo, IconBookSparklesLight as md, IconRewrite as hd, IconProofread as gd, IconMagic as vd, IconLightBulbLight as yd, IconSendLight as bd, CARDS as me, IconUploadLight as wd, INPUT_PLACEHOLDER_TEXT_IN_SESSION as di, INPUT_PLACEHOLDER_TEXT_MORNING as _d, INPUT_PLACEHOLDER_TEXT_TODAY as Ed, INPUT_PLACEHOLDER_TEXT_AFTERNOON as Sd, INPUT_PLACEHOLDER_TEXT_EVENING as Cd, INPUT_PLACEHOLDER_TEXT_NIGHT as xd, INPUT_PLACEHOLDER_TEXT_DEFAULT as Td, IconClose as Id, AppContext as Tn, useUniqueId as Ad, CLIPBOARD_PROMPT as Es, FOOTER_DISCLAIMERS as Ss, useResizeObserver as fi, APP_SET_FOOTER_HEIGHT as Rd, FOOTER_TOP as Eo, FOOTER_BOTTOM as fn, APP_SET_FOOTER_POSITION as Kr, IconOpenAI as Od, IconAnthropic as Nd, IconGoogleGemini as kd, TOAST_PROVIDER_CHANGED as Cs, HistoryContext as pi, LOG_OUT as xs, IconBack as Bn, IconSliders as Md, IconHistory as Pd, IconChart as Dd, IconSettings as $d, Logo as Ld, appReducer as zd, APP_SET_OLED_MODE as Fd, APP_SET_FULL_SCREEN as Zd, APP_SET_THEME_PALETTE as Ud } from "./LogoEntry.DhPoevIR.js";
6
6
  import * as mi from "react-dom";
7
7
  import Bd, { createPortal as jd } from "react-dom";
8
8
  import D, { clsx as pt } from "clsx";
@@ -8325,7 +8325,7 @@ const Oa = ({ blurEffect: e }) => D("absolute left-0 right-0 z-20 backdrop-brigh
8325
8325
  "small"
8326
8326
  ));
8327
8327
  return {
8328
- outerWrapper: D("prose prose-lighter flex flex-col bg-surface-dark overflow-hidden", {
8328
+ outerWrapper: D("plume plume-lighter flex flex-col bg-surface-dark overflow-hidden", {
8329
8329
  "duration-200 ease-out": r,
8330
8330
  /**
8331
8331
  * Panel styles
@@ -11457,7 +11457,7 @@ const Ja = (e) => {
11457
11457
  return t.displayName || t.name || "Component";
11458
11458
  }
11459
11459
  return "Element";
11460
- }, SS = "z-100 rounded-md bg-surface-light shadow-sm shadow-border-dark outline-hidden p-3 sm:p-2 prose prose-dark", CS = "z-[60] rounded-md bg-surface-light shadow-sm shadow-border-dark outline-hidden p-3 sm:p-2 mx-3", xS = D("flex items-center flex-row justify-between", "w-full", "m-0 first:mt-0 mt-2 sm:mt-1 px-2 py-1", "rounded-md border border-transparent", "text-left text-base select-none cursor-pointer", "outline-hidden focus:border focus:border-border-medium focus:bg-surface-lighter focus:underline", "disabled:cursor-not-allowed disabled:text-copy-medium", "data-highlighted:bg-surface-lighter data-highlighted:border-border-medium data-highlighted:underline", "data-[state=open]:bg-surface-lighter"), TS = (e) => e ? e.startsWith("top") ? "top" : e.startsWith("left") ? "left" : e.startsWith("right") ? "right" : "bottom" : "bottom", IS = (e) => !e || e.endsWith("-start") ? "start" : e.endsWith("-end") ? "end" : "center", Ur = ({ trigger: e, children: t, label: n = "Open menu", defaultPlacement: r = "bottom-start", onOpenChange: o, mode: s = "system", focusMode: i = "system", sideOffset: a = 10, modal: l = !0 }) => {
11460
+ }, SS = "z-100 rounded-md bg-surface-light shadow-sm shadow-border-dark outline-hidden p-3 sm:p-2 plume plume-dark", CS = "z-[60] rounded-md bg-surface-light shadow-sm shadow-border-dark outline-hidden p-3 sm:p-2 mx-3", xS = D("flex items-center flex-row justify-between", "w-full", "m-0 first:mt-0 mt-2 sm:mt-1 px-2 py-1", "rounded-md border border-transparent", "text-left text-base select-none cursor-pointer", "outline-hidden focus:border focus:border-border-medium focus:bg-surface-lighter focus:underline", "disabled:cursor-not-allowed disabled:text-copy-medium", "data-highlighted:bg-surface-lighter data-highlighted:border-border-medium data-highlighted:underline", "data-[state=open]:bg-surface-lighter"), TS = (e) => e ? e.startsWith("top") ? "top" : e.startsWith("left") ? "left" : e.startsWith("right") ? "right" : "bottom" : "bottom", IS = (e) => !e || e.endsWith("-start") ? "start" : e.endsWith("-end") ? "end" : "center", Ur = ({ trigger: e, children: t, label: n = "Open menu", defaultPlacement: r = "bottom-start", onOpenChange: o, mode: s = "system", focusMode: i = "system", sideOffset: a = 10, modal: l = !0 }) => {
11461
11461
  const [c, d] = U(!1), [u, h] = U(void 0), f = Ja(e) === "Button" || Ja(e) === "ButtonIcon", m = f ? {
11462
11462
  noInternalClick: f,
11463
11463
  focusMode: i,
@@ -12876,38 +12876,38 @@ const ZS = [".png", ".jpg", ".jpeg", ".webp"], US = [".pdf", ".txt"], BS = [
12876
12876
  }, y0 = wt(
12877
12877
  () => import(
12878
12878
  /* webpackChunkName: "modal-chunk" */
12879
- "./ProfileEntry.DMVF_-Wi.js"
12879
+ "./ProfileEntry.DQvWIx6k.js"
12880
12880
  ).then((e) => ({
12881
12881
  default: e.Profile
12882
12882
  }))
12883
12883
  ), b0 = wt(
12884
12884
  () => import(
12885
12885
  /* webpackChunkName: "modal-chunk" */
12886
- "./SettingsEntry.B0cUm5SQ.js"
12886
+ "./SettingsEntry.b9l-Tz8O.js"
12887
12887
  ).then((e) => ({
12888
12888
  default: e.SettingsPanel
12889
12889
  }))
12890
12890
  ), w0 = wt(
12891
12891
  () => import(
12892
12892
  /* webpackChunkName: "modal-chunk" */
12893
- "./HistoryEntry.MEsOcyGh.js"
12893
+ "./HistoryEntry.dvhdJbv7.js"
12894
12894
  ).then((e) => ({
12895
12895
  default: e.HistoryPanel
12896
12896
  }))
12897
12897
  ), _0 = wt(
12898
12898
  () => import(
12899
12899
  /* webpackChunkName: "modal-chunk" */
12900
- "./AboutEntry.CK0gxCDB.js"
12900
+ "./AboutEntry.fkKsnRw7.js"
12901
12901
  ).then((e) => ({ default: e.About }))
12902
12902
  ), E0 = wt(
12903
12903
  () => import(
12904
12904
  /* webpackChunkName: "modal-chunk" */
12905
- "./UsageEntry.DJEtJZ3m.js"
12905
+ "./UsageEntry.B1EmQNpd.js"
12906
12906
  ).then((e) => ({ default: e.Usage }))
12907
12907
  ), S0 = wt(
12908
12908
  () => import(
12909
12909
  /* webpackChunkName: "modal-chunk" */
12910
- "./MemoriesEntry.CdZPyCu0.js"
12910
+ "./MemoriesEntry.DRiP4VAB.js"
12911
12911
  ).then((e) => ({ default: e.default }))
12912
12912
  ), C0 = ({
12913
12913
  open: e,
@@ -12979,23 +12979,23 @@ const ZS = [".png", ".jpg", ".jpeg", ".webp"], US = [".pdf", ".txt"], BS = [
12979
12979
  p || Promise.all([
12980
12980
  import(
12981
12981
  /* webpackChunkName: "modal-chunk" */
12982
- "./ProfileEntry.DMVF_-Wi.js"
12982
+ "./ProfileEntry.DQvWIx6k.js"
12983
12983
  ),
12984
12984
  import(
12985
12985
  /* webpackChunkName: "modal-chunk" */
12986
- "./SettingsEntry.B0cUm5SQ.js"
12986
+ "./SettingsEntry.b9l-Tz8O.js"
12987
12987
  ),
12988
12988
  import(
12989
12989
  /* webpackChunkName: "modal-chunk" */
12990
- "./HistoryEntry.MEsOcyGh.js"
12990
+ "./HistoryEntry.dvhdJbv7.js"
12991
12991
  ),
12992
12992
  import(
12993
12993
  /* webpackChunkName: "modal-chunk" */
12994
- "./AboutEntry.CK0gxCDB.js"
12994
+ "./AboutEntry.fkKsnRw7.js"
12995
12995
  ),
12996
12996
  import(
12997
12997
  /* webpackChunkName: "modal-chunk" */
12998
- "./UsageEntry.DJEtJZ3m.js"
12998
+ "./UsageEntry.B1EmQNpd.js"
12999
12999
  )
13000
13000
  ]).finally(() => y(!0));
13001
13001
  }, [p]), N = V(($) => {
@@ -13224,7 +13224,7 @@ const fr = "av-bubble", R0 = ({ kind: e, noMaxWidth: t }) => D("px-4 py-2", {
13224
13224
  }) : D({
13225
13225
  "bg-surface-light dark:bg-surface-dark": e === "left",
13226
13226
  "bg-surface-accent": e === "right"
13227
- }), N0 = ({ kind: e }) => D("prose prose-dark dark:prose-lighter", "prose-blockquote:my-1", "prose-ol:my-1 prose-ul:my-1", {
13227
+ }), N0 = ({ kind: e }) => D("plume plume-dark dark:plume-lighter", "plume-blockquote:my-1", "plume-ol:my-1 plume-ul:my-1", {
13228
13228
  "text-copy-lighter": e === "right"
13229
13229
  }), k0 = ({ kind: e, tail: t }) => {
13230
13230
  if (t)
@@ -13283,7 +13283,7 @@ const fr = "av-bubble", R0 = ({ kind: e, noMaxWidth: t }) => D("px-4 py-2", {
13283
13283
  children: e
13284
13284
  }),
13285
13285
  s && s.map((h, f) => P0(h) ? /* @__PURE__ */ g("div", {
13286
- className: "prose-p:m-0",
13286
+ className: "plume-p:m-0",
13287
13287
  children: /* @__PURE__ */ g("p", {
13288
13288
  className: u.footer,
13289
13289
  "aria-hidden": "true",
@@ -13293,7 +13293,7 @@ const fr = "av-bubble", R0 = ({ kind: e, noMaxWidth: t }) => D("px-4 py-2", {
13293
13293
  })
13294
13294
  })
13295
13295
  }, `footer-empty-${f}`) : D0(h) ? /* @__PURE__ */ g("div", {
13296
- className: "prose-p:m-0",
13296
+ className: "plume-p:m-0",
13297
13297
  children: /* @__PURE__ */ L("p", {
13298
13298
  className: u.footer,
13299
13299
  children: [
@@ -13303,7 +13303,7 @@ const fr = "av-bubble", R0 = ({ kind: e, noMaxWidth: t }) => D("px-4 py-2", {
13303
13303
  ]
13304
13304
  })
13305
13305
  }, `footer-kv-${f}`) : /* @__PURE__ */ g("div", {
13306
- className: "prose-p:m-0",
13306
+ className: "plume-p:m-0",
13307
13307
  children: /* @__PURE__ */ g("p", {
13308
13308
  className: u.footer,
13309
13309
  children: h.value
@@ -13368,12 +13368,12 @@ const Qa = "av-spinner", hu = ({ spinnerRef: e, mode: t = "system", type: n = "c
13368
13368
  }, ei = 1, $0 = 150, L0 = wt(
13369
13369
  () => import(
13370
13370
  /* webpackChunkName: "LazyMessageAssistant" */
13371
- "./ChatBubbleAssistant.CAVPptKh.js"
13371
+ "./ChatBubbleAssistant.DVct7v8Z.js"
13372
13372
  )
13373
13373
  ), z0 = wt(
13374
13374
  () => import(
13375
13375
  /* webpackChunkName: "LazyMessageUser" */
13376
- "./ChatBubbleUser.BwG7YphF.js"
13376
+ "./ChatBubbleUser.D4bC6RSr.js"
13377
13377
  )
13378
13378
  ), F0 = Ve.memo(
13379
13379
  ({
@@ -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.aRnGg0EU.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.BHJG8kbV.js";
2
+ import { n as M, useUserPreferences as _ } from "./index.B6YyB4XW.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.DhPoevIR.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.CMhxF_Ah.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.CbGVTonU.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.BHJG8kbV.js";
4
- import { Card as Ie } from "./index.CgIlyTry.js";
5
- import { TextInput as Fe } from "./index.BxFn8Omo.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.DhPoevIR.js";
4
+ import { Card as Ie } from "./index.B92GCn-d.js";
5
+ import { TextInput as Fe } from "./index.BlIHRLS6.js";
6
6
  import g from "clsx";
7
- import { ResponsiveTooltip as Be } from "./App.CMhxF_Ah.js";
7
+ import { ResponsiveTooltip as Be } from "./App.CbGVTonU.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({
@@ -80,7 +80,7 @@ const nt = ({ children: e, dependency: s, duration: r, enabled: n = !0, classNam
80
80
  Ie,
81
81
  {
82
82
  header: e,
83
- className: "prose-dark dark:prose-lighter",
83
+ className: "plume-dark dark:plume-lighter",
84
84
  noBorder: !0,
85
85
  compact: !0,
86
86
  children: [
@@ -209,7 +209,7 @@ const S = (e) => e === "dark", T = (e) => e === "light", p = (e) => e === "syste
209
209
  inner: a?.inner ?? "",
210
210
  loadingWrapper: a?.loadingWrapper ?? "",
211
211
  loadingText: a?.loadingText ?? "",
212
- wrapper: g("not-prose relative w-full rounded-lg shadow-md", {
212
+ wrapper: g("not-plume relative w-full rounded-lg shadow-md", {
213
213
  "overflow-x-auto": !c && !o,
214
214
  "overflow-hidden flex flex-col": c || o
215
215
  }, Me({
@@ -1,7 +1,7 @@
1
1
  import { jsx as Up } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.CMhxF_Ah.js";
2
+ import { getDefaultExportFromCjs as Pn, isProbablyMobile as $p } from "./App.CbGVTonU.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.BHJG8kbV.js";
4
+ import { TRIMESTERS_SHORT as Zp, TRIMESTERS as Mn, TIME_RANGES as xs, TIME_RANGE_LABELS as Sn } from "./LogoEntry.DhPoevIR.js";
5
5
  var ys = { exports: {} }, Kp = ys.exports, Tn;
6
6
  function _p() {
7
7
  return Tn || (Tn = 1, (function(Ce, ce) {
@@ -1,11 +1,11 @@
1
1
  import { jsx as vt } from "react/jsx-runtime";
2
- import { n as as, useUserPreferences as os, formatTimestamp as St } from "./index.aRnGg0EU.js";
3
- import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.CMhxF_Ah.js";
2
+ import { n as as, useUserPreferences as os, formatTimestamp as St } from "./index.B6YyB4XW.js";
3
+ import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.CbGVTonU.js";
4
4
  import Ht from "clsx";
5
5
  import fs, { useState as Ae, useEffect as Jt, useContext as Vt } from "react";
6
- import { useMarkdown as hs } from "./useMarkdown.zySbqIIq.js";
7
- import { ChatContext as ds, AppContext as ms } from "./LogoEntry.BHJG8kbV.js";
8
- import { BubbleActions as ps } from "./BubbleActions.BQZWz316.js";
6
+ import { useMarkdown as hs } from "./useMarkdown.HJdsuTE1.js";
7
+ import { ChatContext as ds, AppContext as ms } from "./LogoEntry.DhPoevIR.js";
8
+ import { BubbleActions as ps } from "./BubbleActions.gsXkDh0M.js";
9
9
  const Me = {
10
10
  isEmpty: !0
11
11
  };
@@ -2861,7 +2861,7 @@ const Zt = {
2861
2861
  } = Vt(ms), p = t?.model || u, g = l, [T, S] = hs(), { user: v, getAccessToken: A } = as(), { data: V } = os({
2862
2862
  user: v?.username,
2863
2863
  getAccessToken: A
2864
- }), x = V?.showDetails || !1, m = Ht("prose-li:ps-3", {
2864
+ }), x = V?.showDetails || !1, m = Ht("plume-li:ps-3", {
2865
2865
  "max-w-xs sm:max-w-3xl": !h
2866
2866
  }), y = [];
2867
2867
  if (x) {
@@ -1,23 +1,23 @@
1
- import { jsx as a, Fragment as S, jsxs as b } from "react/jsx-runtime";
2
- import { Bubble as k } from "./App.CMhxF_Ah.js";
3
- import { Button as C } from "./LogoEntry.BHJG8kbV.js";
1
+ import { jsx as o, Fragment as S, jsxs as b } from "react/jsx-runtime";
2
+ import { Bubble as k } from "./App.CbGVTonU.js";
3
+ import { Button as C } from "./LogoEntry.DhPoevIR.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.zySbqIIq.js";
6
- import { BubbleCopyToClipboard as I } from "./BubbleActions.BQZWz316.js";
7
- const L = 200, h = ({ string: e, idealLength: r = L }) => {
8
- if (e.length <= r)
5
+ import { useMarkdown as w } from "./useMarkdown.HJdsuTE1.js";
6
+ import { BubbleCopyToClipboard as I } from "./BubbleActions.gsXkDh0M.js";
7
+ const L = 200, h = ({ string: e, idealLength: t = L }) => {
8
+ if (e.length <= t)
9
9
  return {
10
10
  string: e,
11
11
  isTruncated: !1
12
12
  };
13
- if (e.charAt(r) === " ")
13
+ if (e.charAt(t) === " ")
14
14
  return {
15
- string: e.slice(0, r),
15
+ string: e.slice(0, t),
16
16
  isTruncated: !0
17
17
  };
18
- const s = e.slice(r).search(" ");
18
+ const s = e.slice(t).search(" ");
19
19
  return {
20
- string: e.slice(0, r + s),
20
+ string: e.slice(0, t + s),
21
21
  isTruncated: !0
22
22
  };
23
23
  }, l = (e) => e == null || typeof e == "boolean" ? "" : typeof e == "string" || typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(l).join("") : /* @__PURE__ */ T(e) ? l(e.props.children) : "", D = /* @__PURE__ */ new Set([
@@ -53,62 +53,62 @@ const L = 200, h = ({ string: e, idealLength: r = L }) => {
53
53
  if (Array.isArray(e))
54
54
  return e.some(u);
55
55
  if (/* @__PURE__ */ T(e)) {
56
- const r = e;
57
- return typeof r.type == "string" && D.has(r.type.toUpperCase()) ? !0 : u(r.props.children);
56
+ const t = e;
57
+ return typeof t.type == "string" && D.has(t.type.toUpperCase()) ? !0 : u(t.props.children);
58
58
  }
59
59
  return !1;
60
- }, M = ({ children: e, length: r = 200, mode: n = "system", focusMode: f = "system", enableRichTruncation: s = !1, noBorder: d = !1 }) => {
61
- const [t, y] = H(!1), g = typeof e != "string" && !s, c = m(() => typeof e == "string" ? e : l(e), [
60
+ }, M = ({ children: e, length: t = 200, mode: n = "system", focusMode: f = "system", enableRichTruncation: s = !1, noBorder: d = !1 }) => {
61
+ const [r, y] = H(!1), g = typeof e != "string" && !s, c = m(() => typeof e == "string" ? e : l(e), [
62
62
  e
63
63
  ]), { string: p, isTruncated: i } = m(() => h({
64
64
  string: c,
65
- idealLength: r
65
+ idealLength: t
66
66
  }), [
67
67
  c,
68
- r
69
- ]), E = s && i && !t, B = (x) => {
70
- x.preventDefault(), y(!t);
68
+ t
69
+ ]), E = s && i && !r, B = (x) => {
70
+ x.preventDefault(), y(!r);
71
71
  };
72
72
  if (g)
73
- return /* @__PURE__ */ a(S, {
73
+ return /* @__PURE__ */ o(S, {
74
74
  children: e
75
75
  });
76
- let o;
77
- i ? t ? o = e : o = p : o = e;
76
+ let a;
77
+ i ? r ? a = e : a = p : a = e;
78
78
  const A = s ? u(e) : !1;
79
79
  return /* @__PURE__ */ b("span", {
80
80
  style: {
81
81
  wordBreak: "break-word"
82
82
  },
83
83
  "data-testid": "truncate-root",
84
- "aria-expanded": i ? t : void 0,
84
+ "aria-expanded": i ? r : void 0,
85
85
  children: [
86
- o,
87
- i && /* @__PURE__ */ a(C, {
86
+ a,
87
+ i && /* @__PURE__ */ o(C, {
88
88
  mode: n,
89
89
  focusMode: f,
90
90
  noBorder: d,
91
- className: !(s && t && A) ? "ml-2" : void 0,
91
+ className: !(s && r && A) ? "ml-2" : void 0,
92
92
  size: "small",
93
93
  onClick: B,
94
- "aria-label": t ? "Show less" : "Show more",
95
- children: t ? "less..." : "more..."
94
+ "aria-label": r ? "Show less" : "Show more",
95
+ children: r ? "less..." : "more..."
96
96
  })
97
97
  ]
98
98
  });
99
99
  }, K = ({ content: e }) => {
100
- const [r, n] = w();
100
+ const [t, n] = w();
101
101
  return O(() => {
102
102
  e && n(e);
103
- }, [e, n]), /* @__PURE__ */ a(
103
+ }, [e, n]), /* @__PURE__ */ o(
104
104
  k,
105
105
  {
106
106
  gradient: "medium",
107
107
  tail: !0,
108
108
  kind: "right",
109
109
  className: "mt-3",
110
- contentClassName: "prose prose-lighter prose-p:only:my-0",
111
- action: /* @__PURE__ */ a(
110
+ contentClassName: "plume plume-lighter plume-p:only:my-0",
111
+ action: /* @__PURE__ */ o(
112
112
  I,
113
113
  {
114
114
  streaming: !1,
@@ -116,7 +116,7 @@ const L = 200, h = ({ string: e, idealLength: r = L }) => {
116
116
  placement: "left"
117
117
  }
118
118
  ),
119
- children: /* @__PURE__ */ a(M, { mode: "dark", focusMode: "light", noBorder: !0, enableRichTruncation: !0, children: r })
119
+ children: /* @__PURE__ */ o(M, { mode: "dark", focusMode: "light", noBorder: !0, enableRichTruncation: !0, children: t })
120
120
  }
121
121
  );
122
122
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { Panel as l, isProbablyMobile as f } from "./App.CMhxF_Ah.js";
2
+ import { Panel as l, isProbablyMobile as f } from "./App.CbGVTonU.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 { y as L, B 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.aRnGg0EU.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.CGHKDnQ1.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.CMhxF_Ah.js";
2
+ import { y as L, B 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.B6YyB4XW.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.D9IhckYM.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.CbGVTonU.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.BHJG8kbV.js";
7
- import { GenericPanel as tt } from "./GenericPanel.Myj7Iisn.js";
8
- import { Pill as re } from "./index.BPDoF0Dl.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.DhPoevIR.js";
7
+ import { GenericPanel as tt } from "./GenericPanel.CPzDXuAa.js";
8
+ import { Pill as re } from "./index.DtbNV8LP.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.aRnGg0EU.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.BHJG8kbV.js";
4
- import { Card as B } from "./index.CgIlyTry.js";
5
- import { TextInput as O, TextInputMask as T } from "./index.BxFn8Omo.js";
2
+ import { n as N, getLayoutPaddingClass as C, getMessageContaintWrapperClass as v, isTauri as w } from "./index.B6YyB4XW.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.DhPoevIR.js";
4
+ import { Card as B } from "./index.B92GCn-d.js";
5
+ import { TextInput as O, TextInputMask as T } from "./index.BlIHRLS6.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({