@instockng/storefront-ui 1.0.106 → 1.0.107
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.
- package/dist/components/AssistantDrawer.d.ts +24 -0
- package/dist/components/AssistantDrawer.d.ts.map +1 -0
- package/dist/components/ProductAssistantChips.d.ts +13 -0
- package/dist/components/ProductAssistantChips.d.ts.map +1 -0
- package/dist/components/SearchAssistantTrigger.d.ts +12 -0
- package/dist/components/SearchAssistantTrigger.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +127 -121
- package/dist/index10.mjs +3 -3
- package/dist/index100.mjs +8 -68
- package/dist/index101.mjs +71 -33
- package/dist/index102.mjs +3 -42
- package/dist/index103.mjs +2 -2
- package/dist/index104.mjs +82 -5
- package/dist/index105.mjs +53 -1133
- package/dist/index106.mjs +5 -19
- package/dist/index107.mjs +4 -54
- package/dist/index108.mjs +174 -28
- package/dist/index109.mjs +53 -2
- package/dist/index11.mjs +5 -5
- package/dist/index110.mjs +69 -2
- package/dist/index111.mjs +2 -2
- package/dist/index112.mjs +35 -26
- package/dist/index113.mjs +42 -17
- package/dist/index114.mjs +2 -215
- package/dist/index115.mjs +26 -178
- package/dist/index116.mjs +10 -14
- package/dist/index117.mjs +209 -17
- package/dist/index118.mjs +173 -26
- package/dist/index119.mjs +17 -151
- package/dist/index12.mjs +4 -4
- package/dist/index120.mjs +13 -10
- package/dist/index121.mjs +24 -22
- package/dist/index122.mjs +148 -76
- package/dist/index123.mjs +13 -31
- package/dist/index124.mjs +24 -138
- package/dist/index125.mjs +78 -49
- package/dist/index126.mjs +32 -17
- package/dist/index127.mjs +139 -21
- package/dist/index128.mjs +51 -19
- package/dist/index129.mjs +16 -18
- package/dist/index13.mjs +3 -3
- package/dist/index130.mjs +18 -12
- package/dist/index131.mjs +15 -14
- package/dist/index132.mjs +17 -13
- package/dist/index133.mjs +14 -58
- package/dist/index134.mjs +15 -11
- package/dist/index135.mjs +14 -32
- package/dist/index136.mjs +57 -16
- package/dist/index137.mjs +11 -27
- package/dist/index138.mjs +31 -19
- package/dist/index139.mjs +17 -12
- package/dist/index14.mjs +1 -1
- package/dist/index140.mjs +27 -14
- package/dist/index141.mjs +20 -40
- package/dist/index142.mjs +11 -15
- package/dist/index143.mjs +17 -264
- package/dist/index144.mjs +40 -63
- package/dist/index145.mjs +22 -7
- package/dist/index146.mjs +268 -2
- package/dist/index147.mjs +70 -2
- package/dist/index148.mjs +7 -32
- package/dist/index149.mjs +2 -2
- package/dist/index15.mjs +1 -1
- package/dist/index150.mjs +2 -21
- package/dist/index151.mjs +31 -54
- package/dist/index152.mjs +2 -29
- package/dist/index153.mjs +20 -6
- package/dist/index154.mjs +53 -49
- package/dist/index155.mjs +29 -6
- package/dist/index156.mjs +6 -11
- package/dist/index157.mjs +49 -4
- package/dist/index158.mjs +5 -27
- package/dist/index159.mjs +12 -2
- package/dist/index16.mjs +6 -6
- package/dist/index160.mjs +6 -69
- package/dist/index161.mjs +27 -166
- package/dist/index162.mjs +2 -2
- package/dist/index163.mjs +70 -2
- package/dist/index164.mjs +167 -2
- package/dist/index165.mjs +2 -2
- package/dist/index166.mjs +2 -18
- package/dist/index167.mjs +2 -32
- package/dist/index168.mjs +14 -34
- package/dist/index169.mjs +25 -11
- package/dist/index17.mjs +4 -4
- package/dist/index170.mjs +34 -14
- package/dist/index171.mjs +18 -2
- package/dist/index172.mjs +11 -13
- package/dist/index173.mjs +2 -46
- package/dist/index174.mjs +20 -2
- package/dist/index175.mjs +41 -25
- package/dist/index176.mjs +2 -18
- package/dist/index177.mjs +30 -2
- package/dist/index178.mjs +18 -2
- package/dist/index179.mjs +2 -2
- package/dist/index18.mjs +5 -5
- package/dist/index180.mjs +2 -2
- package/dist/index181.mjs +2 -72
- package/dist/index182.mjs +2 -2
- package/dist/index183.mjs +59 -40
- package/dist/index185.mjs +48 -31
- package/dist/index186.mjs +2 -152
- package/dist/index187.mjs +36 -2
- package/dist/index188.mjs +152 -2
- package/dist/index189.mjs +2 -19
- package/dist/index19.mjs +3 -3
- package/dist/index190.mjs +2 -2
- package/dist/index191.mjs +19 -2
- package/dist/index192.mjs +2 -26
- package/dist/index193.mjs +2 -2
- package/dist/index194.mjs +26 -2
- package/dist/index195.mjs +2 -24
- package/dist/index196.mjs +2 -23
- package/dist/index197.mjs +24 -2
- package/dist/index198.mjs +23 -2
- package/dist/index199.mjs +2 -2
- package/dist/index2.mjs +2 -2
- package/dist/index20.mjs +11 -11
- package/dist/index200.mjs +2 -23
- package/dist/index202.mjs +16 -16
- package/dist/index203.mjs +2 -2
- package/dist/index204.mjs +23 -2
- package/dist/index205.mjs +2 -2
- package/dist/index206.mjs +2 -23
- package/dist/index207.mjs +2 -2
- package/dist/index208.mjs +15 -15
- package/dist/index21.mjs +256 -51
- package/dist/index210.mjs +23 -2
- package/dist/index211.mjs +2 -2
- package/dist/index212.mjs +2 -2
- package/dist/index213.mjs +2 -2
- package/dist/index215.mjs +2 -2
- package/dist/index217.mjs +2 -127
- package/dist/index218.mjs +2 -2
- package/dist/index219.mjs +123 -70
- package/dist/index22.mjs +45 -62
- package/dist/index220.mjs +2 -74
- package/dist/index221.mjs +74 -13
- package/dist/index222.mjs +74 -7
- package/dist/index223.mjs +2 -31
- package/dist/index224.mjs +13 -11
- package/dist/index225.mjs +7 -4
- package/dist/index226.mjs +11 -3
- package/dist/index227.mjs +4 -11
- package/dist/index228.mjs +33 -5
- package/dist/index229.mjs +31 -33
- package/dist/index23.mjs +22 -22
- package/dist/index230.mjs +26 -29
- package/dist/index231.mjs +59 -26
- package/dist/index232.mjs +28 -58
- package/dist/index233.mjs +11 -2
- package/dist/index234.mjs +4 -2
- package/dist/index235.mjs +4 -2
- package/dist/index236.mjs +2 -2
- package/dist/index237.mjs +2 -2
- package/dist/index238.mjs +2 -2
- package/dist/index239.mjs +2 -2
- package/dist/index24.mjs +55 -104
- package/dist/index240.mjs +2 -2
- package/dist/index241.mjs +2 -108
- package/dist/index242.mjs +2 -2
- package/dist/index243.mjs +2 -2
- package/dist/index244.mjs +96 -25
- package/dist/index246.mjs +2 -244
- package/dist/index247.mjs +37 -2
- package/dist/index248.mjs +2 -33
- package/dist/index249.mjs +2 -65
- package/dist/index25.mjs +62 -42
- package/dist/index250.mjs +243 -24
- package/dist/index251.mjs +2 -2
- package/dist/index252.mjs +33 -2
- package/dist/index253.mjs +65 -2
- package/dist/index254.mjs +25 -2
- package/dist/index255.mjs +2 -2
- package/dist/index256.mjs +2 -2
- package/dist/index257.mjs +2 -2
- package/dist/index259.mjs +2 -2
- package/dist/index26.mjs +22 -40
- package/dist/index260.mjs +2 -2
- package/dist/index261.mjs +2 -4
- package/dist/index262.mjs +2 -2
- package/dist/index263.mjs +4 -2
- package/dist/index264.mjs +2 -3
- package/dist/index265.mjs +2 -2
- package/dist/index266.mjs +2 -2
- package/dist/index267.mjs +2 -17
- package/dist/index268.mjs +2 -13
- package/dist/index269.mjs +18 -6
- package/dist/index27.mjs +107 -87
- package/dist/index270.mjs +45 -28
- package/dist/index271.mjs +2 -2
- package/dist/index272.mjs +2 -2
- package/dist/index273.mjs +2 -18
- package/dist/index274.mjs +2 -47
- package/dist/index275.mjs +91 -2
- package/dist/index276.mjs +2 -2
- package/dist/index277.mjs +3 -2
- package/dist/index278.mjs +2 -2
- package/dist/index279.mjs +2 -91
- package/dist/index28.mjs +42 -32
- package/dist/index280.mjs +17 -2
- package/dist/index281.mjs +13 -2
- package/dist/index282.mjs +6 -2
- package/dist/index283.mjs +30 -2
- package/dist/index284.mjs +5 -0
- package/dist/index285.mjs +5 -0
- package/dist/index286.mjs +5 -0
- package/dist/index29.mjs +42 -9
- package/dist/index3.mjs +4 -4
- package/dist/index30.mjs +84 -17
- package/dist/index31.mjs +29 -35
- package/dist/index32.mjs +8 -39
- package/dist/index33.mjs +21 -125
- package/dist/index34.mjs +35 -46
- package/dist/index35.mjs +38 -9
- package/dist/index36.mjs +121 -6
- package/dist/index37.mjs +49 -123
- package/dist/index38.mjs +11 -28
- package/dist/index39.mjs +11 -91
- package/dist/index4.mjs +1 -1
- package/dist/index40.mjs +121 -123
- package/dist/index41.mjs +28 -11
- package/dist/index42.mjs +91 -35
- package/dist/index43.mjs +116 -37
- package/dist/index44.mjs +9 -9
- package/dist/index45.mjs +33 -121
- package/dist/index46.mjs +42 -385
- package/dist/index47.mjs +10 -24
- package/dist/index48.mjs +122 -31
- package/dist/index49.mjs +388 -27
- package/dist/index5.mjs +1 -1
- package/dist/index50.mjs +24 -6
- package/dist/index51.mjs +30 -1431
- package/dist/index52.mjs +26 -68
- package/dist/index53.mjs +7 -2
- package/dist/index54.mjs +1425 -52
- package/dist/index55.mjs +69 -50
- package/dist/index56.mjs +2 -33
- package/dist/index57.mjs +59 -14
- package/dist/index58.mjs +47 -2259
- package/dist/index59.mjs +33 -36
- package/dist/index6.mjs +1 -1
- package/dist/index60.mjs +14 -43
- package/dist/index61.mjs +2256 -96
- package/dist/index62.mjs +36 -81
- package/dist/index63.mjs +43 -18
- package/dist/index64.mjs +102 -128
- package/dist/index65.mjs +45 -89
- package/dist/index66.mjs +15 -75
- package/dist/index67.mjs +84 -130
- package/dist/index68.mjs +84 -66
- package/dist/index69.mjs +69 -26
- package/dist/index7.mjs +6 -6
- package/dist/index70.mjs +138 -58
- package/dist/index71.mjs +82 -56
- package/dist/index72.mjs +28 -55
- package/dist/index73.mjs +79 -46
- package/dist/index74.mjs +58 -112
- package/dist/index75.mjs +47 -54
- package/dist/index76.mjs +60 -22
- package/dist/index77.mjs +135 -2
- package/dist/index78.mjs +68 -21
- package/dist/index79.mjs +21 -150
- package/dist/index8.mjs +6 -6
- package/dist/index80.mjs +2 -5
- package/dist/index81.mjs +149 -71
- package/dist/index82.mjs +23 -15
- package/dist/index83.mjs +68 -56
- package/dist/index84.mjs +14 -234
- package/dist/index85.mjs +62 -5
- package/dist/index86.mjs +4 -133
- package/dist/index87.mjs +2 -68
- package/dist/index88.mjs +5 -86
- package/dist/index89.mjs +1133 -28
- package/dist/index9.mjs +4 -4
- package/dist/index90.mjs +19 -8
- package/dist/index91.mjs +51 -71
- package/dist/index92.mjs +32 -3
- package/dist/index93.mjs +2 -2
- package/dist/index94.mjs +227 -75
- package/dist/index95.mjs +5 -53
- package/dist/index96.mjs +133 -5
- package/dist/index97.mjs +67 -4
- package/dist/index98.mjs +79 -171
- package/dist/index99.mjs +27 -51
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/AssistantDrawer.stories.tsx +140 -0
- package/src/components/AssistantDrawer.tsx +430 -0
- package/src/components/ProductAssistantChips.stories.tsx +42 -0
- package/src/components/ProductAssistantChips.tsx +64 -0
- package/src/components/SearchAssistantTrigger.stories.tsx +35 -0
- package/src/components/SearchAssistantTrigger.tsx +41 -0
- package/src/index.ts +10 -0
package/dist/index206.mjs
CHANGED
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import { __require as a } from "./index202.mjs";
|
|
4
|
-
var n;
|
|
5
|
-
function h() {
|
|
6
|
-
return n ? t : (n = 1, function(i) {
|
|
7
|
-
Object.defineProperty(i, "__esModule", {
|
|
8
|
-
value: !0
|
|
9
|
-
}), Object.defineProperty(i, "removePathPrefix", {
|
|
10
|
-
enumerable: !0,
|
|
11
|
-
get: function() {
|
|
12
|
-
return f;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
const o = a();
|
|
16
|
-
function f(e, u) {
|
|
17
|
-
if (!(0, o.pathHasPrefix)(e, u))
|
|
18
|
-
return e;
|
|
19
|
-
const r = e.slice(u.length);
|
|
20
|
-
return r.startsWith("/") ? r : "/" + r;
|
|
21
|
-
}
|
|
22
|
-
}(t), t);
|
|
23
|
-
}
|
|
2
|
+
var e = {};
|
|
24
3
|
export {
|
|
25
|
-
|
|
4
|
+
e as __exports
|
|
26
5
|
};
|
package/dist/index207.mjs
CHANGED
package/dist/index208.mjs
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { __exports as
|
|
3
|
-
import { __require as
|
|
4
|
-
var
|
|
5
|
-
function
|
|
6
|
-
return
|
|
7
|
-
Object.defineProperty(
|
|
2
|
+
import { __exports as t } from "./index261.mjs";
|
|
3
|
+
import { __require as a } from "./index204.mjs";
|
|
4
|
+
var n;
|
|
5
|
+
function h() {
|
|
6
|
+
return n ? t : (n = 1, function(i) {
|
|
7
|
+
Object.defineProperty(i, "__esModule", {
|
|
8
8
|
value: !0
|
|
9
|
-
}), Object.defineProperty(
|
|
9
|
+
}), Object.defineProperty(i, "removePathPrefix", {
|
|
10
10
|
enumerable: !0,
|
|
11
11
|
get: function() {
|
|
12
|
-
return
|
|
12
|
+
return f;
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
const
|
|
16
|
-
function
|
|
17
|
-
if (!
|
|
15
|
+
const o = a();
|
|
16
|
+
function f(e, u) {
|
|
17
|
+
if (!(0, o.pathHasPrefix)(e, u))
|
|
18
18
|
return e;
|
|
19
|
-
const
|
|
20
|
-
return ""
|
|
19
|
+
const r = e.slice(u.length);
|
|
20
|
+
return r.startsWith("/") ? r : "/" + r;
|
|
21
21
|
}
|
|
22
|
-
}(
|
|
22
|
+
}(t), t);
|
|
23
23
|
}
|
|
24
24
|
export {
|
|
25
|
-
|
|
25
|
+
h as __require
|
|
26
26
|
};
|
package/dist/index21.mjs
CHANGED
|
@@ -1,63 +1,268 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { Loader2 as
|
|
6
|
-
import { cn as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
2
|
+
import { jsxs as l, jsx as r } from "react/jsx-runtime";
|
|
3
|
+
import { useState as m, useRef as p, useCallback as G, useEffect as N } from "react";
|
|
4
|
+
import { createPortal as Q } from "react-dom";
|
|
5
|
+
import { Sparkles as ee, X as te, Loader2 as re, Send as se } from "lucide-react";
|
|
6
|
+
import { cn as k, formatCurrency as ne } from "./index30.mjs";
|
|
7
|
+
import { useHideBodyOverflow as ae } from "./index53.mjs";
|
|
8
|
+
function ue({
|
|
9
|
+
isOpen: c,
|
|
10
|
+
onClose: y,
|
|
11
|
+
apiUrl: I,
|
|
12
|
+
brandSlug: D,
|
|
13
|
+
productSlug: J,
|
|
14
|
+
initialQuestion: x,
|
|
15
|
+
assistantName: L = "AI Assistant",
|
|
16
|
+
onProductClick: S,
|
|
17
|
+
className: K,
|
|
18
|
+
disablePortal: Y = !1
|
|
19
|
+
}) {
|
|
20
|
+
const [u, d] = m([]), [w, E] = m(""), [f, W] = m(!1), [$, h] = m(null), [q, C] = m(!1), [Z, F] = m(!1), M = p(null), z = p(null), A = p(!1), B = p([]);
|
|
21
|
+
B.current = u, ae(c);
|
|
22
|
+
const H = G((e, a) => {
|
|
23
|
+
if (e === "token")
|
|
24
|
+
d((s) => {
|
|
25
|
+
const o = [...s], t = o[o.length - 1];
|
|
26
|
+
return (t == null ? void 0 : t.role) === "assistant" && (o[o.length - 1] = { ...t, content: t.content + a }), o;
|
|
27
|
+
});
|
|
28
|
+
else if (e === "done")
|
|
29
|
+
try {
|
|
30
|
+
const s = JSON.parse(a);
|
|
31
|
+
d((o) => {
|
|
32
|
+
var i;
|
|
33
|
+
const t = [...o], n = t[t.length - 1];
|
|
34
|
+
return (n == null ? void 0 : n.role) === "assistant" && (t[t.length - 1] = {
|
|
35
|
+
...n,
|
|
36
|
+
content: s.answer || n.content,
|
|
37
|
+
products: ((i = s.products) == null ? void 0 : i.length) > 0 ? s.products : void 0
|
|
38
|
+
}), t;
|
|
39
|
+
});
|
|
40
|
+
} catch {
|
|
41
|
+
}
|
|
42
|
+
else if (e === "error")
|
|
43
|
+
try {
|
|
44
|
+
const s = JSON.parse(a);
|
|
45
|
+
h(s.message || "An error occurred");
|
|
46
|
+
} catch {
|
|
47
|
+
h("An error occurred");
|
|
48
|
+
}
|
|
49
|
+
}, []), v = p(), U = G(
|
|
50
|
+
async (e) => {
|
|
51
|
+
var o;
|
|
52
|
+
if (!e.trim()) return;
|
|
53
|
+
h(null);
|
|
54
|
+
const a = { role: "user", content: e }, s = B.current.map((t) => ({
|
|
55
|
+
role: t.role,
|
|
56
|
+
content: t.content
|
|
57
|
+
}));
|
|
58
|
+
d((t) => [...t, a]), E(""), W(!0), d((t) => [...t, { role: "assistant", content: "" }]);
|
|
59
|
+
try {
|
|
60
|
+
const t = await fetch(`${I}/v1/assistant/ask`, {
|
|
61
|
+
method: "POST",
|
|
62
|
+
headers: { "Content-Type": "application/json" },
|
|
63
|
+
body: JSON.stringify({
|
|
64
|
+
question: e,
|
|
65
|
+
brandSlug: D,
|
|
66
|
+
productSlug: J,
|
|
67
|
+
history: s
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
if (!t.ok) {
|
|
71
|
+
const g = await t.json().catch(() => ({}));
|
|
72
|
+
throw new Error(
|
|
73
|
+
((o = g == null ? void 0 : g.error) == null ? void 0 : o.message) || `Request failed (${t.status})`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
if (!t.body) throw new Error("No response body");
|
|
77
|
+
const n = t.body.getReader(), i = new TextDecoder();
|
|
78
|
+
let j = "", R = "";
|
|
79
|
+
for (; ; ) {
|
|
80
|
+
const { done: g, value: P } = await n.read();
|
|
81
|
+
if (g) break;
|
|
82
|
+
j += i.decode(P, { stream: !0 });
|
|
83
|
+
const X = j.split(`
|
|
84
|
+
`);
|
|
85
|
+
j = X.pop() || "";
|
|
86
|
+
for (const b of X) {
|
|
87
|
+
if (b.trim() === "") {
|
|
88
|
+
R = "";
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (b.trimStart().startsWith("event:"))
|
|
92
|
+
R = b.trimStart().slice(6).trim();
|
|
93
|
+
else if (b.trimStart().startsWith("data:")) {
|
|
94
|
+
const T = b.trimStart().slice(5), O = T.startsWith(" ") ? T.slice(1) : T;
|
|
95
|
+
H(R || "token", O);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
} catch (t) {
|
|
100
|
+
h(t.message || "Something went wrong"), d((n) => {
|
|
101
|
+
const i = n[n.length - 1];
|
|
102
|
+
return (i == null ? void 0 : i.role) === "assistant" && !i.content ? n.slice(0, -1) : n;
|
|
103
|
+
});
|
|
104
|
+
} finally {
|
|
105
|
+
W(!1);
|
|
26
106
|
}
|
|
27
107
|
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
108
|
+
[I, D, J, H]
|
|
109
|
+
);
|
|
110
|
+
v.current = U, N(() => {
|
|
111
|
+
if (c)
|
|
112
|
+
F(!0), requestAnimationFrame(() => {
|
|
113
|
+
requestAnimationFrame(() => {
|
|
114
|
+
C(!0);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
else {
|
|
118
|
+
C(!1);
|
|
119
|
+
const e = setTimeout(() => {
|
|
120
|
+
F(!1), d([]), E(""), h(null), A.current = !1;
|
|
121
|
+
}, 300);
|
|
122
|
+
return () => clearTimeout(e);
|
|
31
123
|
}
|
|
32
|
-
}
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
124
|
+
}, [c]), N(() => {
|
|
125
|
+
c && x && !A.current && (A.current = !0, x.trim() ? setTimeout(() => {
|
|
126
|
+
var e;
|
|
127
|
+
return (e = v.current) == null ? void 0 : e.call(v, x);
|
|
128
|
+
}, 100) : setTimeout(() => {
|
|
129
|
+
var e;
|
|
130
|
+
return (e = z.current) == null ? void 0 : e.focus();
|
|
131
|
+
}, 350));
|
|
132
|
+
}, [c, x]), N(() => {
|
|
133
|
+
var e;
|
|
134
|
+
(e = M.current) == null || e.scrollIntoView({ behavior: "smooth" });
|
|
135
|
+
}, [u]), N(() => {
|
|
136
|
+
const e = (a) => {
|
|
137
|
+
a.key === "Escape" && c && y();
|
|
138
|
+
};
|
|
139
|
+
if (c)
|
|
140
|
+
return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
|
|
141
|
+
}, [c, y]);
|
|
142
|
+
const _ = (e) => {
|
|
143
|
+
e.preventDefault(), w.trim() && U(w.trim());
|
|
144
|
+
};
|
|
145
|
+
if (!Z) return null;
|
|
146
|
+
const V = /* @__PURE__ */ l(
|
|
147
|
+
"div",
|
|
47
148
|
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
...d,
|
|
149
|
+
className: k(
|
|
150
|
+
"fixed inset-0 z-50 transition-opacity duration-300",
|
|
151
|
+
q ? "opacity-100" : "opacity-0"
|
|
152
|
+
),
|
|
53
153
|
children: [
|
|
54
|
-
|
|
55
|
-
|
|
154
|
+
/* @__PURE__ */ r(
|
|
155
|
+
"div",
|
|
156
|
+
{
|
|
157
|
+
className: "absolute inset-0 bg-black/40 backdrop-blur-sm",
|
|
158
|
+
onClick: y
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
/* @__PURE__ */ l(
|
|
162
|
+
"div",
|
|
163
|
+
{
|
|
164
|
+
className: k(
|
|
165
|
+
"absolute bg-white flex flex-col transition-transform duration-300 ease-out",
|
|
166
|
+
// Mobile: bottom sheet
|
|
167
|
+
"inset-x-0 bottom-0 top-[10vh] rounded-t-2xl",
|
|
168
|
+
// Desktop: right side drawer
|
|
169
|
+
"sm:inset-y-0 sm:right-0 sm:left-auto sm:w-[420px] sm:max-w-full sm:rounded-t-none sm:rounded-l-2xl",
|
|
170
|
+
// Animation
|
|
171
|
+
q ? "translate-y-0 sm:translate-x-0" : "translate-y-full sm:translate-y-0 sm:translate-x-full",
|
|
172
|
+
K
|
|
173
|
+
),
|
|
174
|
+
children: [
|
|
175
|
+
/* @__PURE__ */ l("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 flex-shrink-0", children: [
|
|
176
|
+
/* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
177
|
+
/* @__PURE__ */ r(ee, { className: "h-5 w-5 text-orange-500" }),
|
|
178
|
+
/* @__PURE__ */ r("span", { className: "font-semibold text-gray-900", children: L }),
|
|
179
|
+
/* @__PURE__ */ r("span", { className: "text-xs text-gray-400 bg-gray-100 rounded px-1.5 py-0.5", children: "beta" })
|
|
180
|
+
] }),
|
|
181
|
+
/* @__PURE__ */ r(
|
|
182
|
+
"button",
|
|
183
|
+
{
|
|
184
|
+
type: "button",
|
|
185
|
+
onClick: y,
|
|
186
|
+
className: "p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg transition-colors",
|
|
187
|
+
"aria-label": "Close",
|
|
188
|
+
children: /* @__PURE__ */ r(te, { className: "h-5 w-5" })
|
|
189
|
+
}
|
|
190
|
+
)
|
|
191
|
+
] }),
|
|
192
|
+
/* @__PURE__ */ l("div", { className: "flex-1 overflow-y-auto p-4 space-y-4 min-h-0", children: [
|
|
193
|
+
u.length === 0 && !f && /* @__PURE__ */ r("div", { className: "text-center text-gray-400 text-sm py-8", children: "Ask me anything about our products!" }),
|
|
194
|
+
u.map((e, a) => /* @__PURE__ */ r("div", { children: e.role === "user" ? /* @__PURE__ */ r("div", { className: "flex justify-end", children: /* @__PURE__ */ r("div", { className: "bg-gray-800 text-white rounded-2xl rounded-br-sm px-4 py-2 max-w-[80%] text-sm", children: e.content }) }) : /* @__PURE__ */ l("div", { className: "space-y-3", children: [
|
|
195
|
+
/* @__PURE__ */ l("div", { className: "text-sm text-gray-800 leading-relaxed whitespace-pre-wrap", children: [
|
|
196
|
+
e.content,
|
|
197
|
+
f && a === u.length - 1 && /* @__PURE__ */ r("span", { className: "inline-block w-1.5 h-4 bg-gray-400 animate-pulse ml-0.5 align-text-bottom" })
|
|
198
|
+
] }),
|
|
199
|
+
e.products && e.products.length > 0 && /* @__PURE__ */ r("div", { className: "space-y-2", children: e.products.map((s) => /* @__PURE__ */ l(
|
|
200
|
+
"button",
|
|
201
|
+
{
|
|
202
|
+
type: "button",
|
|
203
|
+
onClick: () => S == null ? void 0 : S(s.slug),
|
|
204
|
+
className: "flex items-center gap-3 w-full rounded-xl border border-gray-200 p-2 hover:bg-gray-50 transition-colors text-left",
|
|
205
|
+
children: [
|
|
206
|
+
s.thumbnailUrl ? /* @__PURE__ */ r(
|
|
207
|
+
"img",
|
|
208
|
+
{
|
|
209
|
+
src: s.thumbnailUrl,
|
|
210
|
+
alt: s.name,
|
|
211
|
+
className: "h-16 w-16 rounded-lg object-cover flex-shrink-0"
|
|
212
|
+
}
|
|
213
|
+
) : /* @__PURE__ */ r("div", { className: "h-16 w-16 rounded-lg bg-gray-100 flex-shrink-0" }),
|
|
214
|
+
/* @__PURE__ */ l("div", { className: "min-w-0", children: [
|
|
215
|
+
/* @__PURE__ */ r("p", { className: "text-sm font-medium text-gray-900 line-clamp-2", children: s.name }),
|
|
216
|
+
/* @__PURE__ */ r("p", { className: "text-sm font-semibold text-blue-600", children: ne(s.price) })
|
|
217
|
+
] })
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
s.slug
|
|
221
|
+
)) })
|
|
222
|
+
] }) }, a)),
|
|
223
|
+
$ && /* @__PURE__ */ r("div", { className: "rounded-lg bg-red-50 border border-red-200 p-3 text-sm text-red-700", children: $ }),
|
|
224
|
+
/* @__PURE__ */ r("div", { ref: M })
|
|
225
|
+
] }),
|
|
226
|
+
/* @__PURE__ */ r("div", { className: "border-t border-gray-200 p-3 flex-shrink-0", children: /* @__PURE__ */ l("form", { onSubmit: _, className: "flex items-center gap-2", children: [
|
|
227
|
+
/* @__PURE__ */ r(
|
|
228
|
+
"input",
|
|
229
|
+
{
|
|
230
|
+
ref: z,
|
|
231
|
+
type: "text",
|
|
232
|
+
value: w,
|
|
233
|
+
onChange: (e) => E(e.target.value),
|
|
234
|
+
placeholder: `Ask ${L} a question`,
|
|
235
|
+
disabled: f,
|
|
236
|
+
className: k(
|
|
237
|
+
"flex-1 rounded-full border border-gray-300 px-4 py-2.5 text-sm",
|
|
238
|
+
"focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-400/30",
|
|
239
|
+
"disabled:opacity-50"
|
|
240
|
+
)
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
/* @__PURE__ */ r(
|
|
244
|
+
"button",
|
|
245
|
+
{
|
|
246
|
+
type: "submit",
|
|
247
|
+
disabled: !w.trim() || f,
|
|
248
|
+
className: k(
|
|
249
|
+
"flex h-10 w-10 items-center justify-center rounded-full",
|
|
250
|
+
"bg-gray-800 text-white",
|
|
251
|
+
"hover:bg-gray-700 transition-colors",
|
|
252
|
+
"disabled:opacity-40 disabled:cursor-not-allowed"
|
|
253
|
+
),
|
|
254
|
+
children: f ? /* @__PURE__ */ r(re, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ r(se, { className: "h-4 w-4" })
|
|
255
|
+
}
|
|
256
|
+
)
|
|
257
|
+
] }) })
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
)
|
|
56
261
|
]
|
|
57
262
|
}
|
|
58
263
|
);
|
|
264
|
+
return Y ? V : Q(V, document.body);
|
|
59
265
|
}
|
|
60
266
|
export {
|
|
61
|
-
|
|
62
|
-
b as buttonVariants
|
|
267
|
+
ue as AssistantDrawer
|
|
63
268
|
};
|
package/dist/index210.mjs
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
import { __exports as r } from "./index266.mjs";
|
|
3
|
+
import { __require as s } from "./index130.mjs";
|
|
4
|
+
var a;
|
|
5
|
+
function _() {
|
|
6
|
+
return a ? r : (a = 1, function(t) {
|
|
7
|
+
Object.defineProperty(t, "__esModule", {
|
|
8
|
+
value: !0
|
|
9
|
+
}), Object.defineProperty(t, "addPathSuffix", {
|
|
10
|
+
enumerable: !0,
|
|
11
|
+
get: function() {
|
|
12
|
+
return n;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const i = s();
|
|
16
|
+
function n(e, u) {
|
|
17
|
+
if (!e.startsWith("/") || !u)
|
|
18
|
+
return e;
|
|
19
|
+
const { pathname: f, query: d, hash: o } = (0, i.parsePath)(e);
|
|
20
|
+
return "" + f + u + d + o;
|
|
21
|
+
}
|
|
22
|
+
}(r), r);
|
|
23
|
+
}
|
|
3
24
|
export {
|
|
4
|
-
|
|
25
|
+
_ as __require
|
|
5
26
|
};
|
package/dist/index211.mjs
CHANGED
package/dist/index212.mjs
CHANGED
package/dist/index213.mjs
CHANGED
package/dist/index215.mjs
CHANGED
package/dist/index217.mjs
CHANGED
|
@@ -1,130 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
import S from "./index261.mjs";
|
|
4
|
-
var _;
|
|
5
|
-
function $() {
|
|
6
|
-
return _ ? b.exports : (_ = 1, (() => {
|
|
7
|
-
var O = { 154: (t, m, n) => {
|
|
8
|
-
var i = n(781), u = ["write", "end", "destroy"], f = ["resume", "pause"], l = ["data", "close"], c = Array.prototype.slice;
|
|
9
|
-
t.exports = s;
|
|
10
|
-
function r(o, a) {
|
|
11
|
-
if (o.forEach)
|
|
12
|
-
return o.forEach(a);
|
|
13
|
-
for (var e = 0; e < o.length; e++)
|
|
14
|
-
a(o[e], e);
|
|
15
|
-
}
|
|
16
|
-
function s(o, a) {
|
|
17
|
-
var e = new i(), d = !1;
|
|
18
|
-
return r(u, x), r(f, z), r(l, E), a.on("end", F), o.on("drain", function() {
|
|
19
|
-
e.emit("drain");
|
|
20
|
-
}), o.on("error", w), a.on("error", w), e.writable = o.writable, e.readable = a.readable, e;
|
|
21
|
-
function x(p) {
|
|
22
|
-
e[p] = h;
|
|
23
|
-
function h() {
|
|
24
|
-
return o[p].apply(o, arguments);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function z(p) {
|
|
28
|
-
e[p] = h;
|
|
29
|
-
function h() {
|
|
30
|
-
e.emit(p);
|
|
31
|
-
var y = a[p];
|
|
32
|
-
if (y)
|
|
33
|
-
return y.apply(a, arguments);
|
|
34
|
-
a.emit(p);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function E(p) {
|
|
38
|
-
a.on(p, h);
|
|
39
|
-
function h() {
|
|
40
|
-
var y = c.call(arguments);
|
|
41
|
-
y.unshift(p), e.emit.apply(e, y);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
function F() {
|
|
45
|
-
if (!d) {
|
|
46
|
-
d = !0;
|
|
47
|
-
var p = c.call(arguments);
|
|
48
|
-
p.unshift("end"), e.emit.apply(e, p);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function w(p) {
|
|
52
|
-
e.emit("error", p);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}, 349: (t, m, n) => {
|
|
56
|
-
const i = n(147), u = n(781), f = n(796), l = n(154), c = n(530), r = (s) => Object.assign({ level: 9 }, s);
|
|
57
|
-
t.exports = (s, o) => s ? c(f.gzip)(s, r(o)).then((a) => a.length).catch((a) => 0) : Promise.resolve(0), t.exports.sync = (s, o) => f.gzipSync(s, r(o)).length, t.exports.stream = (s) => {
|
|
58
|
-
const o = new u.PassThrough(), a = new u.PassThrough(), e = l(o, a);
|
|
59
|
-
let d = 0;
|
|
60
|
-
const x = f.createGzip(r(s)).on("data", (z) => {
|
|
61
|
-
d += z.length;
|
|
62
|
-
}).on("error", () => {
|
|
63
|
-
e.gzipSize = 0;
|
|
64
|
-
}).on("end", () => {
|
|
65
|
-
e.gzipSize = d, e.emit("gzip-size", d), a.end();
|
|
66
|
-
});
|
|
67
|
-
return o.pipe(x), o.pipe(a, { end: !1 }), e;
|
|
68
|
-
}, t.exports.file = (s, o) => new Promise((a, e) => {
|
|
69
|
-
const d = i.createReadStream(s);
|
|
70
|
-
d.on("error", e);
|
|
71
|
-
const x = d.pipe(t.exports.stream(o));
|
|
72
|
-
x.on("error", e), x.on("gzip-size", a);
|
|
73
|
-
}), t.exports.fileSync = (s, o) => t.exports.sync(i.readFileSync(s), o);
|
|
74
|
-
}, 530: (t) => {
|
|
75
|
-
const m = (n, i) => function(...u) {
|
|
76
|
-
const f = i.promiseModule;
|
|
77
|
-
return new f((l, c) => {
|
|
78
|
-
i.multiArgs ? u.push((...r) => {
|
|
79
|
-
i.errorFirst ? r[0] ? c(r) : (r.shift(), l(r)) : l(r);
|
|
80
|
-
}) : i.errorFirst ? u.push((r, s) => {
|
|
81
|
-
r ? c(r) : l(s);
|
|
82
|
-
}) : u.push(l), n.apply(this, u);
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
|
-
t.exports = (n, i) => {
|
|
86
|
-
i = Object.assign({ exclude: [/.+(Sync|Stream)$/], errorFirst: !0, promiseModule: Promise }, i);
|
|
87
|
-
const u = typeof n;
|
|
88
|
-
if (!(n !== null && (u === "object" || u === "function")))
|
|
89
|
-
throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${n === null ? "null" : u}\``);
|
|
90
|
-
const f = (c) => {
|
|
91
|
-
const r = (s) => typeof s == "string" ? c === s : s.test(c);
|
|
92
|
-
return i.include ? i.include.some(r) : !i.exclude.some(r);
|
|
93
|
-
};
|
|
94
|
-
let l;
|
|
95
|
-
u === "function" ? l = function(...c) {
|
|
96
|
-
return i.excludeMain ? n(...c) : m(n, i).apply(this, c);
|
|
97
|
-
} : l = Object.create(Object.getPrototypeOf(n));
|
|
98
|
-
for (const c in n) {
|
|
99
|
-
const r = n[c];
|
|
100
|
-
l[c] = typeof r == "function" && f(c) ? m(r, i) : r;
|
|
101
|
-
}
|
|
102
|
-
return l;
|
|
103
|
-
};
|
|
104
|
-
}, 147: (t) => {
|
|
105
|
-
t.exports = S;
|
|
106
|
-
}, 781: (t) => {
|
|
107
|
-
t.exports = S;
|
|
108
|
-
}, 796: (t) => {
|
|
109
|
-
t.exports = S;
|
|
110
|
-
} }, v = {};
|
|
111
|
-
function g(t) {
|
|
112
|
-
var m = v[t];
|
|
113
|
-
if (m !== void 0)
|
|
114
|
-
return m.exports;
|
|
115
|
-
var n = v[t] = { exports: {} }, i = !0;
|
|
116
|
-
try {
|
|
117
|
-
O[t](n, n.exports, g), i = !1;
|
|
118
|
-
} finally {
|
|
119
|
-
i && delete v[t];
|
|
120
|
-
}
|
|
121
|
-
return n.exports;
|
|
122
|
-
}
|
|
123
|
-
typeof g < "u" && (g.ab = __dirname + "/");
|
|
124
|
-
var j = g(349);
|
|
125
|
-
b.exports = j;
|
|
126
|
-
})(), b.exports);
|
|
127
|
-
}
|
|
2
|
+
var s = {};
|
|
128
3
|
export {
|
|
129
|
-
|
|
4
|
+
s as __exports
|
|
130
5
|
};
|
package/dist/index218.mjs
CHANGED