@versini/sassysaint 8.69.0 → 8.70.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 (27) hide show
  1. package/dist/chunks/{AboutChangelog.C1qlLGOL.js → AboutChangelog.DVjlL3Qi.js} +2 -2
  2. package/dist/chunks/{AboutEntry.MVgAFIQi.js → AboutEntry.d-oqfbRb.js} +5 -5
  3. package/dist/chunks/{App.DnIeRbwI.js → App.DP_1QDro.js} +16 -16
  4. package/dist/chunks/{Chart.D4LA295Y.js → Chart.BxgzH0Ym.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.B9uKu0Zq.js → ChatBubbleAssistant.CAVS6c3_.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.DBArpWQj.js → ChatBubbleUser.Cyzg2idO.js} +3 -3
  7. package/dist/chunks/{ChatHistoryTable.DpDPvpwx.js → ChatHistoryTable.gB3WSJ7G.js} +3 -3
  8. package/dist/chunks/{HistoryEntry.DyYYZjb-.js → HistoryEntry.CQyBOAhi.js} +3 -3
  9. package/dist/chunks/{ProfileEntry.BkfA5ilN.js → ProfileEntry.CWwyc27k.js} +2 -2
  10. package/dist/chunks/SettingsEntry.DKbi9HA-.js +444 -0
  11. package/dist/chunks/{Table.BSsGkgB1.js → Table.B65cZ6GW.js} +2 -2
  12. package/dist/chunks/{UsageEntry.DA9Z1z3A.js → UsageEntry.BdgexwbQ.js} +3 -3
  13. package/dist/chunks/UserMemoriesPanel.CXJlDOY-.js +347 -0
  14. package/dist/chunks/{index.BtXviUD3.js → index.B-25p6O_.js} +3 -3
  15. package/dist/chunks/index.C0hBKDgD.js +357 -0
  16. package/dist/chunks/{index.CaDLl4vX.js → index.CTgvpxYe.js} +1 -1
  17. package/dist/chunks/{index.Dta1BrG6.js → index.Cfv_6CcW.js} +1 -1
  18. package/dist/chunks/{index.DXaLvF3n.js → index.DjSi9ICW.js} +487 -455
  19. package/dist/chunks/{index.CKRmoShZ.js → index.DtU6Al_9.js} +1 -1
  20. package/dist/chunks/{index.DH2l4xnG.js → index.TU_lKm2K.js} +1 -1
  21. package/dist/chunks/{index.B3XB6cTq.js → index.edqJduuy.js} +2 -2
  22. package/dist/chunks/{useMarkdown.BAKJP0y9.js → useMarkdown.CZcXi3B7.js} +6 -6
  23. package/dist/components/SassySaint/SassySaint.js +1 -1
  24. package/dist/index.js +4 -4
  25. package/package.json +3 -3
  26. package/dist/chunks/SettingsEntry.CfM4w4sE.js +0 -794
  27. package/dist/chunks/UserMemoriesPanel.BI0GoJUN.js +0 -208
