@instockng/storefront-ui 1.0.106 → 1.0.108

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 (298) hide show
  1. package/dist/components/AssistantDrawer.d.ts +22 -0
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -0
  3. package/dist/components/ProductAssistantChips.d.ts +13 -0
  4. package/dist/components/ProductAssistantChips.d.ts.map +1 -0
  5. package/dist/contexts/AssistantContext.d.ts +19 -0
  6. package/dist/contexts/AssistantContext.d.ts.map +1 -0
  7. package/dist/index.d.ts +5 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.mjs +144 -138
  10. package/dist/index10.mjs +103 -73
  11. package/dist/index100.mjs +53 -68
  12. package/dist/index101.mjs +6 -37
  13. package/dist/index102.mjs +4 -42
  14. package/dist/index103.mjs +179 -2
  15. package/dist/index104.mjs +53 -6
  16. package/dist/index105.mjs +69 -1134
  17. package/dist/index106.mjs +2 -20
  18. package/dist/index107.mjs +5 -54
  19. package/dist/index108.mjs +1126 -25
  20. package/dist/index109.mjs +20 -2
  21. package/dist/index11.mjs +74 -190
  22. package/dist/index110.mjs +55 -2
  23. package/dist/index111.mjs +33 -2
  24. package/dist/index112.mjs +2 -28
  25. package/dist/index113.mjs +2 -18
  26. package/dist/index114.mjs +2 -215
  27. package/dist/index115.mjs +26 -178
  28. package/dist/index116.mjs +10 -14
  29. package/dist/index117.mjs +209 -17
  30. package/dist/index118.mjs +173 -26
  31. package/dist/index119.mjs +17 -151
  32. package/dist/index12.mjs +172 -107
  33. package/dist/index120.mjs +12 -9
  34. package/dist/index121.mjs +24 -22
  35. package/dist/index122.mjs +148 -76
  36. package/dist/index123.mjs +13 -31
  37. package/dist/index124.mjs +24 -138
  38. package/dist/index125.mjs +78 -49
  39. package/dist/index126.mjs +32 -17
  40. package/dist/index127.mjs +139 -21
  41. package/dist/index128.mjs +51 -19
  42. package/dist/index129.mjs +16 -18
  43. package/dist/index13.mjs +127 -98
  44. package/dist/index130.mjs +18 -12
  45. package/dist/index131.mjs +15 -14
  46. package/dist/index132.mjs +17 -13
  47. package/dist/index133.mjs +14 -58
  48. package/dist/index134.mjs +15 -11
  49. package/dist/index135.mjs +14 -32
  50. package/dist/index136.mjs +57 -16
  51. package/dist/index137.mjs +11 -27
  52. package/dist/index138.mjs +31 -19
  53. package/dist/index139.mjs +17 -12
  54. package/dist/index14.mjs +94 -90
  55. package/dist/index140.mjs +27 -14
  56. package/dist/index141.mjs +20 -40
  57. package/dist/index142.mjs +11 -15
  58. package/dist/index143.mjs +17 -264
  59. package/dist/index144.mjs +40 -63
  60. package/dist/index145.mjs +22 -7
  61. package/dist/index146.mjs +268 -2
  62. package/dist/index147.mjs +70 -2
  63. package/dist/index148.mjs +7 -32
  64. package/dist/index149.mjs +2 -2
  65. package/dist/index15.mjs +84 -149
  66. package/dist/index150.mjs +2 -21
  67. package/dist/index151.mjs +31 -54
  68. package/dist/index152.mjs +2 -29
  69. package/dist/index153.mjs +20 -6
  70. package/dist/index154.mjs +53 -49
  71. package/dist/index155.mjs +29 -6
  72. package/dist/index156.mjs +6 -11
  73. package/dist/index157.mjs +49 -4
  74. package/dist/index158.mjs +5 -27
  75. package/dist/index159.mjs +12 -2
  76. package/dist/index16.mjs +157 -203
  77. package/dist/index160.mjs +6 -69
  78. package/dist/index161.mjs +27 -166
  79. package/dist/index162.mjs +2 -2
  80. package/dist/index163.mjs +70 -2
  81. package/dist/index164.mjs +167 -2
  82. package/dist/index165.mjs +2 -2
  83. package/dist/index166.mjs +2 -18
  84. package/dist/index167.mjs +2 -32
  85. package/dist/index168.mjs +2 -38
  86. package/dist/index169.mjs +11 -11
  87. package/dist/index17.mjs +198 -107
  88. package/dist/index170.mjs +25 -11
  89. package/dist/index171.mjs +38 -2
  90. package/dist/index172.mjs +11 -13
  91. package/dist/index173.mjs +11 -39
  92. package/dist/index174.mjs +2 -2
  93. package/dist/index175.mjs +15 -25
  94. package/dist/index176.mjs +39 -11
  95. package/dist/index178.mjs +30 -2
  96. package/dist/index179.mjs +18 -2
  97. package/dist/index18.mjs +97 -130
  98. package/dist/index181.mjs +2 -72
  99. package/dist/index182.mjs +2 -2
  100. package/dist/index183.mjs +2 -53
  101. package/dist/index184.mjs +72 -2
  102. package/dist/index185.mjs +2 -36
  103. package/dist/index186.mjs +38 -137
  104. package/dist/index187.mjs +2 -2
  105. package/dist/index188.mjs +36 -2
  106. package/dist/index189.mjs +147 -14
  107. package/dist/index19.mjs +140 -87
  108. package/dist/index191.mjs +2 -2
  109. package/dist/index192.mjs +10 -17
  110. package/dist/index193.mjs +2 -2
  111. package/dist/index194.mjs +2 -2
  112. package/dist/index195.mjs +18 -16
  113. package/dist/index196.mjs +2 -23
  114. package/dist/index197.mjs +2 -2
  115. package/dist/index198.mjs +24 -2
  116. package/dist/index199.mjs +23 -2
  117. package/dist/index2.mjs +30 -16
  118. package/dist/index20.mjs +82 -708
  119. package/dist/index200.mjs +2 -23
  120. package/dist/index201.mjs +2 -2
  121. package/dist/index202.mjs +2 -23
  122. package/dist/index203.mjs +23 -2
  123. package/dist/index204.mjs +2 -2
  124. package/dist/index205.mjs +23 -2
  125. package/dist/index206.mjs +2 -23
  126. package/dist/index207.mjs +2 -2
  127. package/dist/index208.mjs +2 -23
  128. package/dist/index209.mjs +23 -2
  129. package/dist/index21.mjs +718 -54
  130. package/dist/index210.mjs +2 -2
  131. package/dist/index211.mjs +23 -2
  132. package/dist/index212.mjs +2 -2
  133. package/dist/index213.mjs +2 -2
  134. package/dist/index215.mjs +2 -2
  135. package/dist/index216.mjs +2 -2
  136. package/dist/index217.mjs +2 -127
  137. package/dist/index218.mjs +2 -2
  138. package/dist/index219.mjs +2 -74
  139. package/dist/index22.mjs +263 -62
  140. package/dist/index220.mjs +123 -70
  141. package/dist/index221.mjs +2 -13
  142. package/dist/index222.mjs +74 -7
  143. package/dist/index223.mjs +73 -30
  144. package/dist/index224.mjs +30 -10
  145. package/dist/index225.mjs +10 -3
  146. package/dist/index226.mjs +3 -3
  147. package/dist/index227.mjs +3 -11
  148. package/dist/index228.mjs +13 -5
  149. package/dist/index229.mjs +7 -33
  150. package/dist/index23.mjs +44 -23
  151. package/dist/index230.mjs +11 -30
  152. package/dist/index231.mjs +5 -28
  153. package/dist/index232.mjs +33 -61
  154. package/dist/index233.mjs +31 -2
  155. package/dist/index234.mjs +28 -2
  156. package/dist/index235.mjs +61 -2
  157. package/dist/index236.mjs +2 -2
  158. package/dist/index237.mjs +108 -2
  159. package/dist/index238.mjs +2 -2
  160. package/dist/index239.mjs +2 -2
  161. package/dist/index24.mjs +55 -104
  162. package/dist/index240.mjs +2 -2
  163. package/dist/index241.mjs +2 -108
  164. package/dist/index242.mjs +2 -2
  165. package/dist/index244.mjs +2 -37
  166. package/dist/index245.mjs +2 -2
  167. package/dist/index246.mjs +2 -244
  168. package/dist/index247.mjs +37 -2
  169. package/dist/index248.mjs +2 -33
  170. package/dist/index249.mjs +2 -65
  171. package/dist/index25.mjs +62 -42
  172. package/dist/index250.mjs +243 -24
  173. package/dist/index251.mjs +2 -2
  174. package/dist/index252.mjs +33 -2
  175. package/dist/index253.mjs +65 -2
  176. package/dist/index254.mjs +25 -2
  177. package/dist/index255.mjs +2 -2
  178. package/dist/index256.mjs +2 -2
  179. package/dist/index257.mjs +2 -2
  180. package/dist/index259.mjs +2 -2
  181. package/dist/index26.mjs +22 -40
  182. package/dist/index260.mjs +2 -2
  183. package/dist/index261.mjs +2 -4
  184. package/dist/index262.mjs +2 -2
  185. package/dist/index263.mjs +2 -2
  186. package/dist/index264.mjs +4 -3
  187. package/dist/index265.mjs +2 -2
  188. package/dist/index266.mjs +2 -2
  189. package/dist/index267.mjs +3 -17
  190. package/dist/index268.mjs +2 -13
  191. package/dist/index269.mjs +2 -6
  192. package/dist/index27.mjs +107 -87
  193. package/dist/index270.mjs +17 -30
  194. package/dist/index271.mjs +13 -2
  195. package/dist/index272.mjs +6 -2
  196. package/dist/index273.mjs +29 -17
  197. package/dist/index274.mjs +2 -47
  198. package/dist/index275.mjs +2 -2
  199. package/dist/index276.mjs +18 -2
  200. package/dist/index277.mjs +47 -2
  201. package/dist/index278.mjs +2 -2
  202. package/dist/index279.mjs +2 -91
  203. package/dist/index28.mjs +42 -32
  204. package/dist/index280.mjs +2 -2
  205. package/dist/index282.mjs +91 -2
  206. package/dist/index283.mjs +2 -2
  207. package/dist/index284.mjs +5 -0
  208. package/dist/index285.mjs +5 -0
  209. package/dist/index286.mjs +5 -0
  210. package/dist/index29.mjs +42 -9
  211. package/dist/index3.mjs +7 -7
  212. package/dist/index30.mjs +84 -17
  213. package/dist/index31.mjs +29 -35
  214. package/dist/index32.mjs +8 -39
  215. package/dist/index33.mjs +21 -125
  216. package/dist/index34.mjs +35 -46
  217. package/dist/index35.mjs +38 -9
  218. package/dist/index36.mjs +121 -6
  219. package/dist/index37.mjs +49 -123
  220. package/dist/index38.mjs +11 -28
  221. package/dist/index39.mjs +11 -91
  222. package/dist/index4.mjs +34 -101
  223. package/dist/index40.mjs +121 -123
  224. package/dist/index41.mjs +28 -11
  225. package/dist/index42.mjs +91 -35
  226. package/dist/index43.mjs +116 -37
  227. package/dist/index44.mjs +9 -9
  228. package/dist/index45.mjs +33 -121
  229. package/dist/index46.mjs +42 -385
  230. package/dist/index47.mjs +10 -24
  231. package/dist/index48.mjs +122 -31
  232. package/dist/index49.mjs +388 -27
  233. package/dist/index5.mjs +92 -102
  234. package/dist/index50.mjs +24 -6
  235. package/dist/index51.mjs +30 -1431
  236. package/dist/index52.mjs +26 -68
  237. package/dist/index53.mjs +7 -2
  238. package/dist/index54.mjs +1425 -52
  239. package/dist/index55.mjs +69 -50
  240. package/dist/index56.mjs +2 -33
  241. package/dist/index57.mjs +59 -14
  242. package/dist/index58.mjs +47 -2259
  243. package/dist/index59.mjs +33 -36
  244. package/dist/index6.mjs +111 -15
  245. package/dist/index60.mjs +14 -43
  246. package/dist/index61.mjs +2256 -96
  247. package/dist/index62.mjs +36 -81
  248. package/dist/index63.mjs +43 -18
  249. package/dist/index64.mjs +102 -128
  250. package/dist/index65.mjs +45 -89
  251. package/dist/index66.mjs +15 -75
  252. package/dist/index67.mjs +84 -130
  253. package/dist/index68.mjs +84 -66
  254. package/dist/index69.mjs +69 -26
  255. package/dist/index7.mjs +15 -195
  256. package/dist/index70.mjs +138 -58
  257. package/dist/index71.mjs +82 -56
  258. package/dist/index72.mjs +28 -55
  259. package/dist/index73.mjs +79 -46
  260. package/dist/index74.mjs +58 -112
  261. package/dist/index75.mjs +47 -54
  262. package/dist/index76.mjs +60 -22
  263. package/dist/index77.mjs +135 -2
  264. package/dist/index78.mjs +68 -21
  265. package/dist/index79.mjs +4 -152
  266. package/dist/index8.mjs +136 -190
  267. package/dist/index80.mjs +23 -4
  268. package/dist/index81.mjs +2 -75
  269. package/dist/index82.mjs +153 -15
  270. package/dist/index83.mjs +21 -61
  271. package/dist/index84.mjs +69 -229
  272. package/dist/index85.mjs +15 -6
  273. package/dist/index86.mjs +55 -126
  274. package/dist/index87.mjs +33 -64
  275. package/dist/index88.mjs +40 -84
  276. package/dist/index89.mjs +229 -23
  277. package/dist/index9.mjs +240 -99
  278. package/dist/index90.mjs +5 -8
  279. package/dist/index91.mjs +125 -66
  280. package/dist/index92.mjs +67 -3
  281. package/dist/index93.mjs +87 -2
  282. package/dist/index94.mjs +24 -78
  283. package/dist/index95.mjs +7 -52
  284. package/dist/index96.mjs +74 -5
  285. package/dist/index97.mjs +3 -4
  286. package/dist/index98.mjs +2 -179
  287. package/dist/index99.mjs +79 -49
  288. package/dist/providers/StorefrontProvider.d.ts +3 -1
  289. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  290. package/dist/styles.css +1 -1
  291. package/package.json +1 -1
  292. package/src/components/AssistantDrawer.stories.tsx +90 -0
  293. package/src/components/AssistantDrawer.tsx +426 -0
  294. package/src/components/ProductAssistantChips.stories.tsx +42 -0
  295. package/src/components/ProductAssistantChips.tsx +64 -0
  296. package/src/contexts/AssistantContext.tsx +62 -0
  297. package/src/index.ts +11 -0
  298. package/src/providers/StorefrontProvider.tsx +17 -2
