@askdialog/dialog-vue 3.8.0 → 3.9.0

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.
@@ -1,8 +1,8 @@
1
- var Ce = Object.defineProperty;
2
- var ye = (t, e, s) => e in t ? Ce(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
1
+ var Ee = Object.defineProperty;
2
+ var ye = (t, e, s) => e in t ? Ee(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
3
  var z = (t, e, s) => ye(t, typeof e != "symbol" ? e + "" : e, s);
4
- import { defineComponent as w, createElementBlock as _, openBlock as u, createElementVNode as l, toDisplayString as E, Fragment as N, renderList as Q, createVNode as T, createBlock as O, ref as k, computed as b, withDirectives as ae, withKeys as Ee, vModelText as ie, onMounted as B, watch as M, renderSlot as we, withCtx as le, createCommentVNode as A, withModifiers as Ie, unref as K, resolveDynamicComponent as $e, mergeProps as Re, toHandlers as Te, createTextVNode as ce, onUnmounted as ue, Teleport as ke, normalizeStyle as Ae, normalizeClass as Z, shallowRef as Le } from "vue";
5
- const xe = /* @__PURE__ */ new Set(["ar", "he", "iw", "fa", "ur"]), De = (t) => t !== void 0 && xe.has(t.trim().toLowerCase().slice(0, 2)), Pe = (t) => De(t) ? "rtl" : "ltr";
4
+ import { defineComponent as I, createElementBlock as h, openBlock as u, toDisplayString as y, unref as H, createElementVNode as l, Fragment as N, renderList as W, createVNode as T, createBlock as P, ref as R, computed as S, withDirectives as ie, withKeys as Ie, vModelText as ae, onMounted as K, watch as M, renderSlot as we, withCtx as le, withModifiers as $e, createCommentVNode as L, resolveDynamicComponent as ke, mergeProps as Te, toHandlers as Re, createTextVNode as ce, onUnmounted as ue, Teleport as Ae, normalizeStyle as Le, normalizeClass as Z, shallowRef as xe } from "vue";
5
+ const De = /* @__PURE__ */ new Set(["ar", "he", "iw", "fa", "ur"]), Pe = (t) => t !== void 0 && De.has(t.trim().toLowerCase().slice(0, 2)), Oe = (t) => Pe(t) ? "rtl" : "ltr";
6
6
  var q;
7
7
  (function(t) {
8
8
  t.OPEN_ASSISTANT = "open_assistant", t.OPEN_WITH_SUGGESTIONS = "OPEN_WITH_SUGGESTIONS", t.CLOSE_ASSISTANT = "close_assistant", t.SEND_MESSAGE = "PRODUCT_QUESTION", t.SEND_GENERIC_QUESTION = "GENERIC_QUESTION", t.TRACK_ADD_TO_CART = "TRACK_ADD_TO_CART", t.TRACK_SUBMIT_CHECKOUT = "TRACK_SUBMIT_CHECKOUT", t.TRACK_VIEW_SEARCH_RESULTS = "TRACK_VIEW_SEARCH_RESULTS", t.TRACK_SELECT_SEARCH_RESULT = "TRACK_SELECT_SEARCH_RESULT";
@@ -12,9 +12,9 @@ var J;
12
12
  t.USER_OPENED_ASSISTANT = "userOpenedAssistant", t.USER_CLOSED_ASSISTANT = "userClosedAssistant", t.USER_SENT_MESSAGE = "userSentMessage", t.USER_CLICKED_ON_PRODUCT_CARD = "userClickedOnProductCard", t.USER_OPENED_RECOMMENDATION = "userOpenedRecommendation", t.USER_ADDED_TO_CART = "userAddedToCart", t.USER_SEND_POSITIVE_FEEDBACK = "userSendPositiveFeedback", t.USER_SEND_NEGATIVE_FEEDBACK = "userSendNegativeFeedback";
13
13
  })(J || (J = {}));
14
14
  q.TRACK_ADD_TO_CART, q.TRACK_SUBMIT_CHECKOUT, q.TRACK_VIEW_SEARCH_RESULTS, q.TRACK_SELECT_SEARCH_RESULT;
15
- class Oe extends Error {
16
- constructor({ status: s, code: o, message: r }) {
17
- super(r);
15
+ class Ne extends Error {
16
+ constructor({ status: s, code: o, message: n }) {
17
+ super(n);
18
18
  z(this, "status");
19
19
  z(this, "code");
20
20
  this.name = "DialogSearchError", this.status = s, this.code = o;
@@ -26,8 +26,8 @@ const X = (t, e, s) => {
26
26
  if (!/^[A-Za-z]{3}$/.test(s))
27
27
  throw new Error("Search currency must be an ISO 4217 code.");
28
28
  return `${t}_${e}_${s.toLowerCase()}`;
29
- }, ee = "multiple installation methods detected:", Ne = () => typeof window > "u" ? void 0 : window, de = () => {
30
- const t = Ne();
29
+ }, ee = "multiple installation methods detected:", qe = () => typeof window > "u" ? void 0 : window, de = () => {
30
+ const t = qe();
31
31
  if (t !== void 0)
32
32
  return t.dialog = t.dialog ?? {}, t.dialog.audit = t.dialog.audit ?? {
33
33
  methods: [],
@@ -35,12 +35,12 @@ const X = (t, e, s) => {
35
35
  capabilities: [],
36
36
  warnings: []
37
37
  }, t.dialog.audit;
38
- }, qe = (t) => {
38
+ }, Me = (t) => {
39
39
  if (t.warnings = t.warnings.filter((e) => !e.startsWith(ee)), t.methods.length >= 2) {
40
40
  const e = t.methods.map((s) => s.method).join(", ");
41
41
  t.warnings.push(`${ee} ${e}`);
42
42
  }
43
- }, Me = (t, e) => e === void 0 ? t : {
43
+ }, Ue = (t, e) => e === void 0 ? t : {
44
44
  version: (t == null ? void 0 : t.version) ?? e.version,
45
45
  commit: (t == null ? void 0 : t.commit) ?? e.commit
46
46
  }, pe = (t) => {
@@ -49,75 +49,75 @@ const X = (t, e, s) => {
49
49
  return;
50
50
  const s = e.methods.find((o) => o.method === t.method);
51
51
  if (s === void 0) {
52
- e.methods.push({ ...t, registeredAt: (/* @__PURE__ */ new Date()).toISOString() }), qe(e);
52
+ e.methods.push({ ...t, registeredAt: (/* @__PURE__ */ new Date()).toISOString() }), Me(e);
53
53
  return;
54
54
  }
55
- s.version = s.version ?? t.version, s.build = Me(s.build, t.build), s.source = s.source ?? t.source;
56
- }, Ue = (t) => {
55
+ s.version = s.version ?? t.version, s.build = Ue(s.build, t.build), s.source = s.source ?? t.source;
56
+ }, He = (t) => {
57
57
  const e = de();
58
58
  e !== void 0 && (e.capabilities.includes(t) || e.capabilities.push(t));
59
- }, L = {
59
+ }, A = {
60
60
  IDLE: "idle",
61
61
  LOADING: "loading",
62
62
  SUCCESS: "success",
63
63
  /** Successful request with zero hits. */
64
64
  EMPTY: "empty",
65
65
  ERROR: "error"
66
- }, He = 0.5, Ve = 500, Be = 1500, Ke = 100;
67
- function Fe({ emit: t, visibilityThreshold: e = He, dwellMs: s = Ve, idleFlushMs: o = Be, maxItemsPerEvent: r = Ke }) {
68
- let n, i = [];
69
- const a = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map();
70
- let d;
71
- const g = () => {
72
- clearTimeout(d), !(n === void 0 || i.length === 0) && (t({ ...n, items: i }), i = []);
73
- }, y = (m) => {
74
- if (n === void 0)
66
+ }, Ve = 0.5, Be = 500, Ke = 1500, Fe = 100;
67
+ function ze({ emit: t, visibilityThreshold: e = Ve, dwellMs: s = Be, idleFlushMs: o = Ke, maxItemsPerEvent: n = Fe }) {
68
+ let r, a = [];
69
+ const i = /* @__PURE__ */ new Set(), _ = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map();
70
+ let C;
71
+ const c = () => {
72
+ clearTimeout(C), !(r === void 0 || a.length === 0) && (t({ ...r, items: a }), a = []);
73
+ }, f = (b) => {
74
+ if (r === void 0)
75
75
  return;
76
- const v = `${n.query_id}:${m.product_id}`;
77
- if (!a.has(v)) {
78
- if (a.add(v), i.push(m), i.length >= r) {
79
- g();
76
+ const m = `${r.query_id}:${b.product_id}`;
77
+ if (!i.has(m)) {
78
+ if (i.add(m), a.push(b), a.length >= n) {
79
+ c();
80
80
  return;
81
81
  }
82
- clearTimeout(d), d = setTimeout(g, o);
82
+ clearTimeout(C), C = setTimeout(c, o);
83
83
  }
84
- }, S = (m) => {
85
- const v = c.get(m);
86
- v !== void 0 && (clearTimeout(v), c.delete(m));
87
- }, f = new IntersectionObserver((m) => {
88
- for (const v of m) {
89
- const p = h.get(v.target);
90
- p !== void 0 && (v.intersectionRatio >= e ? c.has(v.target) || c.set(v.target, setTimeout(() => {
91
- c.delete(v.target), y(p);
92
- }, s)) : S(v.target));
84
+ }, v = (b) => {
85
+ const m = d.get(b);
86
+ m !== void 0 && (clearTimeout(m), d.delete(b));
87
+ }, g = new IntersectionObserver((b) => {
88
+ for (const m of b) {
89
+ const p = _.get(m.target);
90
+ p !== void 0 && (m.intersectionRatio >= e ? d.has(m.target) || d.set(m.target, setTimeout(() => {
91
+ d.delete(m.target), f(p);
92
+ }, s)) : v(m.target));
93
93
  }
94
- }, { threshold: e }), I = () => {
95
- f.disconnect();
96
- for (const m of c.values())
97
- clearTimeout(m);
98
- c.clear(), h.clear();
94
+ }, { threshold: e }), w = () => {
95
+ g.disconnect();
96
+ for (const b of d.values())
97
+ clearTimeout(b);
98
+ d.clear(), _.clear();
99
99
  }, $ = () => {
100
- g();
101
- }, R = (m) => {
102
- if (m.persisted) {
103
- a.clear();
104
- for (const v of h.keys())
105
- S(v), f.unobserve(v), f.observe(v);
100
+ c();
101
+ }, k = (b) => {
102
+ if (b.persisted) {
103
+ i.clear();
104
+ for (const m of _.keys())
105
+ v(m), g.unobserve(m), g.observe(m);
106
106
  }
107
107
  };
108
- return window.addEventListener("pagehide", $), window.addEventListener("pageshow", R), {
109
- setContext(m) {
110
- g(), a.clear(), n = m, I();
108
+ return window.addEventListener("pagehide", $), window.addEventListener("pageshow", k), {
109
+ setContext(b) {
110
+ c(), i.clear(), r = b, w();
111
111
  },
112
- observe(m, v) {
113
- h.set(m, v), f.observe(m);
112
+ observe(b, m) {
113
+ _.set(b, m), g.observe(b);
114
114
  },
115
- forceImpression(m) {
116
- y(m), g();
115
+ forceImpression(b) {
116
+ f(b), c();
117
117
  },
118
- flush: g,
118
+ flush: c,
119
119
  disconnect() {
120
- g(), I(), window.removeEventListener("pagehide", $), window.removeEventListener("pageshow", R);
120
+ c(), w(), window.removeEventListener("pagehide", $), window.removeEventListener("pageshow", k);
121
121
  }
122
122
  };
123
123
  }
@@ -126,110 +126,110 @@ const te = (t, e) => ({
126
126
  // One-based position across all pages.
127
127
  position: t.page * t.hitsPerPage + e + 1
128
128
  });
129
- function ze(t) {
129
+ function je(t) {
130
130
  let e, s;
131
- const o = () => (e ?? (e = Fe({
131
+ const o = () => (e ?? (e = ze({
132
132
  emit: t.trackViewSearchResults
133
133
  })), e);
134
134
  return {
135
- onResponse(r) {
135
+ onResponse(n) {
136
136
  s = {
137
- query_id: r.queryID,
138
- index: r.index,
137
+ query_id: n.queryID,
138
+ index: n.index,
139
139
  surface: t.surface,
140
140
  search_type: "lexical",
141
141
  // Convert the API page to one-based analytics numbering.
142
- page: r.page + 1,
143
- total_hits: r.nbHits,
144
- query_length: [...r.query].length
145
- }, o().setContext(s), r.nbHits === 0 && t.trackViewSearchResults({ ...s, items: [] });
142
+ page: n.page + 1,
143
+ total_hits: n.nbHits,
144
+ query_length: [...n.query].length
145
+ }, o().setContext(s), n.nbHits === 0 && t.trackViewSearchResults({ ...s, items: [] });
146
146
  },
147
- observeResult(r, n, i) {
148
- o().observe(r, te(n, i));
147
+ observeResult(n, r, a) {
148
+ o().observe(n, te(r, a));
149
149
  },
150
- select(r, n) {
150
+ select(n, r) {
151
151
  if (s === void 0)
152
152
  return;
153
- const i = te(r, n);
154
- o().forceImpression(i), t.trackSelectSearchResult({ ...s, items: [i] });
153
+ const a = te(n, r);
154
+ o().forceImpression(a), t.trackSelectSearchResult({ ...s, items: [a] });
155
155
  },
156
156
  dispose() {
157
157
  e == null || e.disconnect();
158
158
  }
159
159
  };
160
160
  }
161
- const je = 2, se = (t) => {
161
+ const Ge = 2, se = (t) => {
162
162
  const e = t.trim();
163
- return [...e].length >= je ? e : void 0;
164
- }, Ge = (t, e, s, { indexName: o, language: r, currency: n, hitsPerPage: i }) => ({
163
+ return [...e].length >= Ge ? e : void 0;
164
+ }, Qe = (t, e, s, { indexName: o, language: n, currency: r, hitsPerPage: a }) => ({
165
165
  requests: [
166
- { indexName: o, query: t, page: e, hitsPerPage: i },
167
- ...s.map((a) => ({
168
- indexName: X(a.index, r, n),
166
+ { indexName: o, query: t, page: e, hitsPerPage: a },
167
+ ...s.map((i) => ({
168
+ indexName: X(i.index, n, r),
169
169
  query: t,
170
170
  page: 0,
171
- hitsPerPage: a.hitsPerPage ?? i
171
+ hitsPerPage: i.hitsPerPage ?? a
172
172
  }))
173
173
  ]
174
- }), We = (t, e, { indexName: s, language: o, currency: r }) => {
175
- const n = t.results.find((a) => a.index === s);
176
- if (n === void 0)
174
+ }), We = (t, e, { indexName: s, language: o, currency: n }) => {
175
+ const r = t.results.find((i) => i.index === s);
176
+ if (r === void 0)
177
177
  throw new Error(`Dialog search returned no ${s} entry`);
178
- const i = {};
179
- for (const a of e) {
180
- const h = X(a.index, o, r), c = t.results.find((d) => d.index === h);
181
- c !== void 0 && (i[a.index] = c);
178
+ const a = {};
179
+ for (const i of e) {
180
+ const _ = X(i.index, o, n), d = t.results.find((C) => C.index === _);
181
+ d !== void 0 && (a[i.index] = d);
182
182
  }
183
183
  return {
184
- response: n,
185
- sections: e.length === 0 ? void 0 : i
184
+ response: r,
185
+ sections: e.length === 0 ? void 0 : a
186
186
  };
187
187
  }, j = {
188
- status: L.IDLE,
188
+ status: A.IDLE,
189
189
  query: "",
190
190
  page: 0,
191
191
  response: void 0,
192
192
  sections: void 0,
193
193
  error: void 0
194
194
  };
195
- function Qe({ search: t, language: e, currency: s, analytics: o, navigate: r, debounceMs: n = 250, hitsPerPage: i = 12, sections: a = [] }) {
196
- const h = {
195
+ function Xe({ search: t, language: e, currency: s, analytics: o, navigate: n, debounceMs: r = 250, hitsPerPage: a = 12, sections: i = [] }) {
196
+ const _ = {
197
197
  indexName: X("products", e, s),
198
198
  language: e,
199
199
  currency: s,
200
- hitsPerPage: i
200
+ hitsPerPage: a
201
201
  };
202
- let c = j;
203
- const d = /* @__PURE__ */ new Set(), g = ze(o);
204
- let y, S, f, I = 0, $ = !1;
205
- const R = (p) => {
206
- c = { ...c, ...p };
207
- for (const C of d)
208
- C(c);
209
- }, m = () => {
210
- clearTimeout(y), S = void 0, I += 1, f == null || f.abort(), f = void 0;
211
- }, v = async (p, C) => {
212
- m(), f = new AbortController();
213
- const P = I;
214
- R({ status: L.LOADING, query: p, page: C });
202
+ let d = j;
203
+ const C = /* @__PURE__ */ new Set(), c = je(o);
204
+ let f, v, g, w = 0, $ = !1;
205
+ const k = (p) => {
206
+ d = { ...d, ...p };
207
+ for (const E of C)
208
+ E(d);
209
+ }, b = () => {
210
+ clearTimeout(f), v = void 0, w += 1, g == null || g.abort(), g = void 0;
211
+ }, m = async (p, E) => {
212
+ b(), g = new AbortController();
213
+ const O = w;
214
+ k({ status: A.LOADING, query: p, page: E });
215
215
  try {
216
- const x = typeof a == "function" ? a() : a, Y = Ge(p, C, x, h), Se = await t(Y, {
217
- signal: f.signal
216
+ const D = typeof i == "function" ? i() : i, Y = Qe(p, E, D, _), Ce = await t(Y, {
217
+ signal: g.signal
218
218
  });
219
- if (P !== I)
219
+ if (O !== w)
220
220
  return;
221
- const F = We(Se, x, h);
222
- g.onResponse(F.response), R({
221
+ const F = We(Ce, D, _);
222
+ c.onResponse(F.response), k({
223
223
  ...F,
224
- status: F.response.nbHits === 0 ? L.EMPTY : L.SUCCESS,
224
+ status: F.response.nbHits === 0 ? A.EMPTY : A.SUCCESS,
225
225
  error: void 0
226
226
  });
227
- } catch (x) {
228
- if (x instanceof DOMException && x.name === "AbortError" || P !== I)
227
+ } catch (D) {
228
+ if (D instanceof DOMException && D.name === "AbortError" || O !== w)
229
229
  return;
230
- R({
231
- status: L.ERROR,
232
- error: x,
230
+ k({
231
+ status: A.ERROR,
232
+ error: D,
233
233
  response: void 0,
234
234
  sections: void 0
235
235
  });
@@ -239,60 +239,113 @@ function Qe({ search: t, language: e, currency: s, analytics: o, navigate: r, de
239
239
  setQuery(p) {
240
240
  if ($)
241
241
  return;
242
- m();
243
- const C = se(p);
244
- if (C === void 0) {
245
- R(j);
242
+ b();
243
+ const E = se(p);
244
+ if (E === void 0) {
245
+ k(j);
246
246
  return;
247
247
  }
248
- S = C, y = setTimeout(() => void v(C, 0), n);
248
+ v = E, f = setTimeout(() => void m(E, 0), r);
249
249
  },
250
250
  submit(p) {
251
251
  if ($)
252
252
  return;
253
- m();
254
- const C = se(p);
255
- if (C === void 0) {
256
- R(j);
253
+ b();
254
+ const E = se(p);
255
+ if (E === void 0) {
256
+ k(j);
257
257
  return;
258
258
  }
259
- v(C, 0);
259
+ m(E, 0);
260
260
  },
261
261
  setPage(p) {
262
262
  if (!$) {
263
- if (S !== void 0) {
264
- v(S, 0);
263
+ if (v !== void 0) {
264
+ m(v, 0);
265
265
  return;
266
266
  }
267
- c.query !== "" && v(c.query, p);
267
+ d.query !== "" && m(d.query, p);
268
268
  }
269
269
  },
270
270
  retry() {
271
- $ || c.status !== L.ERROR || v(c.query, c.page);
271
+ $ || d.status !== A.ERROR || m(d.query, d.page);
272
272
  },
273
- observeResult(p, C) {
274
- c.response !== void 0 && g.observeResult(p, c.response, C);
273
+ observeResult(p, E) {
274
+ d.response !== void 0 && c.observeResult(p, d.response, E);
275
275
  },
276
- selectResult(p, C) {
277
- const P = c.response;
278
- if (P === void 0)
276
+ selectResult(p, E) {
277
+ const O = d.response;
278
+ if (O === void 0)
279
279
  return !1;
280
- g.select(P, p);
281
- const x = P.hits[p].url;
282
- return ((C == null ? void 0 : C.navigate) ?? !0) && r !== void 0 && x !== void 0 ? (r(x, P.hits[p]), !0) : !1;
280
+ c.select(O, p);
281
+ const D = O.hits[p].url;
282
+ return ((E == null ? void 0 : E.navigate) ?? !0) && n !== void 0 && D !== void 0 ? (n(D, O.hits[p]), !0) : !1;
283
283
  },
284
284
  subscribe(p) {
285
- return d.add(p), () => {
286
- d.delete(p);
285
+ return C.add(p), () => {
286
+ C.delete(p);
287
287
  };
288
288
  },
289
- getState: () => c,
289
+ getState: () => d,
290
290
  dispose() {
291
- $ = !0, m(), d.clear(), g.dispose();
291
+ $ = !0, b(), C.clear(), c.dispose();
292
292
  }
293
293
  };
294
294
  }
295
- const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-block-title" }, Ze = { class: "dialog-block-description" }, Je = /* @__PURE__ */ w({
295
+ const oe = {
296
+ en: {
297
+ placeholder: "Ask the AI a question",
298
+ aiDisclosure: "You're chatting with an AI assistant. It can make mistakes, so please double-check important information",
299
+ askSomethingElse: "Ask something else"
300
+ },
301
+ fr: {
302
+ placeholder: "Posez une question à l'IA",
303
+ aiDisclosure: "Vous discutez avec un assistant IA. Il peut se tromper, pensez à vérifier les informations importantes",
304
+ askSomethingElse: "Posez une autre question"
305
+ },
306
+ es: {
307
+ placeholder: "Haz una pregunta a la IA",
308
+ aiDisclosure: "Estás chateando con un asistente de IA. Puede cometer errores, así que verifica la información importante",
309
+ askSomethingElse: "Pregunta otra cosa"
310
+ }
311
+ }, he = (t) => {
312
+ var s;
313
+ const e = ((s = t == null ? void 0 : t.split("-")[0]) == null ? void 0 : s.toLowerCase()) ?? "en";
314
+ return oe[e] ?? oe.en;
315
+ }, Ye = ["disabled"], Ze = /* @__PURE__ */ I({
316
+ __name: "DialogAskSomethingElse",
317
+ props: {
318
+ client: {},
319
+ questions: {},
320
+ disabled: { type: Boolean },
321
+ productId: {},
322
+ productTitle: {},
323
+ selectedVariantId: {}
324
+ },
325
+ setup(t) {
326
+ const e = t, s = () => {
327
+ e.client.openAssistantWithSuggestions({
328
+ questions: e.questions ?? [],
329
+ product: {
330
+ id: e.productId,
331
+ title: e.productTitle,
332
+ selectedVariantId: e.selectedVariantId
333
+ }
334
+ });
335
+ };
336
+ return (o, n) => (u(), h("button", {
337
+ type: "button",
338
+ class: "dialog-ask-something-else",
339
+ disabled: e.disabled,
340
+ onClick: s
341
+ }, y(H(he)(e.client.locale).askSomethingElse), 9, Ye));
342
+ }
343
+ }), x = (t, e) => {
344
+ const s = t.__vccOpts || t;
345
+ for (const [o, n] of e)
346
+ s[o] = n;
347
+ return s;
348
+ }, Je = /* @__PURE__ */ x(Ze, [["__scopeId", "data-v-d0e272a0"]]), et = { class: "dialog-block-header-container" }, tt = { class: "dialog-block-title" }, st = { class: "dialog-block-description" }, ot = /* @__PURE__ */ I({
296
349
  __name: "DialogBlockHeader",
297
350
  props: {
298
351
  title: {},
@@ -300,31 +353,26 @@ const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-blo
300
353
  },
301
354
  setup(t) {
302
355
  const e = t;
303
- return (s, o) => (u(), _("div", Xe, [
304
- l("div", Ye, E(e.title ?? "Your expert"), 1),
305
- l("div", Ze, E(e.description ?? "A question about this product?"), 1)
356
+ return (s, o) => (u(), h("div", et, [
357
+ l("div", tt, y(e.title ?? "Your expert"), 1),
358
+ l("div", st, y(e.description ?? "A question about this product?"), 1)
306
359
  ]));
307
360
  }
308
- }), D = (t, e) => {
309
- const s = t.__vccOpts || t;
310
- for (const [o, r] of e)
311
- s[o] = r;
312
- return s;
313
- }, et = /* @__PURE__ */ D(Je, [["__scopeId", "data-v-28e6dda7"]]), tt = {
361
+ }), nt = /* @__PURE__ */ x(ot, [["__scopeId", "data-v-28e6dda7"]]), rt = {
314
362
  width: "20",
315
363
  height: "20",
316
364
  viewBox: "0 0 20 20",
317
365
  fill: "none",
318
366
  xmlns: "http://www.w3.org/2000/svg"
319
- }, st = { "clip-path": "url(#clip0_466_934)" }, ot = ["stroke"], nt = ["stroke"], rt = /* @__PURE__ */ w({
367
+ }, it = { "clip-path": "url(#clip0_466_934)" }, at = ["stroke"], lt = ["stroke"], ct = /* @__PURE__ */ I({
320
368
  __name: "AiStarsIcon",
321
369
  props: {
322
370
  color: {}
323
371
  },
324
372
  setup(t) {
325
373
  const e = t;
326
- return (s, o) => (u(), _("svg", tt, [
327
- l("g", st, [
374
+ return (s, o) => (u(), h("svg", rt, [
375
+ l("g", it, [
328
376
  l("path", {
329
377
  d: `M5.41675 10.8333L6.07046 12.1408C6.2917 12.5832 6.40232 12.8045 6.55011
330
378
  12.9962C6.68124 13.1663 6.83375 13.3188 7.00388 13.45C7.19559 13.5977 7.41684
@@ -340,7 +388,7 @@ const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-blo
340
388
  "stroke-width": "1.5",
341
389
  "stroke-linecap": "round",
342
390
  "stroke-linejoin": "round"
343
- }, null, 8, ot),
391
+ }, null, 8, at),
344
392
  l("path", {
345
393
  d: `M12.5001 1.66666L13.4823 4.22034C13.7173 4.83136 13.8348 5.13688 14.0175
346
394
  5.39386C14.1795 5.62162 14.3785 5.82061 14.6062 5.98256C14.8632 6.16529 15.1687
@@ -356,7 +404,7 @@ const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-blo
356
404
  "stroke-width": "1.5",
357
405
  "stroke-linecap": "round",
358
406
  "stroke-linejoin": "round"
359
- }, null, 8, nt)
407
+ }, null, 8, lt)
360
408
  ]),
361
409
  o[0] || (o[0] = l("defs", null, [
362
410
  l("clipPath", { id: "clip0_466_934" }, [
@@ -369,7 +417,7 @@ const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-blo
369
417
  ], -1))
370
418
  ]));
371
419
  }
372
- }), at = ["onClick"], it = { class: "dialog-block-suggestions-item-label" }, lt = /* @__PURE__ */ w({
420
+ }), ut = ["onClick"], dt = { class: "dialog-block-suggestions-item-label" }, pt = /* @__PURE__ */ I({
373
421
  __name: "DialogBlockSuggestions",
374
422
  props: {
375
423
  client: {},
@@ -388,27 +436,27 @@ const Xe = { class: "dialog-block-header-container" }, Ye = { class: "dialog-blo
388
436
  fromQuestionSuggestion: !0
389
437
  });
390
438
  };
391
- return (o, r) => (u(!0), _(N, null, Q(e.questions, (n) => (u(), _("button", {
392
- key: n.question,
439
+ return (o, n) => (u(!0), h(N, null, W(e.questions, (r) => (u(), h("button", {
440
+ key: r.question,
393
441
  class: "dialog-block-suggestions-item",
394
- onClick: (i) => s(n.question)
442
+ onClick: (a) => s(r.question)
395
443
  }, [
396
- T(rt, {
444
+ T(ct, {
397
445
  class: "dialog-block-suggestions-item-icon",
398
446
  color: e.client.theme.primaryColor
399
447
  }, null, 8, ["color"]),
400
- l("span", it, E(n.question), 1)
401
- ], 8, at))), 128));
448
+ l("span", dt, y(r.question), 1)
449
+ ], 8, ut))), 128));
402
450
  }
403
- }), ct = /* @__PURE__ */ D(lt, [["__scopeId", "data-v-db34d4b4"]]), ut = {};
404
- function dt(t, e) {
405
- return u(), _(N, null, [
451
+ }), ht = /* @__PURE__ */ x(pt, [["__scopeId", "data-v-db34d4b4"]]), _t = {};
452
+ function gt(t, e) {
453
+ return u(), h(N, null, [
406
454
  e[0] || (e[0] = l("div", { class: "dialog-block-suggestions-skeleton-item" }, null, -1)),
407
455
  e[1] || (e[1] = l("div", { class: "dialog-block-suggestions-skeleton-item" }, null, -1)),
408
456
  e[2] || (e[2] = l("div", { class: "dialog-block-suggestions-skeleton-item" }, null, -1))
409
457
  ], 64);
410
458
  }
411
- const pt = /* @__PURE__ */ D(ut, [["render", dt], ["__scopeId", "data-v-26a64b58"]]), ht = { class: "dialog-block-suggestions-container" }, _t = /* @__PURE__ */ w({
459
+ const ft = /* @__PURE__ */ x(_t, [["render", gt], ["__scopeId", "data-v-26a64b58"]]), vt = { class: "dialog-block-suggestions-container" }, mt = /* @__PURE__ */ I({
412
460
  __name: "DialogBlockSuggestionsContainer",
413
461
  props: {
414
462
  client: {},
@@ -420,8 +468,8 @@ const pt = /* @__PURE__ */ D(ut, [["render", dt], ["__scopeId", "data-v-26a64b58
420
468
  },
421
469
  setup(t) {
422
470
  const e = t;
423
- return (s, o) => (u(), _("div", ht, [
424
- e.isLoading || !e.questions ? (u(), O(pt, { key: 0 })) : (u(), O(ct, {
471
+ return (s, o) => (u(), h("div", vt, [
472
+ e.isLoading || !e.questions ? (u(), P(ft, { key: 0 })) : (u(), P(ht, {
425
473
  key: 1,
426
474
  client: e.client,
427
475
  questions: e.questions,
@@ -431,50 +479,33 @@ const pt = /* @__PURE__ */ D(ut, [["render", dt], ["__scopeId", "data-v-26a64b58
431
479
  }, null, 8, ["client", "questions", "product-id", "product-title", "selected-variant-id"]))
432
480
  ]));
433
481
  }
434
- }), gt = /* @__PURE__ */ D(_t, [["__scopeId", "data-v-18c9e78b"]]), ft = {
482
+ }), bt = /* @__PURE__ */ x(mt, [["__scopeId", "data-v-18c9e78b"]]), St = {
435
483
  width: "20",
436
484
  height: "20",
437
485
  viewBox: "0 0 20 20",
438
486
  fill: "none",
439
487
  xmlns: "http://www.w3.org/2000/svg"
440
- }, vt = ["stroke"], mt = /* @__PURE__ */ w({
488
+ }, Ct = ["stroke"], Et = /* @__PURE__ */ I({
441
489
  __name: "ArrowIcon",
442
490
  props: {
443
491
  color: {}
444
492
  },
445
493
  setup(t) {
446
494
  const e = t;
447
- return (s, o) => (u(), _("svg", ft, [
495
+ return (s, o) => (u(), h("svg", St, [
448
496
  l("path", {
449
497
  d: "M10 16.6667V3.33334M10 3.33334L5 8.33334M10 3.33334L15 8.33334",
450
498
  stroke: e.color || "#ffffff",
451
499
  "stroke-width": "1.5",
452
500
  "stroke-linecap": "round",
453
501
  "stroke-linejoin": "round"
454
- }, null, 8, vt)
502
+ }, null, 8, Ct)
455
503
  ]));
456
504
  }
457
- }), oe = {
458
- en: {
459
- placeholder: "Ask the AI a question",
460
- aiDisclosure: "You're chatting with an AI assistant. It can make mistakes, so please double-check important information"
461
- },
462
- fr: {
463
- placeholder: "Posez une question à l'IA",
464
- aiDisclosure: "Vous discutez avec un assistant IA. Il peut se tromper, pensez à vérifier les informations importantes"
465
- },
466
- es: {
467
- placeholder: "Haz una pregunta a la IA",
468
- aiDisclosure: "Estás chateando con un asistente de IA. Puede cometer errores, así que verifica la información importante"
469
- }
470
- }, bt = (t) => {
471
- var s;
472
- const e = ((s = t == null ? void 0 : t.split("-")[0]) == null ? void 0 : s.toLowerCase()) ?? "en";
473
- return oe[e] ?? oe.en;
474
- }, St = { class: "dialog-input-container" }, Ct = ["placeholder"], yt = ["disabled"], Et = {
505
+ }), yt = { class: "dialog-input-container" }, It = ["placeholder"], wt = ["disabled"], $t = {
475
506
  id: "dialog-input-ai-disclosure",
476
507
  class: "dialog-input-ai-disclosure"
477
- }, wt = /* @__PURE__ */ w({
508
+ }, kt = /* @__PURE__ */ I({
478
509
  __name: "DialogInput",
479
510
  props: {
480
511
  client: {},
@@ -484,185 +515,200 @@ const pt = /* @__PURE__ */ D(ut, [["render", dt], ["__scopeId", "data-v-26a64b58
484
515
  selectedVariantId: {}
485
516
  },
486
517
  setup(t) {
487
- const e = t, s = k(), o = k(""), r = b(() => bt(e.client.locale)), n = () => {
488
- var a;
489
- (a = s.value) == null || a.focus();
490
- }, i = () => {
491
- const a = o.value;
492
- a.trim() && (e.client.sendProductMessage({
518
+ const e = t, s = R(), o = R(""), n = S(() => he(e.client.locale)), r = () => {
519
+ var i;
520
+ (i = s.value) == null || i.focus();
521
+ }, a = () => {
522
+ const i = o.value;
523
+ i.trim() && (e.client.sendProductMessage({
493
524
  productId: e.productId,
494
525
  productTitle: e.productTitle,
495
526
  selectedVariantId: e.selectedVariantId,
496
- question: a,
527
+ question: i,
497
528
  fromQuestionSuggestion: !0
498
529
  }), o.value = "");
499
530
  };
500
- return (a, h) => (u(), _("div", St, [
531
+ return (i, _) => (u(), h("div", yt, [
501
532
  l("div", {
502
533
  class: "dialog-input-wrapper",
503
- onClick: n
534
+ onClick: r
504
535
  }, [
505
- ae(l("input", {
536
+ ie(l("input", {
506
537
  id: "dialog-ask-anything-input-ai-input",
507
538
  ref_key: "inputRef",
508
539
  ref: s,
509
- "onUpdate:modelValue": h[0] || (h[0] = (c) => o.value = c),
540
+ "onUpdate:modelValue": _[0] || (_[0] = (d) => o.value = d),
510
541
  class: "dialog-ask-anything-input-ai-input",
511
- placeholder: r.value.placeholder,
542
+ placeholder: n.value.placeholder,
512
543
  "aria-describedby": "dialog-input-ai-disclosure",
513
- onKeydown: Ee(i, ["enter"])
514
- }, null, 40, Ct), [
515
- [ie, o.value]
544
+ onKeydown: Ie(a, ["enter"])
545
+ }, null, 40, It), [
546
+ [ae, o.value]
516
547
  ]),
517
548
  l("button", {
518
549
  id: "send-message-button-ai-input",
519
550
  class: "dialog-input-submit",
520
551
  disabled: !o.value.trim(),
521
- onClick: i
552
+ onClick: a
522
553
  }, [
523
- T(mt, {
554
+ T(Et, {
524
555
  color: e.client.theme.ctaTextColor
525
556
  }, null, 8, ["color"])
526
- ], 8, yt)
557
+ ], 8, wt)
527
558
  ]),
528
- l("p", Et, E(r.value.aiDisclosure), 1)
559
+ l("p", $t, y(n.value.aiDisclosure), 1)
529
560
  ]));
530
561
  }
531
- }), It = /* @__PURE__ */ D(wt, [["__scopeId", "data-v-87013888"]]), $t = /* @__PURE__ */ w({
562
+ }), Tt = /* @__PURE__ */ x(kt, [["__scopeId", "data-v-87013888"]]), Rt = /* @__PURE__ */ I({
532
563
  __name: "ThemeProvider",
533
564
  props: {
534
565
  theme: {}
535
566
  },
536
567
  setup(t) {
537
- const e = t, s = document.body, o = (n) => n.replace(/([A-Z])/g, "-$1").toLowerCase(), r = (n) => {
538
- n && Object.keys(n).forEach((i) => {
539
- const a = i, h = o(i);
540
- if (n[a] !== void 0) {
541
- if (typeof n[a] == "object") {
542
- Object.keys(n[a]).forEach((c) => {
543
- var g;
544
- const d = c;
545
- if (d !== void 0) {
546
- const y = o(c), S = n[a];
568
+ const e = t, s = document.body, o = (r) => r.replace(/([A-Z])/g, "-$1").toLowerCase(), n = (r) => {
569
+ r && Object.keys(r).forEach((a) => {
570
+ const i = a, _ = o(a);
571
+ if (r[i] !== void 0) {
572
+ if (typeof r[i] == "object") {
573
+ Object.keys(r[i]).forEach((d) => {
574
+ var c;
575
+ const C = d;
576
+ if (C !== void 0) {
577
+ const f = o(d), v = r[i];
547
578
  s.style.setProperty(
548
- `--dialog-theme-${h}-${y}`,
549
- (g = S[d]) == null ? void 0 : g.toString()
579
+ `--dialog-theme-${_}-${f}`,
580
+ (c = v[C]) == null ? void 0 : c.toString()
550
581
  );
551
582
  }
552
583
  });
553
584
  return;
554
585
  }
555
- if (a === "ctaBorderType") {
556
- const c = n[a] === "rounded" ? "24px" : "0";
557
- s.style.setProperty(`--dialog-theme-${h}`, c);
586
+ if (i === "ctaBorderType") {
587
+ const d = r[i] === "rounded" ? "24px" : "0";
588
+ s.style.setProperty(`--dialog-theme-${_}`, d);
558
589
  return;
559
590
  }
560
591
  s.style.setProperty(
561
- `--dialog-theme-${h}`,
562
- n[a].toString()
592
+ `--dialog-theme-${_}`,
593
+ r[i].toString()
563
594
  );
564
595
  }
565
596
  });
566
597
  };
567
- return B(() => {
568
- e.theme && r(e.theme);
598
+ return K(() => {
599
+ e.theme && n(e.theme);
569
600
  }), M(
570
601
  () => e.theme,
571
- (n) => {
572
- n && r(n);
602
+ (r) => {
603
+ r && n(r);
573
604
  },
574
605
  { deep: !0 }
575
- ), (n, i) => we(n.$slots, "default");
606
+ ), (r, a) => we(r.$slots, "default");
576
607
  }
577
- }), Rt = ["dir"], Tt = /* @__PURE__ */ w({
608
+ }), At = ["dir"], Lt = 2, xt = 5, Dt = /* @__PURE__ */ I({
578
609
  __name: "DialogProductBlock",
579
610
  props: {
580
611
  client: {},
581
612
  productId: {},
582
613
  productTitle: {},
583
614
  selectedVariantId: { default: void 0 },
584
- enableInput: { type: Boolean, default: !0 }
615
+ enableInput: { type: Boolean, default: !1 }
585
616
  },
586
617
  setup(t) {
587
618
  const e = t;
588
- B(() => {
619
+ K(() => {
589
620
  pe({
590
621
  method: "vue",
591
- version: "3.8.0"
592
- }), Ue("pdp-block");
622
+ version: "3.9.0"
623
+ }), He("pdp-block");
593
624
  });
594
- const s = k(!0), o = k(void 0), r = k(0), n = b(() => {
595
- var d;
596
- return s.value ? "" : (d = o.value) == null ? void 0 : d.assistantName;
597
- }), i = b(() => {
598
- var d;
599
- return s.value ? "" : (d = o.value) == null ? void 0 : d.description;
600
- }), a = b(() => {
601
- var d;
602
- return s.value ? "" : (d = o.value) == null ? void 0 : d.inputPlaceholder;
603
- }), h = b(
625
+ const s = R(!0), o = R(void 0), n = R(0), r = S(() => {
626
+ var c;
627
+ return s.value ? "" : (c = o.value) == null ? void 0 : c.assistantName;
628
+ }), a = S(() => {
629
+ var c;
630
+ return s.value ? "" : (c = o.value) == null ? void 0 : c.description;
631
+ }), i = S(
632
+ () => {
633
+ var c, f;
634
+ return (f = (c = o.value) == null ? void 0 : c.questions) == null ? void 0 : f.slice(0, Lt);
635
+ }
636
+ ), _ = S(() => {
637
+ var c;
638
+ return s.value ? "" : (c = o.value) == null ? void 0 : c.inputPlaceholder;
639
+ }), d = S(
604
640
  () => {
605
- var d;
606
- return Pe(
607
- (d = e.client.getLocalizationInformations()) == null ? void 0 : d.languageCode
641
+ var c;
642
+ return Oe(
643
+ (c = e.client.getLocalizationInformations()) == null ? void 0 : c.languageCode
608
644
  );
609
645
  }
610
- ), c = async () => {
611
- const d = ++r.value;
646
+ ), C = async () => {
647
+ const c = ++n.value;
612
648
  s.value = !0, o.value = void 0;
613
649
  try {
614
- const g = await e.client.getSuggestions(e.productId);
615
- d === r.value && (o.value = g);
616
- } catch (g) {
617
- console.error("error", g);
650
+ const f = await e.client.getSuggestions(e.productId, {
651
+ limit: xt
652
+ });
653
+ c === n.value && (o.value = f);
654
+ } catch (f) {
655
+ console.error("error", f);
618
656
  } finally {
619
- d === r.value && (s.value = !1);
657
+ c === n.value && (s.value = !1);
620
658
  }
621
659
  };
622
660
  return M(
623
661
  () => [e.client, e.productId],
624
662
  () => {
625
- c();
663
+ C();
626
664
  },
627
665
  { immediate: !0 }
628
- ), (d, g) => (u(), O($t, {
666
+ ), (c, f) => (u(), P(Rt, {
629
667
  theme: e.client.theme
630
668
  }, {
631
669
  default: le(() => {
632
- var y;
670
+ var v;
633
671
  return [
634
672
  l("div", {
635
673
  id: "dialog-instant",
636
674
  class: "dialog-block-container",
637
- dir: h.value
675
+ dir: d.value
638
676
  }, [
639
- T(et, {
640
- title: n.value,
641
- description: i.value
677
+ T(nt, {
678
+ title: r.value,
679
+ description: a.value
642
680
  }, null, 8, ["title", "description"]),
643
- T(gt, {
681
+ T(bt, {
644
682
  client: e.client,
645
- questions: (y = o.value) == null ? void 0 : y.questions,
683
+ questions: i.value,
646
684
  "is-loading": s.value,
647
685
  "product-id": e.productId,
648
686
  "product-title": e.productTitle,
649
687
  "selected-variant-id": e == null ? void 0 : e.selectedVariantId
650
688
  }, null, 8, ["client", "questions", "is-loading", "product-id", "product-title", "selected-variant-id"]),
651
- e.enableInput ? (u(), O(It, {
689
+ e.enableInput ? (u(), P(Tt, {
652
690
  key: 0,
653
691
  client: e.client,
654
- placeholder: a.value,
692
+ placeholder: _.value,
655
693
  "product-id": e.productId,
656
694
  "product-title": e.productTitle,
657
695
  "selected-variant-id": e == null ? void 0 : e.selectedVariantId
658
- }, null, 8, ["client", "placeholder", "product-id", "product-title", "selected-variant-id"])) : A("", !0)
659
- ], 8, Rt)
696
+ }, null, 8, ["client", "placeholder", "product-id", "product-title", "selected-variant-id"])) : (u(), P(Je, {
697
+ key: 1,
698
+ client: e.client,
699
+ questions: (v = o.value) == null ? void 0 : v.questions,
700
+ disabled: s.value,
701
+ "product-id": e.productId,
702
+ "product-title": e.productTitle,
703
+ "selected-variant-id": e.selectedVariantId
704
+ }, null, 8, ["client", "questions", "disabled", "product-id", "product-title", "selected-variant-id"]))
705
+ ], 8, At)
660
706
  ];
661
707
  }),
662
708
  _: 1
663
709
  }, 8, ["theme"]));
664
710
  }
665
- }), so = /* @__PURE__ */ D(Tt, [["__scopeId", "data-v-c57aa677"]]), kt = {}, At = {
711
+ }), ao = /* @__PURE__ */ x(Dt, [["__scopeId", "data-v-0c307e5f"]]), Pt = {}, Ot = {
666
712
  width: "16",
667
713
  height: "16",
668
714
  viewBox: "0 0 16 16",
@@ -670,8 +716,8 @@ const pt = /* @__PURE__ */ D(ut, [["render", dt], ["__scopeId", "data-v-26a64b58
670
716
  xmlns: "http://www.w3.org/2000/svg",
671
717
  "aria-hidden": "true"
672
718
  };
673
- function Lt(t, e) {
674
- return u(), _("svg", At, e[0] || (e[0] = [
719
+ function Nt(t, e) {
720
+ return u(), h("svg", Ot, e[0] || (e[0] = [
675
721
  l("path", {
676
722
  d: "M8 13V3M8 3L3 8M8 3L13 8",
677
723
  stroke: "currentColor",
@@ -681,28 +727,28 @@ function Lt(t, e) {
681
727
  }, null, -1)
682
728
  ]));
683
729
  }
684
- const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
730
+ const qt = /* @__PURE__ */ x(Pt, [["render", Nt]]), Mt = {
685
731
  width: "16",
686
732
  height: "16",
687
733
  viewBox: "0 0 12 12",
688
734
  fill: "none",
689
735
  xmlns: "http://www.w3.org/2000/svg",
690
736
  "aria-hidden": "true"
691
- }, Pt = ["fill"], Ot = "M5.3217 0.588255C5.63241 -0.196084 6.36759 -0.196085 6.6783 0.588254C6.98901 1.37259 7.68193 2.82807 8.42693 3.57307C9.17193 4.31807 10.6274 5.01099 11.4117 5.3217C12.1961 5.63241 12.1961 6.36759 11.4117 6.6783C10.6274 6.98901 9.17193 7.68193 8.42693 8.42693C7.68193 9.17193 6.98901 10.6274 6.6783 11.4117C6.36759 12.1961 5.63241 12.1961 5.3217 11.4117C5.01099 10.6274 4.31807 9.17193 3.57307 8.42693C2.82808 7.68193 1.37259 6.98901 0.588255 6.6783C-0.196084 6.36759 -0.196085 5.63241 0.588254 5.3217C1.37259 5.01099 2.82807 4.31807 3.57307 3.57307C4.31807 2.82808 5.01099 1.37259 5.3217 0.588255Z", Nt = /* @__PURE__ */ w({
737
+ }, Ut = ["fill"], Ht = "M5.3217 0.588255C5.63241 -0.196084 6.36759 -0.196085 6.6783 0.588254C6.98901 1.37259 7.68193 2.82807 8.42693 3.57307C9.17193 4.31807 10.6274 5.01099 11.4117 5.3217C12.1961 5.63241 12.1961 6.36759 11.4117 6.6783C10.6274 6.98901 9.17193 7.68193 8.42693 8.42693C7.68193 9.17193 6.98901 10.6274 6.6783 11.4117C6.36759 12.1961 5.63241 12.1961 5.3217 11.4117C5.01099 10.6274 4.31807 9.17193 3.57307 8.42693C2.82808 7.68193 1.37259 6.98901 0.588255 6.6783C-0.196084 6.36759 -0.196085 5.63241 0.588254 5.3217C1.37259 5.01099 2.82807 4.31807 3.57307 3.57307C4.31807 2.82808 5.01099 1.37259 5.3217 0.588255Z", Vt = /* @__PURE__ */ I({
692
738
  __name: "ShurikenIcon",
693
739
  props: {
694
740
  color: {}
695
741
  },
696
742
  setup(t) {
697
743
  const e = t;
698
- return (s, o) => (u(), _("svg", Dt, [
744
+ return (s, o) => (u(), h("svg", Mt, [
699
745
  l("path", {
700
- d: Ot,
746
+ d: Ht,
701
747
  fill: e.color || "currentColor"
702
- }, null, 8, Pt)
748
+ }, null, 8, Ut)
703
749
  ]));
704
750
  }
705
- }), qt = { class: "dialog-search-bar-field" }, Mt = { class: "dialog-search-bar-icon" }, Ut = ["aria-label", "placeholder", "autofocus"], Ht = ["aria-label"], oo = /* @__PURE__ */ w({
751
+ }), Bt = { class: "dialog-search-bar-field" }, Kt = { class: "dialog-search-bar-icon" }, Ft = ["aria-label", "placeholder", "autofocus"], zt = ["aria-label"], lo = /* @__PURE__ */ I({
706
752
  __name: "DialogSearchBar",
707
753
  props: {
708
754
  controller: {},
@@ -711,22 +757,22 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
711
757
  submitAriaLabel: { default: "Search" }
712
758
  },
713
759
  setup(t) {
714
- const e = t, s = k(""), o = () => {
760
+ const e = t, s = R(""), o = () => {
715
761
  e.controller.setQuery(s.value);
716
- }, r = () => {
762
+ }, n = () => {
717
763
  e.controller.submit(s.value);
718
764
  };
719
- return (n, i) => (u(), _("form", {
765
+ return (r, a) => (u(), h("form", {
720
766
  class: "dialog-search-bar",
721
767
  role: "search",
722
- onSubmit: Ie(r, ["prevent"])
768
+ onSubmit: $e(n, ["prevent"])
723
769
  }, [
724
- l("div", qt, [
725
- l("span", Mt, [
726
- T(Nt)
770
+ l("div", Bt, [
771
+ l("span", Kt, [
772
+ T(Vt)
727
773
  ]),
728
- ae(l("input", {
729
- "onUpdate:modelValue": i[0] || (i[0] = (a) => s.value = a),
774
+ ie(l("input", {
775
+ "onUpdate:modelValue": a[0] || (a[0] = (i) => s.value = i),
730
776
  type: "text",
731
777
  name: "dialog-search-query",
732
778
  class: "dialog-search-bar-input",
@@ -734,8 +780,8 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
734
780
  placeholder: e.placeholder,
735
781
  autofocus: e.autoFocus,
736
782
  onInput: o
737
- }, null, 40, Ut), [
738
- [ie, s.value]
783
+ }, null, 40, Ft), [
784
+ [ae, s.value]
739
785
  ])
740
786
  ]),
741
787
  l("button", {
@@ -743,11 +789,11 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
743
789
  class: "dialog-search-bar-submit",
744
790
  "aria-label": e.submitAriaLabel
745
791
  }, [
746
- T(xt)
747
- ], 8, Ht)
792
+ T(qt)
793
+ ], 8, zt)
748
794
  ], 32));
749
795
  }
750
- }), Vt = (t, e) => {
796
+ }), jt = (t, e) => {
751
797
  try {
752
798
  return new Intl.NumberFormat(e).format(t);
753
799
  } catch {
@@ -819,15 +865,15 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
819
865
  next: "Successivo",
820
866
  pageOf: (e, s) => `Pagina ${t(e)} / ${t(s)}`
821
867
  })
822
- }, he = (t) => {
868
+ }, _e = (t) => {
823
869
  var o;
824
870
  const e = ((o = t == null ? void 0 : t.split("-")[0]) == null ? void 0 : o.toLowerCase()) ?? "en";
825
- return (ne[e] ?? ne.en)((r) => Vt(r, t));
826
- }, _e = (t) => t.status !== L.LOADING && t.response !== void 0 && t.response.nbPages > 1, Bt = {
871
+ return (ne[e] ?? ne.en)((n) => jt(n, t));
872
+ }, ge = (t) => t.status !== A.LOADING && t.response !== void 0 && t.response.nbPages > 1, Gt = {
827
873
  key: 0,
828
874
  "aria-label": "Search results pages",
829
875
  class: "dialog-search-pagination"
830
- }, Kt = ["disabled"], Ft = ["disabled"], zt = /* @__PURE__ */ w({
876
+ }, Qt = ["disabled"], Wt = ["disabled"], Xt = /* @__PURE__ */ I({
831
877
  __name: "DialogSearchPagination",
832
878
  props: {
833
879
  controller: {},
@@ -835,87 +881,87 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
835
881
  locale: {}
836
882
  },
837
883
  setup(t) {
838
- const e = t, s = b(() => e.state.response), o = b(() => he(e.locale));
839
- return (r, n) => s.value !== void 0 && K(_e)(e.state) ? (u(), _("nav", Bt, [
884
+ const e = t, s = S(() => e.state.response), o = S(() => _e(e.locale));
885
+ return (n, r) => s.value !== void 0 && H(ge)(e.state) ? (u(), h("nav", Gt, [
840
886
  l("button", {
841
887
  type: "button",
842
888
  disabled: s.value.page === 0,
843
- onClick: n[0] || (n[0] = (i) => e.controller.setPage(s.value.page - 1))
844
- }, E(o.value.previous), 9, Kt),
845
- l("span", null, E(o.value.pageOf(s.value.page + 1, s.value.nbPages)), 1),
889
+ onClick: r[0] || (r[0] = (a) => e.controller.setPage(s.value.page - 1))
890
+ }, y(o.value.previous), 9, Qt),
891
+ l("span", null, y(o.value.pageOf(s.value.page + 1, s.value.nbPages)), 1),
846
892
  l("button", {
847
893
  type: "button",
848
894
  disabled: s.value.page >= s.value.nbPages - 1,
849
- onClick: n[1] || (n[1] = (i) => e.controller.setPage(s.value.page + 1))
850
- }, E(o.value.next), 9, Ft)
851
- ])) : A("", !0);
895
+ onClick: r[1] || (r[1] = (a) => e.controller.setPage(s.value.page + 1))
896
+ }, y(o.value.next), 9, Wt)
897
+ ])) : L("", !0);
852
898
  }
853
- }), re = (t) => t.normalize("NFD").replace(new RegExp("\\p{M}", "gu"), "").replace(/ẞ/gu, "ß").toUpperCase().toLowerCase().replace(/ς/g, "σ"), jt = (t, e) => {
899
+ }), re = (t) => t.normalize("NFD").replace(new RegExp("\\p{M}", "gu"), "").replace(/ẞ/gu, "ß").toUpperCase().toLowerCase().replace(/ς/g, "σ"), Yt = (t, e) => {
854
900
  const s = { before: "", match: t, after: "" }, o = re(e.trim());
855
901
  if (o === "")
856
902
  return s;
857
- const r = [...t], n = [];
858
- let i = "";
859
- r.forEach((d, g) => {
860
- const y = re(d);
861
- for (let S = 0; S < y.length; S += 1)
862
- n.push(g);
863
- i += y;
903
+ const n = [...t], r = [];
904
+ let a = "";
905
+ n.forEach((C, c) => {
906
+ const f = re(C);
907
+ for (let v = 0; v < f.length; v += 1)
908
+ r.push(c);
909
+ a += f;
864
910
  });
865
- const a = i.indexOf(o);
866
- if (a === -1)
911
+ const i = a.indexOf(o);
912
+ if (i === -1)
867
913
  return s;
868
- const h = n[a], c = n[a + o.length - 1] + 1;
914
+ const _ = r[i], d = r[i + o.length - 1] + 1;
869
915
  return {
870
- before: r.slice(0, h).join(""),
871
- match: r.slice(h, c).join(""),
872
- after: r.slice(c).join("")
916
+ before: n.slice(0, _).join(""),
917
+ match: n.slice(_, d).join(""),
918
+ after: n.slice(d).join("")
873
919
  };
874
- }, Gt = {
920
+ }, Zt = {
875
921
  key: 0,
876
922
  class: "dialog-search-muted"
877
- }, Wt = { class: "dialog-search-match" }, Qt = {
923
+ }, Jt = { class: "dialog-search-match" }, es = {
878
924
  key: 1,
879
925
  class: "dialog-search-muted"
880
- }, ge = /* @__PURE__ */ w({
926
+ }, fe = /* @__PURE__ */ I({
881
927
  __name: "HighlightedTitle",
882
928
  props: {
883
929
  title: {},
884
930
  query: {}
885
931
  },
886
932
  setup(t) {
887
- const e = t, s = b(() => jt(e.title, e.query));
888
- return (o, r) => (u(), _(N, null, [
889
- s.value.before !== "" ? (u(), _("span", Gt, E(s.value.before), 1)) : A("", !0),
890
- l("span", Wt, E(s.value.match), 1),
891
- s.value.after !== "" ? (u(), _("span", Qt, E(s.value.after), 1)) : A("", !0)
933
+ const e = t, s = S(() => Yt(e.title, e.query));
934
+ return (o, n) => (u(), h(N, null, [
935
+ s.value.before !== "" ? (u(), h("span", Zt, y(s.value.before), 1)) : L("", !0),
936
+ l("span", Jt, y(s.value.match), 1),
937
+ s.value.after !== "" ? (u(), h("span", es, y(s.value.after), 1)) : L("", !0)
892
938
  ], 64));
893
939
  }
894
- }), Xt = ({ amount: t, currencyCode: e }, s) => e === void 0 ? new Intl.NumberFormat(s).format(Number(t)) : new Intl.NumberFormat(s, {
940
+ }), ts = ({ amount: t, currencyCode: e }, s) => e === void 0 ? new Intl.NumberFormat(s).format(Number(t)) : new Intl.NumberFormat(s, {
895
941
  style: "currency",
896
942
  currency: e
897
- }).format(Number(t)), Yt = (t, e) => {
943
+ }).format(Number(t)), ss = (t, e) => {
898
944
  if (t === void 0)
899
945
  return "";
900
946
  try {
901
- return Xt(t.min, e);
947
+ return ts(t.min, e);
902
948
  } catch {
903
949
  return "";
904
950
  }
905
- }, Zt = (t) => {
951
+ }, os = (t) => {
906
952
  try {
907
953
  const { protocol: e } = new URL(t, window.location.href);
908
954
  return e === "http:" || e === "https:" ? t : void 0;
909
955
  } catch {
910
956
  return;
911
957
  }
912
- }, fe = (t) => t.url === void 0 || t.url === "" ? void 0 : Zt(t.url), ve = (t) => t.title ?? t.handle ?? t.objectID, Jt = {
958
+ }, ve = (t) => t.url === void 0 || t.url === "" ? void 0 : os(t.url), me = (t) => t.title ?? t.handle ?? t.objectID, ns = {
913
959
  class: "dialog-search-product-thumb",
914
960
  "aria-hidden": "true"
915
- }, es = ["src"], ts = { class: "dialog-search-product-title" }, ss = {
961
+ }, rs = ["src"], is = { class: "dialog-search-product-title" }, as = {
916
962
  key: 0,
917
963
  class: "dialog-search-product-price"
918
- }, os = /* @__PURE__ */ w({
964
+ }, ls = /* @__PURE__ */ I({
919
965
  __name: "DialogSearchProductCard",
920
966
  props: {
921
967
  controller: {},
@@ -925,7 +971,7 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
925
971
  query: { default: "" }
926
972
  },
927
973
  setup(t) {
928
- const e = t, s = k();
974
+ const e = t, s = R();
929
975
  M(
930
976
  () => e.hit,
931
977
  () => {
@@ -933,47 +979,47 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
933
979
  },
934
980
  { immediate: !0, flush: "post" }
935
981
  );
936
- const o = b(() => fe(e.hit)), r = b(
937
- () => Yt(e.hit.priceRange, e.locale)
938
- ), n = (a) => {
939
- const h = a.metaKey || a.ctrlKey || a.shiftKey || a.altKey;
940
- e.controller.selectResult(e.index, { navigate: !h }) && a.preventDefault();
941
- }, i = (a) => {
942
- a.button === 1 && e.controller.selectResult(e.index, { navigate: !1 });
982
+ const o = S(() => ve(e.hit)), n = S(
983
+ () => ss(e.hit.priceRange, e.locale)
984
+ ), r = (i) => {
985
+ const _ = i.metaKey || i.ctrlKey || i.shiftKey || i.altKey;
986
+ e.controller.selectResult(e.index, { navigate: !_ }) && i.preventDefault();
987
+ }, a = (i) => {
988
+ i.button === 1 && e.controller.selectResult(e.index, { navigate: !1 });
943
989
  };
944
- return (a, h) => (u(), _("li", {
990
+ return (i, _) => (u(), h("li", {
945
991
  ref_key: "cardRef",
946
992
  ref: s,
947
993
  class: "dialog-search-card"
948
994
  }, [
949
- (u(), O($e(o.value === void 0 ? "div" : "a"), Re({
995
+ (u(), P(ke(o.value === void 0 ? "div" : "a"), Te({
950
996
  class: "dialog-search-product",
951
997
  href: o.value
952
- }, Te(
953
- o.value === void 0 ? {} : { click: n, auxclick: i }
998
+ }, Re(
999
+ o.value === void 0 ? {} : { click: r, auxclick: a }
954
1000
  )), {
955
1001
  default: le(() => [
956
- l("span", Jt, [
957
- e.hit.imageUrl !== void 0 && e.hit.imageUrl !== "" ? (u(), _("img", {
1002
+ l("span", ns, [
1003
+ e.hit.imageUrl !== void 0 && e.hit.imageUrl !== "" ? (u(), h("img", {
958
1004
  key: 0,
959
1005
  src: e.hit.imageUrl,
960
1006
  alt: "",
961
1007
  loading: "lazy"
962
- }, null, 8, es)) : A("", !0)
1008
+ }, null, 8, rs)) : L("", !0)
963
1009
  ]),
964
- l("span", ts, [
965
- T(ge, {
966
- title: K(ve)(e.hit),
1010
+ l("span", is, [
1011
+ T(fe, {
1012
+ title: H(me)(e.hit),
967
1013
  query: e.query
968
1014
  }, null, 8, ["title", "query"])
969
1015
  ]),
970
- r.value !== "" ? (u(), _("span", ss, E(r.value), 1)) : A("", !0)
1016
+ n.value !== "" ? (u(), h("span", as, y(n.value), 1)) : L("", !0)
971
1017
  ]),
972
1018
  _: 1
973
1019
  }, 16, ["href"]))
974
1020
  ], 512));
975
1021
  }
976
- }), ns = {}, rs = {
1022
+ }), cs = {}, us = {
977
1023
  width: "16",
978
1024
  height: "16",
979
1025
  viewBox: "0 0 256 256",
@@ -981,12 +1027,12 @@ const xt = /* @__PURE__ */ D(kt, [["render", Lt]]), Dt = {
981
1027
  xmlns: "http://www.w3.org/2000/svg",
982
1028
  "aria-hidden": "true"
983
1029
  };
984
- function as(t, e) {
985
- return u(), _("svg", rs, e[0] || (e[0] = [
1030
+ function ds(t, e) {
1031
+ return u(), h("svg", us, e[0] || (e[0] = [
986
1032
  l("path", { d: "M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z" }, null, -1)
987
1033
  ]));
988
1034
  }
989
- const is = /* @__PURE__ */ D(ns, [["render", as]]), ls = {}, cs = {
1035
+ const ps = /* @__PURE__ */ x(cs, [["render", ds]]), hs = {}, _s = {
990
1036
  width: "12",
991
1037
  height: "12",
992
1038
  viewBox: "0 0 256 256",
@@ -994,21 +1040,21 @@ const is = /* @__PURE__ */ D(ns, [["render", as]]), ls = {}, cs = {
994
1040
  xmlns: "http://www.w3.org/2000/svg",
995
1041
  "aria-hidden": "true"
996
1042
  };
997
- function us(t, e) {
998
- return u(), _("svg", cs, e[0] || (e[0] = [
1043
+ function gs(t, e) {
1044
+ return u(), h("svg", _s, e[0] || (e[0] = [
999
1045
  l("path", { d: "M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z" }, null, -1)
1000
1046
  ]));
1001
1047
  }
1002
- const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMap((e) => {
1003
- const s = fe(e);
1048
+ const fs = /* @__PURE__ */ x(hs, [["render", gs]]), be = (t) => (t ?? []).flatMap((e) => {
1049
+ const s = ve(e);
1004
1050
  return s === void 0 ? [] : [{ collection: e, href: s }];
1005
- }), ps = {
1051
+ }), vs = {
1006
1052
  key: 0,
1007
1053
  class: "dialog-search-collections"
1008
- }, hs = { class: "dialog-search-section-head" }, _s = { class: "dialog-search-label" }, gs = { class: "dialog-search-count" }, fs = { class: "dialog-search-collection-list" }, vs = ["href"], ms = {
1054
+ }, ms = { class: "dialog-search-section-head" }, bs = { class: "dialog-search-label" }, Ss = { class: "dialog-search-count" }, Cs = { class: "dialog-search-collection-list" }, Es = ["href"], ys = {
1009
1055
  class: "dialog-search-collection-thumb",
1010
1056
  "aria-hidden": "true"
1011
- }, bs = ["src"], Ss = { class: "dialog-search-collection-title" }, Cs = { class: "dialog-search-caret" }, ys = /* @__PURE__ */ w({
1057
+ }, Is = ["src"], ws = { class: "dialog-search-collection-title" }, $s = { class: "dialog-search-caret" }, ks = /* @__PURE__ */ I({
1012
1058
  __name: "DialogSearchCollections",
1013
1059
  props: {
1014
1060
  collections: {},
@@ -1016,50 +1062,50 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1016
1062
  messages: {}
1017
1063
  },
1018
1064
  setup(t) {
1019
- const e = t, s = b(() => me(e.collections));
1020
- return (o, r) => s.value.length > 0 ? (u(), _("aside", ps, [
1021
- l("div", hs, [
1022
- l("p", _s, E(e.messages.collectionsLabel), 1),
1023
- l("span", gs, E(e.messages.collectionsCount(s.value.length)), 1)
1065
+ const e = t, s = S(() => be(e.collections));
1066
+ return (o, n) => s.value.length > 0 ? (u(), h("aside", vs, [
1067
+ l("div", ms, [
1068
+ l("p", bs, y(e.messages.collectionsLabel), 1),
1069
+ l("span", Ss, y(e.messages.collectionsCount(s.value.length)), 1)
1024
1070
  ]),
1025
- l("ul", fs, [
1026
- (u(!0), _(N, null, Q(s.value, ({ collection: n, href: i }) => (u(), _("li", {
1027
- key: n.objectID
1071
+ l("ul", Cs, [
1072
+ (u(!0), h(N, null, W(s.value, ({ collection: r, href: a }) => (u(), h("li", {
1073
+ key: r.objectID
1028
1074
  }, [
1029
1075
  l("a", {
1030
1076
  class: "dialog-search-collection",
1031
- href: i
1077
+ href: a
1032
1078
  }, [
1033
- l("span", ms, [
1034
- n.imageUrl !== void 0 && n.imageUrl !== "" ? (u(), _("img", {
1079
+ l("span", ys, [
1080
+ r.imageUrl !== void 0 && r.imageUrl !== "" ? (u(), h("img", {
1035
1081
  key: 0,
1036
- src: n.imageUrl,
1082
+ src: r.imageUrl,
1037
1083
  alt: "",
1038
1084
  loading: "lazy"
1039
- }, null, 8, bs)) : A("", !0)
1085
+ }, null, 8, Is)) : L("", !0)
1040
1086
  ]),
1041
- l("span", Ss, [
1042
- T(ge, {
1043
- title: K(ve)(n),
1087
+ l("span", ws, [
1088
+ T(fe, {
1089
+ title: H(me)(r),
1044
1090
  query: e.query
1045
1091
  }, null, 8, ["title", "query"])
1046
1092
  ]),
1047
- l("span", Cs, [
1048
- T(ds)
1093
+ l("span", $s, [
1094
+ T(fs)
1049
1095
  ])
1050
- ], 8, vs)
1096
+ ], 8, Es)
1051
1097
  ]))), 128))
1052
1098
  ])
1053
- ])) : A("", !0);
1099
+ ])) : L("", !0);
1054
1100
  }
1055
- }), Es = { class: "dialog-search-products" }, ws = { class: "dialog-search-section-head" }, Is = { class: "dialog-search-label" }, $s = {
1101
+ }), Ts = { class: "dialog-search-products" }, Rs = { class: "dialog-search-section-head" }, As = { class: "dialog-search-label" }, Ls = {
1056
1102
  key: 0,
1057
1103
  class: "dialog-search-label-count"
1058
- }, Rs = { class: "dialog-search-results" }, Ts = {
1104
+ }, xs = { class: "dialog-search-results" }, Ds = {
1059
1105
  key: 0,
1060
1106
  class: "dialog-search-empty",
1061
1107
  role: "status"
1062
- }, ks = /* @__PURE__ */ w({
1108
+ }, Ps = /* @__PURE__ */ I({
1063
1109
  __name: "DialogSearchProducts",
1064
1110
  props: {
1065
1111
  controller: {},
@@ -1069,46 +1115,46 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1069
1115
  },
1070
1116
  setup(t) {
1071
1117
  const e = t;
1072
- return (s, o) => (u(), _("section", Es, [
1073
- l("div", ws, [
1074
- l("p", Is, [
1075
- ce(E(e.messages.productsLabel), 1),
1076
- e.response.nbHits > 0 ? (u(), _("span", $s, " · " + E(e.messages.resultsCount(e.response.nbHits)), 1)) : A("", !0)
1118
+ return (s, o) => (u(), h("section", Ts, [
1119
+ l("div", Rs, [
1120
+ l("p", As, [
1121
+ ce(y(e.messages.productsLabel), 1),
1122
+ e.response.nbHits > 0 ? (u(), h("span", Ls, " · " + y(e.messages.resultsCount(e.response.nbHits)), 1)) : L("", !0)
1077
1123
  ])
1078
1124
  ]),
1079
- l("ul", Rs, [
1080
- e.response.hits.length === 0 ? (u(), _("li", Ts, E(e.messages.noResults), 1)) : (u(!0), _(N, { key: 1 }, Q(e.response.hits, (r, n) => (u(), O(os, {
1081
- key: r.objectID,
1125
+ l("ul", xs, [
1126
+ e.response.hits.length === 0 ? (u(), h("li", Ds, y(e.messages.noResults), 1)) : (u(!0), h(N, { key: 1 }, W(e.response.hits, (n, r) => (u(), P(ls, {
1127
+ key: n.objectID,
1082
1128
  controller: e.controller,
1083
- hit: r,
1084
- index: n,
1129
+ hit: n,
1130
+ index: r,
1085
1131
  locale: e.locale,
1086
1132
  query: e.response.query
1087
1133
  }, null, 8, ["controller", "hit", "index", "locale", "query"]))), 128))
1088
1134
  ])
1089
1135
  ]));
1090
1136
  }
1091
- }), H = 8, U = 16, As = 200, Ls = 1440, xs = (t, e) => t.bottom > 0 && t.top < e, Ds = (t, e) => {
1137
+ }), V = 8, U = 16, Os = 200, Ns = 1440, qs = (t, e) => t.bottom > 0 && t.top < e, Ms = (t, e) => {
1092
1138
  const s = Math.min(
1093
- Ls,
1139
+ Ns,
1094
1140
  e - 2 * U
1095
1141
  ), o = t.left + t.width / 2 - s / 2;
1096
1142
  return { left: `${Math.min(
1097
1143
  Math.max(o, U),
1098
1144
  e - U - s
1099
1145
  )}px`, width: `${s}px` };
1100
- }, Ps = (t, e, s) => {
1101
- const o = s - t.bottom - H - U, r = t.top - H - U, n = Ds(t, e);
1102
- return o < As && r > o ? {
1103
- ...n,
1104
- bottom: `${s - t.top + H}px`,
1105
- maxHeight: `${Math.max(r, 0)}px`
1146
+ }, Us = (t, e, s) => {
1147
+ const o = s - t.bottom - V - U, n = t.top - V - U, r = Ms(t, e);
1148
+ return o < Os && n > o ? {
1149
+ ...r,
1150
+ bottom: `${s - t.top + V}px`,
1151
+ maxHeight: `${Math.max(n, 0)}px`
1106
1152
  } : {
1107
- ...n,
1108
- top: `${t.bottom + H}px`,
1153
+ ...r,
1154
+ top: `${t.bottom + V}px`,
1109
1155
  maxHeight: `${Math.max(o, 0)}px`
1110
1156
  };
1111
- }, Os = (t) => {
1157
+ }, Hs = (t) => {
1112
1158
  const e = t.trim().replace(/^#/, "");
1113
1159
  if (!/^(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e))
1114
1160
  return;
@@ -1116,29 +1162,29 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1116
1162
  return [0, 2, 4].map(
1117
1163
  (o) => Number.parseInt(s.slice(o, o + 2), 16)
1118
1164
  );
1119
- }, Ns = (t) => {
1165
+ }, Vs = (t) => {
1120
1166
  const e = /^rgba?\((\d+), (\d+), (\d+)(?:, [\d.]+)?\)$/.exec(t);
1121
1167
  if (e !== null)
1122
1168
  return [e[1], e[2], e[3]].map(Number);
1123
- }, qs = (t) => {
1169
+ }, Bs = (t) => {
1124
1170
  if (typeof document > "u")
1125
1171
  return;
1126
1172
  const e = document.createElement("span");
1127
1173
  if (e.style.color = t, e.style.color === "")
1128
1174
  return;
1129
1175
  document.body.appendChild(e);
1130
- const s = Ns(getComputedStyle(e).color);
1176
+ const s = Vs(getComputedStyle(e).color);
1131
1177
  return e.remove(), s;
1132
- }, Ms = (t) => Os(t) ?? qs(t), Us = (t) => {
1178
+ }, Ks = (t) => Hs(t) ?? Bs(t), Fs = (t) => {
1133
1179
  const e = t / 255;
1134
1180
  return e <= 0.03928 ? e / 12.92 : ((e + 0.055) / 1.055) ** 2.4;
1135
- }, be = (t) => {
1136
- const e = Ms(t);
1181
+ }, Se = (t) => {
1182
+ const e = Ks(t);
1137
1183
  if (e === void 0)
1138
1184
  return;
1139
- const [s, o, r] = e.map(Us);
1140
- return 0.2126 * s + 0.7152 * o + 0.0722 * r;
1141
- }, Hs = "#181825", Vs = "#ffffff", Bs = "straight", G = 0.5, W = {
1185
+ const [s, o, n] = e.map(Fs);
1186
+ return 0.2126 * s + 0.7152 * o + 0.0722 * n;
1187
+ }, zs = "#181825", js = "#ffffff", Gs = "straight", G = 0.5, Q = {
1142
1188
  light: {
1143
1189
  panel: "#ffffff",
1144
1190
  side: "#fafbfc",
@@ -1157,7 +1203,7 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1157
1203
  hover: "#242830",
1158
1204
  thumb: "#2b2f38"
1159
1205
  }
1160
- }, Ks = {
1206
+ }, Qs = {
1161
1207
  rectangle: {
1162
1208
  "r-panel": "4px",
1163
1209
  "r-item": "4px",
@@ -1170,52 +1216,52 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1170
1216
  "r-thumb": "8px",
1171
1217
  "r-btn": "10px"
1172
1218
  }
1173
- }, V = (t) => t === void 0 || t.trim() === "" ? void 0 : t.trim(), Fs = (t) => {
1174
- const e = t === void 0 ? void 0 : be(t);
1219
+ }, B = (t) => t === void 0 || t.trim() === "" ? void 0 : t.trim(), Ws = (t) => {
1220
+ const e = t === void 0 ? void 0 : Se(t);
1175
1221
  return e === void 0 ? "light" : e < G ? "dark" : "light";
1176
- }, zs = (t, e) => {
1177
- const s = be(t);
1178
- return s === void 0 ? W[e].text : (e === "light" ? s < G : s >= G) ? t : W[e].text;
1179
- }, js = (t) => {
1180
- const e = Fs(V(t == null ? void 0 : t.backgroundColor)), s = (t == null ? void 0 : t.ctaBorderType) === Bs ? "rectangle" : "rectangle-rounded", o = V(t == null ? void 0 : t.primaryColor) ?? Hs, r = V(t == null ? void 0 : t.fontFamily), n = {
1181
- ...W[e],
1182
- ...Ks[s],
1222
+ }, Xs = (t, e) => {
1223
+ const s = Se(t);
1224
+ return s === void 0 ? Q[e].text : (e === "light" ? s < G : s >= G) ? t : Q[e].text;
1225
+ }, Ys = (t) => {
1226
+ const e = Ws(B(t == null ? void 0 : t.backgroundColor)), s = (t == null ? void 0 : t.ctaBorderType) === Gs ? "rectangle" : "rectangle-rounded", o = B(t == null ? void 0 : t.primaryColor) ?? zs, n = B(t == null ? void 0 : t.fontFamily), r = {
1227
+ ...Q[e],
1228
+ ...Qs[s],
1183
1229
  primary: o,
1184
- accent: zs(o, e),
1185
- "cta-text": V(t == null ? void 0 : t.ctaTextColor) ?? Vs,
1186
- ...r === void 0 ? {} : { font: r }
1230
+ accent: Xs(o, e),
1231
+ "cta-text": B(t == null ? void 0 : t.ctaTextColor) ?? js,
1232
+ ...n === void 0 ? {} : { font: n }
1187
1233
  };
1188
1234
  return Object.fromEntries(
1189
- Object.entries(n).map(([i, a]) => [`--dso-${i}`, a])
1235
+ Object.entries(r).map(([a, i]) => [`--dso-${a}`, i])
1190
1236
  );
1191
- }, Gs = (t) => {
1192
- const e = k(), s = k(void 0), o = k({ width: 0, height: 0 });
1237
+ }, Zs = (t) => {
1238
+ const e = R(), s = R(void 0), o = R({ width: 0, height: 0 });
1193
1239
  return M(
1194
1240
  t,
1195
- (r, n, i) => {
1196
- if (!r)
1241
+ (n, r, a) => {
1242
+ if (!n)
1197
1243
  return;
1198
- const a = () => {
1199
- const h = e.value;
1200
- if (h === void 0)
1244
+ const i = () => {
1245
+ const _ = e.value;
1246
+ if (_ === void 0)
1201
1247
  return;
1202
- const c = h.previousElementSibling ?? h, { top: d, bottom: g, left: y, width: S } = c.getBoundingClientRect();
1248
+ const d = _.previousElementSibling ?? _, { top: C, bottom: c, left: f, width: v } = d.getBoundingClientRect();
1203
1249
  (o.value.width !== window.innerWidth || o.value.height !== window.innerHeight) && (o.value = {
1204
1250
  width: window.innerWidth,
1205
1251
  height: window.innerHeight
1206
1252
  });
1207
- const f = s.value;
1208
- (f === void 0 || f.top !== d || f.bottom !== g || f.left !== y || f.width !== S) && (s.value = { top: d, bottom: g, left: y, width: S });
1253
+ const g = s.value;
1254
+ (g === void 0 || g.top !== C || g.bottom !== c || g.left !== f || g.width !== v) && (s.value = { top: C, bottom: c, left: f, width: v });
1209
1255
  };
1210
- a(), window.addEventListener("scroll", a, !0), window.addEventListener("resize", a), i(() => {
1211
- window.removeEventListener("scroll", a, !0), window.removeEventListener("resize", a);
1256
+ i(), window.addEventListener("scroll", i, !0), window.addEventListener("resize", i), a(() => {
1257
+ window.removeEventListener("scroll", i, !0), window.removeEventListener("resize", i);
1212
1258
  });
1213
1259
  },
1214
1260
  { immediate: !0, flush: "post" }
1215
1261
  ), { anchorRef: e, rect: s, viewport: o };
1216
- }, Ws = (t, e) => {
1217
- const s = k(!1), o = k(), r = b(
1218
- () => t.value.status !== L.IDLE && !s.value
1262
+ }, Js = (t, e) => {
1263
+ const s = R(!1), o = R(), n = S(
1264
+ () => t.value.status !== A.IDLE && !s.value
1219
1265
  );
1220
1266
  M(
1221
1267
  () => t.value.query,
@@ -1223,54 +1269,54 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1223
1269
  s.value = !1;
1224
1270
  }
1225
1271
  ), M(
1226
- r,
1227
- (i, a, h) => {
1228
- if (!i)
1272
+ n,
1273
+ (a, i, _) => {
1274
+ if (!a)
1229
1275
  return;
1230
- const c = (d) => {
1231
- var I, $;
1232
- const g = d.target;
1233
- if (!(g instanceof Node))
1276
+ const d = (C) => {
1277
+ var w, $;
1278
+ const c = C.target;
1279
+ if (!(c instanceof Node))
1234
1280
  return;
1235
- const y = (I = e.value) == null ? void 0 : I.previousElementSibling, S = (($ = o.value) == null ? void 0 : $.contains(g)) ?? !1, f = (y == null ? void 0 : y.contains(g)) ?? !1;
1236
- !S && !f && (s.value = !0);
1281
+ const f = (w = e.value) == null ? void 0 : w.previousElementSibling, v = (($ = o.value) == null ? void 0 : $.contains(c)) ?? !1, g = (f == null ? void 0 : f.contains(c)) ?? !1;
1282
+ !v && !g && (s.value = !0);
1237
1283
  };
1238
- document.addEventListener("pointerdown", c), h(
1239
- () => document.removeEventListener("pointerdown", c)
1284
+ document.addEventListener("pointerdown", d), _(
1285
+ () => document.removeEventListener("pointerdown", d)
1240
1286
  );
1241
1287
  },
1242
1288
  { immediate: !0 }
1243
1289
  );
1244
- const n = () => {
1290
+ const r = () => {
1245
1291
  s.value = !1;
1246
1292
  };
1247
- return B(() => {
1248
- var i, a;
1249
- (a = (i = e.value) == null ? void 0 : i.previousElementSibling) == null || a.addEventListener(
1293
+ return K(() => {
1294
+ var a, i;
1295
+ (i = (a = e.value) == null ? void 0 : a.previousElementSibling) == null || i.addEventListener(
1250
1296
  "focusin",
1251
- n
1297
+ r
1252
1298
  );
1253
1299
  }), ue(() => {
1254
- var i, a;
1255
- (a = (i = e.value) == null ? void 0 : i.previousElementSibling) == null || a.removeEventListener(
1300
+ var a, i;
1301
+ (i = (a = e.value) == null ? void 0 : a.previousElementSibling) == null || i.removeEventListener(
1256
1302
  "focusin",
1257
- n
1303
+ r
1258
1304
  );
1259
- }), { isOpen: r, panelRef: o };
1260
- }, Qs = {
1305
+ }), { isOpen: n, panelRef: o };
1306
+ }, eo = {
1261
1307
  key: 0,
1262
1308
  class: "dialog-search-error"
1263
- }, Xs = {
1309
+ }, to = {
1264
1310
  role: "alert",
1265
1311
  class: "dialog-search-status dialog-search-status-error"
1266
- }, Ys = {
1312
+ }, so = {
1267
1313
  key: 1,
1268
1314
  role: "status",
1269
1315
  class: "dialog-search-status"
1270
- }, Zs = {
1316
+ }, oo = {
1271
1317
  key: 0,
1272
1318
  class: "dialog-search-footer"
1273
- }, Js = ["href"], no = /* @__PURE__ */ w({
1319
+ }, no = ["href"], co = /* @__PURE__ */ I({
1274
1320
  __name: "DialogSearchResults",
1275
1321
  props: {
1276
1322
  controller: {},
@@ -1281,114 +1327,114 @@ const ds = /* @__PURE__ */ D(ls, [["render", us]]), me = (t) => (t ?? []).flatMa
1281
1327
  seeAllHref: { type: Function, default: void 0 }
1282
1328
  },
1283
1329
  setup(t) {
1284
- const e = t, s = (p) => p instanceof Oe ? `Search failed (${p.status}${p.code ? ` ${p.code}` : ""}): ${p.message}` : "Search failed: network error. Check your connection and try again.", o = b(() => e.state), r = b(() => e.state.status !== L.IDLE), { anchorRef: n, rect: i, viewport: a } = Gs(r), { isOpen: h, panelRef: c } = Ws(o, n), d = b(
1285
- () => h.value && i.value !== void 0 && xs(i.value, a.value.height)
1286
- ), g = b(() => js(e.theme)), y = b(() => ({
1287
- ...i.value === void 0 ? {} : Ps(i.value, a.value.width, a.value.height),
1288
- ...g.value
1289
- })), S = b(() => he(e.locale)), f = b(() => e.state.response), I = b(
1330
+ const e = t, s = (p) => p instanceof Ne ? `Search failed (${p.status}${p.code ? ` ${p.code}` : ""}): ${p.message}` : "Search failed: network error. Check your connection and try again.", o = S(() => e.state), n = S(() => e.state.status !== A.IDLE), { anchorRef: r, rect: a, viewport: i } = Zs(n), { isOpen: _, panelRef: d } = Js(o, r), C = S(
1331
+ () => _.value && a.value !== void 0 && qs(a.value, i.value.height)
1332
+ ), c = S(() => Ys(e.theme)), f = S(() => ({
1333
+ ...a.value === void 0 ? {} : Us(a.value, i.value.width, i.value.height),
1334
+ ...c.value
1335
+ })), v = S(() => _e(e.locale)), g = S(() => e.state.response), w = S(
1290
1336
  () => {
1291
- var p, C;
1292
- return ((C = (p = e.state.sections) == null ? void 0 : p.collections) == null ? void 0 : C.hits) ?? [];
1337
+ var p, E;
1338
+ return ((E = (p = e.state.sections) == null ? void 0 : p.collections) == null ? void 0 : E.hits) ?? [];
1293
1339
  }
1294
- ), $ = b(
1295
- () => me(I.value).length > 0
1296
- ), R = b(
1297
- () => e.seeAllHref !== void 0 && f.value !== void 0 && f.value.nbHits > 0
1298
- ), m = b(() => !R.value && _e(e.state)), v = b(
1340
+ ), $ = S(
1341
+ () => be(w.value).length > 0
1342
+ ), k = S(
1343
+ () => e.seeAllHref !== void 0 && g.value !== void 0 && g.value.nbHits > 0
1344
+ ), b = S(() => !k.value && ge(e.state)), m = S(
1299
1345
  () => {
1300
1346
  var p;
1301
- return f.value === void 0 || (p = e.seeAllHref) == null ? void 0 : p.call(e, f.value.query);
1347
+ return g.value === void 0 || (p = e.seeAllHref) == null ? void 0 : p.call(e, g.value.query);
1302
1348
  }
1303
1349
  );
1304
- return (p, C) => (u(), _(N, null, [
1350
+ return (p, E) => (u(), h(N, null, [
1305
1351
  l("div", {
1306
1352
  ref_key: "anchorRef",
1307
- ref: n
1353
+ ref: r
1308
1354
  }, null, 512),
1309
- d.value ? (u(), O(ke, {
1355
+ C.value ? (u(), P(Ae, {
1310
1356
  key: 0,
1311
1357
  to: "body"
1312
1358
  }, [
1313
1359
  l("div", {
1314
1360
  ref_key: "panelRef",
1315
- ref: c,
1361
+ ref: d,
1316
1362
  class: Z(["dialog-search-panel", `dialog-search-panel--${e.layout}`]),
1317
- style: Ae(y.value)
1363
+ style: Le(f.value)
1318
1364
  }, [
1319
- e.state.status === K(L).ERROR ? (u(), _("div", Qs, [
1320
- l("p", Xs, E(s(e.state.error)), 1),
1365
+ e.state.status === H(A).ERROR ? (u(), h("div", eo, [
1366
+ l("p", to, y(s(e.state.error)), 1),
1321
1367
  l("button", {
1322
1368
  type: "button",
1323
1369
  class: "dialog-search-retry",
1324
- onClick: C[0] || (C[0] = (P) => e.controller.retry())
1325
- }, E(S.value.retry), 1)
1326
- ])) : f.value === void 0 ? (u(), _("p", Ys, E(S.value.searching(e.state.query)), 1)) : (u(), _(N, { key: 2 }, [
1370
+ onClick: E[0] || (E[0] = (O) => e.controller.retry())
1371
+ }, y(v.value.retry), 1)
1372
+ ])) : g.value === void 0 ? (u(), h("p", so, y(v.value.searching(e.state.query)), 1)) : (u(), h(N, { key: 2 }, [
1327
1373
  l("div", {
1328
1374
  class: Z([
1329
1375
  "dialog-search-body",
1330
1376
  { "dialog-search-body--no-collections": !$.value }
1331
1377
  ])
1332
1378
  }, [
1333
- T(ys, {
1334
- collections: I.value,
1335
- query: f.value.query,
1336
- messages: S.value
1337
- }, null, 8, ["collections", "query", "messages"]),
1338
1379
  T(ks, {
1380
+ collections: w.value,
1381
+ query: g.value.query,
1382
+ messages: v.value
1383
+ }, null, 8, ["collections", "query", "messages"]),
1384
+ T(Ps, {
1339
1385
  controller: e.controller,
1340
- response: f.value,
1386
+ response: g.value,
1341
1387
  locale: e.locale,
1342
- messages: S.value
1388
+ messages: v.value
1343
1389
  }, null, 8, ["controller", "response", "locale", "messages"])
1344
1390
  ], 2),
1345
- R.value || m.value ? (u(), _("div", Zs, [
1346
- R.value ? (u(), _("a", {
1391
+ k.value || b.value ? (u(), h("div", oo, [
1392
+ k.value ? (u(), h("a", {
1347
1393
  key: 0,
1348
1394
  class: "dialog-search-cta",
1349
- href: v.value
1395
+ href: m.value
1350
1396
  }, [
1351
- ce(E(S.value.seeAllLabel(f.value.nbHits)) + " ", 1),
1352
- T(is)
1353
- ], 8, Js)) : (u(), O(zt, {
1397
+ ce(y(v.value.seeAllLabel(g.value.nbHits)) + " ", 1),
1398
+ T(ps)
1399
+ ], 8, no)) : (u(), P(Xt, {
1354
1400
  key: 1,
1355
1401
  controller: e.controller,
1356
1402
  state: e.state,
1357
1403
  locale: e.locale
1358
1404
  }, null, 8, ["controller", "state", "locale"]))
1359
- ])) : A("", !0)
1405
+ ])) : L("", !0)
1360
1406
  ], 64))
1361
1407
  ], 6)
1362
- ])) : A("", !0)
1408
+ ])) : L("", !0)
1363
1409
  ], 64));
1364
1410
  }
1365
- }), ro = (t) => {
1366
- const { client: e, surface: s = "search_page", ...o } = t, r = Qe({
1367
- search: (a, h) => e.search(a, h),
1411
+ }), uo = (t) => {
1412
+ const { client: e, surface: s = "search_page", ...o } = t, n = Xe({
1413
+ search: (i, _) => e.search(i, _),
1368
1414
  analytics: {
1369
1415
  surface: s,
1370
- trackViewSearchResults: (a) => e.trackViewSearchResults(a),
1371
- trackSelectSearchResult: (a) => e.trackSelectSearchResult(a)
1416
+ trackViewSearchResults: (i) => e.trackViewSearchResults(i),
1417
+ trackSelectSearchResult: (i) => e.trackSelectSearchResult(i)
1372
1418
  },
1373
1419
  ...o
1374
- }), n = Le(r.getState()), i = r.subscribe(() => {
1375
- n.value = r.getState();
1420
+ }), r = xe(n.getState()), a = n.subscribe(() => {
1421
+ r.value = n.getState();
1376
1422
  });
1377
- return B(() => {
1423
+ return K(() => {
1378
1424
  pe({
1379
1425
  method: "vue",
1380
- version: "3.8.0"
1426
+ version: "3.9.0"
1381
1427
  });
1382
1428
  }), ue(() => {
1383
- i(), r.dispose();
1384
- }), { controller: r, state: n, theme: e.theme };
1429
+ a(), n.dispose();
1430
+ }), { controller: n, state: r, theme: e.theme };
1385
1431
  };
1386
1432
  export {
1387
- It as DialogInput,
1388
- so as DialogProductBlock,
1389
- oo as DialogSearchBar,
1390
- zt as DialogSearchPagination,
1391
- os as DialogSearchProductCard,
1392
- no as DialogSearchResults,
1393
- ro as useDialogSearch
1433
+ Tt as DialogInput,
1434
+ ao as DialogProductBlock,
1435
+ lo as DialogSearchBar,
1436
+ Xt as DialogSearchPagination,
1437
+ ls as DialogSearchProductCard,
1438
+ co as DialogSearchResults,
1439
+ uo as useDialogSearch
1394
1440
  };