@instockng/storefront-ui 1.0.107 → 1.0.109

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 (228) hide show
  1. package/dist/components/AssistantDrawer.d.ts +1 -3
  2. package/dist/components/AssistantDrawer.d.ts.map +1 -1
  3. package/dist/components/ProductAssistantChips.d.ts +9 -8
  4. package/dist/components/ProductAssistantChips.d.ts.map +1 -1
  5. package/dist/contexts/AssistantContext.d.ts +19 -0
  6. package/dist/contexts/AssistantContext.d.ts.map +1 -0
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.mjs +56 -56
  10. package/dist/index10.mjs +103 -73
  11. package/dist/index100.mjs +28 -8
  12. package/dist/index101.mjs +8 -74
  13. package/dist/index102.mjs +74 -3
  14. package/dist/index103.mjs +4 -2
  15. package/dist/index104.mjs +2 -83
  16. package/dist/index105.mjs +81 -52
  17. package/dist/index106.mjs +53 -5
  18. package/dist/index107.mjs +5 -4
  19. package/dist/index108.mjs +4 -178
  20. package/dist/index109.mjs +174 -48
  21. package/dist/index11.mjs +73 -189
  22. package/dist/index110.mjs +51 -67
  23. package/dist/index111.mjs +69 -2
  24. package/dist/index112.mjs +2 -37
  25. package/dist/index113.mjs +25 -40
  26. package/dist/index114.mjs +18 -2
  27. package/dist/index115.mjs +213 -26
  28. package/dist/index116.mjs +175 -13
  29. package/dist/index117.mjs +17 -210
  30. package/dist/index118.mjs +17 -174
  31. package/dist/index119.mjs +25 -14
  32. package/dist/index12.mjs +171 -106
  33. package/dist/index120.mjs +150 -17
  34. package/dist/index121.mjs +13 -26
  35. package/dist/index122.mjs +24 -149
  36. package/dist/index123.mjs +77 -13
  37. package/dist/index124.mjs +27 -20
  38. package/dist/index125.mjs +137 -76
  39. package/dist/index126.mjs +50 -33
  40. package/dist/index127.mjs +19 -141
  41. package/dist/index128.mjs +22 -50
  42. package/dist/index129.mjs +14 -14
  43. package/dist/index13.mjs +127 -98
  44. package/dist/index130.mjs +18 -20
  45. package/dist/index131.mjs +14 -16
  46. package/dist/index132.mjs +14 -17
  47. package/dist/index133.mjs +12 -12
  48. package/dist/index134.mjs +58 -15
  49. package/dist/index135.mjs +11 -14
  50. package/dist/index136.mjs +30 -56
  51. package/dist/index137.mjs +15 -9
  52. package/dist/index138.mjs +26 -31
  53. package/dist/index139.mjs +16 -13
  54. package/dist/index14.mjs +94 -90
  55. package/dist/index140.mjs +11 -26
  56. package/dist/index141.mjs +12 -18
  57. package/dist/index142.mjs +40 -12
  58. package/dist/index143.mjs +16 -14
  59. package/dist/index144.mjs +263 -42
  60. package/dist/index145.mjs +62 -15
  61. package/dist/index146.mjs +7 -267
  62. package/dist/index147.mjs +2 -70
  63. package/dist/index148.mjs +2 -8
  64. package/dist/index149.mjs +33 -2
  65. package/dist/index15.mjs +84 -149
  66. package/dist/index150.mjs +2 -2
  67. package/dist/index151.mjs +37 -33
  68. package/dist/index152.mjs +43 -2
  69. package/dist/index153.mjs +2 -21
  70. package/dist/index154.mjs +19 -54
  71. package/dist/index155.mjs +55 -28
  72. package/dist/index156.mjs +28 -6
  73. package/dist/index157.mjs +6 -51
  74. package/dist/index158.mjs +51 -5
  75. package/dist/index159.mjs +6 -12
  76. package/dist/index16.mjs +157 -203
  77. package/dist/index160.mjs +12 -7
  78. package/dist/index161.mjs +6 -27
  79. package/dist/index162.mjs +28 -2
  80. package/dist/index163.mjs +2 -70
  81. package/dist/index164.mjs +67 -164
  82. package/dist/index165.mjs +167 -2
  83. package/dist/index167.mjs +2 -2
  84. package/dist/index168.mjs +2 -18
  85. package/dist/index169.mjs +11 -25
  86. package/dist/index17.mjs +197 -106
  87. package/dist/index170.mjs +26 -32
  88. package/dist/index171.mjs +32 -12
  89. package/dist/index172.mjs +9 -9
  90. package/dist/index173.mjs +18 -2
  91. package/dist/index174.mjs +2 -20
  92. package/dist/index175.mjs +13 -39
  93. package/dist/index176.mjs +46 -2
  94. package/dist/index177.mjs +2 -30
  95. package/dist/index178.mjs +24 -12
  96. package/dist/index179.mjs +18 -2
  97. package/dist/index18.mjs +96 -129
  98. package/dist/index180.mjs +2 -2
  99. package/dist/index181.mjs +2 -2
  100. package/dist/index182.mjs +2 -2
  101. package/dist/index183.mjs +2 -72
  102. package/dist/index184.mjs +72 -2
  103. package/dist/index185.mjs +2 -53
  104. package/dist/index186.mjs +53 -2
  105. package/dist/index187.mjs +2 -36
  106. package/dist/index188.mjs +30 -146
  107. package/dist/index189.mjs +152 -2
  108. package/dist/index19.mjs +140 -87
  109. package/dist/index190.mjs +2 -2
  110. package/dist/index191.mjs +2 -19
  111. package/dist/index192.mjs +19 -2
  112. package/dist/index193.mjs +2 -2
  113. package/dist/index194.mjs +2 -26
  114. package/dist/index195.mjs +26 -2
  115. package/dist/index196.mjs +2 -2
  116. package/dist/index197.mjs +2 -24
  117. package/dist/index198.mjs +17 -16
  118. package/dist/index199.mjs +23 -2
  119. package/dist/index2.mjs +29 -15
  120. package/dist/index20.mjs +82 -708
  121. package/dist/index201.mjs +2 -2
  122. package/dist/index202.mjs +2 -23
  123. package/dist/index203.mjs +23 -2
  124. package/dist/index204.mjs +2 -23
  125. package/dist/index205.mjs +23 -2
  126. package/dist/index206.mjs +2 -2
  127. package/dist/index208.mjs +2 -23
  128. package/dist/index209.mjs +23 -2
  129. package/dist/index21.mjs +688 -229
  130. package/dist/index210.mjs +2 -23
  131. package/dist/index211.mjs +23 -2
  132. package/dist/index212.mjs +2 -2
  133. package/dist/index213.mjs +2 -2
  134. package/dist/index215.mjs +2 -2
  135. package/dist/index216.mjs +2 -2
  136. package/dist/index217.mjs +2 -2
  137. package/dist/index218.mjs +2 -2
  138. package/dist/index219.mjs +2 -127
  139. package/dist/index22.mjs +260 -42
  140. package/dist/index220.mjs +127 -2
  141. package/dist/index221.mjs +2 -74
  142. package/dist/index222.mjs +59 -59
  143. package/dist/index223.mjs +74 -2
  144. package/dist/index224.mjs +2 -13
  145. package/dist/index225.mjs +108 -7
  146. package/dist/index226.mjs +2 -12
  147. package/dist/index227.mjs +2 -5
  148. package/dist/index228.mjs +2 -33
  149. package/dist/index229.mjs +2 -31
  150. package/dist/index23.mjs +44 -22
  151. package/dist/index230.mjs +2 -28
  152. package/dist/index231.mjs +2 -61
  153. package/dist/index232.mjs +2 -31
  154. package/dist/index233.mjs +2 -11
  155. package/dist/index234.mjs +2 -4
  156. package/dist/index235.mjs +36 -3
  157. package/dist/index236.mjs +2 -2
  158. package/dist/index237.mjs +244 -2
  159. package/dist/index238.mjs +2 -2
  160. package/dist/index239.mjs +33 -2
  161. package/dist/index240.mjs +65 -2
  162. package/dist/index241.mjs +25 -2
  163. package/dist/index242.mjs +2 -2
  164. package/dist/index244.mjs +2 -108
  165. package/dist/index245.mjs +2 -2
  166. package/dist/index246.mjs +2 -2
  167. package/dist/index247.mjs +2 -37
  168. package/dist/index248.mjs +2 -2
  169. package/dist/index249.mjs +2 -2
  170. package/dist/index250.mjs +2 -244
  171. package/dist/index251.mjs +13 -2
  172. package/dist/index252.mjs +7 -33
  173. package/dist/index253.mjs +30 -64
  174. package/dist/index254.mjs +10 -24
  175. package/dist/index255.mjs +4 -2
  176. package/dist/index256.mjs +4 -2
  177. package/dist/index257.mjs +2 -2
  178. package/dist/index258.mjs +4 -2
  179. package/dist/index259.mjs +12 -2
  180. package/dist/index260.mjs +5 -2
  181. package/dist/index261.mjs +33 -2
  182. package/dist/index262.mjs +31 -2
  183. package/dist/index263.mjs +28 -4
  184. package/dist/index264.mjs +61 -2
  185. package/dist/index265.mjs +2 -2
  186. package/dist/index266.mjs +2 -2
  187. package/dist/index277.mjs +1 -1
  188. package/dist/index282.mjs +1 -1
  189. package/dist/index283.mjs +2 -2
  190. package/dist/index3.mjs +3 -3
  191. package/dist/index4.mjs +34 -101
  192. package/dist/index5.mjs +92 -102
  193. package/dist/index50.mjs +1 -1
  194. package/dist/index58.mjs +1 -1
  195. package/dist/index6.mjs +111 -15
  196. package/dist/index63.mjs +17 -17
  197. package/dist/index64.mjs +2 -2
  198. package/dist/index7.mjs +15 -195
  199. package/dist/index8.mjs +135 -189
  200. package/dist/index81.mjs +19 -149
  201. package/dist/index82.mjs +149 -19
  202. package/dist/index85.mjs +1 -1
  203. package/dist/index89.mjs +35 -35
  204. package/dist/index9.mjs +240 -99
  205. package/dist/index90.mjs +1 -1
  206. package/dist/index91.mjs +2 -2
  207. package/dist/index92.mjs +2 -2
  208. package/dist/index94.mjs +2 -235
  209. package/dist/index95.mjs +233 -4
  210. package/dist/index96.mjs +5 -133
  211. package/dist/index97.mjs +129 -63
  212. package/dist/index98.mjs +67 -86
  213. package/dist/index99.mjs +85 -27
  214. package/dist/providers/StorefrontProvider.d.ts +3 -1
  215. package/dist/providers/StorefrontProvider.d.ts.map +1 -1
  216. package/dist/styles.css +1 -1
  217. package/package.json +2 -2
  218. package/src/components/AssistantDrawer.stories.tsx +20 -91
  219. package/src/components/AssistantDrawer.tsx +5 -9
  220. package/src/components/ProductAssistantChips.stories.tsx +11 -6
  221. package/src/components/ProductAssistantChips.tsx +13 -8
  222. package/src/contexts/AssistantContext.tsx +62 -0
  223. package/src/index.ts +3 -2
  224. package/src/providers/StorefrontProvider.tsx +17 -2
  225. package/dist/components/SearchAssistantTrigger.d.ts +0 -12
  226. package/dist/components/SearchAssistantTrigger.d.ts.map +0 -1
  227. package/src/components/SearchAssistantTrigger.stories.tsx +0 -35
  228. package/src/components/SearchAssistantTrigger.tsx +0 -41
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,26 +1,159 @@
1
1
  'use client';
