@versini/sassysaint 8.76.0 → 8.77.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 (34) hide show
  1. package/dist/chunks/{AboutChangelog.0kKcS_nT.js → AboutChangelog.tVLL6MtY.js} +10 -9
  2. package/dist/chunks/{AboutEntry.pKgicvGA.js → AboutEntry.D9MonPwL.js} +11 -11
  3. package/dist/chunks/App.CusyBC2e.js +9011 -0
  4. package/dist/chunks/{Chart.DD1RkG8X.js → Chart.bKur3H71.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.K55U7Bno.js → ChatBubbleAssistant.CEZZn7AD.js} +25 -23
  6. package/dist/chunks/ChatBubbleUser.BYLIgaHX.js +131 -0
  7. package/dist/chunks/ChatHistoryTable.D9mUtUwJ.js +237 -0
  8. package/dist/chunks/HistoryEntry.DarYFRIp.js +316 -0
  9. package/dist/chunks/{ProfileEntry.Bb-kLfDX.js → ProfileEntry.C_Y--pVY.js} +26 -26
  10. package/dist/chunks/{SettingsEntry.DrmBVh-w.js → SettingsEntry.DffchAfB.js} +39 -39
  11. package/dist/chunks/Table.DBfFG7qO.js +359 -0
  12. package/dist/chunks/{UsageEntry.O3YdUF30.js → UsageEntry.C73mIvmD.js} +19 -19
  13. package/dist/chunks/{UserMemoriesPanel.Dl5GlyBr.js → UserMemoriesPanel.DXx_9ifJ.js} +184 -210
  14. package/dist/chunks/index.AVBqcs3f.js +266 -0
  15. package/dist/chunks/{index.DUl-LwyU.js → index.B4-jvDi6.js} +1 -1
  16. package/dist/chunks/{index.DEKgWsou.js → index.BVMzTtBw.js} +1 -1
  17. package/dist/chunks/index.BcYESdDV.js +7894 -0
  18. package/dist/chunks/{index.DGkW9g6n.js → index.ClJfV5zs.js} +3 -3
  19. package/dist/chunks/{index.BeIiCAAq.js → index.Hv_qeE7S.js} +2 -2
  20. package/dist/chunks/{index.B9mUNJfd.js → index.Ly8CrT48.js} +1 -1
  21. package/dist/chunks/index.bx7cnejn.js +153 -0
  22. package/dist/chunks/{useMarkdown.Bf7wGKkC.js → useMarkdown.KipSXqDZ.js} +2004 -2130
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/dist/style.css +2 -2
  26. package/package.json +5 -5
  27. package/dist/chunks/App.CtFpHv2O.js +0 -10007
  28. package/dist/chunks/ChatBubbleUser.DsX56Kxx.js +0 -128
  29. package/dist/chunks/ChatHistoryTable.BvEUTjiq.js +0 -288
  30. package/dist/chunks/HistoryEntry.BSOPWYO2.js +0 -333
  31. package/dist/chunks/Table.BbIvEnBz.js +0 -456
  32. package/dist/chunks/index.BNusLsEn.js +0 -357
  33. package/dist/chunks/index.Czv_1MTM.js +0 -7203
  34. package/dist/chunks/index.icjUE8II.js +0 -249
