@instockng/storefront-ui 1.0.105 → 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.
Files changed (304) hide show
  1. package/dist/components/AssistantDrawer.d.ts +24 -0
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -0
  3. package/dist/components/Checkout.d.ts.map +1 -1
  4. package/dist/components/ProductAssistantChips.d.ts +13 -0
  5. package/dist/components/ProductAssistantChips.d.ts.map +1 -0
  6. package/dist/components/SearchAssistantTrigger.d.ts +12 -0
  7. package/dist/components/SearchAssistantTrigger.d.ts.map +1 -0
  8. package/dist/hooks/usePaystackPayment.d.ts +1 -0
  9. package/dist/hooks/usePaystackPayment.d.ts.map +1 -1
  10. package/dist/index.d.ts +6 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.mjs +127 -121
  13. package/dist/index10.mjs +3 -3
  14. package/dist/index100.mjs +8 -3
  15. package/dist/index101.mjs +75 -2
  16. package/dist/index102.mjs +3 -82
  17. package/dist/index103.mjs +2 -54
  18. package/dist/index104.mjs +82 -5
  19. package/dist/index105.mjs +53 -4
  20. package/dist/index106.mjs +5 -178
  21. package/dist/index107.mjs +5 -53
  22. package/dist/index108.mjs +178 -68
  23. package/dist/index109.mjs +50 -34
  24. package/dist/index11.mjs +5 -5
  25. package/dist/index110.mjs +69 -43
  26. package/dist/index111.mjs +2 -2
  27. package/dist/index112.mjs +35 -26
  28. package/dist/index113.mjs +42 -17
  29. package/dist/index114.mjs +2 -215
  30. package/dist/index115.mjs +26 -178
  31. package/dist/index116.mjs +10 -14
  32. package/dist/index117.mjs +209 -17
  33. package/dist/index118.mjs +173 -26
  34. package/dist/index119.mjs +17 -151
  35. package/dist/index12.mjs +4 -4
  36. package/dist/index120.mjs +13 -10
  37. package/dist/index121.mjs +24 -22
  38. package/dist/index122.mjs +148 -76
  39. package/dist/index123.mjs +13 -31
  40. package/dist/index124.mjs +24 -138
  41. package/dist/index125.mjs +78 -49
  42. package/dist/index126.mjs +32 -17
  43. package/dist/index127.mjs +139 -21
  44. package/dist/index128.mjs +51 -19
  45. package/dist/index129.mjs +16 -18
  46. package/dist/index13.mjs +3 -3
  47. package/dist/index130.mjs +18 -12
  48. package/dist/index131.mjs +15 -14
  49. package/dist/index132.mjs +17 -13
  50. package/dist/index133.mjs +14 -58
  51. package/dist/index134.mjs +15 -11
  52. package/dist/index135.mjs +14 -32
  53. package/dist/index136.mjs +57 -16
  54. package/dist/index137.mjs +11 -27
  55. package/dist/index138.mjs +31 -19
  56. package/dist/index139.mjs +17 -12
  57. package/dist/index14.mjs +1 -1
  58. package/dist/index140.mjs +27 -14
  59. package/dist/index141.mjs +20 -40
  60. package/dist/index142.mjs +11 -15
  61. package/dist/index143.mjs +17 -264
  62. package/dist/index144.mjs +40 -63
  63. package/dist/index145.mjs +22 -7
  64. package/dist/index146.mjs +268 -2
  65. package/dist/index147.mjs +70 -2
  66. package/dist/index148.mjs +7 -32
  67. package/dist/index149.mjs +2 -2
  68. package/dist/index15.mjs +1 -1
  69. package/dist/index150.mjs +2 -2
  70. package/dist/index151.mjs +33 -2
  71. package/dist/index152.mjs +2 -2
  72. package/dist/index153.mjs +21 -2
  73. package/dist/index154.mjs +54 -16
  74. package/dist/index155.mjs +28 -31
  75. package/dist/index156.mjs +6 -37
  76. package/dist/index157.mjs +50 -16
  77. package/dist/index158.mjs +6 -18
  78. package/dist/index159.mjs +12 -2
  79. package/dist/index16.mjs +6 -6
  80. package/dist/index160.mjs +7 -20
  81. package/dist/index161.mjs +28 -46
  82. package/dist/index162.mjs +2 -2
  83. package/dist/index163.mjs +69 -29
  84. package/dist/index164.mjs +164 -15
  85. package/dist/index165.mjs +2 -2
  86. package/dist/index166.mjs +2 -2
  87. package/dist/index167.mjs +2 -2
  88. package/dist/index168.mjs +18 -2
  89. package/dist/index169.mjs +26 -66
  90. package/dist/index17.mjs +4 -4
  91. package/dist/index170.mjs +38 -2
  92. package/dist/index171.mjs +13 -48
  93. package/dist/index172.mjs +18 -2
  94. package/dist/index173.mjs +2 -36
  95. package/dist/index174.mjs +16 -148
  96. package/dist/index175.mjs +46 -2
  97. package/dist/index176.mjs +2 -2
  98. package/dist/index177.mjs +26 -15
  99. package/dist/index178.mjs +18 -2
  100. package/dist/index179.mjs +2 -2
  101. package/dist/index18.mjs +5 -5
  102. package/dist/index180.mjs +2 -26
  103. package/dist/index181.mjs +2 -2
  104. package/dist/index182.mjs +2 -2
  105. package/dist/index183.mjs +67 -19
  106. package/dist/index184.mjs +2 -23
  107. package/dist/index185.mjs +53 -2
  108. package/dist/index186.mjs +2 -2
  109. package/dist/index187.mjs +36 -2
  110. package/dist/index188.mjs +146 -17
  111. package/dist/index189.mjs +2 -2
  112. package/dist/index19.mjs +3 -3
  113. package/dist/index190.mjs +2 -23
  114. package/dist/index191.mjs +19 -2
  115. package/dist/index192.mjs +2 -2
  116. package/dist/index193.mjs +2 -2
  117. package/dist/index194.mjs +18 -15
  118. package/dist/index196.mjs +2 -23
  119. package/dist/index197.mjs +24 -2
  120. package/dist/index198.mjs +23 -2
  121. package/dist/index199.mjs +2 -2
  122. package/dist/index2.mjs +2 -2
  123. package/dist/index20.mjs +91 -90
  124. package/dist/index200.mjs +2 -2
  125. package/dist/index201.mjs +2 -2
  126. package/dist/index202.mjs +23 -2
  127. package/dist/index203.mjs +2 -2
  128. package/dist/index204.mjs +23 -2
  129. package/dist/index205.mjs +2 -127
  130. package/dist/index206.mjs +2 -2
  131. package/dist/index207.mjs +2 -74
  132. package/dist/index208.mjs +20 -71
  133. package/dist/index209.mjs +2 -21
  134. package/dist/index21.mjs +256 -51
  135. package/dist/index210.mjs +21 -54
  136. package/dist/index211.mjs +2 -29
  137. package/dist/index212.mjs +2 -7
  138. package/dist/index213.mjs +2 -52
  139. package/dist/index214.mjs +2 -6
  140. package/dist/index215.mjs +2 -12
  141. package/dist/index216.mjs +2 -7
  142. package/dist/index217.mjs +2 -28
  143. package/dist/index218.mjs +2 -2
  144. package/dist/index219.mjs +125 -68
  145. package/dist/index22.mjs +45 -62
  146. package/dist/index220.mjs +2 -167
  147. package/dist/index221.mjs +74 -2
  148. package/dist/index222.mjs +74 -2
  149. package/dist/index223.mjs +2 -2
  150. package/dist/index224.mjs +13 -2
  151. package/dist/index225.mjs +7 -2
  152. package/dist/index226.mjs +12 -2
  153. package/dist/index227.mjs +4 -107
  154. package/dist/index228.mjs +33 -2
  155. package/dist/index229.mjs +31 -2
  156. package/dist/index23.mjs +22 -22
  157. package/dist/index230.mjs +28 -2
  158. package/dist/index231.mjs +61 -2
  159. package/dist/index232.mjs +30 -36
  160. package/dist/index233.mjs +11 -2
  161. package/dist/index234.mjs +3 -243
  162. package/dist/index235.mjs +4 -2
  163. package/dist/index236.mjs +2 -33
  164. package/dist/index237.mjs +2 -65
  165. package/dist/index238.mjs +2 -25
  166. package/dist/index239.mjs +2 -2
  167. package/dist/index24.mjs +55 -104
  168. package/dist/index241.mjs +2 -2
  169. package/dist/index242.mjs +2 -2
  170. package/dist/index243.mjs +2 -2
  171. package/dist/index244.mjs +108 -2
  172. package/dist/index246.mjs +2 -2
  173. package/dist/index247.mjs +37 -2
  174. package/dist/index248.mjs +2 -2
  175. package/dist/index249.mjs +2 -4
  176. package/dist/index25.mjs +62 -42
  177. package/dist/index250.mjs +244 -2
  178. package/dist/index252.mjs +32 -30
  179. package/dist/index253.mjs +64 -10
  180. package/dist/index254.mjs +24 -3
  181. package/dist/index255.mjs +2 -4
  182. package/dist/index256.mjs +2 -13
  183. package/dist/index257.mjs +2 -7
  184. package/dist/index258.mjs +2 -12
  185. package/dist/index259.mjs +2 -5
  186. package/dist/index26.mjs +22 -40
  187. package/dist/index260.mjs +2 -33
  188. package/dist/index261.mjs +2 -31
  189. package/dist/index262.mjs +2 -28
  190. package/dist/index263.mjs +4 -61
  191. package/dist/index264.mjs +2 -2
  192. package/dist/index265.mjs +2 -2
  193. package/dist/index266.mjs +2 -18
  194. package/dist/index267.mjs +2 -47
  195. package/dist/index268.mjs +2 -2
  196. package/dist/index269.mjs +18 -2
  197. package/dist/index27.mjs +107 -87
  198. package/dist/index270.mjs +47 -2
  199. package/dist/index271.mjs +2 -2
  200. package/dist/index272.mjs +2 -91
  201. package/dist/index273.mjs +2 -2
  202. package/dist/index274.mjs +2 -3
  203. package/dist/index275.mjs +91 -2
  204. package/dist/index276.mjs +2 -2
  205. package/dist/index277.mjs +3 -17
  206. package/dist/index278.mjs +2 -13
  207. package/dist/index279.mjs +2 -6
  208. package/dist/index28.mjs +42 -32
  209. package/dist/index280.mjs +17 -30
  210. package/dist/index281.mjs +13 -2
  211. package/dist/index282.mjs +6 -2
  212. package/dist/index283.mjs +30 -2
  213. package/dist/index284.mjs +5 -0
  214. package/dist/index285.mjs +5 -0
  215. package/dist/index286.mjs +5 -0
  216. package/dist/index29.mjs +42 -9
  217. package/dist/index3.mjs +4 -4
  218. package/dist/index30.mjs +84 -17
  219. package/dist/index31.mjs +29 -35
  220. package/dist/index32.mjs +8 -39
  221. package/dist/index33.mjs +21 -125
  222. package/dist/index34.mjs +35 -46
  223. package/dist/index35.mjs +38 -9
  224. package/dist/index36.mjs +121 -6
  225. package/dist/index37.mjs +49 -123
  226. package/dist/index38.mjs +11 -28
  227. package/dist/index39.mjs +11 -91
  228. package/dist/index4.mjs +1 -1
  229. package/dist/index40.mjs +121 -123
  230. package/dist/index41.mjs +28 -11
  231. package/dist/index42.mjs +91 -35
  232. package/dist/index43.mjs +116 -37
  233. package/dist/index44.mjs +9 -9
  234. package/dist/index45.mjs +33 -121
  235. package/dist/index46.mjs +42 -385
  236. package/dist/index47.mjs +10 -24
  237. package/dist/index48.mjs +122 -31
  238. package/dist/index49.mjs +388 -27
  239. package/dist/index5.mjs +1 -1
  240. package/dist/index50.mjs +24 -6
  241. package/dist/index51.mjs +30 -1431
  242. package/dist/index52.mjs +26 -68
  243. package/dist/index53.mjs +7 -2
  244. package/dist/index54.mjs +1425 -52
  245. package/dist/index55.mjs +69 -50
  246. package/dist/index56.mjs +2 -33
  247. package/dist/index57.mjs +59 -14
  248. package/dist/index58.mjs +47 -2259
  249. package/dist/index59.mjs +33 -36
  250. package/dist/index6.mjs +1 -1
  251. package/dist/index60.mjs +14 -43
  252. package/dist/index61.mjs +2256 -96
  253. package/dist/index62.mjs +36 -81
  254. package/dist/index63.mjs +43 -18
  255. package/dist/index64.mjs +102 -128
  256. package/dist/index65.mjs +45 -89
  257. package/dist/index66.mjs +15 -75
  258. package/dist/index67.mjs +84 -130
  259. package/dist/index68.mjs +84 -66
  260. package/dist/index69.mjs +69 -26
  261. package/dist/index7.mjs +6 -6
  262. package/dist/index70.mjs +138 -58
  263. package/dist/index71.mjs +82 -56
  264. package/dist/index72.mjs +28 -55
  265. package/dist/index73.mjs +79 -46
  266. package/dist/index74.mjs +58 -112
  267. package/dist/index75.mjs +47 -54
  268. package/dist/index76.mjs +60 -22
  269. package/dist/index77.mjs +135 -2
  270. package/dist/index78.mjs +66 -149
  271. package/dist/index79.mjs +21 -20
  272. package/dist/index8.mjs +6 -6
  273. package/dist/index80.mjs +2 -75
  274. package/dist/index81.mjs +153 -15
  275. package/dist/index82.mjs +21 -61
  276. package/dist/index83.mjs +74 -4
  277. package/dist/index84.mjs +15 -2
  278. package/dist/index85.mjs +62 -5
  279. package/dist/index86.mjs +4 -1133
  280. package/dist/index87.mjs +2 -20
  281. package/dist/index88.mjs +5 -54
  282. package/dist/index89.mjs +1126 -25
  283. package/dist/index9.mjs +4 -4
  284. package/dist/index90.mjs +20 -2
  285. package/dist/index91.mjs +55 -2
  286. package/dist/index92.mjs +29 -231
  287. package/dist/index93.mjs +2 -6
  288. package/dist/index94.mjs +228 -127
  289. package/dist/index95.mjs +4 -66
  290. package/dist/index96.mjs +124 -77
  291. package/dist/index97.mjs +65 -26
  292. package/dist/index98.mjs +84 -6
  293. package/dist/index99.mjs +26 -72
  294. package/dist/styles.css +1 -1
  295. package/package.json +2 -1
  296. package/src/components/AssistantDrawer.stories.tsx +140 -0
  297. package/src/components/AssistantDrawer.tsx +430 -0
  298. package/src/components/Checkout.tsx +1 -0
  299. package/src/components/ProductAssistantChips.stories.tsx +42 -0
  300. package/src/components/ProductAssistantChips.tsx +64 -0
  301. package/src/components/SearchAssistantTrigger.stories.tsx +35 -0
  302. package/src/components/SearchAssistantTrigger.tsx +41 -0
  303. package/src/hooks/usePaystackPayment.ts +1 -0
  304. package/src/index.ts +10 -0