package/dist/index210.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var r = {};
2
+ var a = {};
3
3
  export {
4
- r as __exports
4
+ a as __exports
5
5
  };
package/dist/index211.mjs CHANGED
@@ -1,5 +1,26 @@
1
1
  'use client';
2
- var o = {};
2
+ import { __exports as r } from "./index262.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
- o as __exports
25
+ _ as __require
5
26
  };
package/dist/index212.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var o = {};
2
+ var a = {};
3
3
  export {
4
- o as __exports
4
+ a as __exports
5
5
  };
package/dist/index213.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var e = {};
2
+ var r = {};
3
3
  export {
4
- e as __exports
4
+ r as __exports
5
5
  };
package/dist/index215.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var s = {};
2
+ var o = {};
3
3
  export {
4
- s as __exports
4
+ o as __exports
5
5
  };
package/dist/index216.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var o = {};
2
+ var e = {};
3
3
  export {
4
- o as __exports
4
+ e as __exports
5
5
  };
package/dist/index217.mjs CHANGED
@@ -1,130 +1,5 @@
1
1
  'use client';
2
- import { __module as b } from "./index260.mjs";
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 o = {};
128
3
  export {
129
- $ as __require
4
+ o as __exports
130
5
  };
package/dist/index218.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var e = { exports: {} };
2
+ var s = {};
3
3
  export {
4
- e as __module
4
+ s as __exports
5
5
  };
