@versini/sassysaint 8.68.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.DpW_3DBG.js → AboutChangelog.DVjlL3Qi.js} +2 -2
  2. package/dist/chunks/{AboutEntry.CldYLKXw.js → AboutEntry.d-oqfbRb.js} +5 -5
  3. package/dist/chunks/{App.B7h4kjT4.js → App.DP_1QDro.js} +1990 -1924
  4. package/dist/chunks/{Chart.BJVSw9-u.js → Chart.BxgzH0Ym.js} +2 -2
  5. package/dist/chunks/{ChatBubbleAssistant.B6LBszzT.js → ChatBubbleAssistant.CAVS6c3_.js} +4 -4
  6. package/dist/chunks/{ChatBubbleUser.J6lOSYbO.js → ChatBubbleUser.Cyzg2idO.js} +6 -6
  7. package/dist/chunks/{ChatHistoryTable.C5Wc2Eyt.js → ChatHistoryTable.gB3WSJ7G.js} +3 -3
  8. package/dist/chunks/{HistoryEntry.DJiUgBvV.js → HistoryEntry.CQyBOAhi.js} +20 -20
  9. package/dist/chunks/{ProfileEntry.PCKZrYeS.js → ProfileEntry.CWwyc27k.js} +2 -2
  10. package/dist/chunks/SettingsEntry.DKbi9HA-.js +444 -0
  11. package/dist/chunks/{Table.BDdin_AH.js → Table.B65cZ6GW.js} +2 -2
  12. package/dist/chunks/{UsageEntry.sI0CIeE1.js → UsageEntry.BdgexwbQ.js} +3 -3
  13. package/dist/chunks/UserMemoriesPanel.CXJlDOY-.js +347 -0
  14. package/dist/chunks/{index.CuthjKLF.js → index.B-25p6O_.js} +3 -3
  15. package/dist/chunks/index.C0hBKDgD.js +357 -0
  16. package/dist/chunks/{index.B2C-ngQ9.js → index.CTgvpxYe.js} +1 -1
  17. package/dist/chunks/{index.tKnFdz08.js → index.Cfv_6CcW.js} +4 -4
  18. package/dist/chunks/{index.gE6u6VzH.js → index.DjSi9ICW.js} +496 -464
  19. package/dist/chunks/{index.u7coUAzj.js → index.DtU6Al_9.js} +1 -1
  20. package/dist/chunks/{index.BrfVwWfH.js → index.TU_lKm2K.js} +1 -1
  21. package/dist/chunks/{index.B0ax8k-S.js → index.edqJduuy.js} +2 -2
  22. package/dist/chunks/{useMarkdown.Bj5HO16s.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 +4 -4
  26. package/dist/chunks/SettingsEntry.szqdie_1.js +0 -794
  27. package/dist/chunks/UserMemoriesPanel.DMDeGzjE.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.Bj5HO16s.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.gE6u6VzH.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 = ({
@@ -230,13 +230,13 @@ const E = ({ kind: e, noMaxWidth: t }) => s("px-4 py-2", {
230
230
  ] });
231
231
  };
232
232
  /*!
233
- @versini/ui-bubble v6.1.1
233
+ @versini/ui-bubble v6.1.3
234
234
  © 2025 gizmette.com
235
235
  */
236
236
  try {
237
237
  window.__VERSINI_UI_BUBBLE__ || (window.__VERSINI_UI_BUBBLE__ = {
238
- version: "6.1.1",
239
- buildTime: "10/20/2025 07:55 PM EDT",
238
+ version: "6.1.3",
239
+ buildTime: "10/22/2025 05:50 PM EDT",
240
240
  homepage: "https://github.com/aversini/ui-components",
241
241
  license: "MIT"
242
242
  });