@instockng/storefront-ui 1.0.107 → 1.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/dist/components/AssistantDrawer.d.ts +1 -3
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -1
  3. package/dist/contexts/AssistantContext.d.ts +19 -0
  4. package/dist/contexts/AssistantContext.d.ts.map +1 -0
  5. package/dist/index.d.ts +1 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.mjs +56 -56
  8. package/dist/index10.mjs +103 -73
  9. package/dist/index100.mjs +52 -7
  10. package/dist/index101.mjs +5 -74
  11. package/dist/index102.mjs +4 -3
  12. package/dist/index103.mjs +179 -2
  13. package/dist/index104.mjs +49 -79
  14. package/dist/index105.mjs +68 -53
  15. package/dist/index106.mjs +2 -6
  16. package/dist/index107.mjs +5 -4
  17. package/dist/index108.mjs +1123 -168
  18. package/dist/index109.mjs +20 -53
  19. package/dist/index11.mjs +73 -189
  20. package/dist/index110.mjs +55 -69
  21. package/dist/index111.mjs +33 -2
  22. package/dist/index112.mjs +2 -37
  23. package/dist/index113.mjs +2 -43
  24. package/dist/index115.mjs +1 -1
  25. package/dist/index116.mjs +1 -1
  26. package/dist/index117.mjs +8 -8
  27. package/dist/index118.mjs +6 -6
  28. package/dist/index119.mjs +3 -3
  29. package/dist/index12.mjs +171 -106
  30. package/dist/index120.mjs +1 -1
  31. package/dist/index121.mjs +1 -1
  32. package/dist/index122.mjs +1 -1
  33. package/dist/index123.mjs +2 -2
  34. package/dist/index124.mjs +2 -2
  35. package/dist/index125.mjs +3 -3
  36. package/dist/index126.mjs +1 -1
  37. package/dist/index127.mjs +3 -3
  38. package/dist/index128.mjs +2 -2
  39. package/dist/index129.mjs +2 -2
  40. package/dist/index13.mjs +127 -98
  41. package/dist/index130.mjs +1 -1
  42. package/dist/index131.mjs +3 -3
  43. package/dist/index132.mjs +1 -1
  44. package/dist/index133.mjs +1 -1
  45. package/dist/index134.mjs +3 -3
  46. package/dist/index135.mjs +2 -2
  47. package/dist/index136.mjs +4 -4
  48. package/dist/index137.mjs +1 -1
  49. package/dist/index138.mjs +3 -3
  50. package/dist/index139.mjs +4 -4
  51. package/dist/index14.mjs +94 -90
  52. package/dist/index140.mjs +1 -1
  53. package/dist/index141.mjs +1 -1
  54. package/dist/index142.mjs +1 -1
  55. package/dist/index143.mjs +1 -1
  56. package/dist/index144.mjs +1 -1
  57. package/dist/index145.mjs +1 -1
  58. package/dist/index146.mjs +1 -1
  59. package/dist/index147.mjs +2 -2
  60. package/dist/index148.mjs +3 -3
  61. package/dist/index15.mjs +84 -149
  62. package/dist/index151.mjs +1 -1
  63. package/dist/index153.mjs +2 -2
  64. package/dist/index154.mjs +1 -1
  65. package/dist/index155.mjs +6 -6
  66. package/dist/index156.mjs +2 -2
  67. package/dist/index157.mjs +2 -2
  68. package/dist/index159.mjs +2 -2
  69. package/dist/index16.mjs +157 -203
  70. package/dist/index160.mjs +2 -2
  71. package/dist/index161.mjs +1 -1
  72. package/dist/index163.mjs +8 -8
  73. package/dist/index164.mjs +8 -8
  74. package/dist/index165.mjs +2 -2
  75. package/dist/index167.mjs +2 -2
  76. package/dist/index168.mjs +2 -18
  77. package/dist/index169.mjs +11 -25
  78. package/dist/index17.mjs +197 -106
  79. package/dist/index170.mjs +26 -32
  80. package/dist/index171.mjs +32 -12
  81. package/dist/index172.mjs +9 -9
  82. package/dist/index173.mjs +18 -2
  83. package/dist/index174.mjs +2 -20
  84. package/dist/index175.mjs +13 -39
  85. package/dist/index176.mjs +46 -2
  86. package/dist/index177.mjs +2 -30
  87. package/dist/index178.mjs +24 -12
  88. package/dist/index179.mjs +18 -2
  89. package/dist/index18.mjs +96 -129
  90. package/dist/index180.mjs +2 -2
  91. package/dist/index181.mjs +2 -2
  92. package/dist/index182.mjs +2 -2
  93. package/dist/index183.mjs +2 -72
  94. package/dist/index184.mjs +72 -2
  95. package/dist/index185.mjs +2 -53
  96. package/dist/index186.mjs +53 -2
  97. package/dist/index187.mjs +2 -36
  98. package/dist/index188.mjs +30 -146
  99. package/dist/index189.mjs +152 -2
  100. package/dist/index19.mjs +140 -87
  101. package/dist/index190.mjs +2 -2
  102. package/dist/index191.mjs +2 -19
  103. package/dist/index192.mjs +19 -2
  104. package/dist/index193.mjs +2 -2
  105. package/dist/index194.mjs +2 -26
  106. package/dist/index195.mjs +26 -2
  107. package/dist/index196.mjs +2 -2
  108. package/dist/index197.mjs +2 -24
  109. package/dist/index198.mjs +17 -16
  110. package/dist/index199.mjs +23 -2
  111. package/dist/index2.mjs +29 -15
  112. package/dist/index20.mjs +82 -708
  113. package/dist/index201.mjs +2 -2
  114. package/dist/index202.mjs +2 -23
  115. package/dist/index203.mjs +23 -2
  116. package/dist/index204.mjs +2 -23
  117. package/dist/index205.mjs +23 -2
  118. package/dist/index206.mjs +2 -2
  119. package/dist/index208.mjs +2 -23
  120. package/dist/index209.mjs +23 -2
  121. package/dist/index21.mjs +688 -229
  122. package/dist/index210.mjs +2 -23
  123. package/dist/index211.mjs +23 -2
  124. package/dist/index212.mjs +2 -2
  125. package/dist/index213.mjs +2 -2
  126. package/dist/index215.mjs +2 -2
  127. package/dist/index216.mjs +2 -2
  128. package/dist/index217.mjs +2 -2
  129. package/dist/index218.mjs +2 -2
  130. package/dist/index219.mjs +2 -127
  131. package/dist/index22.mjs +260 -42
  132. package/dist/index220.mjs +127 -2
  133. package/dist/index221.mjs +2 -74
  134. package/dist/index222.mjs +59 -59
  135. package/dist/index223.mjs +74 -2
  136. package/dist/index224.mjs +30 -12
  137. package/dist/index225.mjs +11 -7
  138. package/dist/index226.mjs +3 -11
  139. package/dist/index227.mjs +3 -4
  140. package/dist/index228.mjs +13 -33
  141. package/dist/index229.mjs +7 -31
  142. package/dist/index23.mjs +42 -21
  143. package/dist/index230.mjs +11 -27
  144. package/dist/index231.mjs +5 -61
  145. package/dist/index232.mjs +33 -31
  146. package/dist/index233.mjs +31 -11
  147. package/dist/index234.mjs +28 -4
  148. package/dist/index235.mjs +61 -4
  149. package/dist/index236.mjs +2 -2
  150. package/dist/index237.mjs +108 -2
  151. package/dist/index238.mjs +2 -2
  152. package/dist/index239.mjs +2 -2
  153. package/dist/index240.mjs +2 -2
  154. package/dist/index241.mjs +2 -2
  155. package/dist/index242.mjs +2 -2
  156. package/dist/index243.mjs +2 -2
  157. package/dist/index244.mjs +2 -108
  158. package/dist/index245.mjs +2 -2
  159. package/dist/index247.mjs +3 -3
  160. package/dist/index250.mjs +1 -1
  161. package/dist/index252.mjs +2 -2
  162. package/dist/index253.mjs +1 -1
  163. package/dist/index254.mjs +2 -2
  164. package/dist/index262.mjs +2 -2
  165. package/dist/index263.mjs +2 -4
  166. package/dist/index264.mjs +4 -2
  167. package/dist/index265.mjs +2 -2
  168. package/dist/index266.mjs +2 -2
  169. package/dist/index267.mjs +3 -2
  170. package/dist/index268.mjs +2 -2
  171. package/dist/index269.mjs +2 -18
  172. package/dist/index270.mjs +16 -46
  173. package/dist/index271.mjs +13 -2
  174. package/dist/index272.mjs +6 -2
  175. package/dist/index273.mjs +30 -2
  176. package/dist/index275.mjs +2 -91
  177. package/dist/index276.mjs +18 -2
  178. package/dist/index277.mjs +47 -3
  179. package/dist/index278.mjs +2 -2
  180. package/dist/index279.mjs +2 -2
  181. package/dist/index280.mjs +2 -17
  182. package/dist/index281.mjs +2 -13
  183. package/dist/index282.mjs +91 -6
  184. package/dist/index283.mjs +2 -30
  185. package/dist/index3.mjs +3 -3
  186. package/dist/index4.mjs +34 -101
  187. package/dist/index43.mjs +1 -1
  188. package/dist/index44.mjs +1 -1
  189. package/dist/index45.mjs +1 -1
  190. package/dist/index46.mjs +1 -1
  191. package/dist/index47.mjs +1 -1
  192. package/dist/index48.mjs +2 -2
  193. package/dist/index5.mjs +92 -102
  194. package/dist/index50.mjs +2 -2
  195. package/dist/index54.mjs +3 -3
  196. package/dist/index58.mjs +1 -1
  197. package/dist/index6.mjs +111 -15
  198. package/dist/index63.mjs +17 -17
  199. package/dist/index64.mjs +2 -2
  200. package/dist/index65.mjs +1 -1
  201. package/dist/index66.mjs +1 -1
  202. package/dist/index67.mjs +1 -1
  203. package/dist/index68.mjs +1 -1
  204. package/dist/index69.mjs +1 -1
  205. package/dist/index7.mjs +15 -195
  206. package/dist/index70.mjs +1 -1
  207. package/dist/index71.mjs +1 -1
  208. package/dist/index72.mjs +1 -1
  209. package/dist/index73.mjs +1 -1
  210. package/dist/index74.mjs +1 -1
  211. package/dist/index75.mjs +1 -1
  212. package/dist/index76.mjs +1 -1
  213. package/dist/index77.mjs +1 -1
  214. package/dist/index78.mjs +1 -1
  215. package/dist/index79.mjs +4 -23
  216. package/dist/index8.mjs +135 -189
  217. package/dist/index80.mjs +24 -2
  218. package/dist/index81.mjs +2 -153
  219. package/dist/index82.mjs +149 -19
  220. package/dist/index83.mjs +21 -73
  221. package/dist/index84.mjs +74 -14
  222. package/dist/index85.mjs +14 -62
  223. package/dist/index86.mjs +62 -4
  224. package/dist/index87.mjs +37 -2
  225. package/dist/index88.mjs +42 -5
  226. package/dist/index89.mjs +230 -1129
  227. package/dist/index9.mjs +240 -99
  228. package/dist/index90.mjs +5 -19
  229. package/dist/index91.mjs +127 -48
  230. package/dist/index92.mjs +67 -32
  231. package/dist/index93.mjs +87 -2
  232. package/dist/index94.mjs +23 -229
  233. package/dist/index95.mjs +8 -5
  234. package/dist/index96.mjs +66 -125
  235. package/dist/index97.mjs +3 -67
  236. package/dist/index98.mjs +2 -87
  237. package/dist/index99.mjs +78 -24
  238. package/dist/providers/StorefrontProvider.d.ts +3 -1
  239. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  240. package/dist/styles.css +1 -1
  241. package/package.json +1 -1
  242. package/src/components/AssistantDrawer.stories.tsx +0 -50
  243. package/src/components/AssistantDrawer.tsx +4 -8
  244. package/src/contexts/AssistantContext.tsx +62 -0
  245. package/src/index.ts +3 -2
  246. package/src/providers/StorefrontProvider.tsx +17 -2
  247. package/dist/components/SearchAssistantTrigger.d.ts +0 -12
  248. package/dist/components/SearchAssistantTrigger.d.ts.map +0 -1
  249. package/src/components/SearchAssistantTrigger.stories.tsx +0 -35
  250. package/src/components/SearchAssistantTrigger.tsx +0 -41