package/dist/index219.mjs CHANGED
@@ -1,77 +1,5 @@
1
1
  'use client';
2
- import { __exports as e } from "./index262.mjs";
3
- /**
4
- * @license React
5
- * react-is.production.js
6
- *
7
- * Copyright (c) Meta Platforms, Inc. and affiliates.
8
- *
9
- * This source code is licensed under the MIT license found in the
10
- * LICENSE file in the root directory of this source tree.
11
- */
12
- var R;
13
- function d() {
14
- if (R) return e;
15
- R = 1;
16
- var l = Symbol.for("react.transitional.element"), T = Symbol.for("react.portal"), n = Symbol.for("react.fragment"), o = Symbol.for("react.strict_mode"), f = Symbol.for("react.profiler"), s = Symbol.for("react.consumer"), i = Symbol.for("react.context"), u = Symbol.for("react.forward_ref"), a = Symbol.for("react.suspense"), E = Symbol.for("react.suspense_list"), c = Symbol.for("react.memo"), _ = Symbol.for("react.lazy"), S = Symbol.for("react.offscreen"), C = Symbol.for("react.client.reference");
17
- function t(r) {
18
- if (typeof r == "object" && r !== null) {
19
- var m = r.$$typeof;
20
- switch (m) {
21
- case l:
22
- switch (r = r.type, r) {
23
- case n:
24
- case f:
25
- case o:
26
- case a:
27
- case E:
28
- return r;
29
- default:
30
- switch (r = r && r.$$typeof, r) {
31
- case i:
32
- case u:
33
- case _:
34
- case c:
35
- return r;
36
- case s:
37
- return r;
38
- default:
39
- return m;
40
- }
41
- }
42
- case T:
43
- return m;
44
- }
45
- }
46
- }
47
- return e.ContextConsumer = s, e.ContextProvider = i, e.Element = l, e.ForwardRef = u, e.Fragment = n, e.Lazy = _, e.Memo = c, e.Portal = T, e.Profiler = f, e.StrictMode = o, e.Suspense = a, e.SuspenseList = E, e.isContextConsumer = function(r) {
48
- return t(r) === s;
49
- }, e.isContextProvider = function(r) {
50
- return t(r) === i;
51
- }, e.isElement = function(r) {
52
- return typeof r == "object" && r !== null && r.$$typeof === l;
53
- }, e.isForwardRef = function(r) {
54
- return t(r) === u;
55
- }, e.isFragment = function(r) {
56
- return t(r) === n;
57
- }, e.isLazy = function(r) {
58
- return t(r) === _;
59
- }, e.isMemo = function(r) {
60
- return t(r) === c;
61
- }, e.isPortal = function(r) {
62
- return t(r) === T;
63
- }, e.isProfiler = function(r) {
64
- return t(r) === f;
65
- }, e.isStrictMode = function(r) {
66
- return t(r) === o;
67
- }, e.isSuspense = function(r) {
68
- return t(r) === a;
69
- }, e.isSuspenseList = function(r) {
70
- return t(r) === E;
71
- }, e.isValidElementType = function(r) {
72
- return typeof r == "string" || typeof r == "function" || r === n || r === f || r === o || r === a || r === E || r === S || typeof r == "object" && r !== null && (r.$$typeof === _ || r.$$typeof === c || r.$$typeof === i || r.$$typeof === s || r.$$typeof === u || r.$$typeof === C || r.getModuleId !== void 0);
73
- }, e.typeOf = t, e;
74
- }
2
+ var o = {};
75
3
  export {
76
- d as __require
4
+ o as __exports
77
5
  };
