@instockng/storefront-ui 1.0.17 → 1.0.19

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 (292) hide show
  1. package/dist/components/OrderConfirmation.d.ts +1 -1
  2. package/dist/components/OrderConfirmation.d.ts.map +1 -1
  3. package/dist/components/ShoppingCart.d.ts.map +1 -1
  4. package/dist/contexts/CartContext.d.ts +2 -2
  5. package/dist/contexts/CartContext.d.ts.map +1 -1
  6. package/dist/fetchers.d.ts +19 -0
  7. package/dist/fetchers.d.ts.map +1 -0
  8. package/dist/hooks/usePageTracking.d.ts +40 -0
  9. package/dist/hooks/usePageTracking.d.ts.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.mjs +101 -92
  13. package/dist/index10.mjs +149 -624
  14. package/dist/index100.mjs +22 -33
  15. package/dist/index101.mjs +22 -30
  16. package/dist/index102.mjs +32 -27
  17. package/dist/index103.mjs +152 -57
  18. package/dist/index104.mjs +20 -3
  19. package/dist/index105.mjs +31 -2
  20. package/dist/index106.mjs +84 -2
  21. package/dist/index107.mjs +37 -16
  22. package/dist/index108.mjs +144 -12
  23. package/dist/index109.mjs +55 -6
  24. package/dist/index11.mjs +94 -56
  25. package/dist/index110.mjs +23 -30
  26. package/dist/index111.mjs +30 -0
  27. package/dist/index112.mjs +26 -0
  28. package/dist/index113.mjs +28 -0
  29. package/dist/index114.mjs +24 -0
  30. package/dist/index115.mjs +25 -0
  31. package/dist/index116.mjs +24 -0
  32. package/dist/index117.mjs +68 -0
  33. package/dist/index118.mjs +21 -0
  34. package/dist/index119.mjs +42 -0
  35. package/dist/index12.mjs +645 -62
  36. package/dist/index120.mjs +27 -0
  37. package/dist/index121.mjs +37 -0
  38. package/dist/index122.mjs +30 -0
  39. package/dist/index123.mjs +22 -0
  40. package/dist/index124.mjs +24 -0
  41. package/dist/index125.mjs +50 -0
  42. package/dist/index126.mjs +26 -0
  43. package/dist/index127.mjs +271 -0
  44. package/dist/index128.mjs +73 -0
  45. package/dist/index129.mjs +11 -0
  46. package/dist/index13.mjs +50 -14
  47. package/dist/index130.mjs +5 -0
  48. package/dist/index131.mjs +5 -0
  49. package/dist/index132.mjs +36 -0
  50. package/dist/index133.mjs +5 -0
  51. package/dist/index134.mjs +24 -0
  52. package/dist/index135.mjs +59 -0
  53. package/dist/index136.mjs +32 -0
  54. package/dist/index137.mjs +10 -0
  55. package/dist/index138.mjs +55 -0
  56. package/dist/index139.mjs +9 -0
  57. package/dist/index14.mjs +62 -115
  58. package/dist/index140.mjs +15 -0
  59. package/dist/index141.mjs +10 -0
  60. package/dist/index142.mjs +31 -0
  61. package/dist/index143.mjs +5 -0
  62. package/dist/index144.mjs +73 -0
  63. package/dist/index145.mjs +170 -0
  64. package/dist/index146.mjs +5 -0
  65. package/dist/index147.mjs +5 -0
  66. package/dist/index148.mjs +5 -0
  67. package/dist/index149.mjs +21 -0
  68. package/dist/index15.mjs +23 -41
  69. package/dist/index150.mjs +35 -0
  70. package/dist/index151.mjs +41 -0
  71. package/dist/index152.mjs +21 -0
  72. package/dist/index153.mjs +21 -0
  73. package/dist/index154.mjs +5 -0
  74. package/dist/index155.mjs +23 -0
  75. package/dist/index156.mjs +49 -0
  76. package/dist/index157.mjs +5 -0
  77. package/dist/index158.mjs +33 -0
  78. package/dist/index159.mjs +21 -0
  79. package/dist/index16.mjs +115 -42
  80. package/dist/index160.mjs +5 -0
  81. package/dist/index161.mjs +5 -0
  82. package/dist/index162.mjs +5 -0
  83. package/dist/index163.mjs +5 -0
  84. package/dist/index164.mjs +75 -0
  85. package/dist/index165.mjs +5 -0
  86. package/dist/index166.mjs +56 -0
  87. package/dist/index167.mjs +5 -0
  88. package/dist/index168.mjs +39 -0
  89. package/dist/index169.mjs +155 -0
  90. package/dist/index17.mjs +42 -42
  91. package/dist/index170.mjs +5 -0
  92. package/dist/index171.mjs +5 -0
  93. package/dist/index172.mjs +22 -0
  94. package/dist/index173.mjs +5 -0
  95. package/dist/index174.mjs +5 -0
  96. package/dist/index175.mjs +29 -0
  97. package/dist/index176.mjs +5 -0
  98. package/dist/index177.mjs +5 -0
  99. package/dist/index178.mjs +27 -0
  100. package/dist/index179.mjs +26 -0
  101. package/dist/index18.mjs +41 -31
  102. package/dist/index180.mjs +5 -0
  103. package/dist/index181.mjs +5 -0
  104. package/dist/index182.mjs +5 -0
  105. package/dist/index183.mjs +26 -0
  106. package/dist/index184.mjs +5 -0
  107. package/dist/index185.mjs +26 -0
  108. package/dist/index186.mjs +5 -0
  109. package/dist/index187.mjs +5 -0
  110. package/dist/index188.mjs +5 -0
  111. package/dist/index189.mjs +26 -0
  112. package/dist/index19.mjs +40 -7
  113. package/dist/index190.mjs +5 -0
  114. package/dist/index191.mjs +26 -0
  115. package/dist/index192.mjs +5 -0
  116. package/dist/index193.mjs +5 -0
  117. package/dist/index194.mjs +5 -0
  118. package/dist/index195.mjs +5 -0
  119. package/dist/index196.mjs +5 -0
  120. package/dist/index197.mjs +5 -0
  121. package/dist/index198.mjs +5 -0
  122. package/dist/index199.mjs +5 -0
  123. package/dist/index2.mjs +31 -12
  124. package/dist/index20.mjs +27 -17
  125. package/dist/index200.mjs +130 -0
  126. package/dist/index201.mjs +5 -0
  127. package/dist/index202.mjs +77 -0
  128. package/dist/index203.mjs +77 -0
  129. package/dist/index204.mjs +5 -0
  130. package/dist/index205.mjs +5 -0
  131. package/dist/index206.mjs +111 -0
  132. package/dist/index207.mjs +5 -0
  133. package/dist/index208.mjs +5 -0
  134. package/dist/index209.mjs +5 -0
  135. package/dist/index21.mjs +6 -29
  136. package/dist/index210.mjs +5 -0
  137. package/dist/index211.mjs +5 -0
  138. package/dist/index212.mjs +5 -0
  139. package/dist/index213.mjs +5 -0
  140. package/dist/index214.mjs +5 -0
  141. package/dist/index215.mjs +5 -0
  142. package/dist/index216.mjs +40 -0
  143. package/dist/index217.mjs +5 -0
  144. package/dist/index218.mjs +5 -0
  145. package/dist/index219.mjs +5 -0
  146. package/dist/index22.mjs +20 -18
  147. package/dist/index220.mjs +247 -0
  148. package/dist/index221.mjs +5 -0
  149. package/dist/index222.mjs +36 -0
  150. package/dist/index223.mjs +68 -0
  151. package/dist/index224.mjs +28 -0
  152. package/dist/index225.mjs +5 -0
  153. package/dist/index226.mjs +5 -0
  154. package/dist/index227.mjs +5 -0
  155. package/dist/index228.mjs +5 -0
  156. package/dist/index229.mjs +5 -0
  157. package/dist/index23.mjs +32 -87
  158. package/dist/index230.mjs +5 -0
  159. package/dist/index231.mjs +5 -0
  160. package/dist/index232.mjs +5 -0
  161. package/dist/index233.mjs +7 -0
  162. package/dist/index234.mjs +5 -0
  163. package/dist/index235.mjs +5 -0
  164. package/dist/index236.mjs +34 -0
  165. package/dist/index237.mjs +14 -0
  166. package/dist/index238.mjs +7 -0
  167. package/dist/index239.mjs +7 -0
  168. package/dist/index24.mjs +12 -12
  169. package/dist/index240.mjs +16 -0
  170. package/dist/index241.mjs +10 -0
  171. package/dist/index242.mjs +15 -0
  172. package/dist/index243.mjs +8 -0
  173. package/dist/index244.mjs +36 -0
  174. package/dist/index245.mjs +34 -0
  175. package/dist/index246.mjs +31 -0
  176. package/dist/index247.mjs +64 -0
  177. package/dist/index248.mjs +5 -0
  178. package/dist/index249.mjs +5 -0
  179. package/dist/index25.mjs +85 -8
  180. package/dist/index250.mjs +21 -0
  181. package/dist/index251.mjs +50 -0
  182. package/dist/index252.mjs +5 -0
  183. package/dist/index253.mjs +5 -0
  184. package/dist/index254.mjs +5 -0
  185. package/dist/index255.mjs +5 -0
  186. package/dist/index256.mjs +94 -0
  187. package/dist/index257.mjs +5 -0
  188. package/dist/index258.mjs +6 -0
  189. package/dist/index259.mjs +5 -0
  190. package/dist/index26.mjs +20 -97
  191. package/dist/index260.mjs +5 -0
  192. package/dist/index261.mjs +20 -0
  193. package/dist/index262.mjs +16 -0
  194. package/dist/index263.mjs +9 -0
  195. package/dist/index264.mjs +33 -0
  196. package/dist/index265.mjs +5 -0
  197. package/dist/index266.mjs +5 -0
  198. package/dist/index267.mjs +5 -0
  199. package/dist/index27.mjs +11 -18
  200. package/dist/index28.mjs +11 -65
  201. package/dist/index29.mjs +94 -89
  202. package/dist/index3.mjs +117 -97
  203. package/dist/index30.mjs +20 -19
  204. package/dist/index31.mjs +65 -19
  205. package/dist/index32.mjs +93 -8
  206. package/dist/index33.mjs +18 -1432
  207. package/dist/index34.mjs +19 -2
  208. package/dist/index35.mjs +10 -56
  209. package/dist/index36.mjs +9 -49
  210. package/dist/index37.mjs +103 -33
  211. package/dist/index38.mjs +24 -14
  212. package/dist/index39.mjs +1411 -2241
  213. package/dist/index4.mjs +82 -197
  214. package/dist/index40.mjs +2 -36
  215. package/dist/index41.mjs +56 -43
  216. package/dist/index42.mjs +50 -98
  217. package/dist/index43.mjs +33 -97
  218. package/dist/index44.mjs +13 -79
  219. package/dist/index45.mjs +2255 -69
  220. package/dist/index46.mjs +36 -95
  221. package/dist/index47.mjs +43 -80
  222. package/dist/index48.mjs +99 -79
  223. package/dist/index49.mjs +93 -15
  224. package/dist/index5.mjs +15 -108
  225. package/dist/index50.mjs +77 -14
  226. package/dist/index51.mjs +58 -44
  227. package/dist/index52.mjs +63 -93
  228. package/dist/index53.mjs +51 -99
  229. package/dist/index54.mjs +78 -4
  230. package/dist/index55.mjs +18 -22
  231. package/dist/index56.mjs +17 -74
  232. package/dist/index57.mjs +63 -15
  233. package/dist/index58.mjs +121 -59
  234. package/dist/index59.mjs +122 -228
  235. package/dist/index6.mjs +190 -73
  236. package/dist/index60.mjs +23 -5
  237. package/dist/index61.mjs +145 -126
  238. package/dist/index62.mjs +2 -68
  239. package/dist/index63.mjs +22 -86
  240. package/dist/index64.mjs +73 -27
  241. package/dist/index65.mjs +15 -9
  242. package/dist/index66.mjs +58 -70
  243. package/dist/index67.mjs +4 -3
  244. package/dist/index68.mjs +2 -2
  245. package/dist/index69.mjs +5 -82
  246. package/dist/index7.mjs +97 -85
  247. package/dist/index70.mjs +1133 -53
  248. package/dist/index71.mjs +19 -5
  249. package/dist/index72.mjs +54 -4
  250. package/dist/index73.mjs +28 -174
  251. package/dist/index74.mjs +2 -53
  252. package/dist/index75.mjs +2 -69
  253. package/dist/index76.mjs +231 -30
  254. package/dist/index77.mjs +5 -42
  255. package/dist/index78.mjs +133 -3
  256. package/dist/index79.mjs +68 -2
  257. package/dist/index8.mjs +78 -162
  258. package/dist/index80.mjs +85 -19
  259. package/dist/index81.mjs +26 -53
  260. package/dist/index82.mjs +8 -28
  261. package/dist/index83.mjs +74 -6
  262. package/dist/index84.mjs +3 -51
  263. package/dist/index85.mjs +2 -6
  264. package/dist/index86.mjs +81 -10
  265. package/dist/index87.mjs +53 -6
  266. package/dist/index88.mjs +5 -27
  267. package/dist/index89.mjs +5 -2
  268. package/dist/index9.mjs +90 -90
  269. package/dist/index90.mjs +175 -66
  270. package/dist/index91.mjs +49 -163
  271. package/dist/index92.mjs +68 -30
  272. package/dist/index93.mjs +34 -11
  273. package/dist/index94.mjs +42 -3
  274. package/dist/index95.mjs +2 -4
  275. package/dist/index96.mjs +28 -13
  276. package/dist/index97.mjs +18 -7
  277. package/dist/index98.mjs +214 -11
  278. package/dist/index99.mjs +179 -4
  279. package/dist/providers/MetaPixelProvider.d.ts +98 -0
  280. package/dist/providers/MetaPixelProvider.d.ts.map +1 -0
  281. package/dist/providers/StorefrontProvider.d.ts +1 -0
  282. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  283. package/dist/styles.css +1 -1
  284. package/package.json +8 -3
  285. package/src/components/OrderConfirmation.tsx +0 -2
  286. package/src/components/ShoppingCart.tsx +12 -1
  287. package/src/contexts/CartContext.tsx +30 -5
  288. package/src/fetchers.ts +33 -0
  289. package/src/hooks/usePageTracking.ts +72 -0
  290. package/src/index.ts +5 -0
  291. package/src/providers/MetaPixelProvider.tsx +236 -0
  292. package/src/providers/StorefrontProvider.tsx +29 -3