@@ -0,0 +1,266 @@
1
+ import { jsxs as oe, jsx as h } from "react/jsx-runtime";
2
+ import { useMergeRefs as ce, useResizeObserver as W, useUniqueId as ne, useUncontrolled as le, LiveRegion as ie } from "./index.BcYESdDV.js";
3
+ import ue, { useRef as k, useState as I, useLayoutEffect as R } from "react";
4
+ import o from "clsx";
5
+ /*!
6
+ @versini/ui-textarea v5.1.0
7
+ © 2025 gizmette.com
8
+ */
9
+ try {
10
+ window.__VERSINI_UI_TEXTAREA__ || (window.__VERSINI_UI_TEXTAREA__ = {
11
+ version: "5.1.0",
12
+ buildTime: "11/04/2025 03:43 PM EST",
13
+ homepage: "https://github.com/aversini/ui-components",
14
+ license: "MIT"
15
+ });
16
+ } catch {
17
+ }
18
+ const B = "av-text-area", de = "av-text-area-wrapper", H = "av-text-area-helper-text", fe = "av-text-area__control--right", pe = "av-text-area__control--left", xe = () => "rounded-md text-base h-20 min-h-[80px] resize-none overflow-hidden px-4 py-7", ye = ({ mode: e }) => o({
19
+ "bg-surface-darker text-copy-lighter caret-copy-light": e === "dark",
20
+ "bg-surface-lighter text-copy-dark caret-copy-dark": e === "light",
21
+ "bg-surface-lighter text-copy-dark caret-copy-dark dark:bg-surface-darker dark:text-copy-lighter dark:caret-copy-light": e === "system",
22
+ "bg-surface-darker text-copy-lighter caret-copy-light dark:bg-surface-lighter dark:text-copy-dark dark:caret-copy-dark": e === "alt-system"
23
+ }), he = ({ focusMode: e }) => o("focus:outline focus:outline-2 focus:outline-offset-2", {
24
+ "focus:outline-focus-dark": e === "dark",
25
+ "focus:outline-focus-light": e === "light",
26
+ "focus:outline-focus-light dark:focus:outline-focus-dark": e === "alt-system",
27
+ "focus:outline-focus-dark dark:focus:outline-focus-light": e === "system"
28
+ }), ge = ({ noBorder: e, error: a }) => o("border-2", {
29
+ "border-border-dark": !e && !a,
30
+ "focus:border-border-dark": !e && a,
31
+ "border-border-error-dark": !e && a,
32
+ "border-transparent": e
33
+ }), Ae = ({ disabled: e, raw: a, error: t, mode: s, leftElement: r, rightElement: c }) => {
34
+ if (a)
35
+ return "";
36
+ if (e)
37
+ return o("transform translate-y-0 scale-100 absolute px-2 cursor-not-allowed opacity-50 font-medium", {
38
+ "translate-x-[10px]": c === !0 && !r || !c && !r
39
+ });
40
+ if (!t)
41
+ return o("absolute px-2 cursor-text font-medium transform translate-y-0 scale-100", {
42
+ "translate-x-[10px]": c === !0 && !r || !c && !r,
43
+ "text-copy-medium": s === "dark",
44
+ "text-copy-dark": s === "light",
45
+ "text-copy-dark dark:text-copy-medium": s === "system",
46
+ "text-copy-medium dark:text-copy-dark": s === "alt-system"
47
+ });
48
+ if (t)
49
+ return o("absolute px-2 cursor-text font-medium transform translate-y-0 scale-100", {
50
+ "translate-x-[10px]": c === !0 && !r || !c && !r,
51
+ "text-copy-medium": s === "dark",
52
+ "text-copy-error-dark": s === "light",
53
+ "text-copy-error-dark dark:text-copy-error-light": s === "system",
54
+ "text-copy-medium dark:text-copy-error-dark": s === "alt-system"
55
+ });
56
+ }, Te = ({ error: e, raw: a, mode: t, disabled: s }) => {
57
+ if (a)
58
+ return "";
59
+ if (s)
60
+ return o(H, "absolute px-2 cursor-not-allowed opacity-50 font-medium");
61
+ if (!e)
62
+ return o(H, "absolute px-2 font-medium", {
63
+ "text-copy-medium": t === "dark",
64
+ "text-copy-dark": t === "light",
65
+ "text-copy-dark dark:text-copy-medium": t === "system",
66
+ "text-copy-medium dark:text-copy-dark": t === "alt-system"
67
+ });
68
+ if (e)
69
+ return o(H, "absolute px-2 font-medium", {
70
+ "text-copy-error-light": t === "dark",
71
+ "text-copy-error-dark": t === "light",
72
+ "text-copy-error-dark dark:text-copy-error-light": t === "system",
73
+ "dark:text-copy-error-dark text-copy-error-light": t === "alt-system"
74
+ });
75
+ }, ke = ({ className: e, textAreaClassName: a, raw: t, focusMode: s, disabled: r, noBorder: c, error: u, mode: d, leftElement: x, rightElement: g }) => {
76
+ const N = t ? e : o("relative flex w-full flex-col justify-center", de, e), m = t ? o(a) : o(B, a, xe(), ye({
77
+ mode: d
78
+ }), he({
79
+ focusMode: s
80
+ }), ge({
81
+ noBorder: c,
82
+ error: u
83
+ }), {
84
+ "disabled:cursor-not-allowed disabled:opacity-50": r
85
+ }), S = t ? void 0 : "sr-only", C = Ae({
86
+ disabled: r,
87
+ raw: t,
88
+ error: u,
89
+ mode: d,
90
+ rightElement: g,
91
+ leftElement: x
92
+ }), l = Te({
93
+ error: u,
94
+ raw: t,
95
+ mode: d,
96
+ disabled: r
97
+ }), b = t ? void 0 : o(fe, "absolute"), f = t ? void 0 : o(pe, "absolute");
98
+ return {
99
+ wrapper: N,
100
+ textArea: m,
101
+ accessibleLabel: S,
102
+ visibleLabel: C,
103
+ helperText: l,
104
+ rightElement: b,
105
+ leftElement: f
106
+ };
107
+ }, be = ({ scrollHeight: e, currentHeight: a, currentLabelOffset: t = 0, currentHelperTextOffset: s = 0 }) => {
108
+ let u, d;
109
+ if (e > 0 && e !== a) {
110
+ const x = e - a, g = Math.abs(x / 24);
111
+ u = t + -1 * Math.sign(x) * (12 * g), d = s + Math.sign(x) * (12 * g);
112
+ }
113
+ return {
114
+ labelOffset: u,
115
+ helperTextOffset: d,
116
+ scrollHeight: e
117
+ };
118
+ }, _e = /* @__PURE__ */ ue.forwardRef(({ id: e, name: a, label: t, error: s = !1, raw: r = !1, className: c, textAreaClassName: u, mode: d = "system", focusMode: x = "system", value: g, defaultValue: N, disabled: m = !1, noBorder: S = !1, labelId: C, helperText: l = "", helperTextOnFocus: b = !1, rightElement: f, leftElement: A, onChange: P, onFocus: F, onBlur: M, ...Y }, z) => {
119
+ const i = k(null), D = ce([
120
+ z,
121
+ i
122
+ ]), [V, L] = W(), [q, T] = W(), O = k(80), $ = k(-25), v = k(null), w = k(30), X = k(null), _ = ne({
123
+ id: e,
124
+ prefix: `${B}-`
125
+ }), [U, J] = I(0), [j, K] = I(0), [Q, G] = I(!!(!b && l)), Z = `${a} error, ${l}`, y = ke({
126
+ className: c,
127
+ textAreaClassName: u,
128
+ error: s,
129
+ raw: r,
130
+ focusMode: x,
131
+ disabled: m,
132
+ noBorder: S,
133
+ mode: d,
134
+ rightElement: !!f,
135
+ leftElement: !!A
136
+ }), [p, ee] = le({
137
+ value: g,
138
+ initialControlledDelay: 20,
139
+ defaultValue: N,
140
+ onChange: (n) => {
141
+ P && P({
142
+ target: {
143
+ value: n
144
+ }
145
+ });
146
+ }
147
+ }), te = (n) => {
148
+ ee(n.target.value);
149
+ }, re = (n) => {
150
+ b && l && G(!0), F && F(n);
151
+ }, se = (n) => {
152
+ b && l && !p && G(!1), M && M(n);
153
+ };
154
+ return R(() => {
155
+ L && L.width && J(L.width + 18 + 10);
156
+ }, [
157
+ L
158
+ ]), R(() => {
159
+ T && T.width && K(T.width + 18 + 10);
160
+ }, [
161
+ T
162
+ ]), R(() => {
163
+ r || i && i.current && p !== void 0 && (i.current.style.height = "inherit", i.current.style.height = i.current.scrollHeight + "px");
164
+ }, [
165
+ p,
166
+ r
167
+ ]), R(() => {
168
+ r || setTimeout(() => {
169
+ v?.current?.style.setProperty("--av-text-area-wrapper-transition", p ? "none" : "all 0.2s ease-out");
170
+ }, 0);
171
+ }, [
172
+ p,
173
+ r
174
+ ]), R(() => {
175
+ if (!r && i && i.current && p !== void 0) {
176
+ const { labelOffset: n, helperTextOffset: E, scrollHeight: ae } = be({
177
+ scrollHeight: i.current.scrollHeight,
178
+ currentHeight: O.current,
179
+ currentLabelOffset: $.current,
180
+ currentHelperTextOffset: w.current
181
+ });
182
+ n && ($.current = n, v?.current?.style.setProperty("--av-text-area-label", `${n}px`)), E && (w.current = E, X?.current?.style.setProperty("--av-text-area-helper-text", `${E}px`)), O.current = ae || O.current;
183
+ }
184
+ }, [
185
+ p,
186
+ r
187
+ ]), T.width > 0 && v?.current?.style.setProperty("--tw-translate-x", `${12 + T.width + 5}px`), /* @__PURE__ */ oe("div", {
188
+ className: y.wrapper,
189
+ children: [
190
+ /* @__PURE__ */ h("label", {
191
+ htmlFor: _,
192
+ id: C,
193
+ className: y.accessibleLabel,
194
+ children: t
195
+ }),
196
+ A && /* @__PURE__ */ h("div", {
197
+ ref: q,
198
+ className: y.leftElement,
199
+ children: A
200
+ }),
201
+ /* @__PURE__ */ h("textarea", {
202
+ ref: D,
203
+ id: _,
204
+ name: a,
205
+ disabled: m,
206
+ placeholder: r ? void 0 : " ",
207
+ className: y.textArea,
208
+ rows: 1,
209
+ ...l && {
210
+ "aria-describedby": `${_}-helper`
211
+ },
212
+ ...s && {
213
+ "aria-invalid": "true"
214
+ },
215
+ ...f && !A && !r && {
216
+ style: {
217
+ paddingRight: U
218
+ }
219
+ },
220
+ ...A && !f && !r && {
221
+ style: {
222
+ paddingLeft: j
223
+ }
224
+ },
225
+ ...f && A && !r && {
226
+ style: {
227
+ paddingRight: U,
228
+ paddingLeft: j
229
+ }
230
+ },
231
+ value: p,
232
+ onChange: te,
233
+ onFocus: re,
234
+ onBlur: se,
235
+ ...Y
236
+ }),
237
+ !r && /* @__PURE__ */ h("label", {
238
+ ref: v,
239
+ "aria-hidden": !0,
240
+ htmlFor: _,
241
+ className: `${y.visibleLabel}`,
242
+ children: t
243
+ }),
244
+ Q && /* @__PURE__ */ h("div", {
245
+ ref: X,
246
+ id: `${_}-helper`,
247
+ className: y.helperText,
248
+ children: l
249
+ }),
250
+ f && /* @__PURE__ */ h("div", {
251
+ ref: V,
252
+ className: y.rightElement,
253
+ children: f
254
+ }),
255
+ s && l && /* @__PURE__ */ h(ie, {
256
+ politeness: "polite",
257
+ clearAnnouncementDelay: 500,
258
+ children: Z
259
+ })
260
+ ]
261
+ });
262
+ });
263
+ _e.displayName = "TextArea";
264
+ export {
265
+ _e as TextArea
266
+ };
@@ -1,4 +1,4 @@
1
- import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.Bf7wGKkC.js";
1
+ import { factorySpace as M, markdownLineEnding as g } from "./useMarkdown.KipSXqDZ.js";
2
2
  import { longestStreak as q } from "./index.Cyw5OC0t.js";
3
3
  function b() {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { convert as se, visitParents as Me, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as W, visit as _e, toString as ce, EXIT as Oe, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as je, blankLine as Be, factorySpace as S, splice as q, resolveAll as We, markdownLineEnding as R, markdownSpace as T, combineExtensions as $e } from "./useMarkdown.Bf7wGKkC.js";
1
+ import { convert as se, visitParents as Me, unicodeWhitespace as I, unicodePunctuation as N, normalizeIdentifier as _, classifyCharacter as W, visit as _e, toString as ce, EXIT as Oe, asciiAlphanumeric as Z, asciiAlpha as P, markdownLineEndingOrSpace as A, asciiControl as je, blankLine as Be, factorySpace as S, splice as q, resolveAll as We, markdownLineEnding as R, markdownSpace as T, combineExtensions as $e } from "./useMarkdown.KipSXqDZ.js";
2
2
  import { longestStreak as qe } from "./index.Cyw5OC0t.js";
3
3
  function ne(e, n) {
4
4
  const t = String(e);