package/dist/index206.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var e = { exports: {} };
2
+ var e = {};
3
3
  export {
4
- e as __module
4
+ e as __exports
5
5
  };
package/dist/index207.mjs CHANGED
@@ -1,77 +1,5 @@
1
1
  'use client';
2
- import { __exports as e } from "./index250.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 e = {};
75
3
  export {
76
- d as __require
4
+ e as __exports
77
5
  };
package/dist/index208.mjs CHANGED
@@ -1,77 +1,26 @@
1
1
  'use client';
2
- import { __exports as e } from "./index251.mjs";
3
- /**
4
- * @license React
5
- * react-is.development.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
- return R ? e : (R = 1, process.env.NODE_ENV !== "production" && function() {
15
- function n(r) {
16
- if (typeof r == "object" && r !== null) {
17
- var m = r.$$typeof;
18
- switch (m) {
19
- case _:
20
- switch (r = r.type, r) {
21
- case t:
22
- case f:
23
- case o:
24
- case a:
25
- case E:
26
- return r;
27
- default:
28
- switch (r = r && r.$$typeof, r) {
29
- case i:
30
- case u:
31
- case l:
32
- case c:
33
- return r;
34
- case s:
35
- return r;
36
- default:
37
- return m;
38
- }
39
- }
40
- case T:
41
- return m;
42
- }
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
+ value: !0
9
+ }), Object.defineProperty(i, "removePathPrefix", {
10
+ enumerable: !0,
11
+ get: function() {
12
+ return f;
43
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;
44
21
  }
45
- var _ = Symbol.for("react.transitional.element"), T = Symbol.for("react.portal"), t = 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"), l = Symbol.for("react.lazy"), S = Symbol.for("react.offscreen"), C = Symbol.for("react.client.reference");
46
- e.ContextConsumer = s, e.ContextProvider = i, e.Element = _, e.ForwardRef = u, e.Fragment = t, e.Lazy = l, e.Memo = c, e.Portal = T, e.Profiler = f, e.StrictMode = o, e.Suspense = a, e.SuspenseList = E, e.isContextConsumer = function(r) {
47
- return n(r) === s;
48
- }, e.isContextProvider = function(r) {
49
- return n(r) === i;
50
- }, e.isElement = function(r) {
51
- return typeof r == "object" && r !== null && r.$$typeof === _;
52
- }, e.isForwardRef = function(r) {
53
- return n(r) === u;
54
- }, e.isFragment = function(r) {
55
- return n(r) === t;
56
- }, e.isLazy = function(r) {
57
- return n(r) === l;
58
- }, e.isMemo = function(r) {
59
- return n(r) === c;
60
- }, e.isPortal = function(r) {
61
- return n(r) === T;
62
- }, e.isProfiler = function(r) {
63
- return n(r) === f;
64
- }, e.isStrictMode = function(r) {
65
- return n(r) === o;
66
- }, e.isSuspense = function(r) {
67
- return n(r) === a;
68
- }, e.isSuspenseList = function(r) {
69
- return n(r) === E;
70
- }, e.isValidElementType = function(r) {
71
- return typeof r == "string" || typeof r == "function" || r === t || r === f || r === o || r === a || r === E || r === S || typeof r == "object" && r !== null && (r.$$typeof === l || r.$$typeof === c || r.$$typeof === i || r.$$typeof === s || r.$$typeof === u || r.$$typeof === C || r.getModuleId !== void 0);
72
- }, e.typeOf = n;
73
- }(), e);
22
+ }(t), t);
74
23
  }
75
24
  export {
76
- d as __require
25
+ h as __require
77
26
  };
package/dist/index209.mjs CHANGED
@@ -1,24 +1,5 @@
1
1
  'use client';
2
- import f from "./index92.mjs";
3
- import d from "./index252.mjs";
4
- function l(e) {
5
- return encodeURIComponent(e).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+");
6
- }
7
- function m(e, c, i) {
8
- if (!c)
9
- return e;
10
- const t = i && i.encode || l;
11
- f.isFunction(i) && (i = {
12
- serialize: i
13
- });
14
- const r = i && i.serialize;
15
- let n;
16
- if (r ? n = r(c, i) : n = f.isURLSearchParams(c) ? c.toString() : new d(c, i).toString(t), n) {
17
- const a = e.indexOf("#");
18
- a !== -1 && (e = e.slice(0, a)), e += (e.indexOf("?") === -1 ? "?" : "&") + n;
19
- }
20
- return e;
21
- }
2
+ var a = {};
22
3
  export {
23
- m as default
4
+ a as __exports
24
5
  };
package/dist/index21.mjs CHANGED
@@ -1,63 +1,268 @@
1
1
  'use client';
2
- import { jsxs as c, jsx as u } from "react/jsx-runtime";
3
- import { Root as v } from "./index55.mjs";
4
- import { cva as g } from "./index56.mjs";
5
- import { Loader2 as l } from "lucide-react";
6
- import { cn as p } from "./index27.mjs";
7
- const b = g(
8
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
9
- {
10
- variants: {
11
- variant: {
12
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
14
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
15
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
- link: "text-primary underline-offset-4 hover:underline"
18
- },
19
- size: {
20
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
21
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
22
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
- icon: "size-9",
24
- "icon-sm": "size-8",
25
- "icon-lg": "size-10"
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
- defaultVariants: {
29
- variant: "default",
30
- size: "default"
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
- function z({
35
- className: r,
36
- variant: t,
37
- size: i,
38
- asChild: n = !1,
39
- loading: e = !1,
40
- children: o,
41
- disabled: s,
42
- type: a,
43
- ...d
44
- }) {
45
- return /* @__PURE__ */ c(
46
- n ? v : "button",
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
- "data-slot": "button",
49
- className: p(b({ variant: t, size: i, className: r })),
50
- disabled: s || e,
51
- type: a ?? "button",
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
- e && /* @__PURE__ */ u(l, { className: "size-4 animate-spin" }),
55
- o
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
- z as Button,
62
- b as buttonVariants
267
+ ue as AssistantDrawer
63
268
  };
