@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/index109.mjs CHANGED
@@ -1,56 +1,182 @@
1
1
  'use client';
2
- import s from "./index94.mjs";
3
- import m from "./index162.mjs";
4
- import u from "./index163.mjs";
5
- import { getFetch as b } from "./index164.mjs";
6
- import d from "./index105.mjs";
7
- const p = {
8
- http: m,
9
- xhr: u,
10
- fetch: {
11
- get: b
2
+ import i from "./index95.mjs";
3
+ import S from "./index162.mjs";
4
+ const h = Symbol("internals");
5
+ function y(r) {
6
+ return r && String(r).trim().toLowerCase();
7
+ }
8
+ function m(r) {
9
+ return r === !1 || r == null ? r : i.isArray(r) ? r.map(m) : String(r);
10
+ }
11
+ function A(r) {
12
+ const t = /* @__PURE__ */ Object.create(null), e = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
13
+ let s;
14
+ for (; s = e.exec(r); )
15
+ t[s[1]] = s[2];
16
+ return t;
17
+ }
18
+ const k = (r) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(r.trim());
19
+ function g(r, t, e, s, n) {
20
+ if (i.isFunction(s))
21
+ return s.call(this, t, e);
22
+ if (n && (t = e), !!i.isString(t)) {
23
+ if (i.isString(s))
24
+ return t.indexOf(s) !== -1;
25
+ if (i.isRegExp(s))
26
+ return s.test(t);
12
27
  }
13
- };
14
- s.forEach(p, (e, o) => {
15
- if (e) {
16
- try {
17
- Object.defineProperty(e, "name", { value: o });
18
- } catch {
28
+ }
29
+ function E(r) {
30
+ return r.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (t, e, s) => e.toUpperCase() + s);
31
+ }
32
+ function j(r, t) {
33
+ const e = i.toCamelCase(" " + t);
34
+ ["get", "set", "has"].forEach((s) => {
35
+ Object.defineProperty(r, s + e, {
36
+ value: function(n, o, f) {
37
+ return this[s].call(this, t, n, o, f);
38
+ },
39
+ configurable: !0
40
+ });
41
+ });
42
+ }
43
+ class b {
44
+ constructor(t) {
45
+ t && this.set(t);
46
+ }
47
+ set(t, e, s) {
48
+ const n = this;
49
+ function o(c, l, a) {
50
+ const u = y(l);
51
+ if (!u)
52
+ throw new Error("header name must be a non-empty string");
53
+ const p = i.findKey(n, u);
54
+ (!p || n[p] === void 0 || a === !0 || a === void 0 && n[p] !== !1) && (n[p || l] = m(c));
19
55
  }
20
- Object.defineProperty(e, "adapterName", { value: o });
56
+ const f = (c, l) => i.forEach(c, (a, u) => o(a, u, l));
57
+ if (i.isPlainObject(t) || t instanceof this.constructor)
58
+ f(t, e);
59
+ else if (i.isString(t) && (t = t.trim()) && !k(t))
60
+ f(S(t), e);
61
+ else if (i.isObject(t) && i.isIterable(t)) {
62
+ let c = {}, l, a;
63
+ for (const u of t) {
64
+ if (!i.isArray(u))
65
+ throw TypeError("Object iterator must return a key-value pair");
66
+ c[a = u[0]] = (l = c[a]) ? i.isArray(l) ? [...l, u[1]] : [l, u[1]] : u[1];
67
+ }
68
+ f(c, e);
69
+ } else
70
+ t != null && o(e, t, s);
71
+ return this;
21
72
  }
22
- });
23
- const f = (e) => `- ${e}`, g = (e) => s.isFunction(e) || e === null || e === !1, y = {
24
- getAdapter: (e, o) => {
25
- e = s.isArray(e) ? e : [e];
26
- const { length: a } = e;
27
- let i, t;
28
- const c = {};
29
- for (let r = 0; r < a; r++) {
30
- i = e[r];
31
- let n;
32
- if (t = i, !g(i) && (t = p[(n = String(i)).toLowerCase()], t === void 0))
33
- throw new d(`Unknown adapter '${n}'`);
34
- if (t && (s.isFunction(t) || (t = t.get(o))))
35
- break;
36
- c[n || "#" + r] = t;
73
+ get(t, e) {
74
+ if (t = y(t), t) {
75
+ const s = i.findKey(this, t);
76
+ if (s) {
77
+ const n = this[s];
78
+ if (!e)
79
+ return n;
80
+ if (e === !0)
81
+ return A(n);
82
+ if (i.isFunction(e))
83
+ return e.call(this, n, s);
84
+ if (i.isRegExp(e))
85
+ return e.exec(n);
86
+ throw new TypeError("parser must be boolean|regexp|function");
87
+ }
37
88
  }
38
- if (!t) {
39
- const r = Object.entries(c).map(
40
- ([l, h]) => `adapter ${l} ` + (h === !1 ? "is not supported by the environment" : "is not available in the build")
41
- );
42
- let n = a ? r.length > 1 ? `since :
43
- ` + r.map(f).join(`
44
- `) : " " + f(r[0]) : "as no adapter specified";
45
- throw new d(
46
- "There is no suitable adapter to dispatch the request " + n,
47
- "ERR_NOT_SUPPORT"
48
- );
89
+ }
90
+ has(t, e) {
91
+ if (t = y(t), t) {
92
+ const s = i.findKey(this, t);
93
+ return !!(s && this[s] !== void 0 && (!e || g(this, this[s], s, e)));
49
94
  }
50
- return t;
51
- },
52
- adapters: p
53
- };
95
+ return !1;
96
+ }
97
+ delete(t, e) {
98
+ const s = this;
99
+ let n = !1;
100
+ function o(f) {
101
+ if (f = y(f), f) {
102
+ const c = i.findKey(s, f);
103
+ c && (!e || g(s, s[c], c, e)) && (delete s[c], n = !0);
104
+ }
105
+ }
106
+ return i.isArray(t) ? t.forEach(o) : o(t), n;
107
+ }
108
+ clear(t) {
109
+ const e = Object.keys(this);
110
+ let s = e.length, n = !1;
111
+ for (; s--; ) {
112
+ const o = e[s];
113
+ (!t || g(this, this[o], o, t, !0)) && (delete this[o], n = !0);
114
+ }
115
+ return n;
116
+ }
117
+ normalize(t) {
118
+ const e = this, s = {};
119
+ return i.forEach(this, (n, o) => {
120
+ const f = i.findKey(s, o);
121
+ if (f) {
122
+ e[f] = m(n), delete e[o];
123
+ return;
124
+ }
125
+ const c = t ? E(o) : String(o).trim();
126
+ c !== o && delete e[o], e[c] = m(n), s[c] = !0;
127
+ }), this;
128
+ }
129
+ concat(...t) {
130
+ return this.constructor.concat(this, ...t);
131
+ }
132
+ toJSON(t) {
133
+ const e = /* @__PURE__ */ Object.create(null);
134
+ return i.forEach(this, (s, n) => {
135
+ s != null && s !== !1 && (e[n] = t && i.isArray(s) ? s.join(", ") : s);
136
+ }), e;
137
+ }
138
+ [Symbol.iterator]() {
139
+ return Object.entries(this.toJSON())[Symbol.iterator]();
140
+ }
141
+ toString() {
142
+ return Object.entries(this.toJSON()).map(([t, e]) => t + ": " + e).join(`
143
+ `);
144
+ }
145
+ getSetCookie() {
146
+ return this.get("set-cookie") || [];
147
+ }
148
+ get [Symbol.toStringTag]() {
149
+ return "AxiosHeaders";
150
+ }
151
+ static from(t) {
152
+ return t instanceof this ? t : new this(t);
153
+ }
154
+ static concat(t, ...e) {
155
+ const s = new this(t);
156
+ return e.forEach((n) => s.set(n)), s;
157
+ }
158
+ static accessor(t) {
159
+ const s = (this[h] = this[h] = {
160
+ accessors: {}
161
+ }).accessors, n = this.prototype;
162
+ function o(f) {
163
+ const c = y(f);
164
+ s[c] || (j(n, f), s[c] = !0);
165
+ }
166
+ return i.isArray(t) ? t.forEach(o) : o(t), this;
167
+ }
168
+ }
169
+ b.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]);
170
+ i.reduceDescriptors(b.prototype, ({ value: r }, t) => {
171
+ let e = t[0].toUpperCase() + t.slice(1);
172
+ return {
173
+ get: () => r,
174
+ set(s) {
175
+ this[e] = s;
176
+ }
177
+ };
178
+ });
179
+ i.freezeMethods(b);
54
180
  export {
55
- y as default
181
+ b as default
56
182
  };
package/dist/index11.mjs CHANGED
@@ -1,199 +1,83 @@
1
1
  'use client';
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 "./index13.mjs";
2
+ import { jsx as e, jsxs as s } from "react/jsx-runtime";
9
3
  import "./index31.mjs";
10
4
  import "@tanstack/react-query";
11
- import { useGetProductAddOns as $ } from "./index45.mjs";
12
- import { useCart as q } from "./index3.mjs";
13
- function le({
14
- slug: g,
15
- products: x,
16
- onToggle: u,
17
- selectedProductIds: A,
18
- onProductClick: H,
5
+ import { useGetProducts as C } from "./index45.mjs";
6
+ import { ProductCard as k } from "./index10.mjs";
7
+ import { Loader2 as j, Package as d } from "lucide-react";
8
+ import { cn as P } from "./index30.mjs";
9
+ function q({
10
+ brandId: l,
11
+ onAddToCart: n,
12
+ onProductClick: t,
13
+ columns: o = 3,
14
+ showStock: m = !0,
19
15
  className: p,
20
- title: j = "Popular add-ons",
21
- limit: D = 6
16
+ cardClassName: g,
17
+ showLoading: u = !0,
18
+ emptyMessage: x = "No products available at the moment.",
19
+ errorMessage: h = "Failed to load products. Please try again later.",
20
+ loadingVariantId: f
22
21
  }) {
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;
31
- }
32
- if (n && e.variants.length > 1) {
33
- m(e);
34
- return;
35
- }
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)
22
+ const { data: N, isLoading: v, error: b } = C(l);
23
+ if (v && u)
24
+ return /* @__PURE__ */ e("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ s("div", { className: "text-center", children: [
25
+ /* @__PURE__ */ e(j, { className: "mx-auto mb-4 h-12 w-12 animate-spin text-blue-600" }),
26
+ /* @__PURE__ */ e("p", { className: "text-gray-600", children: "Loading products..." })
27
+ ] }) });
28
+ if (b)
29
+ return /* @__PURE__ */ e("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ s("div", { className: "text-center", children: [
30
+ /* @__PURE__ */ e(d, { className: "mx-auto mb-4 h-12 w-12 text-red-600" }),
31
+ /* @__PURE__ */ e("p", { className: "text-red-600", children: h })
32
+ ] }) });
33
+ const a = N || [];
34
+ return a.length === 0 ? /* @__PURE__ */ e("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ s("div", { className: "text-center", children: [
35
+ /* @__PURE__ */ e(d, { className: "mx-auto mb-4 h-12 w-12 text-gray-400" }),
36
+ /* @__PURE__ */ e("p", { className: "text-gray-600", children: x })
37
+ ] }) }) : /* @__PURE__ */ e(
38
+ "div",
39
+ {
40
+ className: P(
41
+ "grid gap-6",
42
+ {
43
+ 2: "grid-cols-1 sm:grid-cols-2",
44
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
45
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"
46
+ }[o],
47
+ p
48
+ ),
49
+ children: a.map((i) => {
50
+ const c = {
51
+ id: i.id,
52
+ name: i.name,
53
+ description: i.description || void 0,
54
+ thumbnailUrl: i.thumbnailUrl || void 0,
55
+ brand: void 0,
56
+ // Brand info not included in product response
57
+ variants: i.variants.map((r) => ({
58
+ id: r.id,
59
+ name: r.name || r.sku,
60
+ price: typeof r.price == "string" ? parseFloat(r.price) : r.price,
61
+ sku: r.sku,
62
+ stock: r.stock || void 0
63
+ }))
64
+ }, y = i.variants.some((r) => r.id === f);
65
+ return /* @__PURE__ */ e(
66
+ k,
67
+ {
68
+ product: c,
69
+ onAddToCart: n,
70
+ onClick: t ? () => t(c) : void 0,
71
+ showStock: m,
72
+ className: g,
73
+ isAddingToCart: y
74
+ },
75
+ i.id
49
76
  );
50
- l && await I(l.id);
51
- }
52
- }, S = async (e, n) => {
53
- b(!0);
54
- try {
55
- await v(
56
- e.slug,
57
- e.name,
58
- n.price,
59
- n.sku,
60
- 1
61
- ), m(null);
62
- } finally {
63
- b(!1);
77
+ })
64
78
  }
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
- });
77
- }
78
- };
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(
153
- "div",
154
- {
155
- className: P(
156
- "h-2 w-2 rounded-full transition-all duration-300",
157
- r ? "bg-gray-600 scale-110" : "bg-gray-300"
158
- )
159
- },
160
- n
161
- );
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
- ] })
184
- ] }),
185
- /* @__PURE__ */ t(
186
- _,
187
- {
188
- isOpen: !!y,
189
- onClose: () => m(null),
190
- product: y,
191
- onConfirm: S,
192
- isLoading: B
193
- }
194
- )
195
- ] });
79
+ );
196
80
  }
