@versini/sassysaint 8.118.4 → 8.119.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 (87) hide show
  1. package/dist/chunks/{AboutChangelog.Dspi4cmi.js → AboutChangelog.DUUKJ4nJ.js} +2 -2
  2. package/dist/chunks/{AboutEntry.DxWZPlbg.js → AboutEntry.HowTPv8P.js} +7 -7
  3. package/dist/chunks/{App.yIuQGm0t.js → App.YH7VhNjK.js} +647 -646
  4. package/dist/chunks/{BubbleActions.BMYwxyEv.js → BubbleActions.CVas6oiy.js} +3 -3
  5. package/dist/chunks/ButtonIconDelete.DLIImGjj.js +538 -0
  6. package/dist/chunks/{Chart.C1IWoXDe.js → Chart.CgyzOc3_.js} +2 -2
  7. package/dist/chunks/{ChatBubbleAssistant.BKlO1McH.js → ChatBubbleAssistant.PmI4ABQt.js} +9 -6
  8. package/dist/chunks/{ChatBubbleUser.CSjDB1B9.js → ChatBubbleUser.YIoXqbVF.js} +4 -4
  9. package/dist/chunks/HistoryDataGrid.Dxc-zHra.js +487 -0
  10. package/dist/chunks/HistoryEntry.fta5Qy7u.js +305 -0
  11. package/dist/chunks/InlineFilter.BV1LITjW.js +123 -0
  12. package/dist/chunks/{LoginEntry.BEPZiizw.js → LoginEntry.s9rmuYKn.js} +4 -4
  13. package/dist/chunks/{LogoEntry.BZFz5IRw.js → LogoEntry.BAI8lPSQ.js} +175 -163
  14. package/dist/chunks/{MemoriesEntry.C40K6l5F.js → MemoriesEntry.z0U8T17Y.js} +234 -206
  15. package/dist/chunks/{ProfileEntry.C0WTyHem.js → ProfileEntry.CbUS7vRG.js} +4 -4
  16. package/dist/chunks/{SettingsEntry.B1WFVdjg.js → SettingsEntry.LEugTL8A.js} +5 -5
  17. package/dist/chunks/{UsageEntry.CPOickJC.js → UsageEntry.DMIbfTUl.js} +5 -5
  18. package/dist/chunks/{_baseUniq.YXUy3_Q9.js → _baseUniq.3SecgKQH.js} +1 -1
  19. package/dist/chunks/{arc.CgPKPJv0.js → arc.BDfa_lp3.js} +1 -1
  20. package/dist/chunks/{architecture-U656AL7Q.D2ZUn_s6.js → architecture-U656AL7Q.HFVQwsOS.js} +1 -1
  21. package/dist/chunks/{architectureDiagram-VXUJARFQ.DbVJLkeI.js → architectureDiagram-VXUJARFQ.BvrTiPQ0.js} +4 -4
  22. package/dist/chunks/{blockDiagram-VD42YOAC.DFlSEVyA.js → blockDiagram-VD42YOAC.DOklLUrl.js} +5 -5
  23. package/dist/chunks/{browser.DtDEL-3A.js → browser.DQk9GqZL.js} +1 -1
  24. package/dist/chunks/{c4Diagram-YG6GDRKO.CiBMNtX8.js → c4Diagram-YG6GDRKO.BFUTTk1Y.js} +2 -2
  25. package/dist/chunks/{channel.DS55bkfq.js → channel.BOFo9Gr-.js} +1 -1
  26. package/dist/chunks/{chunk-4BX2VUAB.t3AfQtrb.js → chunk-4BX2VUAB.CvDkLN8F.js} +1 -1
  27. package/dist/chunks/{chunk-55IACEB6.tlGBBIP8.js → chunk-55IACEB6.B2kRln8j.js} +1 -1
  28. package/dist/chunks/{chunk-B4BG7PRW.DB-Y3GhQ.js → chunk-B4BG7PRW.Corbwbnt.js} +4 -4
  29. package/dist/chunks/{chunk-DI55MBZ5.CkwKVFLI.js → chunk-DI55MBZ5.BT3HHSn0.js} +3 -3
  30. package/dist/chunks/{chunk-FMBD7UC4.CRLAfQmx.js → chunk-FMBD7UC4.5EY27HC-.js} +1 -1
  31. package/dist/chunks/{chunk-QN33PNHL.DF4bWkbp.js → chunk-QN33PNHL.BbRol0tK.js} +1 -1
  32. package/dist/chunks/{chunk-QZHKN3VN.BijmX3ar.js → chunk-QZHKN3VN.BDDo68fx.js} +1 -1
  33. package/dist/chunks/{chunk-TZMSLE5B.BIvqaR0r.js → chunk-TZMSLE5B.DUziio9C.js} +1 -1
  34. package/dist/chunks/{classDiagram-2ON5EDUG.SU5U-1P1.js → classDiagram-2ON5EDUG.CQzgRWsN.js} +2 -2
  35. package/dist/chunks/{classDiagram-v2-WZHVMYZB.SU5U-1P1.js → classDiagram-v2-WZHVMYZB.CQzgRWsN.js} +2 -2
  36. package/dist/chunks/{clone.8clUx6ET.js → clone.BbTV7Hf1.js} +1 -1
  37. package/dist/chunks/{cose-bilkent-S5V4N54A.DnWtIsYd.js → cose-bilkent-S5V4N54A.H-phdC7M.js} +2 -2
  38. package/dist/chunks/{dagre-6UL2VRFP.C8KeFvOQ.js → dagre-6UL2VRFP.x6Rep04B.js} +5 -5
  39. package/dist/chunks/{diagram-PSM6KHXK.DnzHPurw.js → diagram-PSM6KHXK.CSCzs70K.js} +4 -4
  40. package/dist/chunks/{diagram-QEK2KX5R.DCKZbQSh.js → diagram-QEK2KX5R.Dtem9HUK.js} +3 -3
  41. package/dist/chunks/{diagram-S2PKOQOG.lY2nb2ry.js → diagram-S2PKOQOG.zbHWbMaf.js} +3 -3
  42. package/dist/chunks/{erDiagram-Q2GNP2WA.BYtHx1uZ.js → erDiagram-Q2GNP2WA.BtpqAsGU.js} +4 -4
  43. package/dist/chunks/{flowDiagram-NV44I4VS.G-nRLM7M.js → flowDiagram-NV44I4VS.DWAr7BjD.js} +5 -5
  44. package/dist/chunks/{ganttDiagram-JELNMOA3.B7RwC1m-.js → ganttDiagram-JELNMOA3.CMrQ-dz3.js} +2 -2
  45. package/dist/chunks/{gitGraph-F6HP7TQM.Chwk8Igs.js → gitGraph-F6HP7TQM.BpVVMz0e.js} +1 -1
  46. package/dist/chunks/{gitGraphDiagram-NY62KEGX.BQpsCwST.js → gitGraphDiagram-NY62KEGX.Dnudwhw8.js} +4 -4
  47. package/dist/chunks/{graph.toxuN_lw.js → graph.Dchkn011.js} +2 -2
  48. package/dist/chunks/{index.KxPrp_tf.js → index.B-JCLT_X.js} +3 -3
  49. package/dist/chunks/{index.Bt339Jho.js → index.B8WGlS1_.js} +1 -1
  50. package/dist/chunks/{index.petd1VFV.js → index.C1iOYl0L.js} +1 -1
  51. package/dist/chunks/{index.BlDUpXR0.js → index.CFiwZc0d.js} +1 -1
  52. package/dist/chunks/{index.ChIqgESd.js → index.CJdOzh65.js} +1 -1
  53. package/dist/chunks/{index.mDr9FsVI.js → index.CKTPHcKB.js} +1 -1
  54. package/dist/chunks/{index.D_muERB9.js → index.CtIbZ6tf.js} +1 -1
  55. package/dist/chunks/{index.7D5oQmQR.js → index.CxH0cB2j.js} +3 -3
  56. package/dist/chunks/{index.hGvmkGha.js → index.jtqzynwK.js} +2 -2
  57. package/dist/chunks/{info-NVLQJR56.DqwhVDNM.js → info-NVLQJR56.D6y19kSs.js} +1 -1
  58. package/dist/chunks/{infoDiagram-WHAUD3N6.Bz9PwgrD.js → infoDiagram-WHAUD3N6.Df1Bl645.js} +2 -2
  59. package/dist/chunks/{journeyDiagram-XKPGCS4Q.b8ugCUee.js → journeyDiagram-XKPGCS4Q.Ci2alRy7.js} +4 -4
  60. package/dist/chunks/{kanban-definition-3W4ZIXB7.ruPmZWrk.js → kanban-definition-3W4ZIXB7.DfuyRvt8.js} +2 -2
  61. package/dist/chunks/{layout.Bw1IU1i2.js → layout.D90hHM4d.js} +4 -4
  62. package/dist/chunks/{mermaid-parser.core.BgEYW9Yt.js → mermaid-parser.core.DLE_P-x2.js} +10 -10
  63. package/dist/chunks/{min.C98rd9wr.js → min.B0AjWADq.js} +2 -2
  64. package/dist/chunks/{mindmap-definition-VGOIOE7T.VWXpOB6F.js → mindmap-definition-VGOIOE7T.Bu83LzTN.js} +257 -232
  65. package/dist/chunks/{packet-BFZMPI3H.BYL6GQTI.js → packet-BFZMPI3H.DxZoEqgw.js} +1 -1
  66. package/dist/chunks/{pie-7BOR55EZ.BbY5iD1e.js → pie-7BOR55EZ.DWdiSl6K.js} +1 -1
  67. package/dist/chunks/{pieDiagram-ADFJNKIX.CsOtW7r-.js → pieDiagram-ADFJNKIX.BDwKttQ7.js} +4 -4
  68. package/dist/chunks/{quadrantDiagram-AYHSOK5B.7UFNI_vX.js → quadrantDiagram-AYHSOK5B.CRt3S_H1.js} +1 -1
  69. package/dist/chunks/{radar-NHE76QYJ.DvagCir3.js → radar-NHE76QYJ.CoZXKuQy.js} +1 -1
  70. package/dist/chunks/{rehype-mermaid.hM-_EEUn.js → rehype-mermaid.Om4IoSir.js} +33 -33
  71. package/dist/chunks/{requirementDiagram-UZGBJVZJ.CBvrcwfU.js → requirementDiagram-UZGBJVZJ.DlBPAOx9.js} +3 -3
  72. package/dist/chunks/{sankeyDiagram-TZEHDZUN.DwPokg-1.js → sankeyDiagram-TZEHDZUN.BZytE4s9.js} +1 -1
  73. package/dist/chunks/{sequenceDiagram-WL72ISMW.DTlYi-bq.js → sequenceDiagram-WL72ISMW.Bbuw9Hz-.js} +3 -3
  74. package/dist/chunks/{stateDiagram-FKZM4ZOC.B3zjLqs6.js → stateDiagram-FKZM4ZOC.BsnKKwn5.js} +4 -4
  75. package/dist/chunks/{stateDiagram-v2-4FDKWEC3.M0ePKl-7.js → stateDiagram-v2-4FDKWEC3.BsNASJkO.js} +2 -2
  76. package/dist/chunks/{timeline-definition-IT6M3QCI.QqZxgHc2.js → timeline-definition-IT6M3QCI.R8tQley7.js} +2 -2
  77. package/dist/chunks/{treemap-KMMF4GRG.BmCv7l6d.js → treemap-KMMF4GRG.Cs8W98VP.js} +1 -1
  78. package/dist/chunks/{useMarkdown.ZHvHgCd8.js → useMarkdown.Bzgv93hs.js} +8 -8
  79. package/dist/chunks/{xychartDiagram-PRI3JC2R.CPjv7vTS.js → xychartDiagram-PRI3JC2R.SMqCrVMM.js} +1 -1
  80. package/dist/components/SassySaint/SassySaint.js +1 -1
  81. package/dist/index.js +3 -3
  82. package/dist/style.css +1 -1
  83. package/package.json +4 -4
  84. package/dist/chunks/ButtonIconDelete.BMqZFgu1.js +0 -326
  85. package/dist/chunks/ChatHistoryTable.B8dA3To0.js +0 -322
  86. package/dist/chunks/HistoryEntry.Bhv62llk.js +0 -333
  87. package/dist/chunks/useAnimatedHeight.3F4Xj7iE.js +0 -91