package/dist/index22.mjs CHANGED
@@ -1,65 +1,266 @@
1
1
  'use client';
2
- import { jsx as d } from "react/jsx-runtime";
3
- import * as t from "react";
4
- import { cn as o } from "./index27.mjs";
5
- const s = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d(
6
- "div",
7
- {
8
- ref: r,
9
- className: o(
10
- "rounded-lg border bg-card text-card-foreground",
11
- a
12
- ),
13
- ...e
14
- }
15
- ));
16
- s.displayName = "Card";
17
- const i = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d(
18
- "div",
19
- {
20
- ref: r,
21
- className: o("flex flex-col space-y-1.5 p-6", a),
22
- ...e
23
- }
24
- ));
25
- i.displayName = "CardHeader";
26
- const c = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d(
27
- "div",
28
- {
29
- ref: r,
30
- className: o(
31
- "text-2xl font-semibold leading-none tracking-tight",
32
- a
33
- ),
34
- ...e
35
- }
36
- ));
37
- c.displayName = "CardTitle";
38
- const l = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d(
39
- "div",
40
- {
41
- ref: r,
42
- className: o("text-sm text-muted-foreground", a),
43
- ...e
44
- }
45
- ));
46
- l.displayName = "CardDescription";
47
- const m = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d("div", { ref: r, className: o("p-6 pt-0", a), ...e }));
48
- m.displayName = "CardContent";
49
- const n = t.forwardRef(({ className: a, ...e }, r) => /* @__PURE__ */ d(
50
- "div",
51
- {
52
- ref: r,
53
- className: o("flex items-center p-6 pt-0", a),
54
- ...e
55
- }
56
- ));
57
- n.displayName = "CardFooter";
2
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
3
+ import { useState as m, useRef as b, useCallback as V, useEffect as N } from "react";
4
+ import { createPortal as O } from "react-dom";
5
+ import { Sparkles as Q, X as ee, Loader2 as te, Send as re } from "lucide-react";
6
+ import { cn as k, formatCurrency as se } from "./index30.mjs";
7
+ import { useHideBodyOverflow as ne } from "./index53.mjs";
8
+ function me({
9
+ isOpen: c,
10
+ onClose: y,
11
+ apiUrl: T,
12
+ brandSlug: C,
13
+ productSlug: I,
14
+ initialQuestion: x,
15
+ assistantName: $ = "AI Assistant",
16
+ className: X,
17
+ disablePortal: G = !1
18
+ }) {
19
+ const [u, d] = m([]), [w, S] = m(""), [f, D] = m(!1), [J, h] = m(null), [L, P] = m(!1), [K, W] = m(!1), q = b(null), F = b(null), E = b(!1), M = b([]);
20
+ M.current = u, ne(c);
21
+ const z = V((e, a) => {
22
+ if (e === "token")
23
+ d((s) => {
24
+ const o = [...s], t = o[o.length - 1];
25
+ return (t == null ? void 0 : t.role) === "assistant" && (o[o.length - 1] = { ...t, content: t.content + a }), o;
26
+ });
27
+ else if (e === "done")
28
+ try {
29
+ const s = JSON.parse(a);
30
+ d((o) => {
31
+ var i;
32
+ const t = [...o], n = t[t.length - 1];
33
+ return (n == null ? void 0 : n.role) === "assistant" && (t[t.length - 1] = {
34
+ ...n,
35
+ content: s.answer || n.content,
36
+ products: ((i = s.products) == null ? void 0 : i.length) > 0 ? s.products : void 0
37
+ }), t;
38
+ });
39
+ } catch {
40
+ }
41
+ else if (e === "error")
42
+ try {
43
+ const s = JSON.parse(a);
44
+ h(s.message || "An error occurred");
45
+ } catch {
46
+ h("An error occurred");
47
+ }
48
+ }, []), v = b(), B = V(
49
+ async (e) => {
50
+ var o;
51
+ if (!e.trim()) return;
52
+ h(null);
53
+ const a = { role: "user", content: e }, s = M.current.map((t) => ({
54
+ role: t.role,
55
+ content: t.content
56
+ }));
57
+ d((t) => [...t, a]), S(""), D(!0), d((t) => [...t, { role: "assistant", content: "" }]);
58
+ try {
59
+ const t = await fetch(`${T}/v1/assistant/ask`, {
60
+ method: "POST",
61
+ headers: { "Content-Type": "application/json" },
62
+ body: JSON.stringify({
63
+ question: e,
64
+ brandSlug: C,
65
+ productSlug: I,
66
+ history: s
67
+ })
68
+ });
69
+ if (!t.ok) {
70
+ const g = await t.json().catch(() => ({}));
71
+ throw new Error(
72
+ ((o = g == null ? void 0 : g.error) == null ? void 0 : o.message) || `Request failed (${t.status})`
73
+ );
74
+ }
75
+ if (!t.body) throw new Error("No response body");
76
+ const n = t.body.getReader(), i = new TextDecoder();
77
+ let A = "", j = "";
78
+ for (; ; ) {
79
+ const { done: g, value: Z } = await n.read();
80
+ if (g) break;
81
+ A += i.decode(Z, { stream: !0 });
82
+ const U = A.split(`
83
+ `);
84
+ A = U.pop() || "";
85
+ for (const p of U) {
86
+ if (p.trim() === "") {
87
+ j = "";
88
+ continue;
89
+ }
90
+ if (p.trimStart().startsWith("event:"))
91
+ j = p.trimStart().slice(6).trim();
92
+ else if (p.trimStart().startsWith("data:")) {
93
+ const R = p.trimStart().slice(5), _ = R.startsWith(" ") ? R.slice(1) : R;
94
+ z(j || "token", _);
95
+ }
96
+ }
97
+ }
98
+ } catch (t) {
99
+ h(t.message || "Something went wrong"), d((n) => {
100
+ const i = n[n.length - 1];
101
+ return (i == null ? void 0 : i.role) === "assistant" && !i.content ? n.slice(0, -1) : n;
102
+ });
103
+ } finally {
104
+ D(!1);
105
+ }
106
+ },
107
+ [T, C, I, z]
108
+ );
109
+ v.current = B, N(() => {
110
+ if (c)
111
+ W(!0), requestAnimationFrame(() => {
112
+ requestAnimationFrame(() => {
113
+ P(!0);
114
+ });
115
+ });
116
+ else {
117
+ P(!1);
118
+ const e = setTimeout(() => {
119
+ W(!1), d([]), S(""), h(null), E.current = !1;
120
+ }, 300);
121
+ return () => clearTimeout(e);
122
+ }
123
+ }, [c]), N(() => {
124
+ c && x && !E.current && (E.current = !0, x.trim() ? setTimeout(() => {
125
+ var e;
126
+ return (e = v.current) == null ? void 0 : e.call(v, x);
127
+ }, 100) : setTimeout(() => {
128
+ var e;
129
+ return (e = F.current) == null ? void 0 : e.focus();
130
+ }, 350));
131
+ }, [c, x]), N(() => {
132
+ var e;
133
+ (e = q.current) == null || e.scrollIntoView({ behavior: "smooth" });
134
+ }, [u]), N(() => {
135
+ const e = (a) => {
136
+ a.key === "Escape" && c && y();
137
+ };
138
+ if (c)
139
+ return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
140
+ }, [c, y]);
141
+ const Y = (e) => {
142
+ e.preventDefault(), w.trim() && B(w.trim());
143
+ };
144
+ if (!K) return null;
145
+ const H = /* @__PURE__ */ l(
146
+ "div",
147
+ {
148
+ className: k(
149
+ "fixed inset-0 z-50 transition-opacity duration-300",
150
+ L ? "opacity-100" : "opacity-0"
151
+ ),
152
+ children: [
153
+ /* @__PURE__ */ r(
154
+ "div",
155
+ {
156
+ className: "absolute inset-0 bg-black/40 backdrop-blur-sm",
157
+ onClick: y
158
+ }
159
+ ),
160
+ /* @__PURE__ */ l(
161
+ "div",
162
+ {
163
+ className: k(
164
+ "absolute bg-white flex flex-col transition-transform duration-300 ease-out",
165
+ // Mobile: bottom sheet
166
+ "inset-x-0 bottom-0 top-[10vh] rounded-t-2xl",
167
+ // Desktop: right side drawer
168
+ "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",
169
+ // Animation
170
+ L ? "translate-y-0 sm:translate-x-0" : "translate-y-full sm:translate-y-0 sm:translate-x-full",
171
+ X
172
+ ),
173
+ children: [
174
+ /* @__PURE__ */ l("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 flex-shrink-0", children: [
175
+ /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
176
+ /* @__PURE__ */ r(Q, { className: "h-5 w-5 text-orange-500" }),
177
+ /* @__PURE__ */ r("span", { className: "font-semibold text-gray-900", children: $ }),
178
+ /* @__PURE__ */ r("span", { className: "text-xs text-gray-400 bg-gray-100 rounded px-1.5 py-0.5", children: "beta" })
179
+ ] }),
180
+ /* @__PURE__ */ r(
181
+ "button",
182
+ {
183
+ type: "button",
184
+ onClick: y,
185
+ className: "p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg transition-colors",
186
+ "aria-label": "Close",
187
+ children: /* @__PURE__ */ r(ee, { className: "h-5 w-5" })
188
+ }
189
+ )
190
+ ] }),
191
+ /* @__PURE__ */ l("div", { className: "flex-1 overflow-y-auto p-4 space-y-4 min-h-0", children: [
192
+ u.length === 0 && !f && /* @__PURE__ */ r("div", { className: "text-center text-gray-400 text-sm py-8", children: "Ask me anything about our products!" }),
193
+ 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: [
194
+ /* @__PURE__ */ l("div", { className: "text-sm text-gray-800 leading-relaxed whitespace-pre-wrap", children: [
195
+ e.content,
196
+ 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" })
197
+ ] }),
198
+ e.products && e.products.length > 0 && /* @__PURE__ */ r("div", { className: "space-y-2", children: e.products.map((s) => /* @__PURE__ */ l(
199
+ "a",
200
+ {
201
+ href: `/product/${s.slug}`,
202
+ className: "flex items-center gap-3 w-full rounded-xl border border-gray-200 p-2 hover:bg-gray-50 transition-colors text-left no-underline",
203
+ children: [
204
+ s.thumbnailUrl ? /* @__PURE__ */ r(
205
+ "img",
206
+ {
207
+ src: s.thumbnailUrl,
208
+ alt: s.name,
209
+ className: "h-16 w-16 rounded-lg object-cover flex-shrink-0"
210
+ }
211
+ ) : /* @__PURE__ */ r("div", { className: "h-16 w-16 rounded-lg bg-gray-100 flex-shrink-0" }),
212
+ /* @__PURE__ */ l("div", { className: "min-w-0", children: [
213
+ /* @__PURE__ */ r("p", { className: "text-sm font-medium text-gray-900 line-clamp-2", children: s.name }),
214
+ /* @__PURE__ */ r("p", { className: "text-sm font-semibold text-blue-600", children: se(s.price) })
215
+ ] })
216
+ ]
217
+ },
218
+ s.slug
219
+ )) })
220
+ ] }) }, a)),
221
+ J && /* @__PURE__ */ r("div", { className: "rounded-lg bg-red-50 border border-red-200 p-3 text-sm text-red-700", children: J }),
222
+ /* @__PURE__ */ r("div", { ref: q })
223
+ ] }),
224
+ /* @__PURE__ */ r("div", { className: "border-t border-gray-200 p-3 flex-shrink-0", children: /* @__PURE__ */ l("form", { onSubmit: Y, className: "flex items-center gap-2", children: [
225
+ /* @__PURE__ */ r(
226
+ "input",
227
+ {
228
+ ref: F,
229
+ type: "text",
230
+ value: w,
231
+ onChange: (e) => S(e.target.value),
232
+ placeholder: `Ask ${$} a question`,
233
+ disabled: f,
234
+ className: k(
235
+ "flex-1 rounded-full border border-gray-300 px-4 py-2.5 text-sm",
236
+ "focus:border-blue-400 focus:outline-none focus:ring-2 focus:ring-blue-400/30",
237
+ "disabled:opacity-50"
238
+ )
239
+ }
240
+ ),
241
+ /* @__PURE__ */ r(
242
+ "button",
243
+ {
244
+ type: "submit",
245
+ disabled: !w.trim() || f,
246
+ className: k(
247
+ "flex h-10 w-10 items-center justify-center rounded-full",
248
+ "bg-gray-800 text-white",
249
+ "hover:bg-gray-700 transition-colors",
250
+ "disabled:opacity-40 disabled:cursor-not-allowed"
251
+ ),
252
+ children: f ? /* @__PURE__ */ r(te, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ r(re, { className: "h-4 w-4" })
253
+ }
254
+ )
255
+ ] }) })
256
+ ]
257
+ }
258
+ )
259
+ ]
260
+ }
261
+ );
262
+ return G ? H : O(H, document.body);
263
+ }
58
264
  export {
59
- s as Card,
60
- m as CardContent,
61
- l as CardDescription,
62
- n as CardFooter,
63
- i as CardHeader,
64
- c as CardTitle
265
+ me as AssistantDrawer
65
266
  };