@instockng/storefront-ui 1.0.74 → 1.0.76

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 (254) hide show
  1. package/dist/components/ProductAddOns.d.ts +3 -1
  2. package/dist/components/ProductAddOns.d.ts.map +1 -1
  3. package/dist/components/RecommendedProducts.d.ts.map +1 -1
  4. package/dist/components/VariantPickerModal.d.ts +28 -0
  5. package/dist/components/VariantPickerModal.d.ts.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.mjs +104 -102
  9. package/dist/index10.mjs +162 -121
  10. package/dist/index100.mjs +20 -69
  11. package/dist/index101.mjs +55 -34
  12. package/dist/index102.mjs +32 -42
  13. package/dist/index103.mjs +2 -2
  14. package/dist/index104.mjs +2 -28
  15. package/dist/index105.mjs +20 -17
  16. package/dist/index106.mjs +54 -213
  17. package/dist/index107.mjs +28 -179
  18. package/dist/index108.mjs +6 -21
  19. package/dist/index109.mjs +50 -21
  20. package/dist/index11.mjs +116 -88
  21. package/dist/index110.mjs +6 -33
  22. package/dist/index111.mjs +11 -155
  23. package/dist/index112.mjs +7 -20
  24. package/dist/index113.mjs +28 -31
  25. package/dist/index114.mjs +2 -84
  26. package/dist/index115.mjs +68 -36
  27. package/dist/index116.mjs +163 -141
  28. package/dist/index117.mjs +2 -55
  29. package/dist/index118.mjs +26 -21
  30. package/dist/index119.mjs +11 -20
  31. package/dist/index12.mjs +86 -90
  32. package/dist/index120.mjs +211 -19
  33. package/dist/index121.mjs +174 -19
  34. package/dist/index122.mjs +15 -14
  35. package/dist/index123.mjs +16 -15
  36. package/dist/index124.mjs +26 -14
  37. package/dist/index125.mjs +147 -56
  38. package/dist/index126.mjs +10 -8
  39. package/dist/index127.mjs +22 -30
  40. package/dist/index128.mjs +77 -17
  41. package/dist/index129.mjs +30 -26
  42. package/dist/index13.mjs +83 -185
  43. package/dist/index130.mjs +140 -22
  44. package/dist/index131.mjs +50 -14
  45. package/dist/index132.mjs +17 -15
  46. package/dist/index133.mjs +18 -38
  47. package/dist/index134.mjs +17 -17
  48. package/dist/index135.mjs +19 -262
  49. package/dist/index136.mjs +13 -62
  50. package/dist/index137.mjs +21 -7
  51. package/dist/index138.mjs +21 -2
  52. package/dist/index139.mjs +65 -2
  53. package/dist/index14.mjs +196 -94
  54. package/dist/index140.mjs +12 -27
  55. package/dist/index141.mjs +39 -2
  56. package/dist/index142.mjs +24 -2
  57. package/dist/index143.mjs +33 -20
  58. package/dist/index144.mjs +25 -54
  59. package/dist/index145.mjs +18 -28
  60. package/dist/index146.mjs +20 -6
  61. package/dist/index147.mjs +44 -49
  62. package/dist/index148.mjs +23 -6
  63. package/dist/index149.mjs +267 -11
  64. package/dist/index15.mjs +82 -713
  65. package/dist/index150.mjs +70 -7
  66. package/dist/index151.mjs +8 -28
  67. package/dist/index152.mjs +2 -2
  68. package/dist/index153.mjs +2 -70
  69. package/dist/index154.mjs +30 -164
  70. package/dist/index155.mjs +2 -2
  71. package/dist/index159.mjs +1 -1
  72. package/dist/index16.mjs +722 -53
  73. package/dist/index160.mjs +1 -1
  74. package/dist/index161.mjs +1 -1
  75. package/dist/index162.mjs +1 -1
  76. package/dist/index163.mjs +1 -1
  77. package/dist/index165.mjs +3 -3
  78. package/dist/index166.mjs +1 -1
  79. package/dist/index168.mjs +3 -3
  80. package/dist/index169.mjs +1 -1
  81. package/dist/index17.mjs +58 -60
  82. package/dist/index174.mjs +2 -2
  83. package/dist/index176.mjs +1 -1
  84. package/dist/index178.mjs +2 -2
  85. package/dist/index179.mjs +5 -5
  86. package/dist/index18.mjs +60 -22
  87. package/dist/index182.mjs +1 -1
  88. package/dist/index185.mjs +1 -1
  89. package/dist/index188.mjs +3 -3
  90. package/dist/index189.mjs +1 -1
  91. package/dist/index19.mjs +22 -107
  92. package/dist/index193.mjs +2 -2
  93. package/dist/index195.mjs +2 -2
  94. package/dist/index199.mjs +1 -1
  95. package/dist/index2.mjs +2 -2
  96. package/dist/index20.mjs +105 -38
  97. package/dist/index201.mjs +2 -2
  98. package/dist/index21.mjs +37 -37
  99. package/dist/index210.mjs +2 -2
  100. package/dist/index212.mjs +1 -1
  101. package/dist/index213.mjs +1 -1
  102. package/dist/index214.mjs +31 -2
  103. package/dist/index215.mjs +11 -2
  104. package/dist/index216.mjs +4 -2
  105. package/dist/index217.mjs +4 -2
  106. package/dist/index218.mjs +13 -108
  107. package/dist/index219.mjs +7 -2
  108. package/dist/index22.mjs +42 -71
  109. package/dist/index220.mjs +12 -2
  110. package/dist/index221.mjs +4 -36
  111. package/dist/index222.mjs +33 -2
  112. package/dist/index223.mjs +31 -2
  113. package/dist/index224.mjs +28 -2
  114. package/dist/index225.mjs +61 -2
  115. package/dist/index226.mjs +2 -2
  116. package/dist/index227.mjs +2 -2
  117. package/dist/index228.mjs +2 -2
  118. package/dist/index229.mjs +2 -244
  119. package/dist/index23.mjs +67 -28
  120. package/dist/index231.mjs +2 -33
  121. package/dist/index232.mjs +2 -65
  122. package/dist/index233.mjs +31 -19
  123. package/dist/index234.mjs +2 -2
  124. package/dist/index235.mjs +2 -2
  125. package/dist/index237.mjs +244 -2
  126. package/dist/index238.mjs +2 -2
  127. package/dist/index239.mjs +33 -2
  128. package/dist/index24.mjs +29 -6
  129. package/dist/index240.mjs +65 -2
  130. package/dist/index241.mjs +25 -2
  131. package/dist/index243.mjs +2 -2
  132. package/dist/index244.mjs +108 -4
  133. package/dist/index245.mjs +2 -31
  134. package/dist/index246.mjs +2 -11
  135. package/dist/index247.mjs +2 -4
  136. package/dist/index248.mjs +2 -4
  137. package/dist/index249.mjs +2 -13
  138. package/dist/index25.mjs +8 -21
  139. package/dist/index250.mjs +2 -7
  140. package/dist/index251.mjs +2 -12
  141. package/dist/index252.mjs +2 -5
  142. package/dist/index253.mjs +2 -33
  143. package/dist/index254.mjs +2 -31
  144. package/dist/index255.mjs +2 -28
  145. package/dist/index256.mjs +2 -61
  146. package/dist/index257.mjs +4 -2
  147. package/dist/index258.mjs +3 -2
  148. package/dist/index259.mjs +2 -18
  149. package/dist/index26.mjs +19 -34
  150. package/dist/index260.mjs +2 -47
  151. package/dist/index261.mjs +17 -2
  152. package/dist/index262.mjs +13 -2
  153. package/dist/index263.mjs +6 -2
  154. package/dist/index264.mjs +30 -2
  155. package/dist/index265.mjs +2 -91
  156. package/dist/index266.mjs +2 -2
  157. package/dist/index267.mjs +18 -3
  158. package/dist/index268.mjs +47 -2
  159. package/dist/index269.mjs +2 -2
  160. package/dist/index27.mjs +34 -37
  161. package/dist/index270.mjs +2 -17
  162. package/dist/index271.mjs +2 -13
  163. package/dist/index272.mjs +91 -6
  164. package/dist/index273.mjs +2 -30
  165. package/dist/index274.mjs +2 -2
  166. package/dist/index276.mjs +2 -2
  167. package/dist/index277.mjs +5 -0
  168. package/dist/index28.mjs +28 -103
  169. package/dist/index29.mjs +104 -20
  170. package/dist/index3.mjs +5 -5
  171. package/dist/index30.mjs +29 -9
  172. package/dist/index31.mjs +9 -9
  173. package/dist/index32.mjs +11 -116
  174. package/dist/index33.mjs +116 -25
  175. package/dist/index34.mjs +25 -81
  176. package/dist/index35.mjs +81 -112
  177. package/dist/index36.mjs +109 -8
  178. package/dist/index37.mjs +9 -33
  179. package/dist/index38.mjs +27 -20
  180. package/dist/index39.mjs +26 -9
  181. package/dist/index4.mjs +1 -1
  182. package/dist/index40.mjs +10 -122
  183. package/dist/index41.mjs +114 -380
  184. package/dist/index42.mjs +384 -20
  185. package/dist/index43.mjs +24 -31
  186. package/dist/index44.mjs +32 -7
  187. package/dist/index45.mjs +6 -1432
  188. package/dist/index46.mjs +1432 -69
  189. package/dist/index47.mjs +70 -2
  190. package/dist/index48.mjs +2 -60
  191. package/dist/index49.mjs +57 -48
  192. package/dist/index5.mjs +1 -1
  193. package/dist/index50.mjs +51 -33
  194. package/dist/index51.mjs +33 -15
  195. package/dist/index52.mjs +12 -2260
  196. package/dist/index53.mjs +2263 -36
  197. package/dist/index54.mjs +36 -44
  198. package/dist/index55.mjs +44 -99
  199. package/dist/index56.mjs +99 -81
  200. package/dist/index57.mjs +75 -13
  201. package/dist/index58.mjs +15 -125
  202. package/dist/index59.mjs +93 -89
  203. package/dist/index6.mjs +1 -1
  204. package/dist/index60.mjs +102 -56
  205. package/dist/index61.mjs +55 -89
  206. package/dist/index62.mjs +82 -76
  207. package/dist/index63.mjs +100 -13
  208. package/dist/index64.mjs +17 -92
  209. package/dist/index65.mjs +70 -56
  210. package/dist/index66.mjs +62 -44
  211. package/dist/index67.mjs +47 -46
  212. package/dist/index68.mjs +48 -121
  213. package/dist/index69.mjs +133 -22
  214. package/dist/index7.mjs +6 -6
  215. package/dist/index70.mjs +24 -2
  216. package/dist/index71.mjs +2 -153
  217. package/dist/index72.mjs +4 -22
  218. package/dist/index73.mjs +22 -4
  219. package/dist/index74.mjs +149 -71
  220. package/dist/index75.mjs +74 -14
  221. package/dist/index76.mjs +14 -62
  222. package/dist/index77.mjs +63 -2
  223. package/dist/index78.mjs +234 -5
  224. package/dist/index79.mjs +5 -1133
  225. package/dist/index8.mjs +4 -4
  226. package/dist/index80.mjs +131 -17
  227. package/dist/index81.mjs +67 -54
  228. package/dist/index82.mjs +84 -30
  229. package/dist/index83.mjs +29 -2
  230. package/dist/index84.mjs +9 -235
  231. package/dist/index85.mjs +74 -5
  232. package/dist/index86.mjs +3 -133
  233. package/dist/index87.mjs +2 -68
  234. package/dist/index88.mjs +79 -83
  235. package/dist/index89.mjs +52 -27
  236. package/dist/index9.mjs +3 -3
  237. package/dist/index90.mjs +5 -8
  238. package/dist/index91.mjs +4 -74
  239. package/dist/index92.mjs +178 -3
  240. package/dist/index93.mjs +53 -2
  241. package/dist/index94.mjs +68 -82
  242. package/dist/index95.mjs +33 -53
  243. package/dist/index96.mjs +42 -5
  244. package/dist/index97.mjs +2 -5
  245. package/dist/index98.mjs +5 -178
  246. package/dist/index99.mjs +1134 -53
  247. package/dist/styles.css +1 -1
  248. package/package.json +1 -1
  249. package/src/components/ProductAddOns.stories.tsx +10 -3
  250. package/src/components/ProductAddOns.tsx +167 -112
  251. package/src/components/RecommendedProducts.tsx +130 -88
  252. package/src/components/ShoppingCart.tsx +1 -1
  253. package/src/components/VariantPickerModal.tsx +154 -0
  254. package/src/index.ts +3 -0
