@primestyleai/tryon 5.10.11 → 5.10.12

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.
@@ -31,10 +31,10 @@ async function rP(f) {
31
31
  const n = await Fn(f), g = HP.detect(n);
32
32
  if (!g?.landmarks?.length || g.landmarks[0].length < 25)
33
33
  return null;
34
- const e = g.landmarks[0], B = e[sP], C = e[TP], D = e[GP], i = e[YP], o = (B.y + C.y) / 2, r = (D.y + i.y) / 2, H = r - o, p = o + H * 0.28, T = Math.abs(C.x - B.x), F = Math.min(B.x, C.x) - T * 0.05, h = Math.max(B.x, C.x) + T * 0.05, W = Math.abs(i.x - D.x), t = Math.min(D.x, i.x) - W * 0.15, k = Math.max(D.x, i.x) + W * 0.15, u = p + (r - p) * 0.55, v = T * 0.85, I = (B.x + C.x + D.x + i.x) / 4, x = I - v / 2, m = I + v / 2;
34
+ const e = g.landmarks[0], B = e[sP], C = e[TP], D = e[GP], i = e[YP], o = (B.y + C.y) / 2, r = (D.y + i.y) / 2, H = r - o, p = o + H * 0.28, T = Math.abs(C.x - B.x), F = Math.min(B.x, C.x) - T * 0.05, h = Math.max(B.x, C.x) + T * 0.05, W = Math.abs(i.x - D.x), t = Math.min(D.x, i.x) - W * 0.15, k = Math.max(D.x, i.x) + W * 0.15, u = p + (r - p) * 0.55, v = T * 0.85, I = (B.x + C.x + D.x + i.x) / 4, O = I - v / 2, m = I + v / 2;
35
35
  return {
36
36
  chest: { y: p, x1: F, x2: h },
37
- waist: { y: u, x1: x, x2: m },
37
+ waist: { y: u, x1: O, x2: m },
38
38
  hips: { y: r, x1: t, x2: k }
39
39
  };
40
40
  } catch (n) {
@@ -166,7 +166,7 @@ function ag(f, n, g) {
166
166
  const i = C > 0 ? vn / C : 0, o = (K, E) => Math.hypot(
167
167
  (K.x - E.x) * n,
168
168
  (K.y - E.y) * g
169
- ) * i, r = o(f.leftIrisCenter, f.rightIrisCenter), p = o(f.leftInnerEye, f.rightInnerEye) / 1.6, T = o(f.leftTragus, f.rightTragus), F = o(f.leftTragus, f.leftOuterEye), h = o(f.rightTragus, f.rightOuterEye), W = (F + h) / 2, t = T * 1.07, u = Math.abs((f.forehead.z ?? 0) - (f.chin.z ?? 0)) * n * i, v = Math.max(170, Math.min(210, u || 190)), I = t / 2, x = v / 2, m = Math.PI * Math.sqrt(2 * (I * I + x * x));
169
+ ) * i, r = o(f.leftIrisCenter, f.rightIrisCenter), p = o(f.leftInnerEye, f.rightInnerEye) / 1.6, T = o(f.leftTragus, f.rightTragus), F = o(f.leftTragus, f.leftOuterEye), h = o(f.rightTragus, f.rightOuterEye), W = (F + h) / 2, t = T * 1.07, u = Math.abs((f.forehead.z ?? 0) - (f.chin.z ?? 0)) * n * i, v = Math.max(170, Math.min(210, u || 190)), I = t / 2, O = v / 2, m = Math.PI * Math.sqrt(2 * (I * I + O * O));
170
170
  return {
171
171
  measurements: {
172
172
  irisDiameter: vn,
@@ -7233,7 +7233,7 @@ function eB({
7233
7233
  submitSizing: W,
7234
7234
  t
7235
7235
  }) {
7236
- const k = i === "in" ? "in" : "cm", u = /* @__PURE__ */ new Set(["weight", "weightKg", "height"]), v = B.filter((x) => x.required && x.unit === "cm" && !u.has(x.key)), I = () => {
7236
+ const k = i === "in" ? "in" : "cm", u = /* @__PURE__ */ new Set(["weight", "weightKg", "height"]), v = B.filter((O) => O.required && O.unit === "cm" && !u.has(O.key)), I = () => {
7237
7237
  C.current.gender = D, T("exact"), F(!0), h("size-result"), W("exact");
7238
7238
  };
7239
7239
  return e || !g ? /* @__PURE__ */ P("div", { className: "ps-bp-layout", children: [
@@ -7247,13 +7247,13 @@ function eB({
7247
7247
  /* @__PURE__ */ P("div", { className: "ps-bp-root", children: [
7248
7248
  /* @__PURE__ */ A("h3", { className: "ps-bp-title", style: { fontSize: "1.1vw" }, children: t("Here's what we estimated") }),
7249
7249
  /* @__PURE__ */ A("p", { className: "ps-bp-subtitle", children: t("Tap any value to adjust if needed") }),
7250
- /* @__PURE__ */ A("div", { className: "ps-tryon-sf-fields", style: { flex: 1, overflowY: "auto" }, children: v.map((x) => {
7251
- const m = g[x.key], K = C.current[x.key] ? parseFloat(C.current[x.key]) : null, E = m || K;
7250
+ /* @__PURE__ */ A("div", { className: "ps-tryon-sf-fields", style: { flex: 1, overflowY: "auto" }, children: v.map((O) => {
7251
+ const m = g[O.key], K = C.current[O.key] ? parseFloat(C.current[O.key]) : null, E = m || K;
7252
7252
  if (!E) return null;
7253
7253
  const gA = !m && !!K;
7254
- return C.current[x.key] || (C.current[x.key] = String(E)), /* @__PURE__ */ A("div", { className: "ps-tryon-sf-float-row", children: /* @__PURE__ */ P("div", { className: "ps-tryon-sf-float-field", children: [
7254
+ return C.current[O.key] || (C.current[O.key] = String(E)), /* @__PURE__ */ A("div", { className: "ps-tryon-sf-float-row", children: /* @__PURE__ */ P("div", { className: "ps-tryon-sf-float-field", children: [
7255
7255
  /* @__PURE__ */ P("label", { className: "ps-tryon-sf-float-label", children: [
7256
- t(x.label),
7256
+ t(O.label),
7257
7257
  " (",
7258
7258
  k,
7259
7259
  ") ",
@@ -7266,10 +7266,10 @@ function eB({
7266
7266
  placeholder: " ",
7267
7267
  className: "ps-tryon-sf-input",
7268
7268
  defaultValue: E,
7269
- onInput: (c) => p(x.key, c.target.value)
7269
+ onInput: (c) => p(O.key, c.target.value)
7270
7270
  }
7271
7271
  )
7272
- ] }) }, x.key);
7272
+ ] }) }, O.key);
7273
7273
  }) }, `est-${r}`),
7274
7274
  /* @__PURE__ */ P("div", { className: "ps-bp-nav", children: [
7275
7275
  /* @__PURE__ */ P("button", { type: "button", className: "ps-bp-back-btn", onClick: () => h("body-profile"), children: [
@@ -7543,12 +7543,12 @@ function HB({
7543
7543
  const k = of(() => {
7544
7544
  const I = [...g?.matchDetails || []];
7545
7545
  if (g?.sections)
7546
- for (const x of Object.values(g.sections))
7547
- x.matchDetails && I.push(...x.matchDetails);
7546
+ for (const O of Object.values(g.sections))
7547
+ O.matchDetails && I.push(...O.matchDetails);
7548
7548
  if (I.length > 0) {
7549
- const x = I.filter(
7549
+ const O = I.filter(
7550
7550
  (K) => K.fit === "good" || K.fit === "a-bit-tight" || K.fit === "a-bit-loose"
7551
- ).length, m = Math.round(x / I.length * 100);
7551
+ ).length, m = Math.round(O / I.length * 100);
7552
7552
  return Math.max(70, m);
7553
7553
  }
7554
7554
  return g?.confidence === "high" ? 96 : g?.confidence === "medium" ? 84 : 72;
@@ -7611,8 +7611,8 @@ function HB({
7611
7611
  ] }),
7612
7612
  /* @__PURE__ */ A("span", { className: "ps-msr-match-label", children: t("FIT MATCH") })
7613
7613
  ] }) }),
7614
- /* @__PURE__ */ A("div", { className: "ps-msr-sections", children: B.map(({ name: I, secResult: x }) => {
7615
- const m = I.replace(/\s*[—–-]\s*.*/g, ""), K = x, E = K.found === !1 ? t("No fit") : K.size || x.recommendedSize;
7614
+ /* @__PURE__ */ A("div", { className: "ps-msr-sections", children: B.map(({ name: I, secResult: O }) => {
7615
+ const m = I.replace(/\s*[—–-]\s*.*/g, ""), K = O, E = K.found === !1 ? t("No fit") : K.size || O.recommendedSize;
7616
7616
  return /* @__PURE__ */ P(
7617
7617
  "button",
7618
7618
  {
@@ -7920,10 +7920,10 @@ function $f({ lines: f, fitRows: n, show: g, imgWidth: e, imgHeight: B }) {
7920
7920
  ], i = e, o = B, r = Math.max(i, o) / 500, H = Math.max(5, 3 * r), p = Math.max(7, 5 * r);
7921
7921
  return /* @__PURE__ */ A("svg", { className: "ps-tryon-pose-overlay", viewBox: `0 0 ${i} ${o}`, preserveAspectRatio: "xMidYMid meet", children: D.map(({ key: T, line: F, label: h }, W) => {
7922
7922
  if (!F || typeof F.x1 != "number" || typeof F.x2 != "number" || typeof F.y != "number") return null;
7923
- const t = F.x1 * i, k = F.x2 * i, u = F.y * o, v = k - t, I = v * 0.06, x = (t + k) / 2, m = n.find((mA) => {
7923
+ const t = F.x1 * i, k = F.x2 * i, u = F.y * o, v = k - t, I = v * 0.06, O = (t + k) / 2, m = n.find((mA) => {
7924
7924
  const dA = mA.area.toLowerCase().trim();
7925
7925
  return !!(dA === T || T === "chest" && (dA.includes("bust") || dA.includes("chest")) || T === "waist" && dA.includes("waist") || T === "hips" && (dA.includes("hip") || dA === "hips"));
7926
- }), K = m ? C(m.fit) : "#2154EF", E = W * 0.35, gA = `M ${t} ${u} Q ${x} ${u + I} ${k} ${u}`, c = v * 1.05, hA = m ? m.fit === "good" ? "✓ Fit" : m.isLength ? m.fit.includes("short") || m.fit.includes("tight") ? "Short" : "Long" : m.fit.includes("tight") ? "Tight" : "Loose" : h, l = Math.round(14 * r), y = hA.length * l * 0.62, sA = i - k - 12 * r < y, V = sA ? t - 10 * r : k + 10 * r, s = sA ? "end" : "start", PA = sA ? t : k, RA = sA ? t - 6 * r : k + 6 * r;
7926
+ }), K = m ? C(m.fit) : "#2154EF", E = W * 0.35, gA = `M ${t} ${u} Q ${O} ${u + I} ${k} ${u}`, c = v * 1.05, hA = m ? m.fit === "good" ? "✓ Fit" : m.isLength ? m.fit.includes("short") || m.fit.includes("tight") ? "Short" : "Long" : m.fit.includes("tight") ? "Tight" : "Loose" : h, l = Math.round(14 * r), y = hA.length * l * 0.62, sA = i - k - 12 * r < y, V = sA ? t - 10 * r : k + 10 * r, s = sA ? "end" : "start", PA = sA ? t : k, RA = sA ? t - 6 * r : k + 6 * r;
7927
7927
  return /* @__PURE__ */ P("g", { children: [
7928
7928
  /* @__PURE__ */ A(
7929
7929
  "path",
@@ -8052,7 +8052,7 @@ function DP({
8052
8052
  tryOnProcessing: u,
8053
8053
  backLabel: v,
8054
8054
  internationalSizes: I,
8055
- continueLabel: x,
8055
+ continueLabel: O,
8056
8056
  renderRaw: m = !1,
8057
8057
  sectionFound: K
8058
8058
  }) {
@@ -8193,12 +8193,12 @@ function DP({
8193
8193
  let { min: Bf, max: FA } = QP(N.chartRange), OA = N.chartRange;
8194
8194
  const AA = ff(N.measurement, bA);
8195
8195
  AA && (OA = AA.range, Bf = AA.min, FA = AA.max);
8196
- const LA = FA - Bf, Pf = LA > 0 ? LA * 0.5 : Bf * 0.05 || 3, lA = N.measurement.toLowerCase(), O = /length|inseam|sleeve|hem|rise/.test(lA);
8196
+ const LA = FA - Bf, Pf = LA > 0 ? LA * 0.5 : Bf * 0.05 || 3, lA = N.measurement.toLowerCase(), x = /length|inseam|sleeve|hem|rise/.test(lA);
8197
8197
  let q;
8198
8198
  const QA = Math.max((FA || Bf) * 0.03, 0.5);
8199
8199
  if (nA >= Bf - QA && nA <= FA + QA)
8200
8200
  q = "good";
8201
- else if (O) {
8201
+ else if (x) {
8202
8202
  const U = nA > FA ? nA - FA : Bf - nA;
8203
8203
  q = (U > Pf * 2 ? "too-" : U > Pf ? "" : "a-bit-") + (nA > FA ? "short" : "long");
8204
8204
  } else if (nA < Bf) {
@@ -8208,7 +8208,7 @@ function DP({
8208
8208
  const U = nA - FA;
8209
8209
  q = U > Pf * 2 ? "too-tight" : U > Pf ? "tight" : "a-bit-tight";
8210
8210
  }
8211
- return { area: N.measurement, userNum: nA, chartLabel: kP(OA), fit: q, isLength: !1 };
8211
+ return { area: N.measurement, userNum: nA, chartLabel: kP(OA), fit: q, isLength: x };
8212
8212
  });
8213
8213
  }, [g, D, e, bA, E, ff, mA, RA, m]), nf = rA.filter(
8214
8214
  (a) => a.fit === "good" || a.fit === "a-bit-tight" || a.fit === "a-bit-loose"
@@ -8492,7 +8492,7 @@ function DP({
8492
8492
  gap: 6
8493
8493
  },
8494
8494
  children: [
8495
- x || o("Continue"),
8495
+ O || o("Continue"),
8496
8496
  " →"
8497
8497
  ]
8498
8498
  }
@@ -8723,7 +8723,7 @@ function DP({
8723
8723
  onMouseEnter: (a) => a.currentTarget.style.opacity = "0.9",
8724
8724
  onMouseLeave: (a) => a.currentTarget.style.opacity = "1",
8725
8725
  children: [
8726
- x || o("Continue"),
8726
+ O || o("Continue"),
8727
8727
  " →"
8728
8728
  ]
8729
8729
  }
@@ -8753,7 +8753,7 @@ function EB({
8753
8753
  faceLandmarks: u = null,
8754
8754
  measurementType: v = "body",
8755
8755
  estimationDone: I = !1,
8756
- activeSection: x,
8756
+ activeSection: O,
8757
8757
  setActiveSection: m,
8758
8758
  onResetTryOn: K,
8759
8759
  onClose: E,
@@ -8909,7 +8909,7 @@ function EB({
8909
8909
  if (G.matchDetails)
8910
8910
  for (const aA of G.matchDetails) S[aA.measurement.toLowerCase()] = kf(aA.userValue);
8911
8911
  return gA && gA > 0 && !S.height && (S.height = gA), { name: U, section: R, secResult: G, userMeasurements: S };
8912
- }), [wf, g, n, gA]), nA = of(() => N.filter((U) => !zn(U.name)), [N]), Bf = of(() => N.filter((U) => zn(U.name)), [N]), FA = !!T, OA = FA && (t || f && !n), AA = !FA && f && !n, LA = !!n, Pf = !!e && !t, lA = FA ? LA && Pf : LA, O = NP(), q = v === "face" || v === "head";
8912
+ }), [wf, g, n, gA]), nA = of(() => N.filter((U) => !zn(U.name)), [N]), Bf = of(() => N.filter((U) => zn(U.name)), [N]), FA = !!T, OA = FA && (t || f && !n), AA = !FA && f && !n, LA = !!n, Pf = !!e && !t, lA = FA ? LA && Pf : LA, x = NP(), q = v === "face" || v === "head";
8913
8913
  n?.found;
8914
8914
  const QA = v === "foot";
8915
8915
  return console.log("[PS-SDK] SizeResultView render:", {
@@ -8925,7 +8925,7 @@ function EB({
8925
8925
  tryOnProcessing: t,
8926
8926
  previewUrl: !!T
8927
8927
  }), /* @__PURE__ */ P("div", { className: "ps-tryon-sr", children: [
8928
- O && AA && /* @__PURE__ */ A(
8928
+ x && AA && /* @__PURE__ */ A(
8929
8929
  rn,
8930
8930
  {
8931
8931
  productImage: B,
@@ -8935,14 +8935,14 @@ function EB({
8935
8935
  t: c
8936
8936
  }
8937
8937
  ),
8938
- !O && AA && /* @__PURE__ */ P("div", { className: "ps-tryon-sr-split", children: [
8938
+ !x && AA && /* @__PURE__ */ P("div", { className: "ps-tryon-sr-split", children: [
8939
8939
  /* @__PURE__ */ A("div", { className: "ps-tryon-sr-img-col", children: /* @__PURE__ */ A("img", { src: B, alt: C, className: "ps-tryon-sr-product-img" }) }),
8940
8940
  /* @__PURE__ */ P("div", { className: "ps-tryon-sr-right-col", style: { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", gap: "0.8vw" }, children: [
8941
8941
  /* @__PURE__ */ A("div", { className: "ps-tryon-size-loading-spinner" }),
8942
8942
  /* @__PURE__ */ A("p", { style: { color: "var(--ps-text-muted)", fontSize: "0.8vw" }, children: c("Generating your size recommendation...") })
8943
8943
  ] })
8944
8944
  ] }),
8945
- O && OA && !lA && T && /* @__PURE__ */ A(
8945
+ x && OA && !lA && T && /* @__PURE__ */ A(
8946
8946
  rn,
8947
8947
  {
8948
8948
  previewUrl: T,
@@ -8953,7 +8953,7 @@ function EB({
8953
8953
  t: c
8954
8954
  }
8955
8955
  ),
8956
- !O && OA && !lA && /* @__PURE__ */ P("div", { className: "ps-tryon-sr-split", children: [
8956
+ !x && OA && !lA && /* @__PURE__ */ P("div", { className: "ps-tryon-sr-split", children: [
8957
8957
  /* @__PURE__ */ P("div", { className: "ps-tryon-sr-img-col", style: { position: "relative" }, children: [
8958
8958
  /* @__PURE__ */ A(
8959
8959
  "img",
@@ -8981,11 +8981,11 @@ function EB({
8981
8981
  })()
8982
8982
  ] }),
8983
8983
  (lA || n && !OA) && /* @__PURE__ */ P(tA, { children: [
8984
- wf ? x ? (
8984
+ wf ? O ? (
8985
8985
  /* ── Detail view for a single section ── */
8986
8986
  (() => {
8987
- const U = nA.find((R) => R.name === x);
8988
- return U ? O ? /* @__PURE__ */ A(
8987
+ const U = nA.find((R) => R.name === O);
8988
+ return U ? x ? /* @__PURE__ */ A(
8989
8989
  DP,
8990
8990
  {
8991
8991
  sectionName: U.name,
@@ -9044,10 +9044,10 @@ function EB({
9044
9044
  internationalSizes: U.secResult?.internationalSizes,
9045
9045
  t: c
9046
9046
  }
9047
- ) }, `detail-${x}`)
9047
+ ) }, `detail-${O}`)
9048
9048
  ] }) : null;
9049
9049
  })()
9050
- ) : O ? (
9050
+ ) : x ? (
9051
9051
  /* ── Mobile section picker: vertical list, fit% badge, try-on CTA ── */
9052
9052
  /* @__PURE__ */ A(
9053
9053
  HB,
@@ -9207,7 +9207,7 @@ function EB({
9207
9207
  const S = c("Your Fit"), aA = () => {
9208
9208
  e || (uA(p || null), GA(!0));
9209
9209
  };
9210
- return O ? /* @__PURE__ */ A(
9210
+ return x ? /* @__PURE__ */ A(
9211
9211
  DP,
9212
9212
  {
9213
9213
  sectionName: S,
@@ -9277,7 +9277,7 @@ function EB({
9277
9277
  ] });
9278
9278
  })()
9279
9279
  ),
9280
- qA && !QA && /* @__PURE__ */ A("div", { className: "ps-tryon-sr-chart-overlay", children: O ? (
9280
+ qA && !QA && /* @__PURE__ */ A("div", { className: "ps-tryon-sr-chart-overlay", children: x ? (
9281
9281
  /* ── Mobile: same layout as the AI-sizing photo step
9282
9282
  (PhotoStepMobile) — title + subtitle, large preview,
9283
9283
  checklist card, primary CTA + RETAKE secondary. ── */
@@ -9778,10 +9778,10 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9778
9778
  JA(() => {
9779
9779
  W.current && (W.current.scrollTop = 0);
9780
9780
  }, [C, i]);
9781
- const [t, k] = j(""), [u, v] = j("male"), [I, x] = j("cm"), [m, K] = j(""), [E, gA] = j(""), [c, hA] = j(""), [l, y] = j(""), [XA, sA] = j(""), [V, s] = j(""), [PA, RA] = j(null), [mA, dA] = j(!1), ZA = iA(null), Hf = iA(null), [J, UA] = j(!1), [TA, bA] = j(null), VA = () => {
9781
+ const [t, k] = j(""), [u, v] = j("male"), [I, O] = j("cm"), [m, K] = j(""), [E, gA] = j(""), [c, hA] = j(""), [l, y] = j(""), [XA, sA] = j(""), [V, s] = j(""), [PA, RA] = j(null), [mA, dA] = j(!1), ZA = iA(null), Hf = iA(null), [J, UA] = j(!1), [TA, bA] = j(null), VA = () => {
9782
9782
  TA === !0 && ZA.current?.click();
9783
- }, kA = async (O) => {
9784
- const q = O.target.files?.[0];
9783
+ }, kA = async (x) => {
9784
+ const q = x.target.files?.[0];
9785
9785
  if (q) {
9786
9786
  if (TA !== !0) {
9787
9787
  s(B("Please confirm that the person in the photo is 18 or older before uploading."));
@@ -9809,42 +9809,42 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9809
9809
  RA(null), g?.(null), ZA.current && (ZA.current.value = "");
9810
9810
  }, [SA, ff] = j(null), [rA, nf] = j(null), [xA, Ef] = j(null), [eA, $] = j(null), [_A, Of] = j(null), [cf, Mf] = j(null), gf = ["28", "30", "32", "34", "36", "38", "40", "42", "44", "46", "48", "50", "52", "54", "56"], qA = ["AA", "A", "B", "C", "D", "DD/E", "DDD/F", "G", "H", "I", "J"], GA = u === "female", _ = GA ? MA.female : MA.male, uA = GA ? ["identity", "stomach", "seat", "hips", "bra"] : ["identity", "chest", "stomach", "seat"], WA = uA.indexOf(i), a = uA.length, X = WA === a - 1, BA = () => {
9811
9811
  if (I === "in") {
9812
- const O = parseInt(E, 10), q = parseInt(c, 10);
9813
- !isNaN(O) && O >= 0 && !isNaN(q) && q >= 0 && K(String(Math.round((O * 12 + q) * 2.54)));
9812
+ const x = parseInt(E, 10), q = parseInt(c, 10);
9813
+ !isNaN(x) && x >= 0 && !isNaN(q) && q >= 0 && K(String(Math.round((x * 12 + q) * 2.54)));
9814
9814
  }
9815
- x("cm");
9815
+ O("cm");
9816
9816
  }, z = () => {
9817
9817
  if (I === "cm") {
9818
- const O = parseFloat(m);
9819
- !isNaN(O) && O > 0 && (gA(String(Math.floor(O / 2.54 / 12))), hA(String(Math.round(O / 2.54 % 12))));
9818
+ const x = parseFloat(m);
9819
+ !isNaN(x) && x > 0 && (gA(String(Math.floor(x / 2.54 / 12))), hA(String(Math.round(x / 2.54 % 12))));
9820
9820
  }
9821
- x("in");
9821
+ O("in");
9822
9822
  }, oA = () => {
9823
9823
  if (!t.trim())
9824
9824
  return s(B("Please enter a profile name")), !1;
9825
- let O;
9825
+ let x;
9826
9826
  if (I === "in") {
9827
9827
  const U = parseInt(E, 10), R = parseInt(c, 10);
9828
- O = !isNaN(U) && U > 0 && !isNaN(R) && R >= 0 && R <= 11;
9828
+ x = !isNaN(U) && U > 0 && !isNaN(R) && R >= 0 && R <= 11;
9829
9829
  } else {
9830
9830
  const U = parseFloat(m);
9831
- O = !isNaN(U) && U > 0;
9831
+ x = !isNaN(U) && U > 0;
9832
9832
  }
9833
- if (!O)
9833
+ if (!x)
9834
9834
  return s(B("Please enter a valid height")), !1;
9835
9835
  const q = parseFloat(l), QA = parseFloat(XA);
9836
9836
  return !q || q <= 0 ? (s(B("Please enter a valid weight")), !1) : !QA || QA <= 0 ? (s(B("Please enter a valid age")), !1) : (s(""), !0);
9837
9837
  }, EA = () => t.trim() ? (s(""), !0) : (s(B("Please enter a profile name")), !1), YA = () => {
9838
- const O = I === "in" ? (parseInt(E, 10) || 0) * 12 + (parseInt(c, 10) || 0) : parseFloat(m);
9838
+ const x = I === "in" ? (parseInt(E, 10) || 0) * 12 + (parseInt(c, 10) || 0) : parseFloat(m);
9839
9839
  return {
9840
9840
  name: t.trim(),
9841
9841
  gender: u,
9842
9842
  sizingUnit: I,
9843
9843
  heightUnit: I,
9844
9844
  weightUnit: I === "in" ? "lbs" : "kg",
9845
- heightCm: O,
9845
+ heightCm: x,
9846
9846
  weightKg: parseFloat(l),
9847
- height: O,
9847
+ height: x,
9848
9848
  weight: parseFloat(l),
9849
9849
  age: parseFloat(XA),
9850
9850
  chestProfile: SA || void 0,
@@ -9854,14 +9854,14 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9854
9854
  cupSize: GA && cf || void 0
9855
9855
  };
9856
9856
  }, wf = () => {
9857
- const O = I === "in" ? (parseInt(E, 10) || 0) * 12 + (parseInt(c, 10) || 0) : parseFloat(m), q = parseFloat(l), QA = parseFloat(XA);
9857
+ const x = I === "in" ? (parseInt(E, 10) || 0) * 12 + (parseInt(c, 10) || 0) : parseFloat(m), q = parseFloat(l), QA = parseFloat(XA);
9858
9858
  return {
9859
9859
  name: t.trim(),
9860
9860
  gender: u,
9861
9861
  sizingUnit: I,
9862
9862
  heightUnit: I,
9863
9863
  weightUnit: I === "in" ? "lbs" : "kg",
9864
- ...O > 0 ? { heightCm: O, height: O } : {},
9864
+ ...x > 0 ? { heightCm: x, height: x } : {},
9865
9865
  ...q > 0 ? { weightKg: q, weight: q } : {},
9866
9866
  ...QA > 0 ? { age: QA } : {},
9867
9867
  photoBase64: PA || void 0
@@ -9894,13 +9894,13 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9894
9894
  }
9895
9895
  o(uA[WA + 1]);
9896
9896
  }
9897
- }, nA = (O, q) => {
9898
- s(""), O === "chest" ? ff(q) : O === "stomach" ? nf(q) : O === "seat" ? Ef(q) : O === "hips" && $(q);
9899
- const QA = uA.indexOf(O), U = QA === a - 1;
9897
+ }, nA = (x, q) => {
9898
+ s(""), x === "chest" ? ff(q) : x === "stomach" ? nf(q) : x === "seat" ? Ef(q) : x === "hips" && $(q);
9899
+ const QA = uA.indexOf(x), U = QA === a - 1;
9900
9900
  setTimeout(() => {
9901
9901
  if (U) {
9902
9902
  const R = YA();
9903
- O === "chest" ? R.chestProfile = q : O === "stomach" ? R.midsectionProfile = q : (O === "seat" || O === "hips") && (R.hipProfile = q), f(R);
9903
+ x === "chest" ? R.chestProfile = q : x === "stomach" ? R.midsectionProfile = q : (x === "seat" || x === "hips") && (R.hipProfile = q), f(R);
9904
9904
  } else
9905
9905
  o(uA[QA + 1]);
9906
9906
  }, 220);
@@ -9953,8 +9953,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9953
9953
  T(!1);
9954
9954
  return;
9955
9955
  }
9956
- const O = wf();
9957
- F && (O.measurements = F, O.measurementsUnit = "cm"), f(O);
9956
+ const x = wf();
9957
+ F && (x.measurements = F, x.measurementsUnit = "cm"), f(x);
9958
9958
  }, AA = () => {
9959
9959
  if (s(""), r === "details") {
9960
9960
  H("name-photo");
@@ -9972,7 +9972,7 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9972
9972
  }, Pf = (() => {
9973
9973
  if (C == null) return B("Choose a method");
9974
9974
  if (C === "manual") {
9975
- const O = {
9975
+ const x = {
9976
9976
  identity: B("Identity"),
9977
9977
  chest: B("Chest"),
9978
9978
  stomach: B("Stomach"),
@@ -9980,14 +9980,14 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
9980
9980
  hips: B("Hips"),
9981
9981
  bra: B("Bra")
9982
9982
  };
9983
- return `${String(WA + 1).padStart(2, "0")} · ${O[i]}`;
9983
+ return `${String(WA + 1).padStart(2, "0")} · ${x[i]}`;
9984
9984
  }
9985
9985
  return B("Analyze by photo");
9986
9986
  })(), lA = (() => {
9987
9987
  if (C == null) return 0;
9988
9988
  if (C === "manual") return Math.round((WA + 1) / a * 100);
9989
- let O = 0;
9990
- return t.trim() && (O += 50), PA && (O += 50), O;
9989
+ let x = 0;
9990
+ return t.trim() && (x += 50), PA && (x += 50), x;
9991
9991
  })();
9992
9992
  return /* @__PURE__ */ P("div", { className: "ps-cpw-root", children: [
9993
9993
  /* @__PURE__ */ P("div", { className: "ps-cpw-step-head", children: [
@@ -10060,8 +10060,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10060
10060
  className: "ps-bp-inline-input",
10061
10061
  value: t,
10062
10062
  placeholder: B("e.g. My Measurements"),
10063
- onChange: (O) => {
10064
- k(O.target.value), s("");
10063
+ onChange: (x) => {
10064
+ k(x.target.value), s("");
10065
10065
  }
10066
10066
  }
10067
10067
  ) })
@@ -10077,8 +10077,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10077
10077
  className: "ps-bp-inline-input",
10078
10078
  value: m,
10079
10079
  placeholder: B("e.g. 173"),
10080
- onChange: (O) => {
10081
- K(O.target.value), s("");
10080
+ onChange: (x) => {
10081
+ K(x.target.value), s("");
10082
10082
  }
10083
10083
  }
10084
10084
  ),
@@ -10093,8 +10093,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10093
10093
  style: { width: "3em" },
10094
10094
  value: E,
10095
10095
  placeholder: "5",
10096
- onChange: (O) => {
10097
- gA(O.target.value), s("");
10096
+ onChange: (x) => {
10097
+ gA(x.target.value), s("");
10098
10098
  }
10099
10099
  }
10100
10100
  ),
@@ -10108,8 +10108,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10108
10108
  style: { width: "3em" },
10109
10109
  value: c,
10110
10110
  placeholder: "8",
10111
- onChange: (O) => {
10112
- hA(O.target.value), s("");
10111
+ onChange: (x) => {
10112
+ hA(x.target.value), s("");
10113
10113
  }
10114
10114
  }
10115
10115
  ),
@@ -10127,8 +10127,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10127
10127
  className: "ps-bp-inline-input",
10128
10128
  value: l,
10129
10129
  placeholder: B(I === "in" ? "e.g. 154" : "e.g. 70"),
10130
- onChange: (O) => {
10131
- y(O.target.value), s("");
10130
+ onChange: (x) => {
10131
+ y(x.target.value), s("");
10132
10132
  }
10133
10133
  }
10134
10134
  ),
@@ -10146,8 +10146,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10146
10146
  className: "ps-bp-inline-input",
10147
10147
  value: XA,
10148
10148
  placeholder: B("e.g. 30"),
10149
- onChange: (O) => {
10150
- sA(O.target.value), s("");
10149
+ onChange: (x) => {
10150
+ sA(x.target.value), s("");
10151
10151
  }
10152
10152
  }
10153
10153
  ),
@@ -10222,12 +10222,12 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10222
10222
  {
10223
10223
  className: "ps-cpw-input",
10224
10224
  value: _A ?? "",
10225
- onChange: (O) => {
10226
- Of(O.target.value || null), s("");
10225
+ onChange: (x) => {
10226
+ Of(x.target.value || null), s("");
10227
10227
  },
10228
10228
  children: [
10229
10229
  /* @__PURE__ */ A("option", { value: "", children: B("Select") }),
10230
- gf.map((O) => /* @__PURE__ */ A("option", { value: O, children: O }, O))
10230
+ gf.map((x) => /* @__PURE__ */ A("option", { value: x, children: x }, x))
10231
10231
  ]
10232
10232
  }
10233
10233
  )
@@ -10239,12 +10239,12 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10239
10239
  {
10240
10240
  className: "ps-cpw-input",
10241
10241
  value: cf ?? "",
10242
- onChange: (O) => {
10243
- Mf(O.target.value || null), s("");
10242
+ onChange: (x) => {
10243
+ Mf(x.target.value || null), s("");
10244
10244
  },
10245
10245
  children: [
10246
10246
  /* @__PURE__ */ A("option", { value: "", children: B("Select") }),
10247
- qA.map((O) => /* @__PURE__ */ A("option", { value: O, children: O }, O))
10247
+ qA.map((x) => /* @__PURE__ */ A("option", { value: x, children: x }, x))
10248
10248
  ]
10249
10249
  }
10250
10250
  )
@@ -10334,8 +10334,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10334
10334
  /* @__PURE__ */ P("div", { className: "ps-cpw-image-right", children: [
10335
10335
  /* @__PURE__ */ A("div", { className: "ps-bp-inline-fields ps-cpw-inline-fields", children: /* @__PURE__ */ P("div", { className: "ps-bp-inline-row", children: [
10336
10336
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: B("NAME") }),
10337
- /* @__PURE__ */ A("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ A("input", { ref: Hf, type: "text", className: `ps-bp-inline-input${J ? " ps-cpw-shake" : ""}`, value: t, placeholder: B("e.g. My Photo Profile"), onChange: (O) => {
10338
- k(O.target.value), s("");
10337
+ /* @__PURE__ */ A("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ A("input", { ref: Hf, type: "text", className: `ps-bp-inline-input${J ? " ps-cpw-shake" : ""}`, value: t, placeholder: B("e.g. My Photo Profile"), onChange: (x) => {
10338
+ k(x.target.value), s("");
10339
10339
  }, onAnimationEnd: () => UA(!1) }) })
10340
10340
  ] }) }),
10341
10341
  /* @__PURE__ */ P("div", { className: "ps-cpw-photo-guide", children: [
@@ -10382,17 +10382,17 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10382
10382
  /* @__PURE__ */ P("div", { className: "ps-bp-inline-row", children: [
10383
10383
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: B("HEIGHT") }),
10384
10384
  I === "cm" ? /* @__PURE__ */ P("div", { className: "ps-bp-inline-input-group", children: [
10385
- /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: m, placeholder: B("e.g. 173"), onChange: (O) => {
10386
- K(O.target.value), s("");
10385
+ /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: m, placeholder: B("e.g. 173"), onChange: (x) => {
10386
+ K(x.target.value), s("");
10387
10387
  } }),
10388
10388
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "cm" })
10389
10389
  ] }) : /* @__PURE__ */ P("div", { className: "ps-bp-inline-input-group", style: { gap: "6px" }, children: [
10390
- /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: E, placeholder: "5", onChange: (O) => {
10391
- gA(O.target.value), s("");
10390
+ /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: E, placeholder: "5", onChange: (x) => {
10391
+ gA(x.target.value), s("");
10392
10392
  } }),
10393
10393
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "ft" }),
10394
- /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: c, placeholder: "8", onChange: (O) => {
10395
- hA(O.target.value), s("");
10394
+ /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", style: { width: "3em" }, value: c, placeholder: "8", onChange: (x) => {
10395
+ hA(x.target.value), s("");
10396
10396
  } }),
10397
10397
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: "in" })
10398
10398
  ] })
@@ -10400,8 +10400,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10400
10400
  /* @__PURE__ */ P("div", { className: "ps-bp-inline-row", children: [
10401
10401
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: B("WEIGHT") }),
10402
10402
  /* @__PURE__ */ P("div", { className: "ps-bp-inline-input-group", children: [
10403
- /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: l, placeholder: B(I === "in" ? "e.g. 154" : "e.g. 70"), onChange: (O) => {
10404
- y(O.target.value), s("");
10403
+ /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: l, placeholder: B(I === "in" ? "e.g. 154" : "e.g. 70"), onChange: (x) => {
10404
+ y(x.target.value), s("");
10405
10405
  } }),
10406
10406
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: I === "in" ? "lbs" : "kg" })
10407
10407
  ] })
@@ -10409,8 +10409,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10409
10409
  /* @__PURE__ */ P("div", { className: "ps-bp-inline-row", children: [
10410
10410
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-label", children: B("AGE") }),
10411
10411
  /* @__PURE__ */ P("div", { className: "ps-bp-inline-input-group", children: [
10412
- /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: XA, placeholder: B("e.g. 30"), onChange: (O) => {
10413
- sA(O.target.value), s("");
10412
+ /* @__PURE__ */ A("input", { type: "number", inputMode: "numeric", className: "ps-bp-inline-input", value: XA, placeholder: B("e.g. 30"), onChange: (x) => {
10413
+ sA(x.target.value), s("");
10414
10414
  } }),
10415
10415
  /* @__PURE__ */ A("span", { className: "ps-bp-inline-unit", children: B("years") })
10416
10416
  ] })
@@ -10441,8 +10441,8 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10441
10441
  { key: "inseam", label: B("INSEAM") },
10442
10442
  { key: "thighCircumference", label: B("THIGH") },
10443
10443
  { key: "footLengthCm", label: B("FOOT") }
10444
- ].map(({ key: O, label: q }) => {
10445
- const QA = F[O];
10444
+ ].map(({ key: x, label: q }) => {
10445
+ const QA = F[x];
10446
10446
  if (!QA || QA === 0) return null;
10447
10447
  const U = I === "in" ? Math.round(QA / 2.54 * 10) / 10 : QA;
10448
10448
  return /* @__PURE__ */ P("div", { style: { background: "rgba(33,84,239,0.04)", border: "1px solid rgba(33,84,239,0.12)", borderRadius: "0.4vw", padding: "0.6vw 0.8vw" }, children: [
@@ -10452,7 +10452,7 @@ function yB({ onSave: f, onCancel: n, onPhotoPreview: g, onEstimate: e, t: B })
10452
10452
  " ",
10453
10453
  /* @__PURE__ */ A("span", { style: { fontSize: "0.7vw", color: "var(--ps-text-muted)", fontWeight: 400 }, children: I })
10454
10454
  ] })
10455
- ] }, O);
10455
+ ] }, x);
10456
10456
  }) })
10457
10457
  ] }) : /* @__PURE__ */ P("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", flex: 1, gap: "0.8vw" }, children: [
10458
10458
  /* @__PURE__ */ A("p", { style: { color: "var(--ps-text-primary)", fontSize: "1vw", fontWeight: 600 }, children: B("Estimation could not complete") }),
@@ -10534,7 +10534,7 @@ function A8({
10534
10534
  }), gA ? E : K;
10535
10535
  });
10536
10536
  }, [f.measurements, f.id]);
10537
- const [k, u] = j(f.bandSize || ""), [v, I] = j(f.cupSize || ""), x = (K) => {
10537
+ const [k, u] = j(f.bandSize || ""), [v, I] = j(f.cupSize || ""), O = (K) => {
10538
10538
  K !== F && (t((E) => {
10539
10539
  const gA = {};
10540
10540
  for (const [c, hA] of Object.entries(E)) {
@@ -10565,7 +10565,7 @@ function A8({
10565
10565
  {
10566
10566
  type: "button",
10567
10567
  className: `ps-cpw-pill${F === "cm" ? " ps-active" : ""}`,
10568
- onClick: () => x("cm"),
10568
+ onClick: () => O("cm"),
10569
10569
  children: "cm"
10570
10570
  }
10571
10571
  ),
@@ -10574,7 +10574,7 @@ function A8({
10574
10574
  {
10575
10575
  type: "button",
10576
10576
  className: `ps-cpw-pill${F === "in" ? " ps-active" : ""}`,
10577
- onClick: () => x("in"),
10577
+ onClick: () => O("in"),
10578
10578
  children: "in"
10579
10579
  }
10580
10580
  )
@@ -10832,9 +10832,9 @@ function g8({
10832
10832
  let I = null;
10833
10833
  if (typeof window < "u")
10834
10834
  try {
10835
- const x = localStorage.getItem("primestyle_profiles");
10836
- if (x) {
10837
- const m = JSON.parse(x);
10835
+ const O = localStorage.getItem("primestyle_profiles");
10836
+ if (O) {
10837
+ const m = JSON.parse(O);
10838
10838
  m.length > 0 && (I = m[0].id ?? null);
10839
10839
  }
10840
10840
  } catch {
@@ -10914,7 +10914,7 @@ function w8({
10914
10914
  canProceed: u,
10915
10915
  fastPathLabel: v,
10916
10916
  activeProfileName: I,
10917
- onStartFresh: x,
10917
+ onStartFresh: O,
10918
10918
  hidePhotoOptions: m = !1,
10919
10919
  error: K,
10920
10920
  t: E
@@ -10936,9 +10936,9 @@ function w8({
10936
10936
  E("Using"),
10937
10937
  " ",
10938
10938
  /* @__PURE__ */ A("strong", { children: I }),
10939
- x && /* @__PURE__ */ P(tA, { children: [
10939
+ O && /* @__PURE__ */ P(tA, { children: [
10940
10940
  " · ",
10941
- /* @__PURE__ */ A("button", { type: "button", className: "ps-bp-profile-hint-link", onClick: x, children: E("start fresh") })
10941
+ /* @__PURE__ */ A("button", { type: "button", className: "ps-bp-profile-hint-link", onClick: O, children: E("start fresh") })
10942
10942
  ] })
10943
10943
  ] }),
10944
10944
  /* @__PURE__ */ P("div", { className: "ps-bpm-toggle", children: [
@@ -11386,13 +11386,13 @@ function z8({
11386
11386
  onBack: u,
11387
11387
  t: v
11388
11388
  }) {
11389
- const I = g ? r8 : t8, [x, m] = j("basics");
11390
- x === "photo" || I.indexOf(x);
11389
+ const I = g ? r8 : t8, [O, m] = j("basics");
11390
+ O === "photo" || I.indexOf(O);
11391
11391
  const K = NP(), E = Yn(B), gA = k?.height, c = k?.weight, hA = k?.age, l = k?.heightUnit === "ft" ? "in" : k?.heightUnit, y = k?.weightUnit, XA = gA != null && l === "cm" ? String(Math.round(gA)) : gA != null && (l === "in" || l === "ft") ? String(Math.round(gA * 2.54)) : e.current.height || "173", sA = gA != null && (l === "in" || l === "ft") ? Math.round(gA) : gA != null && l === "cm" ? Math.round(gA / 2.54) : null, V = sA != null ? String(Math.floor(sA / 12)) : e.current.heightFeet || "5", s = sA != null ? String(sA % 12) : e.current.heightInches || "8", PA = c != null ? String(Math.round(c)) : e.current.weight || (E ? "154" : "70"), RA = hA != null ? String(hA) : e.current.age || "30", [mA, dA] = j(XA), [ZA, Hf] = j(V), [J, UA] = j(s), [TA, bA] = j(PA), [VA, kA] = j(RA), [vA, SA] = j(
11392
11392
  l || (C === "ft" ? "in" : C || (E ? "in" : "cm"))
11393
11393
  ), [ff, rA] = j(
11394
11394
  y || i || (E ? "lbs" : "kg")
11395
- ), nf = vA === "in" || ff === "lbs", [xA, Ef] = j(null), [eA, $] = j(null), [_A, Of] = j(null), [cf, Mf] = j(!1), gf = iA(null), [qA, GA] = j(null), [_, uA] = j(() => sA != null ? String(Math.round(sA * 2.54)) : XA), [WA, a] = j(null), [X, BA] = j(null), [z, oA] = j(null), [EA, YA] = j(null), [wf, N] = j(""), [nA, Bf] = j(null), [FA, OA] = j(null), [AA, LA] = j(() => ["US", "UK", "AU"].includes(B) ? B === "AU" ? "UK" : B : ["FR", "ES"].includes(B) ? "FR" : ["IT"].includes(B) ? "IT" : ["JP", "CN", "KR"].includes(B) ? "JP" : "EU"), [Pf, lA] = j(!1), O = pn[AA] || pn.US, [q, QA] = j(""), U = jA(async (M) => {
11395
+ ), nf = vA === "in" || ff === "lbs", [xA, Ef] = j(null), [eA, $] = j(null), [_A, Of] = j(null), [cf, Mf] = j(!1), gf = iA(null), [qA, GA] = j(null), [_, uA] = j(() => sA != null ? String(Math.round(sA * 2.54)) : XA), [WA, a] = j(null), [X, BA] = j(null), [z, oA] = j(null), [EA, YA] = j(null), [wf, N] = j(""), [nA, Bf] = j(null), [FA, OA] = j(null), [AA, LA] = j(() => ["US", "UK", "AU"].includes(B) ? B === "AU" ? "UK" : B : ["FR", "ES"].includes(B) ? "FR" : ["IT"].includes(B) ? "IT" : ["JP", "CN", "KR"].includes(B) ? "JP" : "EU"), [Pf, lA] = j(!1), x = pn[AA] || pn.US, [q, QA] = j(""), U = jA(async (M) => {
11396
11396
  const zA = M.target.files?.[0];
11397
11397
  if (!zA) return;
11398
11398
  if (qA !== !0) {
@@ -11465,30 +11465,30 @@ function z8({
11465
11465
  cupSize: FA || void 0
11466
11466
  });
11467
11467
  }, $A = jA(() => {
11468
- if (x === "basics") {
11468
+ if (O === "basics") {
11469
11469
  if (!G()) return;
11470
11470
  m(fA("basics"));
11471
- } else if (x === "chest") {
11471
+ } else if (O === "chest") {
11472
11472
  if (!WA) return;
11473
11473
  m(fA("chest"));
11474
- } else if (x === "midsection") {
11474
+ } else if (O === "midsection") {
11475
11475
  if (!X) return;
11476
11476
  m(fA("midsection"));
11477
- } else if (x === "seat") {
11477
+ } else if (O === "seat") {
11478
11478
  if (!EA) return;
11479
11479
  const M = fA("seat");
11480
11480
  M === "submit" ? NA() : m(M);
11481
- } else if (x === "hips") {
11481
+ } else if (O === "hips") {
11482
11482
  if (!z) return;
11483
11483
  const M = fA("hips");
11484
11484
  M === "submit" ? NA() : m(M);
11485
- } else if (x === "bra") {
11485
+ } else if (O === "bra") {
11486
11486
  if (!nA || !FA) {
11487
11487
  QA(v("Please select both band and cup size"));
11488
11488
  return;
11489
11489
  }
11490
11490
  QA(""), NA();
11491
- } else if (x === "photo") {
11491
+ } else if (O === "photo") {
11492
11492
  if (!_A || !xA) {
11493
11493
  if (F && h) {
11494
11494
  h();
@@ -11507,20 +11507,20 @@ function z8({
11507
11507
  gender: aA
11508
11508
  });
11509
11509
  }
11510
- }, [x, I, G, WA, X, z, EA, nA, FA, vA, ff, mA, ZA, J, TA, VA, _A, xA, _, e, D, o, p, T, g, aA, F, h]), ef = (M) => {
11510
+ }, [O, I, G, WA, X, z, EA, nA, FA, vA, ff, mA, ZA, J, TA, VA, _A, xA, _, e, D, o, p, T, g, aA, F, h]), ef = (M) => {
11511
11511
  const zA = I.indexOf(M);
11512
11512
  return zA > 0 ? I[zA - 1] : null;
11513
11513
  }, yA = jA(() => {
11514
- if (QA(""), x === "basics")
11514
+ if (QA(""), O === "basics")
11515
11515
  u();
11516
- else if (x === "photo")
11516
+ else if (O === "photo")
11517
11517
  m("basics");
11518
11518
  else {
11519
- const M = ef(x);
11519
+ const M = ef(O);
11520
11520
  M ? m(M) : u();
11521
11521
  }
11522
- }, [x, I, u]), KA = x === "basics" ? !0 : x === "chest" ? !!WA : x === "midsection" ? !!X : x === "seat" ? !!EA : x === "hips" ? !!z : x === "bra" ? !!(nA && FA) : x === "photo", vf = x === I[I.length - 1];
11523
- return x === "photo" ? K ? /* @__PURE__ */ A("div", { className: "ps-bp-wrapper", children: /* @__PURE__ */ A(
11522
+ }, [O, I, u]), KA = O === "basics" ? !0 : O === "chest" ? !!WA : O === "midsection" ? !!X : O === "seat" ? !!EA : O === "hips" ? !!z : O === "bra" ? !!(nA && FA) : O === "photo", vf = O === I[I.length - 1];
11523
+ return O === "photo" ? K ? /* @__PURE__ */ A("div", { className: "ps-bp-wrapper", children: /* @__PURE__ */ A(
11524
11524
  Zn,
11525
11525
  {
11526
11526
  photoPreview: eA,
@@ -11831,7 +11831,7 @@ function z8({
11831
11831
  }
11832
11832
  ),
11833
11833
  /* @__PURE__ */ P("div", { className: "ps-bp-root", children: [
11834
- x === "basics" && (() => {
11834
+ O === "basics" && (() => {
11835
11835
  const M = () => {
11836
11836
  if (vA === "in") {
11837
11837
  const cA = (parseFloat(ZA) || 5) * 12 + (parseFloat(J) || 8);
@@ -11926,7 +11926,7 @@ function z8({
11926
11926
  q && /* @__PURE__ */ A("p", { className: "ps-bp-error", children: q })
11927
11927
  ] }, "step-basics");
11928
11928
  })(),
11929
- x === "chest" && !g && (K ? /* @__PURE__ */ A(
11929
+ O === "chest" && !g && (K ? /* @__PURE__ */ A(
11930
11930
  iP,
11931
11931
  {
11932
11932
  stepNumber: I.indexOf("chest") + 1,
@@ -11951,7 +11951,7 @@ function z8({
11951
11951
  ] }),
11952
11952
  /* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: wf || " " })
11953
11953
  ] }, "step-chest")),
11954
- x === "midsection" && (K ? /* @__PURE__ */ A(
11954
+ O === "midsection" && (K ? /* @__PURE__ */ A(
11955
11955
  iP,
11956
11956
  {
11957
11957
  stepNumber: I.indexOf("midsection") + 1,
@@ -11984,7 +11984,7 @@ function z8({
11984
11984
  ] }) }),
11985
11985
  /* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: wf || " " })
11986
11986
  ] }, "step-midsection")),
11987
- x === "seat" && (K ? /* @__PURE__ */ A(
11987
+ O === "seat" && (K ? /* @__PURE__ */ A(
11988
11988
  iP,
11989
11989
  {
11990
11990
  stepNumber: I.indexOf("seat") + 1,
@@ -12017,7 +12017,7 @@ function z8({
12017
12017
  ] }) }),
12018
12018
  /* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: wf || " " })
12019
12019
  ] }, "step-seat")),
12020
- x === "hips" && g && (K ? /* @__PURE__ */ A(
12020
+ O === "hips" && g && (K ? /* @__PURE__ */ A(
12021
12021
  iP,
12022
12022
  {
12023
12023
  stepNumber: I.indexOf("hips") + 1,
@@ -12042,7 +12042,7 @@ function z8({
12042
12042
  ] }),
12043
12043
  /* @__PURE__ */ A("p", { className: "ps-bp-hover-hint", children: wf || " " })
12044
12044
  ] }, "step-hips")),
12045
- x === "bra" && g && /* @__PURE__ */ P("div", { className: "ps-bp-step ps-bp-step-enter ps-bp-bra-step", children: [
12045
+ O === "bra" && g && /* @__PURE__ */ P("div", { className: "ps-bp-step ps-bp-step-enter ps-bp-bra-step", children: [
12046
12046
  /* @__PURE__ */ A("h2", { className: "ps-bp-title", children: v("Select your bra size") }),
12047
12047
  /* @__PURE__ */ P("div", { className: "ps-bp-bra-section", children: [
12048
12048
  /* @__PURE__ */ P("div", { className: "ps-bp-bra-header", children: [
@@ -12089,7 +12089,7 @@ function z8({
12089
12089
  ] });
12090
12090
  })()
12091
12091
  ] }),
12092
- /* @__PURE__ */ A("div", { className: "ps-bp-bra-grid", children: O.map((M) => /* @__PURE__ */ A(
12092
+ /* @__PURE__ */ A("div", { className: "ps-bp-bra-grid", children: x.map((M) => /* @__PURE__ */ A(
12093
12093
  "button",
12094
12094
  {
12095
12095
  className: `ps-bp-bra-btn${nA === M ? " ps-bp-bra-btn-selected" : ""}`,
@@ -12115,10 +12115,10 @@ function z8({
12115
12115
  ] }),
12116
12116
  q && /* @__PURE__ */ A("p", { className: "ps-bp-error", children: q })
12117
12117
  ] }, "step-bra"),
12118
- !(K && x === "basics") && (() => {
12119
- const M = x === "basics" && F && !!h, zA = M ? h : $A, cA = xf(vA) ? ` (${xf(vA)})` : "", tf = M ? v("Find My Best Fit") + cA : vf ? v("Find My Size") + cA : v("Next");
12118
+ !(K && O === "basics") && (() => {
12119
+ const M = O === "basics" && F && !!h, zA = M ? h : $A, cA = xf(vA) ? ` (${xf(vA)})` : "", tf = M ? v("Find My Best Fit") + cA : vf ? v("Find My Size") + cA : v("Next");
12120
12120
  return /* @__PURE__ */ P("div", { className: "ps-bp-nav", children: [
12121
- x !== "basics" ? /* @__PURE__ */ P("button", { className: "ps-bp-back-btn", onClick: yA, type: "button", children: [
12121
+ O !== "basics" ? /* @__PURE__ */ P("button", { className: "ps-bp-back-btn", onClick: yA, type: "button", children: [
12122
12122
  /* @__PURE__ */ A("span", { className: "ps-bp-back-arrow", children: "←" }),
12123
12123
  " ",
12124
12124
  v("Back")
@@ -12163,7 +12163,7 @@ function SP({
12163
12163
  onBack: W,
12164
12164
  t
12165
12165
  }) {
12166
- const k = e === "close-up", u = NP(), [v, I] = j("manual"), [x, m] = j(() => {
12166
+ const k = e === "close-up", u = NP(), [v, I] = j("manual"), [O, m] = j(() => {
12167
12167
  const J = {};
12168
12168
  return n.forEach((UA) => {
12169
12169
  J[UA.key] = i.current[UA.key] || "";
@@ -12185,13 +12185,13 @@ function SP({
12185
12185
  }, dA = () => {
12186
12186
  const J = n[0];
12187
12187
  if (!J) return;
12188
- const UA = parseFloat(x[J.key] || "");
12188
+ const UA = parseFloat(O[J.key] || "");
12189
12189
  if (!UA || UA <= 0) {
12190
12190
  E(t("Please enter your ") + t(J.label).toLowerCase());
12191
12191
  return;
12192
12192
  }
12193
12193
  n.forEach((TA) => {
12194
- const bA = parseFloat(x[TA.key] || "");
12194
+ const bA = parseFloat(O[TA.key] || "");
12195
12195
  bA > 0 && (i.current[TA.key] = String(bA));
12196
12196
  }), i.current.gender = i.current.gender || "male", H("exact"), p(!0), T("size-result"), F("exact");
12197
12197
  }, ZA = () => {
@@ -12250,7 +12250,7 @@ function SP({
12250
12250
  {
12251
12251
  type: "number",
12252
12252
  className: "ps-bpm-value-input",
12253
- value: x[J.key],
12253
+ value: O[J.key],
12254
12254
  onChange: (UA) => mA(J.key, UA.target.value),
12255
12255
  placeholder: J.placeholder[o] || J.placeholder.cm || J.placeholder.in || "",
12256
12256
  step: J.step ?? 0.5,
@@ -12585,7 +12585,7 @@ function SP({
12585
12585
  {
12586
12586
  type: "number",
12587
12587
  className: "ps-bp-inline-input",
12588
- value: x[J.key],
12588
+ value: O[J.key],
12589
12589
  onChange: (UA) => mA(J.key, UA.target.value),
12590
12590
  placeholder: J.placeholder[o] || J.placeholder.cm || J.placeholder.in || "",
12591
12591
  step: J.step ?? 0.5,
@@ -12790,7 +12790,7 @@ function R8({
12790
12790
  onError: v,
12791
12791
  sizeGuideData: I
12792
12792
  }) {
12793
- const x = g || f, [m, K] = j(() => o || "");
12793
+ const O = g || f, [m, K] = j(() => o || "");
12794
12794
  JA(() => {
12795
12795
  o !== void 0 && K(o);
12796
12796
  }, [o]);
@@ -12803,8 +12803,8 @@ function R8({
12803
12803
  const w = Xf(n);
12804
12804
  w === "foot" || w === "head" ? uA("cm") : w === "face" && uA("mm");
12805
12805
  }, [n]);
12806
- const z = iA({}), [oA, EA] = j("male"), [YA, wf] = j(0), [N, nA] = j(null), [Bf, FA] = j(!1), [OA, AA] = j(() => af("profiles", [])), [LA, Pf] = j(() => af("history", [])), [lA, O] = j(() => Kn()), [q, QA] = j(() => /* @__PURE__ */ new Set()), [U, R] = j(null), G = jA((w) => {
12807
- O(w), Tg(w);
12806
+ const z = iA({}), [oA, EA] = j("male"), [YA, wf] = j(0), [N, nA] = j(null), [Bf, FA] = j(!1), [OA, AA] = j(() => af("profiles", [])), [LA, Pf] = j(() => af("history", [])), [lA, x] = j(() => Kn()), [q, QA] = j(() => /* @__PURE__ */ new Set()), [U, R] = j(null), G = jA((w) => {
12807
+ x(w), Tg(w);
12808
12808
  }, []), [S, aA] = j(!1), [fA, NA] = j(null), [$A, ef] = j(null), yA = iA(null), KA = iA(() => !1), vf = iA(() => {
12809
12809
  }), M = jA((w, Q) => {
12810
12810
  KA.current = w, vf.current = Q;
@@ -12890,7 +12890,7 @@ function R8({
12890
12890
  fetch(`${w}/api/v1/sizing/sizeguide`, {
12891
12891
  method: "POST",
12892
12892
  headers: { "Content-Type": "application/json", Authorization: `Bearer ${Q}` },
12893
- body: JSON.stringify({ product: { title: n, productId: x }, sizeGuideRaw: I })
12893
+ body: JSON.stringify({ product: { title: n, productId: O }, sizeGuideRaw: I })
12894
12894
  }).then((Y) => Y.ok ? Y.json() : null).then((Y) => {
12895
12895
  _A(Y || { found: !1 });
12896
12896
  }).catch(() => {
@@ -12955,7 +12955,7 @@ function R8({
12955
12955
  Object.entries(Q.sections).map(([Z, d]) => [Z, d.recommendedSize])
12956
12956
  ) : void 0;
12957
12957
  Tn(Y, {
12958
- productId: x,
12958
+ productId: O,
12959
12959
  productTitle: n,
12960
12960
  productImage: f,
12961
12961
  recommendedSize: Q.recommendedSize,
@@ -12965,7 +12965,7 @@ function R8({
12965
12965
  }), AA(af("profiles", []));
12966
12966
  }
12967
12967
  },
12968
- [lA, OA, B, f, n, x, G]
12968
+ [lA, OA, B, f, n, O, G]
12969
12969
  ), UP = iA(null), [qf, EP] = j(null), yP = jA(async (w) => {
12970
12970
  const Q = w.height ?? w.heightCm ?? 0, Y = w.weight ?? w.weightKg ?? 0, wA = !!w.measurements && Object.keys(w.measurements).length > 0, L = w.photoBase64;
12971
12971
  if (!wA && L && Q > 0 && UP.current) {
@@ -12998,7 +12998,7 @@ function R8({
12998
12998
  } catch {
12999
12999
  }
13000
13000
  y("size-result"), Gn({
13001
- productId: x,
13001
+ productId: O,
13002
13002
  productTitle: n,
13003
13003
  productImage: f,
13004
13004
  sizeGuideData: I,
@@ -13009,7 +13009,7 @@ function R8({
13009
13009
  d?.raw && SA(d.raw), xA(!0);
13010
13010
  }).catch(() => {
13011
13011
  }).finally(() => rA(!1));
13012
- }, [x, n, f, I, B, V]), _n = jA(async () => {
13012
+ }, [O, n, f, I, B, V]), _n = jA(async () => {
13013
13013
  const w = OA.find((L) => L.id === lA);
13014
13014
  if (!w) return;
13015
13015
  const Q = w.height ?? w.heightCm ?? 0, Y = w.weight ?? w.weightKg ?? 0;
@@ -13149,7 +13149,7 @@ function R8({
13149
13149
  const Z = {
13150
13150
  method: Q,
13151
13151
  locale: gf,
13152
- product: { title: n, productId: x, description: "", variants: [] }
13152
+ product: { title: n, productId: O, description: "", variants: [] }
13153
13153
  };
13154
13154
  if ($?.found && (Z.sizeGuide = $, $.sections && (Z.sizeGuide = { ...$, sections: $.sections })), Z.sizingUnit = _, console.log("[PS-SDK] sizeGuide state:", JSON.stringify({ found: $?.found, hasHeaders: !!$?.headers, hasRows: !!$?.rows, headers: $?.headers, rowCount: $?.rows?.length, hasSections: !!$?.sections, sectionNames: $?.sections ? Object.keys($.sections) : [] })), console.log("[PS-SDK] payload.sizeGuide:", Z.sizeGuide ? "present" : "MISSING"), console.log("[PS-SDK] payload.sizeGuide row0 type:", Z.sizeGuide && Z.sizeGuide.rows?.[0] ? Array.isArray(Z.sizeGuide.rows[0]) ? "array" : typeof Z.sizeGuide.rows[0] : "none"), console.log("[PS-SDK] payload:", JSON.stringify(Z).substring(0, 1e3)), console.log("[PS-SDK] ── submitSizing START ──"), console.log("[PS-SDK] method:", Q, "| sizingUnit:", _, "| heightUnit:", WA), console.log("[PS-SDK] formRef.current (all keys):", JSON.stringify(z.current)), console.log("[PS-SDK] dynamicFields:", Kf.map((d) => `${d.key}(unit=${d.unit},req=${d.required})`).join(", ")), Q === "exact") {
13155
13155
  const d = { gender: z.current.gender || "male", sizingUnit: _ }, b = /* @__PURE__ */ new Set();
@@ -13258,7 +13258,7 @@ function R8({
13258
13258
  const CA = await dg(wA);
13259
13259
  CA && LP(CA.landmarks);
13260
13260
  const zf = {
13261
- product: { title: n, productId: x },
13261
+ product: { title: n, productId: O },
13262
13262
  sizeGuide: $ ?? { found: !1 },
13263
13263
  sizingUnit: L === "head" ? "cm" : "mm",
13264
13264
  category: L,
@@ -13302,7 +13302,7 @@ function R8({
13302
13302
  method: "photo",
13303
13303
  locale: gf,
13304
13304
  sizingUnit: _,
13305
- product: { title: n, productId: x, description: "", variants: [] },
13305
+ product: { title: n, productId: O, description: "", variants: [] },
13306
13306
  bodyImage: w.photoBase64,
13307
13307
  // BlazePose landmarks (normalized 0–1 coordinates). The backend uses
13308
13308
  // these to compute exact pixel distances and feed them to Gemini as
@@ -13373,7 +13373,7 @@ function R8({
13373
13373
  d,
13374
13374
  Y ?? "apparel",
13375
13375
  {
13376
- productId: x,
13376
+ productId: O,
13377
13377
  productTitle: n,
13378
13378
  silhouetteContext: Cn(vA, $)
13379
13379
  }
@@ -13427,7 +13427,7 @@ function R8({
13427
13427
  L,
13428
13428
  Q ?? "apparel",
13429
13429
  {
13430
- productId: x,
13430
+ productId: O,
13431
13431
  productTitle: n,
13432
13432
  silhouetteContext: Cn(vA, $)
13433
13433
  }