@instockng/storefront-ui 1.0.107 → 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 (250) hide show
  1. package/dist/components/AssistantDrawer.d.ts +1 -3
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -1
  3. package/dist/contexts/AssistantContext.d.ts +19 -0
  4. package/dist/contexts/AssistantContext.d.ts.map +1 -0
  5. package/dist/index.d.ts +1 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.mjs +56 -56
  8. package/dist/index10.mjs +103 -73
  9. package/dist/index100.mjs +52 -7
  10. package/dist/index101.mjs +5 -74
  11. package/dist/index102.mjs +4 -3
  12. package/dist/index103.mjs +179 -2
  13. package/dist/index104.mjs +49 -79
  14. package/dist/index105.mjs +68 -53
  15. package/dist/index106.mjs +2 -6
  16. package/dist/index107.mjs +5 -4
  17. package/dist/index108.mjs +1123 -168
  18. package/dist/index109.mjs +20 -53
  19. package/dist/index11.mjs +73 -189
  20. package/dist/index110.mjs +55 -69
  21. package/dist/index111.mjs +33 -2
  22. package/dist/index112.mjs +2 -37
  23. package/dist/index113.mjs +2 -43
  24. package/dist/index115.mjs +1 -1
  25. package/dist/index116.mjs +1 -1
  26. package/dist/index117.mjs +8 -8
  27. package/dist/index118.mjs +6 -6
  28. package/dist/index119.mjs +3 -3
  29. package/dist/index12.mjs +171 -106
  30. package/dist/index120.mjs +1 -1
  31. package/dist/index121.mjs +1 -1
  32. package/dist/index122.mjs +1 -1
  33. package/dist/index123.mjs +2 -2
  34. package/dist/index124.mjs +2 -2
  35. package/dist/index125.mjs +3 -3
  36. package/dist/index126.mjs +1 -1
  37. package/dist/index127.mjs +3 -3
  38. package/dist/index128.mjs +2 -2
  39. package/dist/index129.mjs +2 -2
  40. package/dist/index13.mjs +127 -98
  41. package/dist/index130.mjs +1 -1
  42. package/dist/index131.mjs +3 -3
  43. package/dist/index132.mjs +1 -1
  44. package/dist/index133.mjs +1 -1
  45. package/dist/index134.mjs +3 -3
  46. package/dist/index135.mjs +2 -2
  47. package/dist/index136.mjs +4 -4
  48. package/dist/index137.mjs +1 -1
  49. package/dist/index138.mjs +3 -3
  50. package/dist/index139.mjs +4 -4
  51. package/dist/index14.mjs +94 -90
  52. package/dist/index140.mjs +1 -1
  53. package/dist/index141.mjs +1 -1
  54. package/dist/index142.mjs +1 -1
  55. package/dist/index143.mjs +1 -1
  56. package/dist/index144.mjs +1 -1
  57. package/dist/index145.mjs +1 -1
  58. package/dist/index146.mjs +1 -1
  59. package/dist/index147.mjs +2 -2
  60. package/dist/index148.mjs +3 -3
  61. package/dist/index15.mjs +84 -149
  62. package/dist/index151.mjs +1 -1
  63. package/dist/index153.mjs +2 -2
  64. package/dist/index154.mjs +1 -1
  65. package/dist/index155.mjs +6 -6
  66. package/dist/index156.mjs +2 -2
  67. package/dist/index157.mjs +2 -2
  68. package/dist/index159.mjs +2 -2
  69. package/dist/index16.mjs +157 -203
  70. package/dist/index160.mjs +2 -2
  71. package/dist/index161.mjs +1 -1
  72. package/dist/index163.mjs +8 -8
  73. package/dist/index164.mjs +8 -8
  74. package/dist/index165.mjs +2 -2
  75. package/dist/index167.mjs +2 -2
  76. package/dist/index168.mjs +2 -18
  77. package/dist/index169.mjs +11 -25
  78. package/dist/index17.mjs +197 -106
  79. package/dist/index170.mjs +26 -32
  80. package/dist/index171.mjs +32 -12
  81. package/dist/index172.mjs +9 -9
  82. package/dist/index173.mjs +18 -2
  83. package/dist/index174.mjs +2 -20
  84. package/dist/index175.mjs +13 -39
  85. package/dist/index176.mjs +46 -2
  86. package/dist/index177.mjs +2 -30
  87. package/dist/index178.mjs +24 -12
  88. package/dist/index179.mjs +18 -2
  89. package/dist/index18.mjs +96 -129
  90. package/dist/index180.mjs +2 -2
  91. package/dist/index181.mjs +2 -2
  92. package/dist/index182.mjs +2 -2
  93. package/dist/index183.mjs +2 -72
  94. package/dist/index184.mjs +72 -2
  95. package/dist/index185.mjs +2 -53
  96. package/dist/index186.mjs +53 -2
  97. package/dist/index187.mjs +2 -36
  98. package/dist/index188.mjs +30 -146
  99. package/dist/index189.mjs +152 -2
  100. package/dist/index19.mjs +140 -87
  101. package/dist/index190.mjs +2 -2
  102. package/dist/index191.mjs +2 -19
  103. package/dist/index192.mjs +19 -2
  104. package/dist/index193.mjs +2 -2
  105. package/dist/index194.mjs +2 -26
  106. package/dist/index195.mjs +26 -2
  107. package/dist/index196.mjs +2 -2
  108. package/dist/index197.mjs +2 -24
  109. package/dist/index198.mjs +17 -16
  110. package/dist/index199.mjs +23 -2
  111. package/dist/index2.mjs +29 -15
  112. package/dist/index20.mjs +82 -708
  113. package/dist/index201.mjs +2 -2
  114. package/dist/index202.mjs +2 -23
  115. package/dist/index203.mjs +23 -2
  116. package/dist/index204.mjs +2 -23
  117. package/dist/index205.mjs +23 -2
  118. package/dist/index206.mjs +2 -2
  119. package/dist/index208.mjs +2 -23
  120. package/dist/index209.mjs +23 -2
  121. package/dist/index21.mjs +688 -229
  122. package/dist/index210.mjs +2 -23
  123. package/dist/index211.mjs +23 -2
  124. package/dist/index212.mjs +2 -2
  125. package/dist/index213.mjs +2 -2
  126. package/dist/index215.mjs +2 -2
  127. package/dist/index216.mjs +2 -2
  128. package/dist/index217.mjs +2 -2
  129. package/dist/index218.mjs +2 -2
  130. package/dist/index219.mjs +2 -127
  131. package/dist/index22.mjs +260 -42
  132. package/dist/index220.mjs +127 -2
  133. package/dist/index221.mjs +2 -74
  134. package/dist/index222.mjs +59 -59
  135. package/dist/index223.mjs +74 -2
  136. package/dist/index224.mjs +30 -12
  137. package/dist/index225.mjs +11 -7
  138. package/dist/index226.mjs +3 -11
  139. package/dist/index227.mjs +3 -4
  140. package/dist/index228.mjs +13 -33
  141. package/dist/index229.mjs +7 -31
  142. package/dist/index23.mjs +42 -21
  143. package/dist/index230.mjs +11 -27
  144. package/dist/index231.mjs +5 -61
  145. package/dist/index232.mjs +33 -31
  146. package/dist/index233.mjs +31 -11
  147. package/dist/index234.mjs +28 -4
  148. package/dist/index235.mjs +61 -4
  149. package/dist/index236.mjs +2 -2
  150. package/dist/index237.mjs +108 -2
  151. package/dist/index238.mjs +2 -2
  152. package/dist/index239.mjs +2 -2
  153. package/dist/index240.mjs +2 -2
  154. package/dist/index241.mjs +2 -2
  155. package/dist/index242.mjs +2 -2
  156. package/dist/index243.mjs +2 -2
  157. package/dist/index244.mjs +2 -108
  158. package/dist/index245.mjs +2 -2
  159. package/dist/index247.mjs +3 -3
  160. package/dist/index250.mjs +1 -1
  161. package/dist/index252.mjs +2 -2
  162. package/dist/index253.mjs +1 -1
  163. package/dist/index254.mjs +2 -2
  164. package/dist/index262.mjs +2 -2
  165. package/dist/index263.mjs +2 -4
  166. package/dist/index264.mjs +4 -2
  167. package/dist/index265.mjs +2 -2
  168. package/dist/index266.mjs +2 -2
  169. package/dist/index267.mjs +3 -2
  170. package/dist/index268.mjs +2 -2
  171. package/dist/index269.mjs +2 -18
  172. package/dist/index270.mjs +16 -46
  173. package/dist/index271.mjs +13 -2
  174. package/dist/index272.mjs +6 -2
  175. package/dist/index273.mjs +30 -2
  176. package/dist/index275.mjs +2 -91
  177. package/dist/index276.mjs +18 -2
  178. package/dist/index277.mjs +47 -3
  179. package/dist/index278.mjs +2 -2
  180. package/dist/index279.mjs +2 -2
  181. package/dist/index280.mjs +2 -17
  182. package/dist/index281.mjs +2 -13
  183. package/dist/index282.mjs +91 -6
  184. package/dist/index283.mjs +2 -30
  185. package/dist/index3.mjs +3 -3
  186. package/dist/index4.mjs +34 -101
  187. package/dist/index43.mjs +1 -1
  188. package/dist/index44.mjs +1 -1
  189. package/dist/index45.mjs +1 -1
  190. package/dist/index46.mjs +1 -1
  191. package/dist/index47.mjs +1 -1
  192. package/dist/index48.mjs +2 -2
  193. package/dist/index5.mjs +92 -102
  194. package/dist/index50.mjs +2 -2
  195. package/dist/index54.mjs +3 -3
  196. package/dist/index58.mjs +1 -1
  197. package/dist/index6.mjs +111 -15
  198. package/dist/index63.mjs +17 -17
  199. package/dist/index64.mjs +2 -2
  200. package/dist/index65.mjs +1 -1
  201. package/dist/index66.mjs +1 -1
  202. package/dist/index67.mjs +1 -1
  203. package/dist/index68.mjs +1 -1
  204. package/dist/index69.mjs +1 -1
  205. package/dist/index7.mjs +15 -195
  206. package/dist/index70.mjs +1 -1
  207. package/dist/index71.mjs +1 -1
  208. package/dist/index72.mjs +1 -1
  209. package/dist/index73.mjs +1 -1
  210. package/dist/index74.mjs +1 -1
  211. package/dist/index75.mjs +1 -1
  212. package/dist/index76.mjs +1 -1
  213. package/dist/index77.mjs +1 -1
  214. package/dist/index78.mjs +1 -1
  215. package/dist/index79.mjs +4 -23
  216. package/dist/index8.mjs +135 -189
  217. package/dist/index80.mjs +24 -2
  218. package/dist/index81.mjs +2 -153
  219. package/dist/index82.mjs +149 -19
  220. package/dist/index83.mjs +21 -73
  221. package/dist/index84.mjs +74 -14
  222. package/dist/index85.mjs +14 -62
  223. package/dist/index86.mjs +62 -4
  224. package/dist/index87.mjs +37 -2
  225. package/dist/index88.mjs +42 -5
  226. package/dist/index89.mjs +230 -1129
  227. package/dist/index9.mjs +240 -99
  228. package/dist/index90.mjs +5 -19
  229. package/dist/index91.mjs +127 -48
  230. package/dist/index92.mjs +67 -32
  231. package/dist/index93.mjs +87 -2
  232. package/dist/index94.mjs +23 -229
  233. package/dist/index95.mjs +8 -5
  234. package/dist/index96.mjs +66 -125
  235. package/dist/index97.mjs +3 -67
  236. package/dist/index98.mjs +2 -87
  237. package/dist/index99.mjs +78 -24
  238. package/dist/providers/StorefrontProvider.d.ts +3 -1
  239. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  240. package/dist/styles.css +1 -1
  241. package/package.json +1 -1
  242. package/src/components/AssistantDrawer.stories.tsx +0 -50
  243. package/src/components/AssistantDrawer.tsx +4 -8
  244. package/src/contexts/AssistantContext.tsx +62 -0
  245. package/src/index.ts +3 -2
  246. package/src/providers/StorefrontProvider.tsx +17 -2
  247. package/dist/components/SearchAssistantTrigger.d.ts +0 -12
  248. package/dist/components/SearchAssistantTrigger.d.ts.map +0 -1
  249. package/src/components/SearchAssistantTrigger.stories.tsx +0 -35
  250. package/src/components/SearchAssistantTrigger.tsx +0 -41
