@instockng/storefront-ui 1.0.31 → 1.0.33

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 (276) hide show
  1. package/dist/components/Checkout.d.ts.map +1 -1
  2. package/dist/contexts/CartContext.d.ts.map +1 -1
  3. package/dist/hooks/usePaystackPayment.d.ts +2 -1
  4. package/dist/hooks/usePaystackPayment.d.ts.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.mjs +99 -96
  8. package/dist/index10.mjs +85 -162
  9. package/dist/index100.mjs +210 -17
  10. package/dist/index101.mjs +174 -17
  11. package/dist/index102.mjs +14 -25
  12. package/dist/index103.mjs +17 -150
  13. package/dist/index104.mjs +26 -13
  14. package/dist/index105.mjs +149 -24
  15. package/dist/index106.mjs +13 -77
  16. package/dist/index107.mjs +20 -27
  17. package/dist/index108.mjs +76 -137
  18. package/dist/index109.mjs +33 -50
  19. package/dist/index11.mjs +171 -94
  20. package/dist/index110.mjs +141 -19
  21. package/dist/index111.mjs +50 -22
  22. package/dist/index112.mjs +14 -14
  23. package/dist/index113.mjs +20 -18
  24. package/dist/index114.mjs +16 -14
  25. package/dist/index115.mjs +17 -14
  26. package/dist/index116.mjs +12 -12
  27. package/dist/index117.mjs +15 -58
  28. package/dist/index118.mjs +14 -11
  29. package/dist/index119.mjs +56 -30
  30. package/dist/index12.mjs +82 -658
  31. package/dist/index120.mjs +9 -15
  32. package/dist/index121.mjs +31 -26
  33. package/dist/index122.mjs +13 -16
  34. package/dist/index123.mjs +26 -11
  35. package/dist/index124.mjs +18 -12
  36. package/dist/index125.mjs +12 -40
  37. package/dist/index126.mjs +14 -16
  38. package/dist/index127.mjs +42 -263
  39. package/dist/index128.mjs +15 -62
  40. package/dist/index129.mjs +267 -7
  41. package/dist/index13.mjs +668 -53
  42. package/dist/index130.mjs +70 -2
  43. package/dist/index131.mjs +8 -2
  44. package/dist/index132.mjs +2 -33
  45. package/dist/index133.mjs +2 -2
  46. package/dist/index134.mjs +32 -20
  47. package/dist/index135.mjs +2 -56
  48. package/dist/index136.mjs +18 -26
  49. package/dist/index137.mjs +55 -6
  50. package/dist/index138.mjs +28 -51
  51. package/dist/index139.mjs +7 -6
  52. package/dist/index14.mjs +58 -60
  53. package/dist/index140.mjs +51 -11
  54. package/dist/index141.mjs +5 -6
  55. package/dist/index142.mjs +12 -28
  56. package/dist/index143.mjs +7 -2
  57. package/dist/index144.mjs +27 -69
  58. package/dist/index145.mjs +2 -167
  59. package/dist/index146.mjs +70 -2
  60. package/dist/index147.mjs +167 -2
  61. package/dist/index149.mjs +2 -2
  62. package/dist/index15.mjs +60 -22
  63. package/dist/index150.mjs +2 -18
  64. package/dist/index151.mjs +11 -25
  65. package/dist/index152.mjs +26 -32
  66. package/dist/index153.mjs +32 -12
  67. package/dist/index154.mjs +9 -9
  68. package/dist/index155.mjs +18 -2
  69. package/dist/index156.mjs +2 -20
  70. package/dist/index157.mjs +13 -39
  71. package/dist/index158.mjs +46 -2
  72. package/dist/index159.mjs +2 -30
  73. package/dist/index16.mjs +22 -113
  74. package/dist/index160.mjs +24 -12
  75. package/dist/index161.mjs +18 -2
  76. package/dist/index162.mjs +2 -2
  77. package/dist/index163.mjs +2 -2
  78. package/dist/index164.mjs +2 -2
  79. package/dist/index165.mjs +2 -72
  80. package/dist/index166.mjs +72 -2
  81. package/dist/index167.mjs +2 -53
  82. package/dist/index168.mjs +53 -2
  83. package/dist/index169.mjs +2 -36
  84. package/dist/index17.mjs +111 -38
  85. package/dist/index170.mjs +30 -146
  86. package/dist/index171.mjs +152 -2
  87. package/dist/index172.mjs +2 -2
  88. package/dist/index173.mjs +2 -19
  89. package/dist/index174.mjs +19 -2
  90. package/dist/index175.mjs +2 -2
  91. package/dist/index176.mjs +2 -26
  92. package/dist/index177.mjs +26 -2
  93. package/dist/index178.mjs +2 -2
  94. package/dist/index179.mjs +2 -24
  95. package/dist/index18.mjs +37 -37
  96. package/dist/index180.mjs +17 -16
  97. package/dist/index181.mjs +23 -2
  98. package/dist/index183.mjs +2 -2
  99. package/dist/index184.mjs +2 -23
  100. package/dist/index185.mjs +23 -2
  101. package/dist/index186.mjs +2 -23
  102. package/dist/index187.mjs +23 -2
  103. package/dist/index188.mjs +2 -2
  104. package/dist/index19.mjs +42 -55
  105. package/dist/index190.mjs +2 -23
  106. package/dist/index191.mjs +23 -2
  107. package/dist/index192.mjs +2 -23
  108. package/dist/index193.mjs +23 -2
  109. package/dist/index194.mjs +2 -2
  110. package/dist/index195.mjs +2 -2
  111. package/dist/index197.mjs +2 -2
  112. package/dist/index198.mjs +2 -2
  113. package/dist/index199.mjs +2 -2
  114. package/dist/index2.mjs +14 -13
  115. package/dist/index20.mjs +53 -30
  116. package/dist/index200.mjs +2 -2
  117. package/dist/index201.mjs +2 -127
  118. package/dist/index202.mjs +127 -2
  119. package/dist/index203.mjs +2 -74
  120. package/dist/index204.mjs +60 -60
  121. package/dist/index205.mjs +73 -30
  122. package/dist/index206.mjs +2 -11
  123. package/dist/index207.mjs +30 -3
  124. package/dist/index208.mjs +10 -3
  125. package/dist/index209.mjs +4 -13
  126. package/dist/index21.mjs +29 -6
  127. package/dist/index210.mjs +4 -7
  128. package/dist/index211.mjs +13 -12
  129. package/dist/index212.mjs +7 -5
  130. package/dist/index213.mjs +12 -33
  131. package/dist/index214.mjs +5 -31
  132. package/dist/index215.mjs +32 -27
  133. package/dist/index216.mjs +28 -58
  134. package/dist/index217.mjs +28 -2
  135. package/dist/index218.mjs +61 -2
  136. package/dist/index219.mjs +2 -2
  137. package/dist/index22.mjs +8 -21
  138. package/dist/index220.mjs +2 -2
  139. package/dist/index221.mjs +2 -2
  140. package/dist/index222.mjs +2 -2
  141. package/dist/index223.mjs +2 -2
  142. package/dist/index224.mjs +2 -244
  143. package/dist/index226.mjs +2 -33
  144. package/dist/index227.mjs +28 -56
  145. package/dist/index228.mjs +2 -25
  146. package/dist/index229.mjs +2 -2
  147. package/dist/index23.mjs +19 -30
  148. package/dist/index230.mjs +243 -36
  149. package/dist/index232.mjs +33 -2
  150. package/dist/index233.mjs +65 -2
  151. package/dist/index234.mjs +25 -2
  152. package/dist/index235.mjs +2 -2
  153. package/dist/index236.mjs +108 -2
  154. package/dist/index237.mjs +2 -2
  155. package/dist/index238.mjs +2 -108
  156. package/dist/index239.mjs +2 -2
  157. package/dist/index24.mjs +31 -18
  158. package/dist/index241.mjs +2 -2
  159. package/dist/index242.mjs +2 -2
  160. package/dist/index244.mjs +2 -2
  161. package/dist/index245.mjs +2 -4
  162. package/dist/index246.mjs +2 -2
  163. package/dist/index247.mjs +4 -2
  164. package/dist/index248.mjs +2 -2
  165. package/dist/index249.mjs +2 -18
  166. package/dist/index25.mjs +12 -85
  167. package/dist/index250.mjs +3 -47
  168. package/dist/index251.mjs +2 -2
  169. package/dist/index252.mjs +2 -2
  170. package/dist/index253.mjs +17 -2
  171. package/dist/index254.mjs +13 -2
  172. package/dist/index255.mjs +6 -91
  173. package/dist/index256.mjs +30 -2
  174. package/dist/index257.mjs +2 -2
  175. package/dist/index258.mjs +18 -3
  176. package/dist/index259.mjs +47 -2
  177. package/dist/index26.mjs +85 -12
  178. package/dist/index260.mjs +2 -2
  179. package/dist/index261.mjs +2 -17
  180. package/dist/index262.mjs +2 -13
  181. package/dist/index263.mjs +2 -6
  182. package/dist/index264.mjs +91 -30
  183. package/dist/index265.mjs +2 -2
  184. package/dist/index266.mjs +2 -2
  185. package/dist/index268.mjs +5 -0
  186. package/dist/index269.mjs +5 -0
  187. package/dist/index27.mjs +18 -9
  188. package/dist/index28.mjs +9 -9
  189. package/dist/index29.mjs +11 -101
  190. package/dist/index3.mjs +104 -103
  191. package/dist/index30.mjs +101 -20
  192. package/dist/index31.mjs +20 -65
  193. package/dist/index32.mjs +66 -96
  194. package/dist/index33.mjs +93 -16
  195. package/dist/index34.mjs +13 -13
  196. package/dist/index35.mjs +17 -9
  197. package/dist/index36.mjs +9 -9
  198. package/dist/index37.mjs +10 -122
  199. package/dist/index38.mjs +116 -18
  200. package/dist/index39.mjs +342 -1386
  201. package/dist/index4.mjs +1 -1
  202. package/dist/index40.mjs +25 -2
  203. package/dist/index41.mjs +1425 -49
  204. package/dist/index42.mjs +2 -51
  205. package/dist/index43.mjs +60 -33
  206. package/dist/index44.mjs +49 -13
  207. package/dist/index45.mjs +32 -2262
  208. package/dist/index46.mjs +15 -36
  209. package/dist/index47.mjs +2261 -42
  210. package/dist/index48.mjs +36 -99
  211. package/dist/index49.mjs +43 -96
  212. package/dist/index5.mjs +110 -15
  213. package/dist/index50.mjs +99 -81
  214. package/dist/index51.mjs +93 -57
  215. package/dist/index52.mjs +54 -68
  216. package/dist/index53.mjs +58 -62
  217. package/dist/index54.mjs +74 -58
  218. package/dist/index55.mjs +77 -15
  219. package/dist/index56.mjs +75 -14
  220. package/dist/index57.mjs +15 -59
  221. package/dist/index58.mjs +11 -118
  222. package/dist/index59.mjs +46 -112
  223. package/dist/index6.mjs +15 -195
  224. package/dist/index60.mjs +124 -23
  225. package/dist/index61.mjs +129 -2
  226. package/dist/index62.mjs +4 -22
  227. package/dist/index63.mjs +19 -149
  228. package/dist/index64.mjs +20 -71
  229. package/dist/index65.mjs +153 -15
  230. package/dist/index66.mjs +2 -63
  231. package/dist/index67.mjs +74 -4
  232. package/dist/index68.mjs +15 -2
  233. package/dist/index69.mjs +62 -5
  234. package/dist/index7.mjs +188 -101
  235. package/dist/index70.mjs +230 -1129
  236. package/dist/index71.mjs +5 -19
  237. package/dist/index72.mjs +127 -48
  238. package/dist/index73.mjs +67 -32
  239. package/dist/index74.mjs +87 -2
  240. package/dist/index75.mjs +29 -2
  241. package/dist/index76.mjs +9 -235
  242. package/dist/index77.mjs +74 -5
  243. package/dist/index78.mjs +3 -133
  244. package/dist/index79.mjs +2 -68
  245. package/dist/index8.mjs +103 -73
  246. package/dist/index80.mjs +79 -83
  247. package/dist/index81.mjs +52 -27
  248. package/dist/index82.mjs +5 -8
  249. package/dist/index83.mjs +4 -74
  250. package/dist/index84.mjs +178 -3
  251. package/dist/index85.mjs +53 -2
  252. package/dist/index86.mjs +68 -82
  253. package/dist/index87.mjs +2 -54
  254. package/dist/index88.mjs +5 -5
  255. package/dist/index89.mjs +1133 -4
  256. package/dist/index9.mjs +72 -90
  257. package/dist/index90.mjs +18 -177
  258. package/dist/index91.mjs +52 -50
  259. package/dist/index92.mjs +33 -69
  260. package/dist/index93.mjs +2 -34
  261. package/dist/index94.mjs +31 -40
  262. package/dist/index95.mjs +43 -2
  263. package/dist/index96.mjs +2 -28
  264. package/dist/index97.mjs +2 -18
  265. package/dist/index98.mjs +26 -213
  266. package/dist/index99.mjs +13 -175
  267. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  268. package/dist/providers/TikTokPixelProvider.d.ts +22 -0
  269. package/dist/providers/TikTokPixelProvider.d.ts.map +1 -0
  270. package/package.json +3 -2
  271. package/src/components/Checkout.tsx +1 -0
  272. package/src/contexts/CartContext.tsx +17 -6
  273. package/src/hooks/usePaystackPayment.ts +8 -1
  274. package/src/index.ts +5 -0
  275. package/src/providers/StorefrontProvider.tsx +11 -8
  276. package/src/providers/TikTokPixelProvider.tsx +226 -0