package/dist/index13.mjs CHANGED
@@ -1,203 +1,101 @@
1
1
  'use client';
2
- import { jsxs as a, Fragment as k, jsx as e } from "react/jsx-runtime";
3
- import { useState as X, useEffect as Z } from "react";
4
- import { useCart as $ } from "./index3.mjs";
5
- import { CartItem as A } from "./index12.mjs";
6
- import { DiscountCodeInput as G } from "./index14.mjs";
7
- import { Checkout as J } from "./index15.mjs";
8
- import { RecommendedProducts as K } from "./index11.mjs";
9
- import { Button as j } from "./index16.mjs";
10
- import { X as O, Loader2 as Q, Package as p } from "lucide-react";
11
- import { cn as c, formatCurrency as d } from "./index22.mjs";
12
- import { useHideBodyOverflow as S } from "./index44.mjs";
13
- function ne({
14
- isOpen: s,
15
- onClose: i,
16
- onCheckout: m,
17
- onContinueShopping: h,
18
- onPurchaseSuccess: f,
19
- className: C,
20
- showDiscountCode: E = !0,
21
- showContinueShopping: R = !0,
22
- checkoutButtonText: F = "Complete Purchase",
23
- continueShoppingText: I = "Continue Shopping",
24
- checkoutButtonClassName: L,
25
- continueShoppingButtonClassName: z,
26
- disableCheckout: Y = !1,
27
- emptyMessage: B = "Your cart is empty"
2
+ import { jsxs as t, jsx as a } from "react/jsx-runtime";
3
+ import { Package as g, Trash2 as p } from "lucide-react";
4
+ import { cn as N, formatCurrency as h } from "./index23.mjs";
5
+ import { useCart as w } from "./index3.mjs";
6
+ import { useState as f, useCallback as y } from "react";
7
+ function U({
8
+ item: e,
9
+ className: b,
10
+ disabled: r = !1
28
11
  }) {
29
- var x, y, N;
30
- const { cart: t, isLoading: l, error: o, trackCheckoutInitiated: D } = $(), [M, u] = X(!1);
31
- S(s), Z(() => {
32
- const r = (n) => {
33
- n.key === "Escape" && s && i();
34
- };
35
- return window.addEventListener("keydown", r), () => window.removeEventListener("keydown", r);
36
- }, [s, i]);
37
- const q = ((x = t == null ? void 0 : t.pricing) == null ? void 0 : x.subtotal) || 0, g = ((y = t == null ? void 0 : t.pricing.discount) == null ? void 0 : y.amount) || 0, H = () => {
38
- D(), u(!0), m == null || m();
39
- }, P = () => {
40
- h == null || h(), i();
41
- };
42
- return /* @__PURE__ */ a(k, { children: [
43
- /* @__PURE__ */ e(
44
- "div",
45
- {
46
- className: c(
47
- "fixed inset-0 z-40 bg-black/50 transition-opacity duration-300",
48
- s ? "opacity-100" : "pointer-events-none opacity-0"
49
- ),
50
- onClick: i,
51
- "aria-hidden": "true"
12
+ const [i, n] = f(!1), [s, c] = f(!1), { removeItem: o, updateItem: d } = w(), m = y(async (l) => {
13
+ if (!(l <= 0)) {
14
+ c(!0);
15
+ try {
16
+ await d(e.id, l);
17
+ } catch (v) {
18
+ console.error("Failed to update item quantity:", v);
52
19
  }
53
- ),
54
- /* @__PURE__ */ e(
55
- "div",
56
- {
57
- className: c(
58
- "fixed right-0 top-0 z-50 h-full w-full bg-white shadow-2xl transition-transform duration-300 ease-in-out sm:w-[480px]",
59
- s ? "translate-x-0" : "translate-x-full",
60
- C
61
- ),
62
- children: /* @__PURE__ */ a("div", { className: "flex h-full flex-col", children: [
63
- /* @__PURE__ */ e("div", { className: "border-b border-gray-300 px-4 py-2", children: /* @__PURE__ */ a("div", { className: "flex items-center justify-between", children: [
64
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
65
- /* @__PURE__ */ e("div", { className: "bg-accent-500 text-white px-2 py-1 rounded-full text-sm aspect-square flex items-center justify-center w-8 h-8", children: (N = t == null ? void 0 : t.items) == null ? void 0 : N.length }),
66
- /* @__PURE__ */ e("h2", { className: "text-lg font-medium", children: "Your Cart" })
20
+ c(!1);
21
+ }
22
+ }, [e.id, d]), x = y(async () => {
23
+ n(!0);
24
+ try {
25
+ await o(e.id);
26
+ } catch (l) {
27
+ console.error("Failed to remove item:", l);
28
+ }
29
+ n(!1);
30
+ }, [e.id, o]), u = e.variant.thumbnailUrl ?? e.variant.product.thumbnailUrl;
31
+ return /* @__PURE__ */ t(
32
+ "div",
33
+ {
34
+ className: N(
35
+ "flex gap-3 transition-opacity",
36
+ (r || i || s) && "opacity-50",
37
+ b
38
+ ),
39
+ children: [
40
+ /* @__PURE__ */ a("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-gray-100", children: u ? /* @__PURE__ */ a(
41
+ "img",
42
+ {
43
+ src: u,
44
+ alt: e.variant.product.name,
45
+ className: "h-full w-full object-cover"
46
+ }
47
+ ) : /* @__PURE__ */ a("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ a(g, { className: "h-6 w-6 text-gray-400" }) }) }),
48
+ /* @__PURE__ */ t("div", { className: "flex flex-1 flex-col justify-between py-1", children: [
49
+ /* @__PURE__ */ a("div", { children: /* @__PURE__ */ t("div", { className: "flex items-start justify-between gap-2", children: [
50
+ /* @__PURE__ */ t("div", { className: "flex-1", children: [
51
+ /* @__PURE__ */ a("h3", { className: "text-base font-semibold leading-tight", children: e.variant.product.name }),
52
+ e.variant.name && /* @__PURE__ */ a("p", { className: "mt-0.5 text-sm text-gray-600", children: e.variant.name })
67
53
  ] }),
68
- /* @__PURE__ */ e(
54
+ /* @__PURE__ */ a(
69
55
  "button",
70
56
  {
71
- onClick: i,
72
- className: "rounded-full p-2 transition-colors hover:bg-gray-100",
73
- "aria-label": "Close cart",
74
- children: /* @__PURE__ */ e(O, { className: "h-6 w-6" })
57
+ onClick: x,
58
+ disabled: r || i,
59
+ className: "text-gray-400 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-50",
60
+ "aria-label": "Remove item",
61
+ children: /* @__PURE__ */ a(p, { className: "h-5 w-5" })
75
62
  }
76
63
  )
77
64
  ] }) }),
78
- !l && !o && t && t.items && t.items.length > 0 && /* @__PURE__ */ e("div", { className: "bg-gray-50 px-4 py-3 border-b border-gray-200", children: (() => {
79
- var w;
80
- const n = ((w = t.pricing) == null ? void 0 : w.subtotal) || 0, b = Math.max(0, 2e4 - n), T = Math.min(100, n / 2e4 * 100), v = b <= 0;
81
- return /* @__PURE__ */ a("div", { className: "space-y-2", children: [
82
- /* @__PURE__ */ e("p", { className: "text-sm font-medium text-center", children: v ? /* @__PURE__ */ e("span", { className: "text-green-600", children: "You've unlocked FREE delivery! 🎉" }) : /* @__PURE__ */ a("span", { children: [
83
- "You're ",
84
- /* @__PURE__ */ e("span", { className: "text-red-500", children: d(b) }),
85
- " away from FREE delivery"
86
- ] }) }),
87
- /* @__PURE__ */ e("div", { className: "h-2 w-full bg-gray-200 rounded-full overflow-hidden", children: /* @__PURE__ */ e(
88
- "div",
65
+ /* @__PURE__ */ t("div", { className: "flex items-center justify-between mt-2", children: [
66
+ /* @__PURE__ */ t("div", { className: "inline-flex items-center overflow-hidden rounded-full bg-gray-200 text-gray-700", children: [
67
+ /* @__PURE__ */ a(
68
+ "button",
89
69
  {
90
- className: c(
91
- "h-full transition-all duration-500 ease-out",
92
- v ? "bg-green-500" : "bg-red-500"
93
- ),
94
- style: { width: `${T}%` }
70
+ "aria-label": "Decrease quantity",
71
+ onClick: () => m(e.quantity - 1),
72
+ disabled: r || e.quantity <= 1 || s,
73
+ className: "flex h-8 w-8 items-center justify-center transition-colors hover:bg-gray-300 disabled:cursor-not-allowed disabled:opacity-50",
74
+ children: "−"
95
75
  }
96
- ) })
97
- ] });
98
- })() }),
99
- l && /* @__PURE__ */ e("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ a("div", { className: "text-center", children: [
100
- /* @__PURE__ */ e(Q, { className: "mx-auto mb-4 h-12 w-12 animate-spin text-accent-500" }),
101
- /* @__PURE__ */ e("p", { className: "text-gray-600", children: "Loading cart..." })
102
- ] }) }),
103
- o && !l && /* @__PURE__ */ e("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ a("div", { className: "text-center", children: [
104
- /* @__PURE__ */ e(p, { className: "mx-auto mb-4 h-12 w-12 text-red-600" }),
105
- /* @__PURE__ */ e("p", { className: "text-red-600", children: "Failed to load cart. Please try again." })
106
- ] }) }),
107
- !l && !o && (!t || !t.items || t.items.length === 0) && /* @__PURE__ */ e("div", { className: "flex flex-1 items-center justify-center", children: /* @__PURE__ */ a("div", { className: "text-center", children: [
108
- /* @__PURE__ */ e(p, { className: "mx-auto mb-4 h-12 w-12 text-gray-400" }),
109
- /* @__PURE__ */ e("p", { className: "text-gray-600", children: B })
110
- ] }) }),
111
- !l && !o && t && t.items && t.items.length > 0 && /* @__PURE__ */ a(k, { children: [
112
- /* @__PURE__ */ a("div", { className: "flex-1 overflow-y-auto", children: [
113
- /* @__PURE__ */ e("div", { className: "space-y-4 p-4", children: t.items.map((r, n) => /* @__PURE__ */ a("div", { children: [
114
- /* @__PURE__ */ e(
115
- A,
116
- {
117
- item: r
118
- }
119
- ),
120
- /* @__PURE__ */ e("hr", { className: "border-gray-200 mt-2" })
121
- ] }, r.id)) }),
122
- E && /* @__PURE__ */ e("div", { className: "px-4 pb-4", children: /* @__PURE__ */ e(G, {}) })
76
+ ),
77
+ /* @__PURE__ */ a("span", { className: "px-3 text-base font-medium select-none", children: e.quantity }),
78
+ /* @__PURE__ */ a(
79
+ "button",
80
+ {
81
+ "aria-label": "Increase quantity",
82
+ onClick: () => m(e.quantity + 1),
83
+ disabled: r || s,
84
+ className: "flex h-8 w-8 items-center justify-center transition-colors hover:bg-gray-300 disabled:cursor-not-allowed disabled:opacity-50",
85
+ children: "+"
86
+ }
87
+ )
123
88
  ] }),
124
- /* @__PURE__ */ e(K, { limit: 6, className: "border-t border-gray-200" }),
125
- /* @__PURE__ */ a("div", { className: "border-t border-gray-300 bg-white", children: [
126
- /* @__PURE__ */ a("div", { className: " text-base", children: [
127
- /* @__PURE__ */ a("div", { className: "px-4 py-2 space-y-2", children: [
128
- /* @__PURE__ */ a("div", { className: "flex justify-between", children: [
129
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Subtotal" }),
130
- /* @__PURE__ */ e("span", { className: "font-semibold", children: d(q) })
131
- ] }),
132
- g > 0 && /* @__PURE__ */ a("div", { className: "flex justify-between text-green-600", children: [
133
- /* @__PURE__ */ e("span", { children: "Discount" }),
134
- /* @__PURE__ */ a("span", { className: "font-semibold", children: [
135
- "-",
136
- d(g)
137
- ] })
138
- ] }),
139
- /* @__PURE__ */ a("div", { className: "flex justify-between", children: [
140
- /* @__PURE__ */ e("span", { className: "text-gray-600", children: "Shipping" }),
141
- /* @__PURE__ */ e("span", { className: "font-semibold", children: t.pricing && t.deliveryZone ? d(t.pricing.deliveryCharge) : "-" })
142
- ] })
143
- ] }),
144
- /* @__PURE__ */ a("div", { className: "flex justify-between p-4 border-t border-gray-300 text-lg", children: [
145
- /* @__PURE__ */ e("span", { className: "font-bold", children: "Total" }),
146
- /* @__PURE__ */ e("span", { className: "font-bold", children: d(t.pricing.total) })
147
- ] })
148
- ] }),
149
- /* @__PURE__ */ a("div", { className: "px-4 py-2 space-y-2 pt-0", children: [
150
- /* @__PURE__ */ a(
151
- j,
152
- {
153
- onClick: H,
154
- disabled: Y || t.items.length === 0,
155
- className: c("w-full bg-accent-500 text-white hover:bg-accent-600", L),
156
- size: "lg",
157
- children: [
158
- /* @__PURE__ */ e(p, { className: "h-5 w-5" }),
159
- F
160
- ]
161
- }
162
- ),
163
- R && /* @__PURE__ */ e(
164
- j,
165
- {
166
- onClick: P,
167
- variant: "outline",
168
- className: c("w-full border-gray-300 text-gray-600 hover:bg-gray-100", z),
169
- size: "lg",
170
- children: I
171
- }
172
- )
173
- ] })
89
+ /* @__PURE__ */ t("div", { className: "text-right", children: [
90
+ /* @__PURE__ */ a("p", { className: "text-base font-medium", children: h(e.subtotal) }),
91
+ e.basePrice !== e.finalPrice && /* @__PURE__ */ a("p", { className: "text-xs text-[#DC143C] line-through", children: h(e.basePrice * e.quantity) })
174
92
  ] })
175
93
  ] })
176
94
  ] })
177
- }
178
- ),
179
- /* @__PURE__ */ e(
180
- J,
181
- {
182
- isOpen: M,
183
- onSuccess: (r) => {
184
- f == null || f(r), i();
185
- },
186
- onClose: () => u(!1),
187
- refundPolicy: {
188
- title: "🤔 Curious about Refunds?",
189
- policies: [
190
- "2 day return window from delivery date",
191
- "Items must be unused and in original packaging",
192
- "Refunds processed as soon as item is received",
193
- "Refunds issued to original payment method",
194
- "Contact hello@instock.ng to initiate a refund"
195
- ]
196
- }
197
- }
198
- )
199
- ] });
95
+ ]
96
+ }
97
+ );
200
98
  }
201
99
  export {
202
- ne as ShoppingCart
100
+ U as CartItem
203
101
  };
package/dist/index130.mjs CHANGED
@@ -1,30 +1,148 @@
1
1
  'use client';
2
- import { __exports as r } from "./index203.mjs";
3
- import { __require as c } from "./index111.mjs";
4
- import { __require as l } from "./index124.mjs";
5
- var n;
6
- function h() {
7
- return n ? r : (n = 1, function(t) {
8
- Object.defineProperty(t, "__esModule", {
2
+ import { __exports as p } from "./index181.mjs";
3
+ import { __require as I } from "./index149.mjs";
4
+ import { __require as q } from "./index174.mjs";
5
+ import { __require as v } from "./index182.mjs";
6
+ import { __require as O } from "./index119.mjs";
7
+ var N;
8
+ function w() {
9
+ return N ? p : (N = 1, function(d) {
10
+ Object.defineProperty(d, "__esModule", {
9
11
  value: !0
10
- }), Object.defineProperty(t, "isLocalURL", {
11
- enumerable: !0,
12
- get: function() {
13
- return u;
14
- }
15
12
  });
16
- const i = c(), s = l();
17
- function u(o) {
18
- if (!(0, i.isAbsoluteUrl)(o)) return !0;
19
- try {
20
- const e = (0, i.getLocationOrigin)(), a = new URL(o, e);
21
- return a.origin === e && (0, s.hasBasePath)(a.pathname);
22
- } catch {
23
- return !1;
13
+ function T(e, t) {
14
+ for (var r in t) Object.defineProperty(e, r, {
15
+ enumerable: !0,
16
+ get: t[r]
17
+ });
18
+ }
19
+ T(d, {
20
+ getNamedMiddlewareRegex: function() {
21
+ return A;
22
+ },
23
+ getNamedRouteRegex: function() {
24
+ return k;
25
+ },
26
+ getRouteRegex: function() {
27
+ return E;
28
+ },
29
+ parseParameter: function() {
30
+ return S;
24
31
  }
32
+ });
33
+ const m = I(), _ = q(), l = v(), h = O(), x = /\[((?:\[.*\])|.+)\]/;
34
+ function S(e) {
35
+ const t = e.match(x);
36
+ return R(t ? t[1] : e);
37
+ }
38
+ function R(e) {
39
+ const t = e.startsWith("[") && e.endsWith("]");
40
+ t && (e = e.slice(1, -1));
41
+ const r = e.startsWith("...");
42
+ return r && (e = e.slice(3)), {
43
+ key: e,
44
+ repeat: r,
45
+ optional: t
46
+ };
47
+ }
48
+ function P(e) {
49
+ const t = (0, h.removeTrailingSlash)(e).slice(1).split("/"), r = {};
50
+ let u = 1;
51
+ return {
52
+ parameterizedRoute: t.map((s) => {
53
+ const o = _.INTERCEPTION_ROUTE_MARKERS.find((i) => s.startsWith(i)), a = s.match(x);
54
+ if (o && a) {
55
+ const { key: i, optional: c, repeat: n } = R(a[1]);
56
+ return r[i] = {
57
+ pos: u++,
58
+ repeat: n,
59
+ optional: c
60
+ }, "/" + (0, l.escapeStringRegexp)(o) + "([^/]+?)";
61
+ } else if (a) {
62
+ const { key: i, repeat: c, optional: n } = R(a[1]);
63
+ return r[i] = {
64
+ pos: u++,
65
+ repeat: c,
66
+ optional: n
67
+ }, c ? n ? "(?:/(.+?))?" : "/(.+?)" : "/([^/]+?)";
68
+ } else
69
+ return "/" + (0, l.escapeStringRegexp)(s);
70
+ }).join(""),
71
+ groups: r
72
+ };
73
+ }
74
+ function E(e) {
75
+ const { parameterizedRoute: t, groups: r } = P(e);
76
+ return {
77
+ re: new RegExp("^" + t + "(?:/)?$"),
78
+ groups: r
79
+ };
80
+ }
81
+ function K() {
82
+ let e = 0;
83
+ return () => {
84
+ let t = "", r = ++e;
85
+ for (; r > 0; )
86
+ t += String.fromCharCode(97 + (r - 1) % 26), r = Math.floor((r - 1) / 26);
87
+ return t;
88
+ };
89
+ }
90
+ function y(e) {
91
+ let { interceptionMarker: t, getSafeRouteKey: r, segment: u, routeKeys: s, keyPrefix: o } = e;
92
+ const { key: a, optional: i, repeat: c } = R(u);
93
+ let n = a.replace(/\W/g, "");
94
+ o && (n = "" + o + n);
95
+ let f = !1;
96
+ (n.length === 0 || n.length > 30) && (f = !0), isNaN(parseInt(n.slice(0, 1))) || (f = !0), f && (n = r()), o ? s[n] = "" + o + a : s[n] = a;
97
+ const g = t ? (0, l.escapeStringRegexp)(t) : "";
98
+ return c ? i ? "(?:/" + g + "(?<" + n + ">.+?))?" : "/" + g + "(?<" + n + ">.+?)" : "/" + g + "(?<" + n + ">[^/]+?)";
99
+ }
100
+ function M(e, t) {
101
+ const r = (0, h.removeTrailingSlash)(e).slice(1).split("/"), u = K(), s = {};
102
+ return {
103
+ namedParameterizedRoute: r.map((o) => {
104
+ const a = _.INTERCEPTION_ROUTE_MARKERS.some((c) => o.startsWith(c)), i = o.match(/\[((?:\[.*\])|.+)\]/);
105
+ if (a && i) {
106
+ const [c] = o.split(i[0]);
107
+ return y({
108
+ getSafeRouteKey: u,
109
+ interceptionMarker: c,
110
+ segment: i[1],
111
+ routeKeys: s,
112
+ keyPrefix: t ? m.NEXT_INTERCEPTION_MARKER_PREFIX : void 0
113
+ });
114
+ } else return i ? y({
115
+ getSafeRouteKey: u,
116
+ segment: i[1],
117
+ routeKeys: s,
118
+ keyPrefix: t ? m.NEXT_QUERY_PARAM_PREFIX : void 0
119
+ }) : "/" + (0, l.escapeStringRegexp)(o);
120
+ }).join(""),
121
+ routeKeys: s
122
+ };
123
+ }
124
+ function k(e, t) {
125
+ const r = M(e, t);
126
+ return {
127
+ ...E(e),
128
+ namedRegex: "^" + r.namedParameterizedRoute + "(?:/)?$",
129
+ routeKeys: r.routeKeys
130
+ };
131
+ }
132
+ function A(e, t) {
133
+ const { parameterizedRoute: r } = P(e), { catchAll: u = !0 } = t;
134
+ if (r === "/")
135
+ return {
136
+ namedRegex: "^/" + (u ? ".*" : "") + "$"
137
+ };
138
+ const { namedParameterizedRoute: s } = M(e, !1);
139
+ let o = u ? "(?:(/.*)?)" : "";
140
+ return {
141
+ namedRegex: "^" + s + o + "$"
142
+ };
25
143
  }
26
- }(r), r);
144
+ }(p), p);
27
145
  }
28
146
  export {
29
- h as __require
147
+ w as __require
30
148
  };
package/dist/index131.mjs CHANGED
@@ -1,22 +1,58 @@
1
1
  'use client';
2
- import { __exports as e } from "./index204.mjs";
3
- var t;
4
- function u() {
5
- return t ? e : (t = 1, function(o) {
6
- Object.defineProperty(o, "__esModule", {
2
+ import { __exports as c } from "./index183.mjs";
3
+ import { __require as y } from "./index118.mjs";
4
+ import { __require as U } from "./index176.mjs";
5
+ var l;
6
+ function x() {
7
+ return l ? c : (l = 1, function(h) {
8
+ Object.defineProperty(h, "__esModule", {
7
9
  value: !0
8
- }), Object.defineProperty(o, "isBot", {
9
- enumerable: !0,
10
- get: function() {
11
- return i;
10
+ });
11
+ function m(e, t) {
12
+ for (var o in t) Object.defineProperty(e, o, {
13
+ enumerable: !0,
14
+ get: t[o]
15
+ });
16
+ }
17
+ m(h, {
18
+ formatUrl: function() {
19
+ return p;
20
+ },
21
+ formatWithValidation: function() {
22
+ return q;
23
+ },
24
+ urlObjectKeys: function() {
25
+ return u;
12
26
  }
13
27
  });
14
- const r = /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i;
15
- function i(n) {
16
- return r.test(n);
28
+ const _ = /* @__PURE__ */ y()._(U()), d = /https?|ftp|gopher|file/;
29
+ function p(e) {
30
+ let { auth: t, hostname: o } = e, a = e.protocol || "", n = e.pathname || "", f = e.hash || "", s = e.query || "", r = !1;
31
+ t = t ? encodeURIComponent(t).replace(/%3A/i, ":") + "@" : "", e.host ? r = t + e.host : o && (r = t + (~o.indexOf(":") ? "[" + o + "]" : o), e.port && (r += ":" + e.port)), s && typeof s == "object" && (s = String(_.urlQueryToSearchParams(s)));
32
+ let i = e.search || s && "?" + s || "";
33
+ return a && !a.endsWith(":") && (a += ":"), e.slashes || (!a || d.test(a)) && r !== !1 ? (r = "//" + (r || ""), n && n[0] !== "/" && (n = "/" + n)) : r || (r = ""), f && f[0] !== "#" && (f = "#" + f), i && i[0] !== "?" && (i = "?" + i), n = n.replace(/[?#]/g, encodeURIComponent), i = i.replace("#", "%23"), "" + a + r + n + i + f;
34
+ }
35
+ const u = [
36
+ "auth",
37
+ "hash",
38
+ "host",
39
+ "hostname",
40
+ "href",
41
+ "path",
42
+ "pathname",
43
+ "port",
44
+ "protocol",
45
+ "query",
46
+ "search",
47
+ "slashes"
48
+ ];
49
+ function q(e) {
50
+ return process.env.NODE_ENV === "development" && e !== null && typeof e == "object" && Object.keys(e).forEach((t) => {
51
+ u.includes(t) || console.warn("Unknown key passed via urlObject into url.format: " + t);
52
+ }), p(e);
17
53
  }
18
- }(e), e);
54
+ }(c), c);
19
55
  }
20
56
  export {
21
- u as __require
57
+ x as __require
22
58
  };
package/dist/index132.mjs CHANGED
@@ -1,24 +1,26 @@
1
1
  'use client';
2
- import { __exports as r } from "./index205.mjs";
3
- var u;
4
- function m() {
5
- return u ? r : (u = 1, function(t) {
6
- Object.defineProperty(t, "__esModule", {
2
+ import { __module as u } from "./index184.mjs";
3
+ import { __require as c } from "./index185.mjs";
4
+ var a;
5
+ function d() {
6
+ return a ? u.exports : (a = 1, function(o, e) {
7
+ Object.defineProperty(e, "__esModule", {
7
8
  value: !0
8
- }), Object.defineProperty(t, "omit", {
9
+ }), Object.defineProperty(e, "detectDomainLocale", {
9
10
  enumerable: !0,
10
11
  get: function() {
11
- return o;
12
+ return i;
12
13
  }
13
14
  });
14
- function o(i, f) {
15
- const n = {};
16
- return Object.keys(i).forEach((e) => {
17
- f.includes(e) || (n[e] = i[e]);
18
- }), n;
19
- }
20
- }(r), r);
15
+ const i = function() {
16
+ for (var n = arguments.length, r = new Array(n), t = 0; t < n; t++)
17
+ r[t] = arguments[t];
18
+ if (process.env.__NEXT_I18N_SUPPORT)
19
+ return c().detectDomainLocale(...r);
20
+ };
21
+ (typeof e.default == "function" || typeof e.default == "object" && e.default !== null) && typeof e.default.__esModule > "u" && (Object.defineProperty(e.default, "__esModule", { value: !0 }), Object.assign(e.default, e), o.exports = e.default);
22
+ }(u, u.exports), u.exports);
21
23
  }
22
24
  export {
23
- m as __require
25
+ d as __require
24
26
  };
package/dist/index133.mjs CHANGED
@@ -1,50 +1,30 @@
1
1
  'use client';
2
- import { __exports as u } from "./index206.mjs";
3
- import { __require as A } from "./index115.mjs";
4
- import { __require as x } from "./index116.mjs";
5
- var d;
6
- function v() {
7
- return d ? u : (d = 1, function(c) {
8
- Object.defineProperty(c, "__esModule", {
2
+ import { __exports as u } from "./index186.mjs";
3
+ var a;
4
+ function f() {
5
+ return a ? u : (a = 1, function(s) {
6
+ Object.defineProperty(s, "__esModule", {
9
7
  value: !0
10
- }), Object.defineProperty(c, "interpolateAs", {
8
+ }), Object.defineProperty(s, "parsePath", {
11
9
  enumerable: !0,
12
10
  get: function() {
13
- return y;
11
+ return i;
14
12
  }
15
13
  });
16
- const m = A(), R = x();
17
- function y(o, s, g) {
18
- let t = "";
19
- const a = (0, R.getRouteRegex)(o), p = a.groups, l = (
20
- // Try to match the dynamic route against the asPath
21
- (s !== o ? (0, m.getRouteMatcher)(a)(s) : "") || // Fall back to reading the values from the href
22
- // TODO: should this take priority; also need to change in the router.
23
- g
24
- );
25
- t = o;
26
- const f = Object.keys(p);
27
- return f.every((r) => {
28
- let e = l[r] || "";
29
- const { repeat: n, optional: _ } = p[r];
30
- let i = "[" + (n ? "..." : "") + r + "]";
31
- return _ && (i = (e ? "" : "/") + "[" + i + "]"), n && !Array.isArray(e) && (e = [
32
- e
33
- ]), (_ || r in l) && // Interpolate group into data URL if present
34
- (t = t.replace(i, n ? e.map(
35
- // these values should be fully encoded instead of just
36
- // path delimiter escaped since they are being inserted
37
- // into the URL and we expect URL encoded segments
38
- // when parsing dynamic route params
39
- (q) => encodeURIComponent(q)
40
- ).join("/") : encodeURIComponent(e)) || "/");
41
- }) || (t = ""), {
42
- params: f,
43
- result: t
14
+ function i(r) {
15
+ const e = r.indexOf("#"), n = r.indexOf("?"), t = n > -1 && (e < 0 || n < e);
16
+ return t || e > -1 ? {
17
+ pathname: r.substring(0, t ? n : e),
18
+ query: t ? r.substring(n, e > -1 ? e : void 0) : "",
19
+ hash: e > -1 ? r.slice(e) : ""
20
+ } : {
21
+ pathname: r,
22
+ query: "",
23
+ hash: ""
44
24
  };
45
25
  }
46
26
  }(u), u);
47
27
  }
48
28
  export {
49
- v as __require
29
+ f as __require
50
30
  };