2
- import { __exports as t } from "./index179.mjs";
3
- var i;
4
- function s() {
5
- return i ? t : (i = 1, function(o) {
6
- Object.defineProperty(o, "__esModule", {
2
+ import { __exports as a } from "./index182.mjs";
3
+ var g;
4
+ function j() {
5
+ return g ? a : (g = 1, function(u) {
6
+ Object.defineProperty(u, "__esModule", {
7
7
  value: !0
8
- }), Object.defineProperty(o, "normalizeLocalePath", {
9
- enumerable: !0,
10
- get: function() {
11
- return u;
8
+ });
9
+ function m(e, r) {
10
+ for (var t in r) Object.defineProperty(e, t, {
11
+ enumerable: !0,
12
+ get: r[t]
13
+ });
14
+ }
15
+ m(u, {
16
+ DecodeError: function() {
17
+ return S;
18
+ },
19
+ MiddlewareNotFoundError: function() {
20
+ return b;
21
+ },
22
+ MissingStaticPage: function() {
23
+ return v;
24
+ },
25
+ NormalizeError: function() {
26
+ return I;
27
+ },
28
+ PageNotFoundError: function() {
29
+ return O;
30
+ },
31
+ SP: function() {
32
+ return d;
33
+ },
34
+ ST: function() {
35
+ return w;
36
+ },
37
+ WEB_VITALS: function() {
38
+ return p;
39
+ },
40
+ execOnce: function() {
41
+ return E;
42
+ },
43
+ getDisplayName: function() {
44
+ return s;
45
+ },
46
+ getLocationOrigin: function() {
47
+ return c;
48
+ },
49
+ getURL: function() {
50
+ return P;
51
+ },
52
+ isAbsoluteUrl: function() {
53
+ return N;
54
+ },
55
+ isResSent: function() {
56
+ return f;
57
+ },
58
+ loadGetInitialProps: function() {
59
+ return l;
60
+ },
61
+ normalizeRepeatedSlashes: function() {
62
+ return y;
63
+ },
64
+ stringifyError: function() {
65
+ return L;
12
66
  }
13
67
  });
14
- function u(r, l) {
15
- let a;
16
- const e = r.split("/");
17
- return (l || []).some((n) => e[1] && e[1].toLowerCase() === n.toLowerCase() ? (a = n, e.splice(1, 1), r = e.join("/") || "/", !0) : !1), {
18
- pathname: r,
19
- detectedLocale: a
68
+ const p = [
69
+ "CLS",
70
+ "FCP",
71
+ "FID",
72
+ "INP",
73
+ "LCP",
74
+ "TTFB"
75
+ ];
76
+ function E(e) {
77
+ let r = !1, t;
78
+ return function() {
79
+ for (var i = arguments.length, n = new Array(i), o = 0; o < i; o++)
80
+ n[o] = arguments[o];
81
+ return r || (r = !0, t = e(...n)), t;
20
82
  };
21
83
  }
22
- }(t), t);
84
+ const h = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/, N = (e) => h.test(e);
85
+ function c() {
86
+ const { protocol: e, hostname: r, port: t } = window.location;
87
+ return e + "//" + r + (t ? ":" + t : "");
88
+ }
89
+ function P() {
90
+ const { href: e } = window.location, r = c();
91
+ return e.substring(r.length);
92
+ }
93
+ function s(e) {
94
+ return typeof e == "string" ? e : e.displayName || e.name || "Unknown";
95
+ }
96
+ function f(e) {
97
+ return e.finished || e.headersSent;
98
+ }
99
+ function y(e) {
100
+ const r = e.split("?");
101
+ return r[0].replace(/\\/g, "/").replace(/\/\/+/g, "/") + (r[1] ? "?" + r.slice(1).join("?") : "");
102
+ }
103
+ async function l(e, r) {
104
+ if (process.env.NODE_ENV !== "production") {
105
+ var t;
106
+ if ((t = e.prototype) != null && t.getInitialProps) {
107
+ const o = '"' + s(e) + '.getInitialProps()" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';
108
+ throw new Error(o);
109
+ }
110
+ }
111
+ const i = r.res || r.ctx && r.ctx.res;
112
+ if (!e.getInitialProps)
113
+ return r.ctx && r.Component ? {
114
+ pageProps: await l(r.Component, r.ctx)
115
+ } : {};
116
+ const n = await e.getInitialProps(r);
117
+ if (i && f(i))
118
+ return n;
119
+ if (!n) {
120
+ const o = '"' + s(e) + '.getInitialProps()" should resolve to an object. But found "' + n + '" instead.';
121
+ throw new Error(o);
122
+ }
123
+ return process.env.NODE_ENV !== "production" && Object.keys(n).length === 0 && !r.ctx && console.warn("" + s(e) + " returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps"), n;
124
+ }
125
+ const d = typeof performance < "u", w = d && [
126
+ "mark",
127
+ "measure",
128
+ "getEntriesByName"
129
+ ].every((e) => typeof performance[e] == "function");
130
+ class S extends Error {
131
+ }
132
+ class I extends Error {
133
+ }
134
+ class O extends Error {
135
+ constructor(r) {
136
+ super(), this.code = "ENOENT", this.name = "PageNotFoundError", this.message = "Cannot find module for page: " + r;
137
+ }
138
+ }
139
+ class v extends Error {
140
+ constructor(r, t) {
141
+ super(), this.message = "Failed to load static file for page: " + r + " " + t;
142
+ }
143
+ }
144
+ class b extends Error {
145
+ constructor() {
146
+ super(), this.code = "ENOENT", this.message = "Cannot find the middleware module";
147
+ }
148
+ }
149
+ function L(e) {
150
+ return JSON.stringify({
151
+ message: e.message,
152
+ stack: e.stack
153
+ });
154
+ }
155
+ }(a), a);
23
156
  }
24
157
  export {
25
- s as __require
158
+ j as __require
26
159
  };
package/dist/index121.mjs CHANGED
@@ -1,36 +1,23 @@
1
1
  'use client';
2
- import { __exports as u } from "./index180.mjs";
3
- var f;
4
- function m() {
5
- return f ? u : (f = 1, function(i) {
6
- Object.defineProperty(i, "__esModule", {
2
+ import { __exports as t } from "./index183.mjs";
3
+ import { __require as c } from "./index184.mjs";
4
+ var i;
5
+ function p() {
6
+ return i ? t : (i = 1, function(r) {
7
+ Object.defineProperty(r, "__esModule", {
7
8
  value: !0
8
- }), Object.defineProperty(i, "default", {
9
+ }), Object.defineProperty(r, "isDynamicRoute", {
9
10
  enumerable: !0,
10
11
  get: function() {
11
- return o;
12
+ return u;
12
13
  }
13
14
  });
14
- function o() {
15
- const t = /* @__PURE__ */ Object.create(null);
16
- return {
17
- on(e, r) {
18
- (t[e] || (t[e] = [])).push(r);
19
- },
20
- off(e, r) {
21
- t[e] && t[e].splice(t[e].indexOf(r) >>> 0, 1);
22
- },
23
- emit(e) {
24
- for (var r = arguments.length, a = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++)
25
- a[n - 1] = arguments[n];
26
- (t[e] || []).slice().map((c) => {
27
- c(...a);
28
- });
29
- }
30
- };
15
+ const n = c(), o = /\/\[[^/]+?\](?=\/|$)/;
16
+ function u(e) {
17
+ return (0, n.isInterceptionRouteAppPath)(e) && (e = (0, n.extractInterceptionRouteInformation)(e).interceptedRoute), o.test(e);
31
18
  }
32
- }(u), u);
19
+ }(t), t);
33
20
  }
34
21
  export {
35
- m as __require
22
+ p as __require
36
23
  };