@@ -0,0 +1,357 @@
1
+ import { jsxs as oe, jsx as x } from "react/jsx-runtime";
2
+ import { o as se, h as U, i as ie, x$1 as de } from "./index.DjSi9ICW.js";
3
+ import ce, { useState as _, useEffect as ne, useRef as b, useLayoutEffect as T } from "react";
4
+ import s from "clsx";
5
+ function ue({
6
+ value: e,
7
+ defaultValue: l,
8
+ finalValue: r,
9
+ onChange: a = () => {
10
+ },
11
+ initialControlledDelay: t = 0
12
+ }) {
13
+ const [o, i] = _(!1), [c, k] = _(
14
+ l !== void 0 ? l : r
15
+ ), v = (f) => {
16
+ k(f), a?.(f);
17
+ };
18
+ return ne(() => {
19
+ (async () => e !== void 0 && !o && t > 0 && (await new Promise(
20
+ (f) => setTimeout(f, t)
21
+ ), i(!0)))();
22
+ }, [e, t, o]), e !== void 0 ? !o && t > 0 ? ["", a, !0] : [e, a, !0] : [c, v, !1];
23
+ }
24
+ const X = "av-text-area", fe = "av-text-area-wrapper", L = "av-text-area-helper-text", me = "av-text-area__control--right", pe = "av-text-area__control--left", he = () => "rounded-md text-base h-20 min-h-[80px] resize-none overflow-hidden px-4 py-7", xe = ({ mode: e }) => s({
25
+ "bg-surface-darker text-copy-lighter caret-copy-light": e === "dark",
26
+ "bg-surface-lighter text-copy-dark caret-copy-dark": e === "light",
27
+ "bg-surface-lighter text-copy-dark caret-copy-dark dark:bg-surface-darker dark:text-copy-lighter dark:caret-copy-light": e === "system",
28
+ "bg-surface-darker text-copy-lighter caret-copy-light dark:bg-surface-lighter dark:text-copy-dark dark:caret-copy-dark": e === "alt-system"
29
+ }), ye = ({
30
+ focusMode: e
31
+ }) => s("focus:outline focus:outline-2 focus:outline-offset-2", {
32
+ "focus:outline-focus-dark": e === "dark",
33
+ "focus:outline-focus-light": e === "light",
34
+ "focus:outline-focus-light dark:focus:outline-focus-dark": e === "alt-system",
35
+ "focus:outline-focus-dark dark:focus:outline-focus-light": e === "system"
36
+ }), ge = ({
37
+ noBorder: e,
38
+ error: l
39
+ }) => s("border-2", {
40
+ "border-border-dark": !e && !l,
41
+ "focus:border-border-dark": !e && l,
42
+ "border-border-error-dark": !e && l,
43
+ "border-transparent": e
44
+ }), be = ({
45
+ disabled: e,
46
+ raw: l,
47
+ error: r,
48
+ mode: a,
49
+ leftElement: t,
50
+ rightElement: o
51
+ }) => {
52
+ if (l)
53
+ return "";
54
+ if (e)
55
+ return s(
56
+ "transform translate-y-0 scale-100 absolute px-2 cursor-not-allowed opacity-50 font-medium",
57
+ {
58
+ "translate-x-[10px]": o === !0 && !t || !o && !t
59
+ }
60
+ );
61
+ if (!r)
62
+ return s(
63
+ "absolute px-2 cursor-text font-medium transform translate-y-0 scale-100",
64
+ {
65
+ "translate-x-[10px]": o === !0 && !t || !o && !t,
66
+ "text-copy-medium": a === "dark",
67
+ "text-copy-dark": a === "light",
68
+ "text-copy-dark dark:text-copy-medium": a === "system",
69
+ "text-copy-medium dark:text-copy-dark": a === "alt-system"
70
+ }
71
+ );
72
+ if (r)
73
+ return s(
74
+ "absolute px-2 cursor-text font-medium transform translate-y-0 scale-100",
75
+ {
76
+ "translate-x-[10px]": o === !0 && !t || !o && !t,
77
+ "text-copy-medium": a === "dark",
78
+ "text-copy-error-dark": a === "light",
79
+ "text-copy-error-dark dark:text-copy-error-light": a === "system",
80
+ "text-copy-medium dark:text-copy-error-dark": a === "alt-system"
81
+ }
82
+ );
83
+ }, ke = ({
84
+ error: e,
85
+ raw: l,
86
+ mode: r,
87
+ disabled: a
88
+ }) => {
89
+ if (l)
90
+ return "";
91
+ if (a)
92
+ return s(
93
+ L,
94
+ "absolute px-2 cursor-not-allowed opacity-50 font-medium"
95
+ );
96
+ if (!e)
97
+ return s(L, "absolute px-2 font-medium", {
98
+ "text-copy-medium": r === "dark",
99
+ "text-copy-dark": r === "light",
100
+ "text-copy-dark dark:text-copy-medium": r === "system",
101
+ "text-copy-medium dark:text-copy-dark": r === "alt-system"
102
+ });
103
+ if (e)
104
+ return s(L, "absolute px-2 font-medium", {
105
+ "text-copy-error-light": r === "dark",
106
+ "text-copy-error-dark": r === "light",
107
+ "text-copy-error-dark dark:text-copy-error-light": r === "system",
108
+ "dark:text-copy-error-dark text-copy-error-light": r === "alt-system"
109
+ });
110
+ }, ve = ({
111
+ className: e,
112
+ textAreaClassName: l,
113
+ raw: r,
114
+ focusMode: a,
115
+ disabled: t,
116
+ noBorder: o,
117
+ error: i,
118
+ mode: c,
119
+ leftElement: k,
120
+ rightElement: v
121
+ }) => {
122
+ const f = r ? e : s(
123
+ "relative flex w-full flex-col justify-center",
124
+ fe,
125
+ e
126
+ ), N = r ? s(l) : s(
127
+ X,
128
+ l,
129
+ he(),
130
+ xe({ mode: c }),
131
+ ye({ focusMode: a }),
132
+ ge({
133
+ noBorder: o,
134
+ error: i
135
+ }),
136
+ {
137
+ "disabled:cursor-not-allowed disabled:opacity-50": t
138
+ }
139
+ ), M = r ? void 0 : "sr-only", R = be({
140
+ disabled: t,
141
+ raw: r,
142
+ error: i,
143
+ mode: c,
144
+ rightElement: v,
145
+ leftElement: k
146
+ }), n = ke({
147
+ error: i,
148
+ raw: r,
149
+ mode: c,
150
+ disabled: t
151
+ }), w = r ? void 0 : s(me, "absolute"), m = r ? void 0 : s(pe, "absolute");
152
+ return {
153
+ wrapper: f,
154
+ textArea: N,
155
+ accessibleLabel: M,
156
+ visibleLabel: R,
157
+ helperText: n,
158
+ rightElement: w,
159
+ leftElement: m
160
+ };
161
+ }, we = ({
162
+ scrollHeight: e,
163
+ currentHeight: l,
164
+ currentLabelOffset: r = 0,
165
+ currentHelperTextOffset: a = 0
166
+ }) => {
167
+ let t, o;
168
+ if (e > 0 && e !== l) {
169
+ const i = e - l, c = Math.abs(i / 24);
170
+ t = r + -1 * Math.sign(i) * (12 * c), o = a + Math.sign(i) * (12 * c);
171
+ }
172
+ return {
173
+ labelOffset: t,
174
+ helperTextOffset: o,
175
+ scrollHeight: e
176
+ };
177
+ }, Ee = ce.forwardRef(
178
+ ({
179
+ id: e,
180
+ name: l,
181
+ label: r,
182
+ error: a = !1,
183
+ raw: t = !1,
184
+ className: o,
185
+ textAreaClassName: i,
186
+ mode: c = "system",
187
+ focusMode: k = "system",
188
+ value: v,
189
+ defaultValue: f,
190
+ disabled: N = !1,
191
+ noBorder: M = !1,
192
+ labelId: R,
193
+ helperText: n = "",
194
+ helperTextOnFocus: w = !1,
195
+ rightElement: m,
196
+ leftElement: y,
197
+ onChange: O,
198
+ onFocus: I,
199
+ onBlur: B,
200
+ ...q
201
+ }, z) => {
202
+ const u = b(null), G = se([z, u]), [J, A] = U(), [K, g] = U(), C = b(80), V = b(-25), $ = b(null), D = b(30), P = b(null), E = ie({ id: e, prefix: `${X}-` }), [j, Q] = _(0), [F, W] = _(0), [Z, S] = _(
203
+ !!(!w && n)
204
+ ), Y = `${l} error, ${n}`, h = ve({
205
+ className: o,
206
+ textAreaClassName: i,
207
+ error: a,
208
+ raw: t,
209
+ focusMode: k,
210
+ disabled: N,
211
+ noBorder: M,
212
+ mode: c,
213
+ rightElement: !!m,
214
+ leftElement: !!y
215
+ }), [p, ee] = ue({
216
+ value: v,
217
+ initialControlledDelay: 20,
218
+ defaultValue: f,
219
+ onChange: (d) => {
220
+ O && O({
221
+ target: {
222
+ value: d
223
+ }
224
+ });
225
+ }
226
+ }), te = (d) => {
227
+ ee(d.target.value);
228
+ }, re = (d) => {
229
+ w && n && S(!0), I && I(d);
230
+ }, ae = (d) => {
231
+ w && n && !p && S(!1), B && B(d);
232
+ };
233
+ return T(() => {
234
+ A && A.width && Q(A.width + 18 + 10);
235
+ }, [A]), T(() => {
236
+ g && g.width && W(g.width + 18 + 10);
237
+ }, [g]), T(() => {
238
+ t || u && u.current && p !== void 0 && (u.current.style.height = "inherit", u.current.style.height = u.current.scrollHeight + "px");
239
+ }, [p, t]), T(() => {
240
+ t || setTimeout(() => {
241
+ $?.current?.style.setProperty(
242
+ "--av-text-area-wrapper-transition",
243
+ p ? "none" : "all 0.2s ease-out"
244
+ );
245
+ }, 0);
246
+ }, [p, t]), T(() => {
247
+ if (!t && u && u.current && p !== void 0) {
248
+ const { labelOffset: d, helperTextOffset: H, scrollHeight: le } = we({
249
+ scrollHeight: u.current.scrollHeight,
250
+ currentHeight: C.current,
251
+ currentLabelOffset: V.current,
252
+ currentHelperTextOffset: D.current
253
+ });
254
+ d && (V.current = d, $?.current?.style.setProperty(
255
+ "--av-text-area-label",
256
+ `${d}px`
257
+ )), H && (D.current = H, P?.current?.style.setProperty(
258
+ "--av-text-area-helper-text",
259
+ `${H}px`
260
+ )), C.current = le || C.current;
261
+ }
262
+ }, [p, t]), g.width > 0 && $?.current?.style.setProperty(
263
+ "--tw-translate-x",
264
+ `${12 + g.width + 5}px`
265
+ ), /* @__PURE__ */ oe("div", { className: h.wrapper, children: [
266
+ /* @__PURE__ */ x(
267
+ "label",
268
+ {
269
+ htmlFor: E,
270
+ id: R,
271
+ className: h.accessibleLabel,
272
+ children: r
273
+ }
274
+ ),
275
+ y && /* @__PURE__ */ x(
276
+ "div",
277
+ {
278
+ ref: K,
279
+ className: h.leftElement,
280
+ children: y
281
+ }
282
+ ),
283
+ /* @__PURE__ */ x(
284
+ "textarea",
285
+ {
286
+ ref: G,
287
+ id: E,
288
+ name: l,
289
+ disabled: N,
290
+ placeholder: t ? void 0 : " ",
291
+ className: h.textArea,
292
+ rows: 1,
293
+ ...n && { "aria-describedby": `${E}-helper` },
294
+ ...a && { "aria-invalid": "true" },
295
+ ...m && !y && !t && { style: { paddingRight: j } },
296
+ ...y && !m && !t && { style: { paddingLeft: F } },
297
+ ...m && y && !t && {
298
+ style: {
299
+ paddingRight: j,
300
+ paddingLeft: F
301
+ }
302
+ },
303
+ value: p,
304
+ onChange: te,
305
+ onFocus: re,
306
+ onBlur: ae,
307
+ ...q
308
+ }
309
+ ),
310
+ !t && /* @__PURE__ */ x(
311
+ "label",
312
+ {
313
+ ref: $,
314
+ "aria-hidden": !0,
315
+ htmlFor: E,
316
+ className: `${h.visibleLabel}`,
317
+ children: r
318
+ }
319
+ ),
320
+ Z && /* @__PURE__ */ x(
321
+ "div",
322
+ {
323
+ ref: P,
324
+ id: `${E}-helper`,
325
+ className: h.helperText,
326
+ children: n
327
+ }
328
+ ),
329
+ m && /* @__PURE__ */ x(
330
+ "div",
331
+ {
332
+ ref: J,
333
+ className: h.rightElement,
334
+ children: m
335
+ }
336
+ ),
337
+ a && n && /* @__PURE__ */ x(de, { politeness: "polite", clearAnnouncementDelay: 500, children: Y })
338
+ ] });
339
+ }
340
+ );
341
+ Ee.displayName = "TextArea";
342
+ /*!
343
+ @versini/ui-textarea v5.0.6
344
+ © 2025 gizmette.com
345
+ */
346
+ try {
347
+ window.__VERSINI_UI_TEXTAREA__ || (window.__VERSINI_UI_TEXTAREA__ = {
348
+ version: "5.0.6",
349
+ buildTime: "10/22/2025 05:48 PM EDT",
350
+ homepage: "https://github.com/aversini/ui-components",
351
+ license: "MIT"
352
+ });
353
+ } catch {
354
+ }
355
+ export {
356
+ Ee as Re
357
+ };
@@ -1,4 +1,4 @@
1
- import { convert as E, convertElement as u } from "./useMarkdown.BAKJP0y9.js";
1
+ import { convert as E, convertElement as u } from "./useMarkdown.CZcXi3B7.js";
2
2
  const f = (
3
3
  // Note: overloads like this are needed to support optional generics.
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { jsxs as p, jsx as i } from "react/jsx-runtime";
2
- import { te as B } from "./index.DXaLvF3n.js";
2
+ import { te as B } from "./index.DjSi9ICW.js";
3
3
  import { useState as I, useEffect as k } from "react";
4
4
  import s from "clsx";
5
5
  const h = "av-bubble", w = ({