package/dist/index210.mjs CHANGED
@@ -1,59 +1,26 @@
1
1
  'use client';
2
- import n from "./index92.mjs";
3
- class a {
4
- constructor() {
5
- this.handlers = [];
6
- }
7
- /**
8
- * Add a new interceptor to the stack
9
- *
10
- * @param {Function} fulfilled The function to handle `then` for a `Promise`
11
- * @param {Function} rejected The function to handle `reject` for a `Promise`
12
- *
13
- * @return {Number} An ID used to remove interceptor later
14
- */
15
- use(s, h, r) {
16
- return this.handlers.push({
17
- fulfilled: s,
18
- rejected: h,
19
- synchronous: r ? r.synchronous : !1,
20
- runWhen: r ? r.runWhen : null
21
- }), this.handlers.length - 1;
22
- }
23
- /**
24
- * Remove an interceptor from the stack
25
- *
26
- * @param {Number} id The ID that was returned by `use`
27
- *
28
- * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
29
- */
30
- eject(s) {
31
- this.handlers[s] && (this.handlers[s] = null);
32
- }
33
- /**
34
- * Clear all interceptors from the stack
35
- *
36
- * @returns {void}
37
- */
38
- clear() {
39
- this.handlers && (this.handlers = []);
40
- }
41
- /**
42
- * Iterate over all the registered interceptors
43
- *
44
- * This method is particularly useful for skipping over any
45
- * interceptors that may have become `null` calling `eject`.
46
- *
47
- * @param {Function} fn The function to call for each interceptor
48
- *
49
- * @returns {void}
50
- */
51
- forEach(s) {
52
- n.forEach(this.handlers, function(r) {
53
- r !== null && s(r);
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
+ }
54
14
  });
55
- }
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);
56
23
  }