197
81
  export {
198
- le as ProductAddOns
82
+ q as ProductGrid
199
83
  };
package/dist/index110.mjs CHANGED
@@ -1,72 +1,56 @@
1
1
  'use client';
2
- const e = {
3
- Continue: 100,
4
- SwitchingProtocols: 101,
5
- Processing: 102,
6
- EarlyHints: 103,
7
- Ok: 200,
8
- Created: 201,
9
- Accepted: 202,
10
- NonAuthoritativeInformation: 203,
11
- NoContent: 204,
12
- ResetContent: 205,
13
- PartialContent: 206,
14
- MultiStatus: 207,
15
- AlreadyReported: 208,
16
- ImUsed: 226,
17
- MultipleChoices: 300,
18
- MovedPermanently: 301,
19
- Found: 302,
20
- SeeOther: 303,
21
- NotModified: 304,
22
- UseProxy: 305,
23
- Unused: 306,
24
- TemporaryRedirect: 307,
25
- PermanentRedirect: 308,
26
- BadRequest: 400,
27
- Unauthorized: 401,
28
- PaymentRequired: 402,
29
- Forbidden: 403,
30
- NotFound: 404,
31
- MethodNotAllowed: 405,
32
- NotAcceptable: 406,
33
- ProxyAuthenticationRequired: 407,
34
- RequestTimeout: 408,
35
- Conflict: 409,
36
- Gone: 410,
37
- LengthRequired: 411,
38
- PreconditionFailed: 412,
39
- PayloadTooLarge: 413,
40
- UriTooLong: 414,
41
- UnsupportedMediaType: 415,
42
- RangeNotSatisfiable: 416,
43
- ExpectationFailed: 417,
44
- ImATeapot: 418,
45
- MisdirectedRequest: 421,
46
- UnprocessableEntity: 422,
47
- Locked: 423,
48
- FailedDependency: 424,
49
- TooEarly: 425,
50
- UpgradeRequired: 426,
51
- PreconditionRequired: 428,
52
- TooManyRequests: 429,
53
- RequestHeaderFieldsTooLarge: 431,
54
- UnavailableForLegalReasons: 451,
55
- InternalServerError: 500,
56
- NotImplemented: 501,
57
- BadGateway: 502,
58
- ServiceUnavailable: 503,
59
- GatewayTimeout: 504,
60
- HttpVersionNotSupported: 505,
61
- VariantAlsoNegotiates: 506,
62
- InsufficientStorage: 507,
63
- LoopDetected: 508,
64
- NotExtended: 510,
65
- NetworkAuthenticationRequired: 511
2
+ import s from "./index95.mjs";
3
+ import m from "./index163.mjs";
4
+ import u from "./index164.mjs";
5
+ import { getFetch as b } from "./index165.mjs";
6
+ import d from "./index106.mjs";
7
+ const p = {
8
+ http: m,
9
+ xhr: u,
10
+ fetch: {
11
+ get: b
12
+ }
66
13
  };
67
- Object.entries(e).forEach(([t, o]) => {
68
- e[o] = t;
14
+ s.forEach(p, (e, o) => {
15
+ if (e) {
16
+ try {
17
+ Object.defineProperty(e, "name", { value: o });
18
+ } catch {
19
+ }
20
+ Object.defineProperty(e, "adapterName", { value: o });
21
+ }
69
22
  });
23
+ const f = (e) => `- ${e}`, g = (e) => s.isFunction(e) || e === null || e === !1, y = {
24
+ getAdapter: (e, o) => {
25
+ e = s.isArray(e) ? e : [e];
26
+ const { length: a } = e;
27
+ let i, t;
28
+ const c = {};
29
+ for (let r = 0; r < a; r++) {
30
+ i = e[r];
31
+ let n;
32
+ if (t = i, !g(i) && (t = p[(n = String(i)).toLowerCase()], t === void 0))
33
+ throw new d(`Unknown adapter '${n}'`);
34
+ if (t && (s.isFunction(t) || (t = t.get(o))))
35
+ break;
36
+ c[n || "#" + r] = t;
37
+ }
38
+ if (!t) {
39
+ const r = Object.entries(c).map(
40
+ ([l, h]) => `adapter ${l} ` + (h === !1 ? "is not supported by the environment" : "is not available in the build")
41
+ );
42
+ let n = a ? r.length > 1 ? `since :
43
+ ` + r.map(f).join(`
44
+ `) : " " + f(r[0]) : "as no adapter specified";
45
+ throw new d(
46
+ "There is no suitable adapter to dispatch the request " + n,
47
+ "ERR_NOT_SUPPORT"
48
+ );
49
+ }
50
+ return t;
51
+ },
52
+ adapters: p
53
+ };
70
54
  export {
71
- e as default
55
+ y as default
72
56
  };