package/dist/index118.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  'use client';
2
- import { __module as L } from "./index173.mjs";
3
- import "./index88.mjs";
2
+ import { __module as L } from "./index174.mjs";
3
+ import "./index107.mjs";
4
4
  import { __require as K } from "./index115.mjs";
5
5
  import F from "react/jsx-runtime";
6
6
  import J from "react-dom";
7
7
  import N from "react";
8
- import { __require as B } from "./index174.mjs";
9
- import { __require as D } from "./index175.mjs";
10
- import { __require as G } from "./index170.mjs";
11
- import { __exports as Q } from "./index93.mjs";
8
+ import { __require as B } from "./index175.mjs";
9
+ import { __require as D } from "./index176.mjs";
10
+ import { __require as G } from "./index171.mjs";
11
+ import { __exports as Q } from "./index112.mjs";
12
12
  var w;
13
13
  function ie() {
14
14
  return w ? L.exports : (w = 1, function(x, o) {
package/dist/index119.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { __exports as r } from "./index176.mjs";
3
- import { __require as m } from "./index177.mjs";
4
- import { __require as l } from "./index178.mjs";
2
+ import { __exports as r } from "./index177.mjs";
3
+ import { __require as m } from "./index178.mjs";
4
+ import { __require as l } from "./index179.mjs";
5
5
  var i;
6
6
  function p() {
7
7
  return i ? r : (i = 1, function(t) {
package/dist/index12.mjs CHANGED
@@ -1,134 +1,199 @@
1
1
  'use client';
2
- import { jsx as i, jsxs as s, Fragment as f } from "react/jsx-runtime";
2
+ import { jsxs as a, jsx as t, Fragment as C } from "react/jsx-runtime";
3
+ import { useState as f, useRef as V } from "react";
4
+ import { ChevronLeft as U, ChevronRight as z } from "lucide-react";
5
+ import { Switch as G } from "./index51.mjs";
6
+ import { Badge as T } from "./index26.mjs";
7
+ import { cn as P, formatCurrency as k } from "./index30.mjs";
8
+ import { VariantPickerModal as _ } from "./index14.mjs";
3
9
  import "./index31.mjs";
4
- import { useGetCartRecommendations as U } from "./index43.mjs";
5
10
  import "@tanstack/react-query";
11
+ import { useGetProductAddOns as $ } from "./index45.mjs";
6
12
  import { useCart as q } from "./index3.mjs";
7
- import { cn as p, formatCurrency as z } from "./index30.mjs";
8
- import { Button as B } from "./index24.mjs";
9
- import { Loader2 as b, Package as D, ShoppingCart as E } from "lucide-react";
10
- import { useState as r, useEffect as G } from "react";
11
- import { VariantPickerModal as H } from "./index13.mjs";
12
- function _({
13
- limit: P,
14
- className: C
13
+ function le({
14
+ slug: g,
15
+ products: x,
16
+ onToggle: u,
17
+ selectedProductIds: A,
18
+ onProductClick: H,
19
+ className: p,
20
+ title: j = "Popular add-ons",
21
+ limit: D = 6
15
22
  }) {
16
- const { cart: o, addItem: k } = q(), { data: c, isLoading: I, error: A } = U(o == null ? void 0 : o.id, P), [j, h] = r([]), [F, u] = r([]), [V, g] = r([]), [L, x] = r([]), [v, m] = r(null), [M, w] = r(!1);
17
- if (G(() => {
18
- x([]), u([]), g([]);
19
- }, [c]), !o)
20
- return null;
21
- if (I)
22
- return /* @__PURE__ */ i("div", { className: "py-6", children: /* @__PURE__ */ i("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ i(b, { className: "h-6 w-6 animate-spin text-accent-500" }) }) });
23
- const a = c == null ? void 0 : c.filter(
24
- (e) => !L.includes(e.id)
25
- );
26
- if (A || !a || a.length === 0)
27
- return null;
28
- const N = async (e, t) => {
29
- h((n) => [...n, e.id]);
30
- try {
31
- await k(e.slug, e.name, t.price, t.sku, 1), u((n) => [...n, e.id]), setTimeout(() => {
32
- g((n) => [...n, e.id]);
33
- }, 500), setTimeout(() => {
34
- x((n) => [...n, e.id]);
35
- }, 1e3);
36
- } finally {
37
- h((n) => n.filter((l) => l !== e.id));
23
+ const { cart: s, addItem: v, removeItem: I } = q(), { data: M, isLoading: N } = $(g || "", D, {
24
+ enabled: !!g && !x
25
+ }), c = x || M || [], W = A || c.filter((e) => s == null ? void 0 : s.items.some(
26
+ (n) => e.variants.some((r) => r.id === n.variant.id)
27
+ )).map((e) => e.id), [y, m] = f(null), [B, b] = f(!1), F = async (e, n) => {
28
+ if (u) {
29
+ u(e, n);
30
+ return;
38
31
  }
39
- }, T = (e) => {
40
- if (e.variants.length > 1) {
32
+ if (n && e.variants.length > 1) {
41
33
  m(e);
42
34
  return;
43
35
  }
44
- const t = e.variants[0];
45
- t && N(e, t);
46
- }, S = async (e, t) => {
47
- w(!0);
36
+ const r = e.variants[0];
37
+ if (r)
38
+ if (n)
39
+ await v(
40
+ e.slug,
41
+ e.name,
42
+ r.price,
43
+ r.sku,
44
+ 1
45
+ );
46
+ else {
47
+ const l = s == null ? void 0 : s.items.find(
48
+ (i) => e.variants.some((d) => d.id === i.variant.id)
49
+ );
50
+ l && await I(l.id);
51
+ }
52
+ }, S = async (e, n) => {
53
+ b(!0);
48
54
  try {
49
- const n = a.find((d) => d.id === e.id), l = n == null ? void 0 : n.variants.find((d) => d.id === t.id);
50
- n && l && await N(n, l), m(null);
55
+ await v(
56
+ e.slug,
57
+ e.name,
58
+ n.price,
59
+ n.sku,
60
+ 1
61
+ ), m(null);
51
62
  } finally {
52
- w(!1);
63
+ b(!1);
64
+ }
65
+ }, o = V(null), [L, O] = f(0), E = () => {
66
+ if (o.current) {
67
+ const { scrollLeft: e, scrollWidth: n, clientWidth: r } = o.current, l = e / (n - r);
68
+ O(l || 0);
69
+ }
70
+ }, w = (e) => {
71
+ if (o.current) {
72
+ const { clientWidth: n } = o.current, r = n * 0.9;
73
+ o.current.scrollBy({
74
+ left: e === "left" ? -r : r,
75
+ behavior: "smooth"
76
+ });
53
77
  }
54
78
  };
55
- return /* @__PURE__ */ s(f, { children: [
56
- /* @__PURE__ */ s("div", { className: p("pt-2", C), children: [
57
- /* @__PURE__ */ i("div", { className: "mb-2 px-4", children: /* @__PURE__ */ i("h3", { className: "text-lg font-semibold text-gray-900", children: "Frequently bought together" }) }),
58
- /* @__PURE__ */ i("div", { className: "overflow-x-auto", children: /* @__PURE__ */ s("div", { className: "flex gap-4 pb-2 transition-all duration-500", children: [
59
- /* @__PURE__ */ i("div", { className: "flex-shrink-0 w-1" }),
60
- a == null ? void 0 : a.map((e) => {
61
- const t = e.variants[0];
62
- if (!t) return null;
63
- const n = j.includes(e.id), l = F.includes(e.id), d = V.includes(e.id);
64
- return /* @__PURE__ */ i(
79
+ return (!c || c.length === 0) && !N ? null : N ? /* @__PURE__ */ a("div", { className: P("w-full py-8 space-y-4 animate-pulse", p), style: { maxWidth: "calc(100vw - calc(var(--spacing) * 7))" }, children: [
80
+ /* @__PURE__ */ t("div", { className: "h-4 w-32 bg-gray-200 rounded px-1 mb-6" }),
81
+ /* @__PURE__ */ a("div", { className: "flex gap-4 overflow-x-hidden", children: [
82
+ /* @__PURE__ */ t("div", { className: "min-w-[90%] h-[90px] bg-gray-100 rounded-[2rem]" }),
83
+ /* @__PURE__ */ t("div", { className: "min-w-[90%] h-[90px] bg-gray-100 rounded-[2rem]" })
84
+ ] })
85
+ ] }) : /* @__PURE__ */ a(C, { children: [
86
+ /* @__PURE__ */ a("div", { className: p, children: [
87
+ /* @__PURE__ */ t("div", { className: "px-1 mb-3", children: /* @__PURE__ */ t("h3", { className: "text-lg font-bold tracking-tight text-gray-900", children: j }) }),
88
+ /* @__PURE__ */ t("div", { className: "relative", children: /* @__PURE__ */ t(
89
+ "div",
90
+ {
91
+ ref: o,
92
+ onScroll: E,
93
+ className: "flex gap-4 overflow-x-auto scrollbar-hide snap-x snap-mandatory px-1",
94
+ style: { scrollbarWidth: "none", msOverflowStyle: "none", maxWidth: "calc(100vw - calc(var(--spacing) * 7))" },
95
+ children: c.map((e) => {
96
+ const n = W.includes(e.id), r = e.variants[0], l = (r == null ? void 0 : r.price) || 0, i = e.compareAtPrice || r.compareAtPrice, d = i && i > l, R = d ? Math.round((i - l) / i * 100) : 0;
97
+ return /* @__PURE__ */ a(
98
+ "div",
99
+ {
100
+ className: "relative flex min-w-[90%] md:min-w-[420px] snap-start items-center gap-4 rounded-xl bg-[#EBEBEB] p-3 transition-all",
101
+ children: [
102
+ /* @__PURE__ */ a(
103
+ "a",
104
+ {
105
+ href: `/product/${e.slug}`,
106
+ className: "flex flex-1 items-center gap-4 min-w-0",
107
+ children: [
108
+ /* @__PURE__ */ t("div", { className: "h-16 w-16 flex-shrink-0 overflow-hidden rounded-xl bg-white/40 flex items-center justify-center", children: e.thumbnailUrl ? /* @__PURE__ */ t(
109
+ "img",
110
+ {
111
+ src: e.thumbnailUrl,
112
+ alt: e.name,
113
+ className: "h-full w-full object-cover",
114
+ loading: "lazy"
115
+ }
116
+ ) : /* @__PURE__ */ t("div", { className: "flex h-full w-full items-center justify-center text-[10px] text-gray-400", children: "No Img" }) }),
117
+ /* @__PURE__ */ a("div", { className: "flex flex-1 flex-col justify-center min-w-0", children: [
118
+ /* @__PURE__ */ t("h4", { className: "text-md font-bold text-[#333] truncate pr-2", title: e.name, children: e.name }),
119
+ e.addonDescription && /* @__PURE__ */ t("p", { className: "text-[11px] text-gray-500 line-clamp-3 italic mb-1", children: e.addonDescription }),
120
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 mt-1", children: [
121
+ /* @__PURE__ */ t("span", { className: "text-md font-bold text-[#333]", children: k(l) }),
122
+ d && /* @__PURE__ */ a(C, { children: [
123
+ /* @__PURE__ */ t("span", { className: "text-sm text-[#DC143C] line-through", children: k(i) }),
124
+ /* @__PURE__ */ a(T, { className: "bg-[#DC143C]/10 hover:bg-[#DC143C]/20 text-[#DC143C] border-none text-[10px] font-bold px-2 py-0.5 rounded-lg uppercase tracking-tight", children: [
125
+ R,
126
+ "% OFF"
127
+ ] })
128
+ ] })
129
+ ] })
130
+ ] })
131
+ ]
132
+ }
133
+ ),
134
+ /* @__PURE__ */ t("div", { className: "pl-2", onClick: (h) => h.stopPropagation(), children: /* @__PURE__ */ t(
135
+ G,
136
+ {
137
+ checked: n,
138
+ onCheckedChange: (h) => F(e, h),
139
+ className: "scale-125"
140
+ }
141
+ ) })
142
+ ]
143
+ },
144
+ e.id
145
+ );
146
+ })
147
+ }
148
+ ) }),
149
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between px-2 mt-2", children: [
150
+ /* @__PURE__ */ t("div", { className: "flex gap-1.5 focus:outline-none", children: Array.from({ length: Math.min(c.length, 6) }).map((e, n) => {
151
+ const r = Math.round(L * (Math.min(c.length, 6) - 1)) === n;
152
+ return /* @__PURE__ */ t(
65
153
  "div",
66
154
  {
67
- className: p(
68
- "flex flex-row flex-shrink-0 w-64 h-24 bg-white border border-gray-300 rounded-lg overflow-hidden transition-all duration-500",
69
- l && "opacity-0 blur-sm scale-95 pointer-events-none",
70
- d && "w-0 h-0 mr-[-1rem] overflow-hidden"
71
- ),
72
- children: /* @__PURE__ */ s(
73
- "a",
74
- {
75
- href: `/product/${e.slug}`,
76
- className: "flex flex-row flex-1 hover:bg-gray-50 transition-colors",
77
- children: [
78
- /* @__PURE__ */ i("div", { className: "relative w-20 h-full flex-shrink-0 bg-gray-100", children: e.thumbnailUrl ? /* @__PURE__ */ i(
79
- "img",
80
- {
81
- src: e.thumbnailUrl,
82
- alt: e.name,
83
- className: "w-full h-full object-cover"
84
- }
85
- ) : /* @__PURE__ */ i("div", { className: "w-full h-full flex items-center justify-center", children: /* @__PURE__ */ i(D, { className: "h-8 w-8 text-gray-300" }) }) }),
86
- /* @__PURE__ */ s("div", { className: "p-2 flex flex-col flex-1 justify-between", children: [
87
- /* @__PURE__ */ s("div", { children: [
88
- /* @__PURE__ */ i("h4", { className: "text-xs font-medium text-gray-900 line-clamp-2 leading-tight", children: e.name }),
89
- /* @__PURE__ */ i("p", { className: "text-xs font-semibold text-accent-600 mt-0.5", children: z(t.price) })
90
- ] }),
91
- /* @__PURE__ */ i(
92
- B,
93
- {
94
- size: "sm",
95
- onClick: (y) => {
96
- y.preventDefault(), y.stopPropagation(), T(e);
97
- },
98
- disabled: n,
99
- className: "w-full bg-accent-500 hover:bg-accent-600 text-white text-xs h-6 mt-1",
100
- children: n ? /* @__PURE__ */ s(f, { children: [
101
- /* @__PURE__ */ i(b, { className: "h-3 w-3 animate-spin" }),
102
- "Adding..."
103
- ] }) : /* @__PURE__ */ s(f, { children: [
104
- /* @__PURE__ */ i(E, { className: "h-3 w-3" }),
105
- "Add"
106
- ] })
107
- }
108
- )
109
- ] })
110
- ]
111
- }
155
+ className: P(
156
+ "h-2 w-2 rounded-full transition-all duration-300",
157
+ r ? "bg-gray-600 scale-110" : "bg-gray-300"
112
158
  )
113
159
  },
114
- e.id
160
+ n
115
161
  );
116
- }),
117
- /* @__PURE__ */ i("div", { className: "flex-shrink-0 w-1" })
118
- ] }) })
162
+ }) }),
163
+ /* @__PURE__ */ a("div", { className: "flex gap-4", children: [
164
+ /* @__PURE__ */ t(
165
+ "button",
166
+ {
167
+ onClick: () => w("left"),
168
+ className: "text-gray-400 hover:text-gray-900 transition-colors",
169
+ "aria-label": "Previous",
170
+ children: /* @__PURE__ */ t(U, { className: "h-6 w-6 stroke-[2.5px]" })
171
+ }
172
+ ),
173
+ /* @__PURE__ */ t(
174
+ "button",
175
+ {
176
+ onClick: () => w("right"),
177
+ className: "text-gray-400 hover:text-gray-900 transition-colors",
178
+ "aria-label": "Next",
179
+ children: /* @__PURE__ */ t(z, { className: "h-6 w-6 stroke-[2.5px]" })
180
+ }
181
+ )
182
+ ] })
183
+ ] })
119
184
  ] }),
120
- /* @__PURE__ */ i(
121
- H,
185
+ /* @__PURE__ */ t(
186
+ _,
122
187
  {
123
- isOpen: !!v,
188
+ isOpen: !!y,
124
189
  onClose: () => m(null),
125
- product: v,
190
+ product: y,
126
191
  onConfirm: S,
127
- isLoading: M
192
+ isLoading: B
128
193
  }
129
194
  )
130
195
  ] });
131
196
  }
132
197
  export {
133
- _ as RecommendedProducts
198
+ le as ProductAddOns
134
199
  };
package/dist/index120.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { __exports as t } from "./index179.mjs";
2
+ import { __exports as t } from "./index180.mjs";
3
3
  var i;
4
4
  function s() {
5
5
  return i ? t : (i = 1, function(o) {
package/dist/index121.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { __exports as u } from "./index180.mjs";
2
+ import { __exports as u } from "./index181.mjs";
3
3
  var f;
4
4
  function m() {
5
5
  return f ? u : (f = 1, function(i) {
package/dist/index122.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { __exports as a } from "./index181.mjs";
2
+ import { __exports as a } from "./index182.mjs";
3
3
  var g;
4
4
  function j() {
5
5
  return g ? a : (g = 1, function(u) {
package/dist/index123.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import { __exports as t } from "./index182.mjs";
3
- import { __require as c } from "./index183.mjs";
2
+ import { __exports as t } from "./index183.mjs";
3
+ import { __require as c } from "./index184.mjs";
4
4
  var i;
5
5
  function p() {
6
6
  return i ? t : (i = 1, function(r) {
package/dist/index124.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { __exports as i } from "./index184.mjs";
2
+ import { __exports as i } from "./index185.mjs";
3
3
  import { __require as U } from "./index122.mjs";
4
- import { __require as _ } from "./index185.mjs";
4
+ import { __require as _ } from "./index186.mjs";
5
5
  var s;
6
6
  function q() {
7
7
  return s ? i : (s = 1, function(n) {
package/dist/index125.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { __exports as f } from "./index186.mjs";
3
- import { __require as z } from "./index187.mjs";
4
- import { __require as A } from "./index188.mjs";
2
+ import { __exports as f } from "./index187.mjs";
3
+ import { __require as z } from "./index188.mjs";
4
+ import { __require as A } from "./index189.mjs";
5
5
  import { __require as F } from "./index116.mjs";
6
6
  import { __require as O } from "./index120.mjs";
7
7
  import { __require as U } from "./index133.mjs";
package/dist/index126.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { __exports as n } from "./index189.mjs";
2
+ import { __exports as n } from "./index190.mjs";
3
3
  import { __require as l } from "./index122.mjs";
4
4
  var s;
5
5
  function q() {
package/dist/index127.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use client';
2
- import { __exports as p } from "./index190.mjs";
2
+ import { __exports as p } from "./index191.mjs";
3
3
  import { __require as I } from "./index146.mjs";
4
- import { __require as q } from "./index183.mjs";
5
- import { __require as v } from "./index191.mjs";
4
+ import { __require as q } from "./index184.mjs";
5
+ import { __require as v } from "./index192.mjs";
6
6
  import { __require as O } from "./index116.mjs";
7
7
  var N;
8
8
  function w() {
package/dist/index128.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { __exports as c } from "./index192.mjs";
2
+ import { __exports as c } from "./index193.mjs";
3
3
  import { __require as y } from "./index115.mjs";
4
- import { __require as U } from "./index185.mjs";
4
+ import { __require as U } from "./index186.mjs";
5
5
  var l;
6
6
  function x() {
7
7
  return l ? c : (l = 1, function(h) {
package/dist/index129.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- import { __module as u } from "./index193.mjs";
3
- import { __require as c } from "./index194.mjs";
2
+ import { __module as u } from "./index194.mjs";
3
+ import { __require as c } from "./index195.mjs";
4
4
  var a;
5
5
  function d() {
6
6
  return a ? u.exports : (a = 1, function(o, e) {