57
24
  export {
58
- a as default
25
+ _ as __require
59
26
  };
package/dist/index211.mjs CHANGED
@@ -1,32 +1,5 @@
1
1
  'use client';
2
- import r from "./index253.mjs";
3
- import p from "./index100.mjs";
4
- import l from "./index96.mjs";
5
- import m from "./index98.mjs";
6
- import a from "./index106.mjs";
7
- import o from "./index107.mjs";
8
- function d(e) {
9
- if (e.cancelToken && e.cancelToken.throwIfRequested(), e.signal && e.signal.aborted)
10
- throw new m(null, e);
11
- }
12
- function q(e) {
13
- return d(e), e.headers = a.from(e.headers), e.data = r.call(
14
- e,
15
- e.transformRequest
16
- ), ["post", "put", "patch"].indexOf(e.method) !== -1 && e.headers.setContentType("application/x-www-form-urlencoded", !1), o.getAdapter(e.adapter || l.adapter, e)(e).then(function(t) {
17
- return d(e), t.data = r.call(
18
- e,
19
- e.transformResponse,
20
- t
21
- ), t.headers = a.from(t.headers), t;
22
- }, function(t) {
23
- return p(t) || (d(e), t && t.response && (t.response.data = r.call(
24
- e,
25
- e.transformResponse,
26
- t.response
27
- ), t.response.headers = a.from(t.response.headers))), Promise.reject(t);
28
- });
29
- }
2
+ var a = {};
30
3
  export {
31
- q as default
4
+ a as __exports
32
5
  };
package/dist/index212.mjs CHANGED
@@ -1,10 +1,5 @@
1
1
  'use client';
2
- import r from "./index254.mjs";
3
- import f from "./index255.mjs";
4
- function u(l, i, t) {
5
- let o = !r(i);
6
- return l && (o || t == !1) ? f(l, i) : i;
7
- }
2
+ var r = {};
8
3
  export {
9
- u as default
4
+ r as __exports
10
5
  };