package/dist/index9.mjs CHANGED
@@ -1,113 +1,254 @@
1
1
  'use client';
2
- import { jsxs as l, jsx as a, Fragment as u } from "react/jsx-runtime";
3
- import { useState as f } from "react";
4
- import { Card as P, CardContent as S, CardFooter as j } from "./index25.mjs";
5
- import { Button as I } from "./index24.mjs";
6
- import { Badge as h } from "./index26.mjs";
7
- import { Package as O, ShoppingCart as q } from "lucide-react";
8
- import { cn as p, formatCurrency as g } from "./index30.mjs";
9
- function D({
10
- product: r,
11
- onAddToCart: o,
12
- showStock: b = !0,
13
- className: x,
14
- imageClassName: N,
15
- disableAddToCart: v = !1,
16
- isAddingToCart: n = !1,
17
- onClick: i
2
+ import { jsx as e, jsxs as t, Fragment as g } from "react/jsx-runtime";
3
+ import { useState as m } from "react";
4
+ import "./index31.mjs";
5
+ import "@tanstack/react-query";
6
+ import { useGetOrder as q, useConfirmDelivery as z, useUpdateDeliveryAddress as Z } from "./index46.mjs";
7
+ import { Card as l, CardHeader as C, CardTitle as w, CardContent as c } from "./index25.mjs";
8
+ import { Button as x } from "./index24.mjs";
9
+ import { Badge as G } from "./index26.mjs";
10
+ import { Loader2 as P, XCircle as K, Package as Q, CheckCircle as X, Pencil as I } from "lucide-react";
11
+ import { cn as i, formatCurrency as d } from "./index30.mjs";
12
+ const H = "2348125648668", A = "0" + H.slice(3), J = `${A.slice(0, 4)} ${A.slice(4, 7)} ${A.slice(7)}`, V = `https://wa.me/${H}`;
13
+ function de({
14
+ orderId: N,
15
+ token: v,
16
+ className: b,
17
+ headerClassName: L,
18
+ buttonClassName: j,
19
+ cardClassName: a,
20
+ whatsappHelpLink: W = V,
21
+ whatsappHelpNumber: F = J
18
22
  }) {
19
- var d;
20
- const [c, y] = f(
21
- ((d = r.variants[0]) == null ? void 0 : d.id) || ""
22
- ), [m, k] = f(1), t = r.variants.find((e) => e.id === c), C = r.variants.length > 1, s = t ? t.stock === void 0 || t.stock > 0 : !1, w = (e) => {
23
- e.stopPropagation(), t && o && o(t.id, m);
23
+ var _;
24
+ const [h, E] = m(!1), [u, y] = m(!1), [S, D] = m(""), [U, T] = m(""), [k, M] = m(""), { data: s, isLoading: $, error: B } = q(N, v, {
25
+ retry: !1
26
+ }), p = z({
27
+ onSuccess: () => {
28
+ E(!0);
29
+ }
30
+ }), o = Z({
31
+ onSuccess: () => {
32
+ E(!0), y(!1);
33
+ }
34
+ }), O = () => {
35
+ s && !("error" in s) && (D(s.address), T(s.city), M(s.phone), y(!0));
36
+ }, R = () => {
37
+ o.mutate({
38
+ orderId: N,
39
+ token: v,
40
+ address: S,
41
+ city: U,
42
+ phone: k
43
+ });
24
44
  };
25
- return /* @__PURE__ */ l(
26
- P,
27
- {
28
- className: p(
29
- "group overflow-hidden transition-all hover:shadow-lg",
30
- i && "cursor-pointer",
31
- x
32
- ),
33
- onClick: i,
34
- children: [
35
- /* @__PURE__ */ l("div", { className: "relative aspect-square overflow-hidden bg-gray-100", children: [
36
- r.thumbnailUrl ? /* @__PURE__ */ a(
37
- "img",
45
+ if ($)
46
+ return /* @__PURE__ */ e("div", { className: i("min-h-screen flex items-center justify-center", b), children: /* @__PURE__ */ t("div", { className: "text-center", children: [
47
+ /* @__PURE__ */ e(P, { className: "h-12 w-12 animate-spin text-blue-500 mx-auto mb-4" }),
48
+ /* @__PURE__ */ e("p", { className: "text-muted-foreground", children: "Loading order details..." })
49
+ ] }) });
50
+ if (B || !s || "error" in s)
51
+ return /* @__PURE__ */ e("div", { className: i("min-h-screen flex items-center justify-center p-4", b), children: /* @__PURE__ */ t(l, { className: i("max-w-md w-full", a), children: [
52
+ /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("div", { className: "flex items-center space-x-2", children: [
53
+ /* @__PURE__ */ e(K, { className: "h-6 w-6 text-red-500" }),
54
+ /* @__PURE__ */ e(w, { children: "Order Not Found" })
55
+ ] }) }),
56
+ /* @__PURE__ */ e(c, { children: /* @__PURE__ */ e("p", { className: "text-muted-foreground", children: "We couldn't find this order. The link may be invalid or expired. Please contact support if you need assistance." }) })
57
+ ] }) });
58
+ const r = s, f = !!r.deliveryConfirmedAt;
59
+ return /* @__PURE__ */ e("div", { className: i("min-h-screen py-8 px-4", b), children: /* @__PURE__ */ t("div", { className: "max-w-3xl mx-auto space-y-6", children: [
60
+ /* @__PURE__ */ t("div", { className: i("text-center", L), children: [
61
+ r.brand.logoUrl ? /* @__PURE__ */ e("div", { className: "inline-flex items-center justify-center w-24 h-16 mb-4", children: /* @__PURE__ */ e(
62
+ "img",
63
+ {
64
+ src: r.brand.logoUrl,
65
+ alt: `${r.brand.name} logo`,
66
+ className: "max-w-full max-h-full object-contain"
67
+ }
68
+ ) }) : /* @__PURE__ */ e("div", { className: "inline-flex items-center justify-center w-16 h-16 bg-blue-100 rounded-full mb-4", children: /* @__PURE__ */ e(Q, { className: "h-8 w-8 text-blue-600" }) }),
69
+ /* @__PURE__ */ t("h1", { className: "text-3xl font-bold", children: [
70
+ "Order #",
71
+ r.orderNumber
72
+ ] }),
73
+ /* @__PURE__ */ e("p", { className: "text-muted-foreground mt-2", children: r.brand.name })
74
+ ] }),
75
+ (h || f) && /* @__PURE__ */ e(l, { className: i("border-green-200 bg-green-50", a), children: /* @__PURE__ */ e(c, { className: "pt-6", children: /* @__PURE__ */ t("div", { className: "flex items-start space-x-3", children: [
76
+ /* @__PURE__ */ e(X, { className: "h-6 w-6 text-green-600 mt-0.5" }),
77
+ /* @__PURE__ */ t("div", { children: [
78
+ /* @__PURE__ */ e("h3", { className: "font-semibold text-green-900", children: "Delivery Confirmed!" }),
79
+ /* @__PURE__ */ e("p", { className: "text-green-700 mt-1", children: "Thank you for confirming your delivery details. We'll ship your order shortly." })
80
+ ] })
81
+ ] }) }) }),
82
+ !h && !f && r.canConfirmDelivery && !u && /* @__PURE__ */ e(l, { className: i(a), children: /* @__PURE__ */ e(c, { className: "pt-6", children: /* @__PURE__ */ e("p", { children: r.confirmationMessage }) }) }),
83
+ /* @__PURE__ */ t(l, { className: a, children: [
84
+ /* @__PURE__ */ e(C, { children: /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
85
+ /* @__PURE__ */ e(w, { children: "Delivery Address" }),
86
+ r.canUpdateAddress && !h && !f && !u && /* @__PURE__ */ t(x, { size: "sm", className: "bg-blue-600 hover:bg-blue-700 text-white", onClick: O, children: [
87
+ /* @__PURE__ */ e(I, { className: "h-4 w-4 mr-1" }),
88
+ "Edit"
89
+ ] })
90
+ ] }) }),
91
+ /* @__PURE__ */ e(c, { className: "space-y-3", children: u ? /* @__PURE__ */ t("div", { className: "space-y-4", children: [
92
+ /* @__PURE__ */ t("div", { children: [
93
+ /* @__PURE__ */ e("label", { className: "text-sm font-medium opacity-70", children: "Address" }),
94
+ /* @__PURE__ */ e(
95
+ "input",
38
96
  {
39
- src: r.thumbnailUrl,
40
- alt: r.name,
41
- className: p(
42
- "h-full w-full object-cover transition-transform group-hover:scale-105",
43
- N
44
- )
97
+ type: "text",
98
+ value: S,
99
+ onChange: (n) => D(n.target.value),
100
+ className: "mt-1 w-full rounded-md border border-input px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500"
45
101
  }
46
- ) : /* @__PURE__ */ a("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ a(O, { className: "h-16 w-16 text-gray-400" }) }),
47
- !s && /* @__PURE__ */ a(h, { className: "absolute right-2 top-2 bg-red-600", children: "Out of Stock" }),
48
- b && s && (t == null ? void 0 : t.stock) !== void 0 && t.stock < 10 && /* @__PURE__ */ l(h, { className: "absolute right-2 top-2 bg-orange-600", children: [
49
- "Only ",
50
- t.stock,
51
- " left"
52
- ] })
102
+ )
53
103
  ] }),
54
- /* @__PURE__ */ l(S, { className: "p-4", children: [
55
- /* @__PURE__ */ a("h3", { className: "mb-1 font-semibold line-clamp-2", children: r.name }),
56
- r.description && /* @__PURE__ */ a("p", { className: "mb-2 text-sm text-gray-600 line-clamp-2", children: r.description }),
57
- C && /* @__PURE__ */ l("div", { className: "mb-3", children: [
58
- /* @__PURE__ */ a("label", { className: "mb-1 block text-xs font-medium text-gray-700", children: "Select Option" }),
59
- /* @__PURE__ */ a(
60
- "select",
61
- {
62
- value: c,
63
- onChange: (e) => {
64
- e.stopPropagation(), y(e.target.value);
65
- },
66
- className: "w-full rounded-md border border-gray-300 px-2 py-1 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500",
67
- onClick: (e) => e.stopPropagation(),
68
- children: r.variants.map((e) => /* @__PURE__ */ l("option", { value: e.id, children: [
69
- e.name,
70
- " - ",
71
- g(e.price)
72
- ] }, e.id))
73
- }
74
- )
104
+ /* @__PURE__ */ t("div", { children: [
105
+ /* @__PURE__ */ e("label", { className: "text-sm font-medium opacity-70", children: "City" }),
106
+ /* @__PURE__ */ e(
107
+ "input",
108
+ {
109
+ type: "text",
110
+ value: U,
111
+ onChange: (n) => T(n.target.value),
112
+ className: "mt-1 w-full rounded-md border border-input px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500"
113
+ }
114
+ )
115
+ ] }),
116
+ /* @__PURE__ */ t("div", { children: [
117
+ /* @__PURE__ */ e("label", { className: "text-sm font-medium opacity-70", children: "Phone" }),
118
+ /* @__PURE__ */ e(
119
+ "input",
120
+ {
121
+ type: "text",
122
+ value: k,
123
+ onChange: (n) => M(n.target.value),
124
+ className: "mt-1 w-full rounded-md border border-input px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500"
125
+ }
126
+ )
127
+ ] }),
128
+ /* @__PURE__ */ t("div", { className: "flex gap-2", children: [
129
+ /* @__PURE__ */ e(
130
+ x,
131
+ {
132
+ onClick: R,
133
+ disabled: o.isPending,
134
+ className: i("flex-1 bg-green-600 hover:bg-green-700 text-white", j),
135
+ children: o.isPending ? /* @__PURE__ */ t(g, { children: [
136
+ /* @__PURE__ */ e(P, { className: "mr-2 h-4 w-4 animate-spin" }),
137
+ "Saving..."
138
+ ] }) : "Save & Confirm"
139
+ }
140
+ ),
141
+ /* @__PURE__ */ e(
142
+ x,
143
+ {
144
+ variant: "outline",
145
+ onClick: () => y(!1),
146
+ disabled: o.isPending,
147
+ children: "Cancel"
148
+ }
149
+ )
150
+ ] }),
151
+ o.isError && /* @__PURE__ */ e("p", { className: "text-red-600 text-sm text-center", children: "Failed to update address. Please try again." })
152
+ ] }) : /* @__PURE__ */ t(g, { children: [
153
+ /* @__PURE__ */ t("div", { children: [
154
+ /* @__PURE__ */ e("p", { className: "text-sm opacity-70", children: "Customer" }),
155
+ /* @__PURE__ */ t("p", { className: "font-medium", children: [
156
+ r.firstName,
157
+ " ",
158
+ r.lastName
159
+ ] }),
160
+ /* @__PURE__ */ e("p", { className: "text-sm opacity-70", children: r.phone })
161
+ ] }),
162
+ /* @__PURE__ */ t("div", { children: [
163
+ /* @__PURE__ */ e("p", { className: "text-sm opacity-70", children: "Address" }),
164
+ /* @__PURE__ */ e("p", { className: "font-medium", children: r.address }),
165
+ /* @__PURE__ */ t("p", { className: "text-sm opacity-70", children: [
166
+ r.city,
167
+ ", ",
168
+ r.deliveryZone.state.name
75
169
  ] }),
76
- /* @__PURE__ */ a("div", { className: "mb-3 text-2xl font-bold text-blue-600", children: t && g(t.price) }),
77
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
78
- /* @__PURE__ */ a("label", { className: "text-xs font-medium text-gray-700", children: "Qty:" }),
79
- /* @__PURE__ */ a(
80
- "input",
170
+ /* @__PURE__ */ e("p", { className: "text-sm opacity-70", children: r.deliveryZone.name })
171
+ ] })
172
+ ] }) })
173
+ ] }),
174
+ r.canConfirmDelivery && !h && !f && !u && /* @__PURE__ */ e(l, { className: a, children: /* @__PURE__ */ t(c, { className: "pt-6", children: [
175
+ /* @__PURE__ */ e(
176
+ x,
177
+ {
178
+ onClick: () => p.mutate({ orderId: N, token: v }),
179
+ disabled: p.isPending,
180
+ className: i("w-full bg-green-600 hover:bg-green-700 text-white", j),
181
+ size: "lg",
182
+ children: p.isPending ? /* @__PURE__ */ t(g, { children: [
183
+ /* @__PURE__ */ e(P, { className: "mr-2 h-5 w-5 animate-spin" }),
184
+ "Confirming..."
185
+ ] }) : "Confirm & Ship"
186
+ }
187
+ ),
188
+ p.isError && /* @__PURE__ */ e("p", { className: "text-red-600 text-sm mt-2 text-center", children: "Failed to confirm delivery. Please try again or contact support." })
189
+ ] }) }),
190
+ /* @__PURE__ */ t(l, { className: a, children: [
191
+ /* @__PURE__ */ e(C, { children: /* @__PURE__ */ e(w, { children: "Items" }) }),
192
+ /* @__PURE__ */ t(c, { children: [
193
+ /* @__PURE__ */ e("div", { className: "space-y-4", children: (_ = r.items) == null ? void 0 : _.map((n) => /* @__PURE__ */ t("div", { className: "flex items-start justify-between border-b pb-4 last:border-0", children: [
194
+ /* @__PURE__ */ t("div", { className: "flex items-start space-x-4 flex-1", children: [
195
+ (n.variant.thumbnailUrl || n.variant.product.thumbnailUrl) && /* @__PURE__ */ e(
196
+ "img",
81
197
  {
82
- type: "number",
83
- min: "1",
84
- max: (t == null ? void 0 : t.stock) || 999,
85
- value: m,
86
- onChange: (e) => {
87
- e.stopPropagation(), k(Math.max(1, parseInt(e.target.value) || 1));
88
- },
89
- onClick: (e) => e.stopPropagation(),
90
- className: "w-20 rounded-md border border-gray-300 px-2 py-1 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500"
198
+ src: n.variant.thumbnailUrl || n.variant.product.thumbnailUrl || void 0,
199
+ alt: n.variant.product.name,
200
+ className: "w-16 h-16 object-cover rounded"
91
201
  }
92
- )
202
+ ),
203
+ /* @__PURE__ */ t("div", { className: "flex-1", children: [
204
+ /* @__PURE__ */ e("p", { className: "font-medium", children: n.variant.product.name }),
205
+ n.variant.name && /* @__PURE__ */ e(G, { variant: "outline", className: "mt-1", children: n.variant.name }),
206
+ /* @__PURE__ */ t("p", { className: "text-sm opacity-70 mt-1", children: [
207
+ "Quantity: ",
208
+ n.quantity
209
+ ] })
210
+ ] })
211
+ ] }),
212
+ /* @__PURE__ */ t("div", { className: "text-right", children: [
213
+ /* @__PURE__ */ e("p", { className: "font-medium", children: d(n.priceAtPurchase * n.quantity) }),
214
+ /* @__PURE__ */ t("p", { className: "text-sm opacity-70", children: [
215
+ d(n.priceAtPurchase),
216
+ " each"
217
+ ] })
93
218
  ] })
94
- ] }),
95
- /* @__PURE__ */ a(j, { className: "p-4 pt-0", children: /* @__PURE__ */ a(
96
- I,
97
- {
98
- onClick: w,
99
- disabled: v || !s || n,
100
- className: "w-full",
101
- children: n ? /* @__PURE__ */ a(u, { children: "Adding..." }) : /* @__PURE__ */ l(u, { children: [
102
- /* @__PURE__ */ a(q, { className: "mr-2 h-4 w-4" }),
103
- "Add to Cart"
219
+ ] }, n.id)) }),
220
+ /* @__PURE__ */ t("div", { className: "mt-6 border-t pt-4 space-y-2", children: [
221
+ /* @__PURE__ */ t("div", { className: "flex justify-between text-sm", children: [
222
+ /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Subtotal" }),
223
+ /* @__PURE__ */ e("span", { className: "font-medium", children: d(r.subtotal) })
224
+ ] }),
225
+ r.discountAmount && r.discountAmount > 0 && /* @__PURE__ */ t("div", { className: "flex justify-between text-sm text-green-600", children: [
226
+ /* @__PURE__ */ e("span", { children: "Discount" }),
227
+ /* @__PURE__ */ t("span", { children: [
228
+ "-",
229
+ d(r.discountAmount)
104
230
  ] })
105
- }
106
- ) })
107
- ]
108
- }
109
- );
231
+ ] }),
232
+ /* @__PURE__ */ t("div", { className: "flex justify-between text-sm", children: [
233
+ /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Delivery Charge" }),
234
+ /* @__PURE__ */ e("span", { className: "font-medium", children: d(r.deliveryCharge) })
235
+ ] }),
236
+ /* @__PURE__ */ t("div", { className: "flex justify-between text-lg font-bold border-t pt-2", children: [
237
+ /* @__PURE__ */ e("span", { children: "Total" }),
238
+ /* @__PURE__ */ e("span", { children: d(r.totalPrice) })
239
+ ] })
240
+ ] })
241
+ ] })
242
+ ] }),
243
+ /* @__PURE__ */ e(l, { className: a, children: /* @__PURE__ */ e(c, { className: "pt-6", children: /* @__PURE__ */ t("p", { className: "text-sm opacity-70 text-center", children: [
244
+ "Need help with your order? Call us on ",
245
+ F,
246
+ " or contact us on",
247
+ " ",
248
+ /* @__PURE__ */ e("a", { href: W, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:underline", children: "WhatsApp" })
249
+ ] }) }) })
250
+ ] }) });
110
251
  }
111
252
  export {
112
- D as ProductCard
253
+ de as DeliveryConfirmation
113
254
  };
package/dist/index90.mjs CHANGED
@@ -1,23 +1,9 @@
1
1
  'use client';
2
- import { __exports as e } from "./index149.mjs";
3
- import "./index88.mjs";
4
- import u from "react";
5
- import { __exports as n } from "./index93.mjs";
6
- var o;
7
- function d() {
8
- return o ? e : (o = 1, function(t) {
9
- Object.defineProperty(t, "__esModule", {
10
- value: !0
11
- }), Object.defineProperty(t, "RouterContext", {
12
- enumerable: !0,
13
- get: function() {
14
- return r;
15
- }
16
- });
17
- const r = (/* @__PURE__ */ n._(u)).default.createContext(null);
18
- process.env.NODE_ENV !== "production" && (r.displayName = "RouterContext");
19
- }(e), e);
2
+ function u(n, r) {
3
+ return function() {
4
+ return n.apply(r, arguments);
5
+ };
20
6
  }
21
7
  export {
22
- d as __require
8
+ u as default
23
9
  };
package/dist/index91.mjs CHANGED
@@ -1,58 +1,137 @@
1
1
  'use client';
2
- import { __exports as o } from "./index150.mjs";
3
- import { __require as p } from "./index151.mjs";
4
- var u;
5
- function m() {
6
- return u ? o : (u = 1, function(i) {
7
- Object.defineProperty(i, "__esModule", {
8
- value: !0
9
- });
10
- function f(e, r) {
11
- for (var t in r) Object.defineProperty(e, t, {
12
- enumerable: !0,
13
- get: r[t]
14
- });
2
+ import d from "./index89.mjs";
3
+ import U from "./index153.mjs";
4
+ import q from "./index154.mjs";
5
+ import R from "./index155.mjs";
6
+ import w from "./index92.mjs";
7
+ import A from "./index156.mjs";
8
+ import m from "./index157.mjs";
9
+ import T from "./index103.mjs";
10
+ const i = m.validators;
11
+ class k {
12
+ constructor(t) {
13
+ this.defaults = t || {}, this.interceptors = {
14
+ request: new q(),
15
+ response: new q()
16
+ };
17
+ }
18
+ /**
19
+ * Dispatch a request
20
+ *
21
+ * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
22
+ * @param {?Object} config
23
+ *
24
+ * @returns {Promise} The Promise to be fulfilled
25
+ */
26
+ async request(t, e) {
27
+ try {
28
+ return await this._request(t, e);
29
+ } catch (r) {
30
+ if (r instanceof Error) {
31
+ let o = {};
32
+ Error.captureStackTrace ? Error.captureStackTrace(o) : o = new Error();
33
+ const s = o.stack ? o.stack.replace(/^.+\n/, "") : "";
34
+ try {
35
+ r.stack ? s && !String(r.stack).endsWith(s.replace(/^.+\n.+\n/, "")) && (r.stack += `
36
+ ` + s) : r.stack = s;
37
+ } catch {
38
+ }
39
+ }
40
+ throw r;
15
41
  }
16
- f(i, {
17
- /**
18
- * Checks whether the given value is a NextError.
19
- * This can be used to print a more detailed error message with properties like `code` & `digest`.
20
- */
21
- default: function() {
22
- return s;
23
- },
24
- getProperError: function() {
25
- return a;
42
+ }
43
+ _request(t, e) {
44
+ typeof t == "string" ? (e = e || {}, e.url = t) : e = t || {}, e = w(this.defaults, e);
45
+ const { transitional: r, paramsSerializer: o, headers: s } = e;
46
+ r !== void 0 && m.assertOptions(r, {
47
+ silentJSONParsing: i.transitional(i.boolean),
48
+ forcedJSONParsing: i.transitional(i.boolean),
49
+ clarifyTimeoutError: i.transitional(i.boolean)
50
+ }, !1), o != null && (d.isFunction(o) ? e.paramsSerializer = {
51
+ serialize: o
52
+ } : m.assertOptions(o, {
53
+ encode: i.function,
54
+ serialize: i.function
55
+ }, !0)), e.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? e.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : e.allowAbsoluteUrls = !0), m.assertOptions(e, {
56
+ baseUrl: i.spelling("baseURL"),
57
+ withXsrfToken: i.spelling("withXSRFToken")
58
+ }, !0), e.method = (e.method || this.defaults.method || "get").toLowerCase();
59
+ let f = s && d.merge(
60
+ s.common,
61
+ s[e.method]
62
+ );
63
+ s && d.forEach(
64
+ ["delete", "get", "head", "post", "put", "patch", "common"],
65
+ (a) => {
66
+ delete s[a];
26
67
  }
68
+ ), e.headers = T.concat(f, s);
69
+ const h = [];
70
+ let b = !0;
71
+ this.interceptors.request.forEach(function(n) {
72
+ typeof n.runWhen == "function" && n.runWhen(e) === !1 || (b = b && n.synchronous, h.unshift(n.fulfilled, n.rejected));
27
73
  });
28
- const c = p();
29
- function s(e) {
30
- return typeof e == "object" && e !== null && "name" in e && "message" in e;
31
- }
32
- function d(e) {
33
- const r = /* @__PURE__ */ new WeakSet();
34
- return JSON.stringify(e, (t, n) => {
35
- if (typeof n == "object" && n !== null) {
36
- if (r.has(n))
37
- return "[Circular]";
38
- r.add(n);
39
- }
40
- return n;
41
- });
74
+ const c = [];
75
+ this.interceptors.response.forEach(function(n) {
76
+ c.push(n.fulfilled, n.rejected);
77
+ });
78
+ let u, l = 0, p;
79
+ if (!b) {
80
+ const a = [R.bind(this), void 0];
81
+ for (a.unshift(...h), a.push(...c), p = a.length, u = Promise.resolve(e); l < p; )
82
+ u = u.then(a[l++], a[l++]);
83
+ return u;
42
84
  }
43
- function a(e) {
44
- if (s(e))
45
- return e;
46
- if (process.env.NODE_ENV === "development") {
47
- if (typeof e > "u")
48
- return new Error("An undefined error was thrown, see here for more info: https://nextjs.org/docs/messages/threw-undefined");
49
- if (e === null)
50
- return new Error("A null error was thrown, see here for more info: https://nextjs.org/docs/messages/threw-undefined");
85
+ p = h.length;
86
+ let y = e;
87
+ for (; l < p; ) {
88
+ const a = h[l++], n = h[l++];
89
+ try {
90
+ y = a(y);
91
+ } catch (S) {
92
+ n.call(this, S);
93
+ break;
51
94
  }
52
- return new Error((0, c.isPlainObject)(e) ? d(e) : e + "");
53
95
  }
54
- }(o), o);
96
+ try {
97
+ u = R.call(this, y);
98
+ } catch (a) {
99
+ return Promise.reject(a);
100
+ }
101
+ for (l = 0, p = c.length; l < p; )
102
+ u = u.then(c[l++], c[l++]);
103
+ return u;
104
+ }
105
+ getUri(t) {
106
+ t = w(this.defaults, t);
107
+ const e = A(t.baseURL, t.url, t.allowAbsoluteUrls);
108
+ return U(e, t.params, t.paramsSerializer);
109
+ }
55
110
  }
111
+ d.forEach(["delete", "get", "head", "options"], function(t) {
112
+ k.prototype[t] = function(e, r) {
113
+ return this.request(w(r || {}, {
114
+ method: t,
115
+ url: e,
116
+ data: (r || {}).data
117
+ }));
118
+ };
119
+ });
120
+ d.forEach(["post", "put", "patch"], function(t) {
121
+ function e(r) {
122
+ return function(s, f, h) {
123
+ return this.request(w(h || {}, {
124
+ method: t,
125
+ headers: r ? {
126
+ "Content-Type": "multipart/form-data"
127
+ } : {},
128
+ url: s,
129
+ data: f
130
+ }));
131
+ };
132
+ }
133
+ k.prototype[t] = e(), k.prototype[t + "Form"] = e(!0);
134
+ });
56
135
  export {
57
- m as __require
136
+ k as default
58
137
  };