package/dist/index12.mjs CHANGED
@@ -1,677 +1,101 @@
1
1
  'use client';
2
- import { jsxs as a, jsx as e, Fragment as Ce } from "react/jsx-runtime";
3
- import { useState as x, useEffect as I, useMemo as O, useCallback as Pe } from "react";
4
- import { object as G, string as v, ValidationError as ke } from "./index39.mjs";
5
- import "./index20.mjs";
6
- import "@tanstack/react-query";
7
- import { useGetDeliveryZones as Me } from "./index35.mjs";
8
- import { useCart as qe } from "./index3.mjs";
9
- import { Modal as ie } from "./index16.mjs";
10
- import { FormInput as k } from "./index17.mjs";
11
- import { FormSelect as ce } from "./index18.mjs";
12
- import { Button as T } from "./index13.mjs";
13
- import { Loader2 as K, ChevronLeft as Ie, ChevronRight as je, CheckCircle as Ze, Package as oe, Banknote as me, Mail as Se, Phone as ze, ChevronDown as Fe, Zap as Le } from "lucide-react";
14
- import { formatCurrency as M, cn as C, getFbCookies as ue } from "./index19.mjs";
15
- import Te from "./index40.mjs";
16
- import { usePaystackPayment as Be } from "./index41.mjs";
17
- const Ae = (i) => i.replace(/\D/g, ""), _e = G({
18
- firstName: v().required("First name is required").min(2, "First name must be at least 2 characters").max(50, "First name must be less than 50 characters"),
19
- lastName: v().required("Last name is required").min(2, "Last name must be at least 2 characters").max(50, "Last name must be less than 50 characters"),
20
- email: v().required("Email is required").email("Please enter a valid email address"),
21
- phone: v().required("Phone number is required").test("nigerian-phone", "Please enter a valid Nigerian phone number (e.g. 0812 564 8668)", (i) => {
22
- if (!i) return !1;
23
- const q = Ae(i);
24
- return [
25
- /^0[789]\d{9}$/
26
- // 0xxxxxxxxx (11 digits total)
27
- ].some((N) => N.test(q));
28
- })
29
- }), Re = G({
30
- address: v().required("Street address is required").min(10, "Please provide a complete address"),
31
- city: v().required("City is required").min(3, "City name must be at least 3 characters"),
32
- state: v().required("State is required").test("not-empty", "State is required", (i) => !!i && i.trim() !== ""),
33
- deliveryZoneId: v().required("Delivery zone is required").test("not-empty", "Delivery zone is required", (i) => !!i && i.trim() !== "")
34
- }), $e = G({
35
- paymentMethod: v().oneOf(["cod", "online"], "Please select a payment method").required("Payment method is required")
36
- });
37
- function rt({
38
- isOpen: i,
39
- onClose: q,
40
- initialData: n,
41
- onSuccess: N,
42
- onError: c,
43
- submitButtonText: he = "Place Order",
44
- refundPolicy: j
2
+ import { jsx as e, jsxs as s, Fragment as j } from "react/jsx-runtime";
3
+ import { useState as a } from "react";
4
+ import { useCart as T } from "./index3.mjs";
5
+ import { Button as y } from "./index14.mjs";
6
+ import { Badge as k } from "./index16.mjs";
7
+ import { Tag as B, CheckCircle as b, X as E, AlertCircle as F } from "lucide-react";
8
+ import { cn as p } from "./index20.mjs";
9
+ function K({
10
+ onSuccess: i,
11
+ className: N,
12
+ placeholder: w = "Enter discount code",
13
+ inputClassName: C,
14
+ buttonClassName: A
45
15
  }) {
46
- var D, ee, te, ae, re, se, le, ne, de;
47
- const [o, b] = x("customer"), [Z, ye] = x(void 0), [f, W] = x(void 0), [p, B] = x(null), { refetch: V, isLoading: Y, cart: s, updateCartMutation: A, checkoutMutation: fe, clearAndCreateNewCart: H } = qe(), U = (D = s == null ? void 0 : s.brand) == null ? void 0 : D.paystackPublicKey, J = Be({
48
- publicKey: U || "",
49
- onSuccess: async (t) => {
16
+ var v;
17
+ const [n, g] = a(""), [u, o] = a(""), [l, f] = a(!1), [h, x] = a(!1), [d, c] = a(""), { applyDiscount: D, removeDiscount: I, cart: r } = T(), M = async (t) => {
18
+ if (t.preventDefault(), !!n.trim()) {
19
+ f(!0), c("");
50
20
  try {
51
- const { fbc: l, fbp: d } = ue(), m = await P.mutateAsync({
52
- firstName: r.firstName,
53
- lastName: r.lastName,
54
- email: r.email,
55
- phone: r.phone,
56
- address: r.address,
57
- city: r.city,
58
- deliveryZoneId: f || r.deliveryZoneId,
59
- paymentMethod: r.paymentMethod,
60
- paystackReference: t.reference,
61
- fbc: l,
62
- fbp: d
63
- });
64
- if ("error" in m) {
65
- const $ = m.error;
66
- c == null || c(new Error(($ == null ? void 0 : $.message) || "Checkout failed"));
67
- return;
68
- }
69
- B(m), H(), N == null || N(m.id);
70
- } catch (l) {
71
- c == null || c(l);
21
+ await D(n.trim()), o("Discount code applied!"), g(""), setTimeout(() => o(""), 3e3), i == null || i();
22
+ } catch (m) {
23
+ c((m == null ? void 0 : m.message) || "Invalid or expired discount code");
24
+ } finally {
25
+ f(!1);
72
26
  }
73
- },
74
- onClose: () => {
75
- console.log("Payment popup closed by user");
76
- }
77
- });
78
- I(() => {
79
- i && V();
80
- }, [i, V]);
81
- const { data: w } = Me(((ee = s == null ? void 0 : s.brand) == null ? void 0 : ee.id) || "", {
82
- enabled: !!((te = s == null ? void 0 : s.brand) != null && te.id)
83
- }), u = O(() => w == null ? void 0 : w.find((t) => t.id === Z), [w, Z]), y = O(() => u == null ? void 0 : u.zones.find((t) => t.id === f), [u, f]), P = fe;
84
- I(() => {
85
- i || (B(null), b("customer"), P.reset());
86
- }, [i]);
87
- const [r, _] = x({
88
- firstName: (n == null ? void 0 : n.firstName) || "",
89
- lastName: (n == null ? void 0 : n.lastName) || "",
90
- email: (n == null ? void 0 : n.email) || "",
91
- phone: (n == null ? void 0 : n.phone) || "",
92
- address: (n == null ? void 0 : n.address) || "",
93
- city: (n == null ? void 0 : n.city) || "",
94
- deliveryZoneId: (n == null ? void 0 : n.deliveryZoneId) || "",
95
- paymentMethod: (n == null ? void 0 : n.paymentMethod) || "online",
96
- notes: (n == null ? void 0 : n.notes) || ""
97
- });
98
- I(() => {
99
- i && b("customer");
100
- }, [i]);
101
- const [Q, X] = x(!1);
102
- I(() => {
103
- i && s && !n && !Q && (_((t) => {
104
- var l;
105
- return {
106
- ...t,
107
- firstName: s.customerFirstName || t.firstName,
108
- lastName: s.customerLastName || t.lastName,
109
- email: s.customerEmail || t.email,
110
- phone: s.customerPhone || t.phone,
111
- deliveryZoneId: ((l = s.deliveryZone) == null ? void 0 : l.id) || t.deliveryZoneId
112
- };
113
- }), X(!0)), i || X(!1);
114
- }, [i, s, n, Q]), I(() => {
115
- if (f) {
116
- const t = u == null ? void 0 : u.zones.find((l) => l.id === f);
117
- t && _((l) => ({
118
- ...l,
119
- paymentMethod: t.allowOnline ? "online" : "cod"
120
- }));
121
27
  }
122
- }, [f, u]);
123
- const [h, S] = x({}), [R, pe] = x(!1), g = (t) => {
124
- const { name: l, value: d } = t.target;
125
- _((m) => ({ ...m, [l]: d })), h[l] && S((m) => ({ ...m, [l]: void 0 }));
126
- }, z = Pe(
127
- (t) => {
128
- const l = r[t];
129
- if (!l) return;
130
- const d = {};
131
- t === "firstName" ? d.customerFirstName = l : t === "lastName" ? d.customerLastName = l : t === "email" ? d.customerEmail = l : t === "phone" && (d.customerPhone = l), A.mutate(d);
132
- },
133
- [r, A]
134
- ), F = (t) => {
135
- const l = {};
28
+ }, R = async () => {
29
+ x(!0), c("");
136
30
  try {
137
- if (t === "customer")
138
- _e.validateSync(r, { abortEarly: !1 });
139
- else if (t === "delivery") {
140
- const d = {
141
- address: r.address,
142
- city: r.city,
143
- state: Z || r.state || "",
144
- deliveryZoneId: f || r.deliveryZoneId || ""
145
- };
146
- Re.validateSync(d, { abortEarly: !1 });
147
- } else t === "payment" && $e.validateSync(r, { abortEarly: !1 });
148
- } catch (d) {
149
- d instanceof ke && d.inner.forEach((m) => {
150
- m.path && (l[m.path] = m.message);
151
- });
152
- }
153
- return S(l), Object.keys(l).length === 0;
154
- }, ve = () => {
155
- F(o) && (o === "customer" ? b("delivery") : o === "delivery" && b("payment"));
156
- }, Ne = () => {
157
- o === "payment" ? b("delivery") : o === "delivery" && b("customer");
158
- }, be = async () => {
159
- if (!F("customer")) {
160
- b("customer");
161
- return;
162
- }
163
- if (!F("delivery")) {
164
- b("delivery");
165
- return;
166
- }
167
- if (F("payment")) {
168
- if (r.paymentMethod === "online") {
169
- if (!U) {
170
- c == null || c(new Error("Paystack is not configured. Please contact support."));
171
- return;
172
- }
173
- if (!J.isLoaded) {
174
- c == null || c(new Error("Payment system is loading. Please try again."));
175
- return;
176
- }
177
- const t = Math.round(s.pricing.total * 100);
178
- J.initializePayment({
179
- email: r.email || (s == null ? void 0 : s.customerEmail) || "customer@example.com",
180
- amount: t,
181
- currency: "NGN",
182
- metadata: {
183
- cartId: s == null ? void 0 : s.id,
184
- custom_fields: [
185
- {
186
- display_name: "Customer Name",
187
- variable_name: "customer_name",
188
- value: `${r.firstName} ${r.lastName}`
189
- },
190
- {
191
- display_name: "Phone Number",
192
- variable_name: "phone_number",
193
- value: r.phone
194
- }
195
- ]
196
- }
197
- });
198
- return;
199
- }
200
- try {
201
- const { fbc: t, fbp: l } = ue(), d = await P.mutateAsync({
202
- firstName: r.firstName,
203
- lastName: r.lastName,
204
- email: r.email,
205
- phone: r.phone,
206
- address: r.address,
207
- city: r.city,
208
- deliveryZoneId: f || r.deliveryZoneId,
209
- paymentMethod: r.paymentMethod,
210
- fbc: t,
211
- fbp: l
212
- });
213
- if ("error" in d) {
214
- const m = d.error;
215
- c == null || c(new Error((m == null ? void 0 : m.message) || "Checkout failed"));
216
- return;
217
- }
218
- B(d), H(), N == null || N(d.id);
219
- } catch (t) {
220
- c == null || c(t);
221
- }
31
+ await I(), o("Discount code removed"), setTimeout(() => o(""), 3e3), i == null || i();
32
+ } catch (t) {
33
+ c((t == null ? void 0 : t.message) || "Failed to remove discount code");
34
+ } finally {
35
+ x(!1);
222
36
  }
223
- }, ge = {
224
- customer: "Customer Information",
225
- delivery: "Delivery Address",
226
- payment: "Payment Method"
227
- }, xe = O(() => ge[o], [o]), we = /* @__PURE__ */ a("div", { className: "space-y-3", children: [
228
- (o === "payment" || o === "delivery") && ((ae = s == null ? void 0 : s.pricing) == null ? void 0 : ae.total) && /* @__PURE__ */ a("div", { className: "text-sm text-black relative", children: [
229
- Y && /* @__PURE__ */ e("div", { className: "absolute flex items-center justify-center inset-0 bg-white opacity-50", children: /* @__PURE__ */ e(K, { className: "animate-spin text-accent-500" }) }),
230
- /* @__PURE__ */ a("div", { className: "flex items-center justify-between font-medium", children: [
231
- /* @__PURE__ */ e("span", { children: "Subtotal" }),
232
- /* @__PURE__ */ e("span", { children: M(((re = s == null ? void 0 : s.pricing) == null ? void 0 : re.subtotal) ?? 0) })
233
- ] }),
234
- s.pricing.discount && /* @__PURE__ */ a("div", { className: "flex items-center justify-between font-medium", children: [
235
- /* @__PURE__ */ e("span", { children: "Discount" }),
236
- /* @__PURE__ */ a("span", { className: "text-green-600", children: [
237
- "-",
238
- M(((le = (se = s == null ? void 0 : s.pricing) == null ? void 0 : se.discount) == null ? void 0 : le.amount) ?? 0)
239
- ] })
240
- ] }),
241
- /* @__PURE__ */ a("div", { className: "flex items-center justify-between font-medium", children: [
242
- /* @__PURE__ */ e("span", { children: "Delivery Fee" }),
243
- /* @__PURE__ */ e("span", { children: M(((ne = s == null ? void 0 : s.pricing) == null ? void 0 : ne.deliveryCharge) ?? 0) })
244
- ] }),
245
- /* @__PURE__ */ e("hr", { className: "border-gray-200 my-2" }),
246
- /* @__PURE__ */ a("div", { className: "flex items-center justify-between font-medium", children: [
247
- /* @__PURE__ */ e("span", { children: "Total" }),
248
- /* @__PURE__ */ e("span", { children: M(((de = s == null ? void 0 : s.pricing) == null ? void 0 : de.total) ?? 0) })
249
- ] })
37
+ };
38
+ return /* @__PURE__ */ e("div", { className: p("", N), children: /* @__PURE__ */ e("div", { className: "pt-6", children: /* @__PURE__ */ s("div", { className: "space-y-3", children: [
39
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-2 text-sm font-medium", children: [
40
+ /* @__PURE__ */ e(B, { className: "h-4 w-4" }),
41
+ "Discount Code"
250
42
  ] }),
251
- /* @__PURE__ */ a("div", { className: "flex gap-3", children: [
252
- o !== "customer" && /* @__PURE__ */ a(
253
- T,
43
+ r && r.pricing.discount && /* @__PURE__ */ s("div", { className: "flex items-center justify-between rounded-md bg-green-50 p-3", children: [
44
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
45
+ /* @__PURE__ */ e(b, { className: "h-4 w-4 text-green-600" }),
46
+ /* @__PURE__ */ e("span", { className: "text-sm font-medium text-green-900", children: "Code Applied:" }),
47
+ /* @__PURE__ */ e(k, { className: "bg-green-600 text-white", children: r.pricing.discount.code })
48
+ ] }),
49
+ /* @__PURE__ */ e(
50
+ y,
254
51
  {
255
- type: "button",
256
- variant: "outline",
257
- onClick: Ne,
258
- className: "flex-1 border-gray-400",
259
- size: "lg",
260
- children: [
261
- /* @__PURE__ */ e(Ie, { className: "mr-2 h-4 w-4" }),
262
- "Back"
263
- ]
52
+ variant: "ghost",
53
+ size: "sm",
54
+ onClick: R,
55
+ disabled: h,
56
+ className: "h-8 px-2 text-green-700 hover:text-green-800",
57
+ children: h ? "Removing..." : /* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(E, { className: "h-4 w-4" }) })
264
58
  }
265
- ),
266
- o !== "payment" ? /* @__PURE__ */ a(
267
- T,
59
+ )
60
+ ] }),
61
+ !((v = r == null ? void 0 : r.pricing) != null && v.discount) && /* @__PURE__ */ s("form", { onSubmit: M, className: "flex gap-2", children: [
62
+ /* @__PURE__ */ e(
63
+ "input",
268
64
  {
269
- type: "button",
270
- onClick: ve,
271
- className: "flex-1 bg-accent-500 text-white hover:bg-accent-600",
272
- size: "lg",
273
- children: [
274
- "Next",
275
- /* @__PURE__ */ e(je, { className: "ml-2 h-4 w-4" })
276
- ]
65
+ type: "text",
66
+ value: n,
67
+ onChange: (t) => g(t.target.value.toUpperCase()),
68
+ placeholder: w,
69
+ disabled: l,
70
+ className: p(
71
+ "flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm",
72
+ "focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-opacity-50",
73
+ "disabled:cursor-not-allowed disabled:opacity-50",
74
+ d && "border-red-500 focus:border-red-500 focus:ring-red-500",
75
+ C
76
+ )
277
77
  }
278
- ) : /* @__PURE__ */ e(
279
- T,
78
+ ),
79
+ /* @__PURE__ */ e(
80
+ y,
280
81
  {
281
- type: "button",
282
- onClick: be,
283
- disabled: P.isPending,
284
- className: "flex-1 bg-accent-500 text-white hover:bg-accent-600",
285
- size: "lg",
286
- children: P.isPending ? /* @__PURE__ */ a(Ce, { children: [
287
- /* @__PURE__ */ e(K, { className: "mr-2 h-4 w-4 animate-spin" }),
288
- "Processing..."
289
- ] }) : he
82
+ type: "submit",
83
+ disabled: !n.trim() || l,
84
+ className: p("bg-accent-500 text-white hover:bg-accent-600", A),
85
+ children: l ? "Applying..." : "Apply"
290
86
  }
291
87
  )
292
88
  ] }),
293
- P.isError && /* @__PURE__ */ e("div", { className: "rounded-lg bg-red-50 p-3 text-sm text-red-600", children: "Failed to place order. Please check your information and try again." })
294
- ] }), L = (t) => !(s != null && s.availablePaymentMethods.includes(t));
295
- if (p)
296
- return /* @__PURE__ */ e(
297
- ie,
298
- {
299
- isOpen: i,
300
- onClose: q,
301
- title: "Order Placed Successfully!",
302
- footer: /* @__PURE__ */ e(
303
- T,
304
- {
305
- onClick: q,
306
- className: "w-full bg-accent-500 text-white hover:bg-accent-600",
307
- size: "lg",
308
- children: "Close"
309
- }
310
- ),
311
- size: "lg",
312
- contentClassName: "p-6",
313
- children: /* @__PURE__ */ a("div", { className: "text-center space-y-6", children: [
314
- /* @__PURE__ */ e("div", { className: "flex justify-center", children: /* @__PURE__ */ e("div", { className: "w-20 h-20 bg-green-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ e(Ze, { className: "h-12 w-12 text-green-600" }) }) }),
315
- /* @__PURE__ */ a("div", { className: "space-y-2", children: [
316
- /* @__PURE__ */ e("h3", { className: "text-2xl font-bold text-gray-900", children: "Thank You!" }),
317
- /* @__PURE__ */ e("p", { className: "text-gray-600", children: "Your order has been placed successfully." })
318
- ] }),
319
- /* @__PURE__ */ a("div", { className: "bg-gray-50 rounded-lg p-6 space-y-4", children: [
320
- /* @__PURE__ */ a("div", { className: "flex items-center justify-center space-x-2 text-gray-700", children: [
321
- /* @__PURE__ */ e(oe, { className: "h-5 w-5" }),
322
- /* @__PURE__ */ a("span", { className: "font-medium", children: [
323
- "Order #",
324
- p.orderNumber
325
- ] })
326
- ] }),
327
- /* @__PURE__ */ a("div", { className: "border-t border-gray-200 pt-4 space-y-3", children: [
328
- /* @__PURE__ */ a("div", { className: "flex justify-between text-sm", children: [
329
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Customer" }),
330
- /* @__PURE__ */ a("span", { className: "font-medium text-gray-900", children: [
331
- p.firstName,
332
- " ",
333
- p.lastName
334
- ] })
335
- ] }),
336
- /* @__PURE__ */ a("div", { className: "flex justify-between text-sm", children: [
337
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Phone" }),
338
- /* @__PURE__ */ e("span", { className: "font-medium text-gray-900", children: p.phone })
339
- ] }),
340
- p.email && /* @__PURE__ */ a("div", { className: "flex justify-between text-sm", children: [
341
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Email" }),
342
- /* @__PURE__ */ e("span", { className: "font-medium text-gray-900", children: p.email })
343
- ] }),
344
- /* @__PURE__ */ a("div", { className: "flex justify-between text-sm", children: [
345
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Payment Method" }),
346
- /* @__PURE__ */ e("span", { className: "font-medium text-gray-900", children: p.paymentMethod === "cod" ? "Cash on Delivery" : "Online Payment" })
347
- ] }),
348
- /* @__PURE__ */ a("div", { className: "flex justify-between text-sm", children: [
349
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Total" }),
350
- /* @__PURE__ */ e("span", { className: "font-bold text-gray-900", children: M(p.totalPrice) })
351
- ] })
352
- ] })
353
- ] }),
354
- /* @__PURE__ */ e("div", { className: "bg-blue-50 rounded-lg p-4", children: /* @__PURE__ */ a("p", { className: "text-sm text-blue-900", children: [
355
- /* @__PURE__ */ e("span", { className: "font-semibold", children: "We'll be in touch shortly!" }),
356
- /* @__PURE__ */ e("br", {}),
357
- "Our team will contact you soon to arrange delivery and confirm your order details."
358
- ] }) })
359
- ] })
360
- }
361
- );
362
- const E = y && (o === "delivery" || o === "payment") && (y.waybillOnly || !(y != null && y.allowCOD));
363
- return /* @__PURE__ */ e(
364
- ie,
365
- {
366
- isOpen: i,
367
- onClose: q,
368
- title: xe,
369
- footer: we,
370
- size: "lg",
371
- contentClassName: "p-0",
372
- children: Y ? /* @__PURE__ */ e("div", { className: "flex items-center justify-center min-h-[300px]", children: /* @__PURE__ */ e(K, { className: "h-8 w-8 animate-spin text-gray-600" }) }) : /* @__PURE__ */ e("div", { className: "w-full overflow-hidden", children: /* @__PURE__ */ a("div", { className: "relative w-full", children: [
373
- E && /* @__PURE__ */ a("div", { className: "space-y-3 p-4 pb-0", children: [
374
- y.noteTitle && y.noteContent && /* @__PURE__ */ e("div", { className: "bg-amber-50 border border-amber-200 rounded-lg p-4", children: /* @__PURE__ */ a("div", { className: "flex items-start gap-3", children: [
375
- /* @__PURE__ */ e(oe, { className: "h-5 w-5 text-amber-600 flex-shrink-0 mt-0.5" }),
376
- /* @__PURE__ */ a("div", { className: "space-y-1", children: [
377
- /* @__PURE__ */ e("p", { className: "text-sm font-semibold text-amber-900 whitespace-pre-wrap", children: y.noteTitle }),
378
- /* @__PURE__ */ e("p", { className: "text-sm text-amber-800 whitespace-pre-wrap", children: y.noteContent })
379
- ] })
380
- ] }) }),
381
- !(y != null && y.allowCOD) && /* @__PURE__ */ e("div", { className: "bg-blue-50 border border-blue-200 rounded-lg p-4", children: /* @__PURE__ */ a("div", { className: "flex items-start gap-3", children: [
382
- /* @__PURE__ */ e(me, { className: "h-5 w-5 text-blue-600 flex-shrink-0 mt-0.5" }),
383
- /* @__PURE__ */ a("div", { className: "space-y-1", children: [
384
- /* @__PURE__ */ e("p", { className: "text-sm font-semibold text-blue-900", children: "Cash on Delivery Unavailable" }),
385
- /* @__PURE__ */ e("p", { className: "text-sm text-blue-800", children: "We're unable to offer cash on delivery to this location. Please use online payment to complete your order." })
386
- ] })
387
- ] }) })
388
- ] }),
389
- /* @__PURE__ */ a(
390
- "div",
391
- {
392
- className: C(
393
- "flex transition-transform duration-300 ease-in-out w-full",
394
- o === "customer" && "translate-x-0",
395
- o === "delivery" && "-translate-x-full",
396
- o === "payment" && "-translate-x-[200%]"
397
- ),
398
- children: [
399
- /* @__PURE__ */ e("div", { className: "w-full min-w-full flex-shrink-0 p-4", children: /* @__PURE__ */ e("div", { className: "space-y-4", children: /* @__PURE__ */ a("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
400
- /* @__PURE__ */ e(
401
- k,
402
- {
403
- label: "First Name",
404
- type: "text",
405
- name: "firstName",
406
- value: r.firstName,
407
- onChange: g,
408
- onBlur: () => z("firstName"),
409
- error: h.firstName,
410
- autoCorrect: "off",
411
- required: !0
412
- }
413
- ),
414
- /* @__PURE__ */ e(
415
- k,
416
- {
417
- label: "Last Name",
418
- type: "text",
419
- name: "lastName",
420
- value: r.lastName,
421
- onChange: g,
422
- onBlur: () => z("lastName"),
423
- error: h.lastName,
424
- autoCorrect: "off",
425
- required: !0
426
- }
427
- ),
428
- /* @__PURE__ */ e(
429
- k,
430
- {
431
- label: "Email",
432
- type: "email",
433
- name: "email",
434
- value: r.email,
435
- onChange: g,
436
- onBlur: () => z("email"),
437
- error: h.email,
438
- icon: /* @__PURE__ */ e(Se, { size: 16 }),
439
- autoCorrect: "off",
440
- required: !0
441
- }
442
- ),
443
- /* @__PURE__ */ e(
444
- k,
445
- {
446
- label: "Phone Number",
447
- type: "tel",
448
- name: "phone",
449
- value: r.phone,
450
- onChange: g,
451
- onBlur: () => z("phone"),
452
- placeholder: "e.g. 08012345678",
453
- maxLength: 18,
454
- error: h.phone,
455
- icon: /* @__PURE__ */ e(ze, { size: 16 }),
456
- autoCorrect: "off",
457
- required: !0,
458
- className: "font-semibold"
459
- }
460
- )
461
- ] }) }) }),
462
- /* @__PURE__ */ e("div", { className: "w-full min-w-full flex-shrink-0 p-4", children: /* @__PURE__ */ a("div", { className: "space-y-4", children: [
463
- /* @__PURE__ */ e(
464
- k,
465
- {
466
- label: "Street Address",
467
- type: "text",
468
- name: "address",
469
- value: r.address,
470
- onChange: g,
471
- error: h.address,
472
- autoCorrect: "off",
473
- required: !0
474
- }
475
- ),
476
- /* @__PURE__ */ a("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
477
- /* @__PURE__ */ e(
478
- k,
479
- {
480
- label: "Area",
481
- type: "text",
482
- name: "city",
483
- value: r.city,
484
- onChange: g,
485
- error: h.city,
486
- autoCorrect: "off",
487
- required: !0
488
- }
489
- ),
490
- /* @__PURE__ */ a(
491
- ce,
492
- {
493
- label: "State",
494
- name: "state",
495
- value: Z || "",
496
- onChange: (t) => {
497
- W("");
498
- const l = t.target.value;
499
- ye(l || void 0), h.state && S((d) => ({ ...d, state: void 0 }));
500
- },
501
- error: h.state,
502
- required: !0,
503
- children: [
504
- /* @__PURE__ */ e("option", { disabled: !0, value: "", children: "Select State" }),
505
- w == null ? void 0 : w.map((t) => /* @__PURE__ */ e("option", { value: t.id, children: t.name }, t.id))
506
- ]
507
- }
508
- ),
509
- /* @__PURE__ */ a(
510
- ce,
511
- {
512
- label: "Delivery Zone",
513
- value: f || "",
514
- onChange: (t) => {
515
- const l = t.target.value;
516
- W(l || void 0), h.deliveryZoneId && S((d) => ({ ...d, deliveryZoneId: void 0 })), l && A.mutate({ deliveryZoneId: l });
517
- },
518
- disabled: !u,
519
- error: h.deliveryZoneId,
520
- required: !0,
521
- children: [
522
- /* @__PURE__ */ e("option", { disabled: !0, value: "", children: u ? "Select Delivery Zone" : "Select State First" }),
523
- u == null ? void 0 : u.zones.map((t) => /* @__PURE__ */ a("option", { value: t.id, children: [
524
- t.name,
525
- " (",
526
- M(t.deliveryCost),
527
- ")"
528
- ] }, t.id))
529
- ]
530
- }
531
- )
532
- ] })
533
- ] }) }),
534
- /* @__PURE__ */ e("div", { className: "w-full min-w-full flex-shrink-0 p-4", children: /* @__PURE__ */ a("div", { className: "space-y-6", children: [
535
- j && /* @__PURE__ */ a("div", { className: `border border-gray-200 rounded-lg ${E ? "mt-4" : ""}`, children: [
536
- /* @__PURE__ */ a(
537
- "button",
538
- {
539
- type: "button",
540
- onClick: () => pe(!R),
541
- className: "overflow-hidden w-full flex items-center overflow-hidden rounded-lg rounded-b-none justify-between p-4 text-left hover:bg-gray-50 transition-colors",
542
- children: [
543
- /* @__PURE__ */ e("span", { className: "text-sm font-bold text-accent-700", children: j.title || "🤔 Curious about Refunds?" }),
544
- /* @__PURE__ */ e(
545
- Fe,
546
- {
547
- size: 16,
548
- className: C(
549
- "transform transition-transform duration-200 text-gray-500",
550
- R && "rotate-180"
551
- )
552
- }
553
- )
554
- ]
555
- }
556
- ),
557
- /* @__PURE__ */ e(
558
- "div",
559
- {
560
- className: C(
561
- "overflow-hidden transition-all duration-300 ease-in-out",
562
- R ? "max-h-96 opacity-100" : "max-h-0 opacity-0"
563
- ),
564
- children: /* @__PURE__ */ e("div", { className: "px-4 pb-4 border-t border-gray-100", children: /* @__PURE__ */ e("div", { className: "text-sm text-gray-600 space-y-3 pt-4", children: j.policies && /* @__PURE__ */ a("div", { children: [
565
- /* @__PURE__ */ e("h4", { className: "font-bold text-gray-800 mb-2", children: "Our Refund Policy" }),
566
- /* @__PURE__ */ e("ul", { className: "space-y-1", children: j.policies.map((t, l) => /* @__PURE__ */ a("li", { className: "flex items-start", children: [
567
- /* @__PURE__ */ e("span", { className: "text-green-600 mr-2", children: "✓" }),
568
- /* @__PURE__ */ e("span", { children: t })
569
- ] }, l)) })
570
- ] }) }) })
571
- }
572
- )
573
- ] }),
574
- /* @__PURE__ */ a("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [
575
- /* @__PURE__ */ e("div", { className: "relative", children: /* @__PURE__ */ a(
576
- "label",
577
- {
578
- className: C(
579
- "flex items-center justify-center relative p-4 border-2 rounded-xl cursor-pointer transition-all duration-200",
580
- r.paymentMethod === "online" ? "border-accent-500 bg-accent-50" : "border-gray-200 hover:border-gray-300",
581
- L("online") && "opacity-50 cursor-not-allowed"
582
- ),
583
- children: [
584
- /* @__PURE__ */ e(
585
- "input",
586
- {
587
- type: "radio",
588
- name: "paymentMethod",
589
- value: "online",
590
- disabled: L("online"),
591
- checked: r.paymentMethod === "online",
592
- onChange: g,
593
- className: "sr-only"
594
- }
595
- ),
596
- /* @__PURE__ */ a("div", { className: "flex flex-col items-center text-center space-y-3", children: [
597
- /* @__PURE__ */ e(
598
- "div",
599
- {
600
- className: C(
601
- "p-3 rounded-full",
602
- r.paymentMethod === "online" ? "bg-accent-100 text-accent-600" : "bg-gray-100 text-gray-600"
603
- ),
604
- children: /* @__PURE__ */ e(Le, { size: 24 })
605
- }
606
- ),
607
- /* @__PURE__ */ a("div", { children: [
608
- /* @__PURE__ */ e("div", { className: "font-semibold text-gray-900", children: "Pay Online" }),
609
- /* @__PURE__ */ e("div", { className: "text-sm text-gray-500 mt-1", children: "Bank transfer" }),
610
- /* @__PURE__ */ e(
611
- "img",
612
- {
613
- src: Te,
614
- alt: "Paystack",
615
- className: "h-4 w-auto mt-2 mx-auto"
616
- }
617
- )
618
- ] })
619
- ] }),
620
- r.paymentMethod === "online" && /* @__PURE__ */ e("div", { className: "absolute top-2 right-2", children: /* @__PURE__ */ e("div", { className: "w-5 h-5 bg-accent-600 rounded-full flex items-center justify-center", children: /* @__PURE__ */ e("div", { className: "w-2 h-2 bg-white rounded-full" }) }) })
621
- ]
622
- }
623
- ) }),
624
- /* @__PURE__ */ a(
625
- "label",
626
- {
627
- className: C(
628
- "flex items-center justify-center relative p-4 border-2 rounded-xl cursor-pointer transition-all duration-200",
629
- r.paymentMethod === "cod" ? "border-accent-500 bg-accent-50" : "border-gray-200 hover:border-gray-300",
630
- L("cod") && "opacity-50 cursor-not-allowed"
631
- ),
632
- children: [
633
- /* @__PURE__ */ e(
634
- "input",
635
- {
636
- type: "radio",
637
- name: "paymentMethod",
638
- value: "cod",
639
- disabled: L("cod"),
640
- checked: r.paymentMethod === "cod",
641
- onChange: g,
642
- className: "sr-only"
643
- }
644
- ),
645
- /* @__PURE__ */ a("div", { className: "flex flex-col items-center text-center space-y-3", children: [
646
- /* @__PURE__ */ e(
647
- "div",
648
- {
649
- className: C(
650
- "p-3 rounded-full",
651
- r.paymentMethod === "cod" ? "bg-accent-100 text-accent-600" : "bg-gray-100 text-gray-600"
652
- ),
653
- children: /* @__PURE__ */ e(me, { size: 24 })
654
- }
655
- ),
656
- /* @__PURE__ */ a("div", { children: [
657
- /* @__PURE__ */ e("div", { className: "font-semibold text-gray-900", children: "Pay on Delivery" }),
658
- /* @__PURE__ */ e("div", { className: "text-sm text-gray-500 mt-1", children: "Cash when item arrives" })
659
- ] })
660
- ] }),
661
- r.paymentMethod === "cod" && /* @__PURE__ */ e("div", { className: "absolute top-2 right-2", children: /* @__PURE__ */ e("div", { className: "w-5 h-5 bg-accent-600 rounded-full flex items-center justify-center", children: /* @__PURE__ */ e("div", { className: "w-2 h-2 bg-white rounded-full" }) }) })
662
- ]
663
- }
664
- )
665
- ] }),
666
- h.paymentMethod && /* @__PURE__ */ e("p", { className: "text-red-600 text-sm", children: h.paymentMethod })
667
- ] }) })
668
- ]
669
- }
670
- )
671
- ] }) })
672
- }
673
- );
89
+ d && /* @__PURE__ */ s("div", { className: "flex items-center gap-2 text-sm text-red-600", children: [
90
+ /* @__PURE__ */ e(F, { className: "h-4 w-4" }),
91
+ d
92
+ ] }),
93
+ u && /* @__PURE__ */ s("div", { className: "flex items-center gap-2 text-sm text-green-600", children: [
94
+ /* @__PURE__ */ e(b, { className: "h-4 w-4" }),
95
+ u
96
+ ] })
97
+ ] }) }) });
674
98
  }
675
99
  export {
676
- rt as Checkout
100
+ K as DiscountCodeInput
677
101
  };