@@ -1,8 +1,8 @@
1
1
  import { jsxs as C, Fragment as B, jsx as t } from "react/jsx-runtime";
2
- import { n as v, useUserPreferences as A } from "./index.hGvmkGha.js";
3
- import { ButtonIcon as h, IconCopied as S, IconCopy as I, ChatContext as _, IconBranch as M, TOAST_CHAT_BRANCHED as z } from "./LogoEntry.BZFz5IRw.js";
2
+ import { n as v, useUserPreferences as A } from "./index.jtqzynwK.js";
3
+ import { ButtonIcon as h, IconCopied as S, IconCopy as I, ChatContext as _, IconBranch as M, TOAST_CHAT_BRANCHED as z } from "./LogoEntry.BAI8lPSQ.js";
4
4
  import { useState as H, useRef as N, useCallback as g, useEffect as R, useContext as k } from "react";
5
- import { ResponsiveTooltip as T, useAiChat as E, v4 as O, CHAT_RESET as L, CHAT_SET_ATTACHMENTS as U, CHAT_SET_STATUS as j, showSuccessToast as D, CHAT_SCROLL_TO_BOTTOM as F } from "./App.yIuQGm0t.js";
5
+ import { ResponsiveTooltip as T, useAiChat as E, v4 as O, CHAT_RESET as L, CHAT_SET_ATTACHMENTS as U, CHAT_SET_STATUS as j, showSuccessToast as D, CHAT_SCROLL_TO_BOTTOM as F } from "./App.YH7VhNjK.js";
6
6
  const P = ({ children: e, richText: r = !1, mode: a = "system", focusMode: l = "system" }) => {
7
7
  const [o, c] = H(!1), n = N(null), p = g(async () => {
8
8
  if (navigator.clipboard)
@@ -0,0 +1,538 @@
1
+ import g from "clsx";
2
+ import se, { createContext as le, useContext as ne, useRef as q, useLayoutEffect as P, useState as I, useCallback as E, useMemo as $, useId as oe, useEffect as V } from "react";
3
+ import { jsx as d, jsxs as F, Fragment as ie } from "react/jsx-runtime";
4
+ import { CellWrapper as x, BlurEffects as R, ButtonIcon as U, IconSortUp as de, IconSortDown as ce, IconSort as ge, IconDelete as be } from "./LogoEntry.BAI8lPSQ.js";
5
+ import { ResponsiveTooltip as ue } from "./App.YH7VhNjK.js";
6
+ const H = le({
7
+ mode: "system"
8
+ });
9
+ function Fe(e, r) {
10
+ return e ? g("contents", r) : g("flex flex-col", r);
11
+ }
12
+ function Be(e, r) {
13
+ const a = ne(H), l = q([]);
14
+ P(() => {
15
+ const t = e.current, n = a.columns && (a.stickyHeader || a.stickyFooter);
16
+ if (!t || !n || !a.setMeasuredColumnWidths)
17
+ return;
18
+ const s = t.querySelector('[role="row"]');
19
+ if (!s)
20
+ return;
21
+ const o = s.querySelectorAll('[role="cell"], [role="columnheader"], [role="gridcell"]');
22
+ if (o.length === 0)
23
+ return;
24
+ const c = () => {
25
+ const i = Array.from(o).map((h) => h.getBoundingClientRect().width), f = l.current;
26
+ (i.length !== f.length || i.some((h, v) => h !== f[v])) && (l.current = i, a.setMeasuredColumnWidths?.(i));
27
+ };
28
+ c();
29
+ const b = new ResizeObserver(() => {
30
+ c();
31
+ });
32
+ b.observe(t);
33
+ for (const i of o)
34
+ b.observe(i);
35
+ return () => b.disconnect();
36
+ }, [
37
+ a.columns,
38
+ a.stickyHeader,
39
+ a.stickyFooter,
40
+ a.setMeasuredColumnWidths,
41
+ r
42
+ ]);
43
+ }
44
+ const B = ({ mode: e }) => g({
45
+ "text-copy-light": e === "dark",
46
+ "text-copy-dark": e === "light",
47
+ "text-copy-light dark:text-copy-dark": e === "system",
48
+ "text-copy-dark dark:text-copy-light": e === "alt-system"
49
+ }), fe = ({ mode: e }) => g({
50
+ "bg-surface-darker": e === "dark" || e === "system",
51
+ "bg-surface-light": e === "light" || e === "alt-system",
52
+ "dark:bg-surface-light": e === "system",
53
+ "dark:bg-surface-darker": e === "alt-system"
54
+ }), _ = ({ mode: e, hasBlur: r, sticky: a }) => g({
55
+ // Semi-transparent for blur effect.
56
+ "bg-surface-darkest/50": r && a && (e === "dark" || e === "system"),
57
+ "bg-surface-light/50": r && a && (e === "light" || e === "alt-system"),
58
+ "dark:bg-surface-light/50": r && a && e === "system",
59
+ "dark:bg-surface-darkest/50": r && a && e === "alt-system",
60
+ // Solid backgrounds.
61
+ "bg-surface-darkest": !r && (e === "dark" || e === "system"),
62
+ "bg-surface-light": !r && (e === "light" || e === "alt-system"),
63
+ "dark:bg-surface-light": !r && e === "system",
64
+ "dark:bg-surface-darkest": !r && e === "alt-system"
65
+ }), he = ({ mode: e }) => g({
66
+ "border-table-dark": e === "dark" || e === "system",
67
+ "border-table-light": e === "light" || e === "alt-system",
68
+ "dark:border-table-light": e === "system",
69
+ "dark:border-table-dark": e === "alt-system"
70
+ }), ke = ({ blurEffect: e }) => g({
71
+ "backdrop-blur-sm": e === R.SMALL,
72
+ "backdrop-blur-md": e === R.MEDIUM,
73
+ "backdrop-blur-lg": e === R.LARGE
74
+ }), ye = ({ mode: e }) => g("text-lg font-medium", {
75
+ "text-copy-dark": e === "light",
76
+ "text-copy-light": e === "dark",
77
+ "text-copy-dark dark:text-copy-light": e === "alt-system",
78
+ "text-copy-light dark:text-copy-dark": e === "system"
79
+ }), ve = ({ mode: e }) => ({
80
+ inner: "relative",
81
+ overlay: g("absolute inset-0 z-20 cursor-not-allowed rounded-lg", "backdrop-blur-xs bg-white/30 dark:bg-black/30"),
82
+ loadingWrapper: g("absolute z-30 top-0 left-0 right-0 h-[min(100%,100vh)]", "flex items-center justify-center", "pointer-events-none"),
83
+ loadingText: ye({
84
+ mode: e
85
+ })
86
+ }), pe = ({ mode: e, className: r, wrapperClassName: a, stickyHeader: l, stickyFooter: t, loading: n, hasColumns: s }) => {
87
+ const o = n ? ve({
88
+ mode: e
89
+ }) : null, c = l || t;
90
+ return {
91
+ overlay: o?.overlay ?? "",
92
+ inner: o?.inner ?? "",
93
+ loadingWrapper: o?.loadingWrapper ?? "",
94
+ loadingText: o?.loadingText ?? "",
95
+ wrapper: g("not-prose relative w-full rounded-lg shadow-md", {
96
+ "overflow-x-auto": !c && !n,
97
+ "overflow-hidden flex flex-col": c || n
98
+ }, fe({
99
+ mode: e
100
+ }), B({
101
+ mode: e
102
+ }), a),
103
+ scrollableContent: g("overflow-y-auto overflow-x-hidden rounded-[inherit] flex-1 min-h-0"),
104
+ grid: g("my-0 w-full text-left text-sm", s ? "grid" : "flex flex-col", r, B({
105
+ mode: e
106
+ }))
107
+ };
108
+ }, Ce = ({ className: e, stickyHeader: r, mode: a, blurEffect: l, hasColumns: t }) => {
109
+ const n = !!(l && l !== R.NONE);
110
+ return t && !r ? g("contents", _({
111
+ mode: a,
112
+ hasBlur: n,
113
+ sticky: !!r
114
+ }), B({
115
+ mode: a
116
+ }), e) : g("flex flex-col", {
117
+ "absolute left-0 right-0 z-20 top-0 rounded-t-lg": r
118
+ }, _({
119
+ mode: a,
120
+ hasBlur: n,
121
+ sticky: !!r
122
+ }), B({
123
+ mode: a
124
+ }), r && ke({
125
+ blurEffect: l
126
+ }), e);
127
+ }, me = ({ captionClassName: e, hasColumns: r }) => g("py-2 text-sm text-center font-bold", r && "col-span-full", e), xe = ({ mode: e, className: r, cellWrapper: a, rowIndex: l, isLastRow: t }) => {
128
+ const n = "group grid items-center";
129
+ if (a === x.HEADER || a === x.FOOTER)
130
+ return g(n, r);
131
+ const s = l !== void 0, o = s && l % 2 === 0, c = s && l % 2 === 1;
132
+ return g(n, t !== void 0 ? t ? "border-b border-b-transparent" : "border-b" : "border-b last:border-0", he({
133
+ mode: e
134
+ }), {
135
+ // Explicit odd/even when rowIndex is provided.
136
+ "bg-table-dark-odd": s && o && e === "dark",
137
+ "bg-table-dark-even": s && c && e === "dark",
138
+ "bg-table-light-odd": s && o && e === "light",
139
+ "bg-table-light-even": s && c && e === "light",
140
+ // System mode with explicit index.
141
+ "bg-table-dark-odd dark:bg-table-light-odd": s && o && e === "system",
142
+ "bg-table-dark-even dark:bg-table-light-even": s && c && e === "system",
143
+ // Alt-system mode with explicit index.
144
+ "bg-table-light-odd dark:bg-table-dark-odd": s && o && e === "alt-system",
145
+ "bg-table-light-even dark:bg-table-dark-even": s && c && e === "alt-system",
146
+ // CSS :nth-child selectors (original behavior when rowIndex not provided).
147
+ "odd:bg-table-dark-odd even:bg-table-dark-even": !s && e === "dark",
148
+ "odd:bg-table-light-odd even:bg-table-light-even": !s && e === "light",
149
+ "odd:bg-table-dark-odd even:bg-table-dark-even dark:odd:bg-table-light-odd dark:even:bg-table-light-even": !s && e === "system",
150
+ "odd:bg-table-light-odd even:bg-table-light-even dark:odd:bg-table-dark-odd dark:even:bg-table-dark-even": !s && e === "alt-system",
151
+ // Hover effects (same for both modes).
152
+ "hover:bg-table-dark-hover": e === "dark",
153
+ "hover:bg-table-light-hover": e === "light",
154
+ "hover:bg-table-dark-hover dark:hover:bg-table-light-hover": e === "system",
155
+ "hover:bg-table-light-hover dark:hover:bg-table-dark-hover": e === "alt-system"
156
+ }, r);
157
+ }, L = ({ cellWrapper: e, className: r, compact: a, align: l, mode: t, borderLeft: n, borderRight: s }) => {
158
+ const o = e === x.HEADER;
159
+ return g(
160
+ // Base padding.
161
+ {
162
+ "px-2 py-1": a,
163
+ "px-4 py-3": !a
164
+ },
165
+ // Text alignment.
166
+ {
167
+ "text-left justify-start": l === "left" || !l,
168
+ "text-center justify-center": l === "center",
169
+ "text-right justify-end": l === "right"
170
+ },
171
+ // Header/footer specific styles.
172
+ {
173
+ "font-semibold": o
174
+ },
175
+ // Active row indicator.
176
+ "first:group-data-[active]:relative",
177
+ "first:group-data-[active]:before:absolute first:group-data-[active]:before:left-0 first:group-data-[active]:before:top-0 first:group-data-[active]:before:bottom-0 first:group-data-[active]:before:w-1",
178
+ "first:group-data-[active]:self-stretch first:group-data-[active]:flex first:group-data-[active]:items-center",
179
+ // Active indicator color based on theme mode.
180
+ {
181
+ "first:group-data-[active]:before:bg-table-active-dark": t === "dark",
182
+ "first:group-data-[active]:before:bg-table-active-light": t === "light",
183
+ "first:group-data-[active]:before:bg-table-active-dark dark:first:group-data-[active]:before:bg-table-active-light": t === "system",
184
+ "first:group-data-[active]:before:bg-table-active-light dark:first:group-data-[active]:before:bg-table-active-dark": t === "alt-system"
185
+ },
186
+ // Vertical borders.
187
+ {
188
+ "self-stretch flex items-center": n || s,
189
+ "border-l border-l-table-dark": n && t === "dark",
190
+ "border-l border-l-table-light": n && t === "light",
191
+ "border-l border-l-table-dark dark:border-l-table-light": n && t === "system",
192
+ "border-l border-l-table-light dark:border-l-table-dark": n && t === "alt-system",
193
+ "border-r border-r-table-dark": s && t === "dark",
194
+ "border-r border-r-table-light": s && t === "light",
195
+ "border-r border-r-table-dark dark:border-r-table-light": s && t === "system",
196
+ "border-r border-r-table-light dark:border-r-table-dark": s && t === "alt-system"
197
+ },
198
+ r
199
+ );
200
+ }, He = (e) => e === x.HEADER ? "columnheader" : "gridcell";
201
+ const ze = ({ className: e, wrapperClassName: r, children: a, mode: l = "system", compact: t = !1, stickyHeader: n = !1, stickyFooter: s = !1, blurEffect: o = R.NONE, maxHeight: c, loading: b = !1, columns: i, ...f }) => {
202
+ const [u, h] = I(0), [v, S] = I(0), [p, k] = I(0), [T, C] = I(0), [D, J] = I([]), z = E(() => h((y) => y + 1), []), M = E(() => h((y) => y - 1), []), j = E(() => S((y) => y + 1), []), A = E(() => S((y) => y - 1), []), K = u > 0, Q = v > 0, w = n && K, N = s && Q, [X, Y] = I(void 0), G = E((y) => {
203
+ Y(y);
204
+ }, []), m = $(() => pe({
205
+ mode: l,
206
+ className: e,
207
+ wrapperClassName: r,
208
+ stickyHeader: w,
209
+ stickyFooter: N,
210
+ loading: !!b,
211
+ hasColumns: !!i
212
+ }), [
213
+ l,
214
+ e,
215
+ r,
216
+ w,
217
+ N,
218
+ b,
219
+ i
220
+ ]), Z = $(() => ({
221
+ mode: l,
222
+ compact: t,
223
+ stickyHeader: w,
224
+ stickyFooter: N,
225
+ blurEffect: o,
226
+ columns: i,
227
+ measuredColumnWidths: D,
228
+ setCaptionId: G,
229
+ registerHeader: z,
230
+ unregisterHeader: M,
231
+ registerFooter: j,
232
+ unregisterFooter: A,
233
+ setHeaderHeight: k,
234
+ setFooterHeight: C,
235
+ setMeasuredColumnWidths: J
236
+ }), [
237
+ l,
238
+ t,
239
+ w,
240
+ N,
241
+ o,
242
+ i,
243
+ D,
244
+ G,
245
+ z,
246
+ M,
247
+ j,
248
+ A
249
+ ]), O = c ? {
250
+ maxHeight: typeof c == "number" ? `${c}px` : c
251
+ } : void 0, ee = {
252
+ ...O,
253
+ paddingTop: w ? p : void 0,
254
+ paddingBottom: N ? T : void 0
255
+ }, te = w || N, re = i ? {
256
+ gridTemplateColumns: i.join(" ")
257
+ } : void 0, W = /* @__PURE__ */ d("div", {
258
+ role: "grid",
259
+ "aria-labelledby": X,
260
+ className: m.grid,
261
+ style: re,
262
+ ...f,
263
+ children: a
264
+ }), ae = typeof b == "string" ? b : b ? "Loading..." : null;
265
+ return /* @__PURE__ */ d(H.Provider, {
266
+ value: Z,
267
+ children: /* @__PURE__ */ F("div", {
268
+ className: m.inner,
269
+ children: [
270
+ b && /* @__PURE__ */ F(ie, {
271
+ children: [
272
+ /* @__PURE__ */ d("div", {
273
+ className: m.overlay,
274
+ "aria-hidden": "true"
275
+ }),
276
+ /* @__PURE__ */ d("div", {
277
+ className: m.loadingWrapper,
278
+ children: /* @__PURE__ */ d("span", {
279
+ className: m.loadingText,
280
+ role: "status",
281
+ children: ae
282
+ })
283
+ })
284
+ ]
285
+ }),
286
+ /* @__PURE__ */ d("div", {
287
+ className: m.wrapper,
288
+ style: O,
289
+ children: te ? /* @__PURE__ */ d("div", {
290
+ className: m.scrollableContent,
291
+ style: ee,
292
+ children: W
293
+ }) : W
294
+ })
295
+ ]
296
+ })
297
+ });
298
+ };
299
+ const Me = ({ className: e, children: r, align: a, borderLeft: l, borderRight: t, colSpan: n, style: s, ...o }) => /* @__PURE__ */ d(H.Consumer, {
300
+ children: ({ mode: c, compact: b, cellWrapper: i }) => {
301
+ const f = L({
302
+ cellWrapper: i,
303
+ className: e,
304
+ mode: c,
305
+ compact: b,
306
+ align: a,
307
+ borderLeft: l,
308
+ borderRight: t
309
+ }), u = He(i), h = n && n > 1 ? {
310
+ ...s,
311
+ gridColumn: `span ${n}`
312
+ } : s;
313
+ return /* @__PURE__ */ d("div", {
314
+ role: u,
315
+ className: f,
316
+ style: h,
317
+ ...o,
318
+ children: r
319
+ });
320
+ }
321
+ });
322
+ function Se({ children: e, mode: r = "system", className: a, active: l = !1, ref: t, ...n }) {
323
+ const s = l ? g("relative", "focus-within:static", "focus-within:after:border-transparent", "after:absolute", "after:content-['']", "after:border-b-2", "after:-bottom-1", "after:left-0", "after:right-0", {
324
+ "after:border-table-light": r === "dark",
325
+ "after:border-table-dark": r === "light",
326
+ "after:border-table-light dark:after:border-table-dark": r === "system",
327
+ "after:border-table-dark dark:after:border-table-light": r === "alt-system"
328
+ }) : "";
329
+ return /* @__PURE__ */ d("div", {
330
+ className: s,
331
+ children: /* @__PURE__ */ d(U, {
332
+ className: a,
333
+ ref: t,
334
+ mode: r,
335
+ radius: "small",
336
+ size: "small",
337
+ align: "center",
338
+ ...n,
339
+ children: e
340
+ })
341
+ });
342
+ }
343
+ const je = ({ className: e, children: r, cellId: a, onSort: l, sortDirection: t, sortedCell: n, slotLeft: s, slotRight: o, buttonClassName: c, focusMode: b = "alt-system", align: i, ...f }) => {
344
+ const u = n === a, h = () => {
345
+ l && l(a, u && t ? t : void 0);
346
+ }, v = () => u && t === "asc" ? /* @__PURE__ */ d(de, {
347
+ className: "size-4",
348
+ monotone: !0
349
+ }) : u && t === "desc" ? /* @__PURE__ */ d(ce, {
350
+ className: "size-4",
351
+ monotone: !0
352
+ }) : /* @__PURE__ */ d(ge, {
353
+ className: "size-4",
354
+ monotone: !0
355
+ }), S = () => u && t === "asc" ? "ascending" : u && t === "desc" ? "descending" : "other";
356
+ return /* @__PURE__ */ d(H.Consumer, {
357
+ children: ({ mode: p, compact: k, cellWrapper: T }) => {
358
+ const C = L({
359
+ cellWrapper: T,
360
+ className: e,
361
+ mode: p,
362
+ compact: k,
363
+ align: i
364
+ }), D = g("flex", {
365
+ "justify-start": i === "left" || !i,
366
+ "justify-center": i === "center",
367
+ "justify-end": i === "right"
368
+ });
369
+ return /* @__PURE__ */ d("div", {
370
+ className: C,
371
+ role: "columnheader",
372
+ "aria-sort": S(),
373
+ ...f,
374
+ children: /* @__PURE__ */ F("div", {
375
+ className: D,
376
+ children: [
377
+ s,
378
+ /* @__PURE__ */ d(Se, {
379
+ active: u,
380
+ className: c,
381
+ onClick: h,
382
+ noBorder: !0,
383
+ focusMode: b,
384
+ mode: p,
385
+ labelRight: r,
386
+ children: v()
387
+ }),
388
+ o
389
+ ]
390
+ })
391
+ });
392
+ }
393
+ });
394
+ };
395
+ const we = ({ caption: e, captionClassName: r, className: a, children: l, ...t }) => {
396
+ const n = oe();
397
+ return /* @__PURE__ */ d(H.Consumer, {
398
+ children: (s) => /* @__PURE__ */ d(Ne, {
399
+ caption: e,
400
+ captionClassName: r,
401
+ captionId: n,
402
+ className: a,
403
+ ctx: s,
404
+ ...t,
405
+ children: l
406
+ })
407
+ });
408
+ };
409
+ we.displayName = "DataGridHeader";
410
+ const Ne = ({ caption: e, captionClassName: r, captionId: a, className: l, ctx: t, children: n, ...s }) => {
411
+ const o = !!t.columns, c = q(null);
412
+ return V(() => (t.registerHeader?.(), () => {
413
+ t.unregisterHeader?.();
414
+ }), [
415
+ t.registerHeader,
416
+ t.unregisterHeader
417
+ ]), V(() => (e && t.setCaptionId && t.setCaptionId(a), () => {
418
+ t.setCaptionId && t.setCaptionId(void 0);
419
+ }), [
420
+ e,
421
+ a,
422
+ t.setCaptionId
423
+ ]), P(() => {
424
+ const b = c.current;
425
+ if (!b || !t.stickyHeader || !t.setHeaderHeight)
426
+ return;
427
+ const i = new ResizeObserver((f) => {
428
+ const u = f[0]?.borderBoxSize?.[0]?.blockSize;
429
+ u !== void 0 && t.setHeaderHeight?.(u);
430
+ });
431
+ return i.observe(b), () => i.disconnect();
432
+ }, [
433
+ t.stickyHeader,
434
+ t.setHeaderHeight
435
+ ]), /* @__PURE__ */ d(H.Provider, {
436
+ value: {
437
+ ...t,
438
+ cellWrapper: x.HEADER
439
+ },
440
+ children: /* @__PURE__ */ F("div", {
441
+ ref: c,
442
+ role: "rowgroup",
443
+ className: Ce({
444
+ className: l,
445
+ stickyHeader: t.stickyHeader,
446
+ mode: t.mode,
447
+ blurEffect: t.blurEffect,
448
+ hasColumns: o
449
+ }),
450
+ ...s,
451
+ children: [
452
+ e && /* @__PURE__ */ d("div", {
453
+ id: a,
454
+ className: me({
455
+ captionClassName: r,
456
+ hasColumns: o
457
+ }),
458
+ children: e
459
+ }),
460
+ n
461
+ ]
462
+ })
463
+ });
464
+ };
465
+ const Ae = ({ className: e, children: r, active: a, style: l, ...t }) => {
466
+ const n = se.Children.count(r);
467
+ return /* @__PURE__ */ d(H.Consumer, {
468
+ children: ({ mode: s, cellWrapper: o, stickyHeader: c, stickyFooter: b, columns: i, measuredColumnWidths: f, rowIndex: u, isLastRow: h }) => {
469
+ const v = o === x.HEADER && c, S = o === x.FOOTER && b, p = v || S;
470
+ let k;
471
+ return i ? p ? f && f.length === i.length && f.some((C) => C > 0) ? k = {
472
+ gridTemplateColumns: f.map((C) => `${C}px`).join(" ")
473
+ } : k = {
474
+ gridTemplateColumns: i.join(" ")
475
+ } : k = {
476
+ gridColumn: "1 / -1",
477
+ gridTemplateColumns: "subgrid"
478
+ } : k = {
479
+ gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))`
480
+ }, /* @__PURE__ */ d("div", {
481
+ role: "row",
482
+ className: xe({
483
+ mode: s,
484
+ className: e,
485
+ cellWrapper: o,
486
+ rowIndex: u,
487
+ isLastRow: h
488
+ }),
489
+ style: {
490
+ ...k,
491
+ ...l
492
+ },
493
+ "data-active": a || void 0,
494
+ ...t,
495
+ children: r
496
+ });
497
+ }
498
+ });
499
+ }, Ge = ({
500
+ label: e,
501
+ disabled: r,
502
+ onClick: a
503
+ }) => /* @__PURE__ */ d(
504
+ ue,
505
+ {
506
+ label: e,
507
+ placement: "top",
508
+ trigger: /* @__PURE__ */ d(
509
+ U,
510
+ {
511
+ noBorder: !0,
512
+ variant: "primary",
513
+ label: e,
514
+ disabled: r,
515
+ onClick: a,
516
+ children: /* @__PURE__ */ d(
517
+ be,
518
+ {
519
+ size: "size-3",
520
+ monotone: !0,
521
+ className: "text-copy-error-dark dark:text-copy-error-light"
522
+ }
523
+ )
524
+ }
525
+ )
526
+ }
527
+ );
528
+ export {
529
+ Ge as ButtonIconDelete,
530
+ ze as DataGrid,
531
+ Me as DataGridCell,
532
+ je as DataGridCellSort,
533
+ H as DataGridContext,
534
+ we as DataGridHeader,
535
+ Ae as DataGridRow,
536
+ Fe as getBodyClass,
537
+ Be as useColumnMeasurement
538
+ };
@@ -1,7 +1,7 @@
1
1
  import { jsx as Pp } from "react/jsx-runtime";
2
- import { getDefaultExportFromCjs as dn, isProbablyMobile as Op } from "./App.yIuQGm0t.js";
2
+ import { getDefaultExportFromCjs as dn, isProbablyMobile as Op } from "./App.YH7VhNjK.js";
3
3
  import Lp, { useMemo as Ep } from "react";
4
- import { TRIMESTERS_SHORT as Ip, TRIMESTERS as on, TIME_RANGES as ls, TIME_RANGE_LABELS as an } from "./LogoEntry.BZFz5IRw.js";
4
+ import { TRIMESTERS_SHORT as Ip, TRIMESTERS as on, TIME_RANGES as ls, TIME_RANGE_LABELS as an } from "./LogoEntry.BAI8lPSQ.js";
5
5
  var hs = { exports: {} }, Dp = hs.exports, nn;
6
6
  function Bp() {
7
7
  return nn || (nn = 1, (function(Ae, pe) {
@@ -1,11 +1,11 @@
1
1
  import { jsx as vt } from "react/jsx-runtime";
2
- import { n as as, useUserPreferences as os, formatTimestamp as Vt } from "./index.hGvmkGha.js";
3
- import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.yIuQGm0t.js";
2
+ import { n as as, useUserPreferences as os, formatTimestamp as Vt } from "./index.jtqzynwK.js";
3
+ import { numberFormatter as ls, pluralize as us, Bubble as cs } from "./App.YH7VhNjK.js";
4
4
  import Zt from "clsx";
5
5
  import fs, { useState as Ae, useEffect as Jt, useContext as St } from "react";
6
- import { useMarkdown as hs } from "./useMarkdown.ZHvHgCd8.js";
7
- import { ChatContext as ds, AppContext as ps } from "./LogoEntry.BZFz5IRw.js";
8
- import { BubbleActions as ms } from "./BubbleActions.BMYwxyEv.js";
6
+ import { useMarkdown as hs } from "./useMarkdown.Bzgv93hs.js";
7
+ import { ChatContext as ds, AppContext as ps } from "./LogoEntry.BAI8lPSQ.js";
8
+ import { BubbleActions as ms } from "./BubbleActions.CVas6oiy.js";
9
9
  const Me = {
10
10
  isEmpty: !0
11
11
  };
@@ -2804,7 +2804,10 @@ function xa(e, t = !0) {
2804
2804
  duration: 2,
2805
2805
  // Easing function: starts fast and decelerates toward the end.
2806
2806
  ease: "easeOut",
2807
- // Callback invoked on each animation frame with the latest interpolated value.
2807
+ /**
2808
+ * Callback invoked on each animation frame with the latest interpolated
2809
+ * value.
2810
+ */
2808
2811
  onUpdate(c) {
2809
2812
  s(Math.floor(c));
2810
2813
  }
@@ -1,9 +1,9 @@
1
1
  import { jsx as a, Fragment as S, jsxs as b } from "react/jsx-runtime";
2
- import { Bubble as k } from "./App.yIuQGm0t.js";
3
- import { Button as C } from "./LogoEntry.BZFz5IRw.js";
2
+ import { Bubble as k } from "./App.YH7VhNjK.js";
3
+ import { Button as C } from "./LogoEntry.BAI8lPSQ.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.ZHvHgCd8.js";
6
- import { BubbleCopyToClipboard as I } from "./BubbleActions.BMYwxyEv.js";
5
+ import { useMarkdown as w } from "./useMarkdown.Bzgv93hs.js";
6
+ import { BubbleCopyToClipboard as I } from "./BubbleActions.CVas6oiy.js";
7
7
  const L = 200, h = ({ string: e, idealLength: r = L }) => {
8
8
  if (e.length <= r)
9
9
  return {