package/dist/index7.mjs CHANGED
@@ -1,101 +1,113 @@
1
1
  'use client';
2
- import { jsxs as t, jsx as a } from "react/jsx-runtime";
3
- import { Package as v, Trash2 as p } from "lucide-react";
4
- import { cn as g, formatCurrency as m } from "./index17.mjs";
5
- import { useCart as N } from "./index3.mjs";
6
- import { useState as h, useCallback as f } from "react";
7
- function I({
8
- item: e,
9
- className: y,
10
- disabled: r = !1
2
+ import { jsxs as s, jsx as t, 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 "./index14.mjs";
5
+ import { Button as I } from "./index13.mjs";
6
+ import { Badge as p } from "./index15.mjs";
7
+ import { Package as O, ShoppingCart as q } from "lucide-react";
8
+ import { cn as g, formatCurrency as h } from "./index19.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
11
18
  }) {
12
- const [i, n] = h(!1), [s, c] = h(!1), { removeItem: o, updateItem: d } = N(), u = f(async (l) => {
13
- if (!(l <= 0)) {
14
- c(!0);
15
- try {
16
- await d(e.id, l);
17
- } catch (x) {
18
- console.error("Failed to update item quantity:", x);
19
- }
20
- c(!1);
21
- }
22
- }, [e.id, d]), b = f(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]);
31
- return /* @__PURE__ */ t(
32
- "div",
19
+ var d;
20
+ const [c, y] = f(
21
+ ((d = r.variants[0]) == null ? void 0 : d.id) || ""
22
+ ), [m, k] = f(1), a = r.variants.find((e) => e.id === c), C = r.variants.length > 1, l = a ? a.stock === void 0 || a.stock > 0 : !1, w = (e) => {
23
+ e.stopPropagation(), a && o && o(a.id, m);
24
+ };
25
+ return /* @__PURE__ */ s(
26
+ P,
33
27
  {
34
28
  className: g(
35
- "flex gap-3 transition-opacity",
36
- (r || i || s) && "opacity-50",
37
- y
29
+ "group overflow-hidden transition-all hover:shadow-lg",
30
+ i && "cursor-pointer",
31
+ x
38
32
  ),
33
+ onClick: i,
39
34
  children: [
40
- /* @__PURE__ */ a("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-gray-100", children: e.variant.product.thumbnailUrl ? /* @__PURE__ */ a(
41
- "img",
42
- {
43
- src: e.variant.product.thumbnailUrl,
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(v, { 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 })
53
- ] }),
54
- /* @__PURE__ */ a(
55
- "button",
35
+ /* @__PURE__ */ s("div", { className: "relative aspect-square overflow-hidden bg-gray-100", children: [
36
+ r.imageUrl ? /* @__PURE__ */ t(
37
+ "img",
38
+ {
39
+ src: r.imageUrl,
40
+ alt: r.name,
41
+ className: g(
42
+ "h-full w-full object-cover transition-transform group-hover:scale-105",
43
+ N
44
+ )
45
+ }
46
+ ) : /* @__PURE__ */ t("div", { className: "flex h-full w-full items-center justify-center", children: /* @__PURE__ */ t(O, { className: "h-16 w-16 text-gray-400" }) }),
47
+ !l && /* @__PURE__ */ t(p, { className: "absolute right-2 top-2 bg-red-600", children: "Out of Stock" }),
48
+ b && l && (a == null ? void 0 : a.stock) !== void 0 && a.stock < 10 && /* @__PURE__ */ s(p, { className: "absolute right-2 top-2 bg-orange-600", children: [
49
+ "Only ",
50
+ a.stock,
51
+ " left"
52
+ ] })
53
+ ] }),
54
+ /* @__PURE__ */ s(S, { className: "p-4", children: [
55
+ /* @__PURE__ */ t("h3", { className: "mb-1 font-semibold line-clamp-2", children: r.name }),
56
+ r.description && /* @__PURE__ */ t("p", { className: "mb-2 text-sm text-gray-600 line-clamp-2", children: r.description }),
57
+ C && /* @__PURE__ */ s("div", { className: "mb-3", children: [
58
+ /* @__PURE__ */ t("label", { className: "mb-1 block text-xs font-medium text-gray-700", children: "Select Option" }),
59
+ /* @__PURE__ */ t(
60
+ "select",
56
61
  {
57
- onClick: b,
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" })
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__ */ s("option", { value: e.id, children: [
69
+ e.name,
70
+ " - ",
71
+ h(e.price)
72
+ ] }, e.id))
73
+ }
74
+ )
75
+ ] }),
76
+ /* @__PURE__ */ t("div", { className: "mb-3 text-2xl font-bold text-blue-600", children: a && h(a.price) }),
77
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
78
+ /* @__PURE__ */ t("label", { className: "text-xs font-medium text-gray-700", children: "Qty:" }),
79
+ /* @__PURE__ */ t(
80
+ "input",
81
+ {
82
+ type: "number",
83
+ min: "1",
84
+ max: (a == null ? void 0 : a.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"
62
91
  }
63
92
  )
64
- ] }) }),
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",
69
- {
70
- "aria-label": "Decrease quantity",
71
- onClick: () => u(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: "−"
75
- }
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: () => u(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
- )
88
- ] }),
89
- /* @__PURE__ */ t("div", { className: "text-right", children: [
90
- /* @__PURE__ */ a("p", { className: "text-base font-medium", children: m(e.subtotal) }),
91
- e.basePrice !== e.finalPrice && /* @__PURE__ */ a("p", { className: "text-xs text-[#DC143C] line-through", children: m(e.basePrice * e.quantity) })
92
- ] })
93
93
  ] })
94
- ] })
94
+ ] }),
95
+ /* @__PURE__ */ t(j, { className: "p-4 pt-0", children: /* @__PURE__ */ t(
96
+ I,
97
+ {
98
+ onClick: w,
99
+ disabled: v || !l || n,
100
+ className: "w-full",
101
+ children: n ? /* @__PURE__ */ t(u, { children: "Adding..." }) : /* @__PURE__ */ s(u, { children: [
102
+ /* @__PURE__ */ t(q, { className: "mr-2 h-4 w-4" }),
103
+ "Add to Cart"
104
+ ] })
105
+ }
106
+ ) })
95
107
  ]
96
108
  }
97
109
  );
98
110
  }
99
111
  export {
100
- I as CartItem
112
+ D as ProductCard
101
113
  };