@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.
- package/dist/react/index.js +151 -151
- package/dist/react/index.js.map +1 -1
- package/dist/storefront/primestyle-tryon.js +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -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,
|
|
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:
|
|
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,
|
|
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((
|
|
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((
|
|
7251
|
-
const m = g[
|
|
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[
|
|
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(
|
|
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(
|
|
7269
|
+
onInput: (c) => p(O.key, c.target.value)
|
|
7270
7270
|
}
|
|
7271
7271
|
)
|
|
7272
|
-
] }) },
|
|
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
|
|
7547
|
-
|
|
7546
|
+
for (const O of Object.values(g.sections))
|
|
7547
|
+
O.matchDetails && I.push(...O.matchDetails);
|
|
7548
7548
|
if (I.length > 0) {
|
|
7549
|
-
const
|
|
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(
|
|
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:
|
|
7615
|
-
const m = I.replace(/\s*[—–-]\s*.*/g, ""), K =
|
|
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,
|
|
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 ${
|
|
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:
|
|
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(),
|
|
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 (
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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
|
-
!
|
|
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
|
-
|
|
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
|
-
!
|
|
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 ?
|
|
8984
|
+
wf ? O ? (
|
|
8985
8985
|
/* ── Detail view for a single section ── */
|
|
8986
8986
|
(() => {
|
|
8987
|
-
const U = nA.find((R) => R.name ===
|
|
8988
|
-
return U ?
|
|
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-${
|
|
9047
|
+
) }, `detail-${O}`)
|
|
9048
9048
|
] }) : null;
|
|
9049
9049
|
})()
|
|
9050
|
-
) :
|
|
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
|
|
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:
|
|
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,
|
|
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 (
|
|
9784
|
-
const q =
|
|
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
|
|
9813
|
-
!isNaN(
|
|
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
|
-
|
|
9815
|
+
O("cm");
|
|
9816
9816
|
}, z = () => {
|
|
9817
9817
|
if (I === "cm") {
|
|
9818
|
-
const
|
|
9819
|
-
!isNaN(
|
|
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
|
-
|
|
9821
|
+
O("in");
|
|
9822
9822
|
}, oA = () => {
|
|
9823
9823
|
if (!t.trim())
|
|
9824
9824
|
return s(B("Please enter a profile name")), !1;
|
|
9825
|
-
let
|
|
9825
|
+
let x;
|
|
9826
9826
|
if (I === "in") {
|
|
9827
9827
|
const U = parseInt(E, 10), R = parseInt(c, 10);
|
|
9828
|
-
|
|
9828
|
+
x = !isNaN(U) && U > 0 && !isNaN(R) && R >= 0 && R <= 11;
|
|
9829
9829
|
} else {
|
|
9830
9830
|
const U = parseFloat(m);
|
|
9831
|
-
|
|
9831
|
+
x = !isNaN(U) && U > 0;
|
|
9832
9832
|
}
|
|
9833
|
-
if (!
|
|
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
|
|
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:
|
|
9845
|
+
heightCm: x,
|
|
9846
9846
|
weightKg: parseFloat(l),
|
|
9847
|
-
height:
|
|
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
|
|
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
|
-
...
|
|
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 = (
|
|
9898
|
-
s(""),
|
|
9899
|
-
const QA = uA.indexOf(
|
|
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
|
-
|
|
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
|
|
9957
|
-
F && (
|
|
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
|
|
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")} · ${
|
|
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
|
|
9990
|
-
return t.trim() && (
|
|
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: (
|
|
10064
|
-
k(
|
|
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: (
|
|
10081
|
-
K(
|
|
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: (
|
|
10097
|
-
gA(
|
|
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: (
|
|
10112
|
-
hA(
|
|
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: (
|
|
10131
|
-
y(
|
|
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: (
|
|
10150
|
-
sA(
|
|
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: (
|
|
10226
|
-
Of(
|
|
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((
|
|
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: (
|
|
10243
|
-
Mf(
|
|
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((
|
|
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: (
|
|
10338
|
-
k(
|
|
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: (
|
|
10386
|
-
K(
|
|
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: (
|
|
10391
|
-
gA(
|
|
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: (
|
|
10395
|
-
hA(
|
|
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: (
|
|
10404
|
-
y(
|
|
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: (
|
|
10413
|
-
sA(
|
|
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:
|
|
10445
|
-
const QA = F[
|
|
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
|
-
] },
|
|
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 || ""),
|
|
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: () =>
|
|
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: () =>
|
|
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
|
|
10836
|
-
if (
|
|
10837
|
-
const m = JSON.parse(
|
|
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:
|
|
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
|
-
|
|
10939
|
+
O && /* @__PURE__ */ P(tA, { children: [
|
|
10940
10940
|
" · ",
|
|
10941
|
-
/* @__PURE__ */ A("button", { type: "button", className: "ps-bp-profile-hint-link", onClick:
|
|
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, [
|
|
11390
|
-
|
|
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),
|
|
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 (
|
|
11468
|
+
if (O === "basics") {
|
|
11469
11469
|
if (!G()) return;
|
|
11470
11470
|
m(fA("basics"));
|
|
11471
|
-
} else if (
|
|
11471
|
+
} else if (O === "chest") {
|
|
11472
11472
|
if (!WA) return;
|
|
11473
11473
|
m(fA("chest"));
|
|
11474
|
-
} else if (
|
|
11474
|
+
} else if (O === "midsection") {
|
|
11475
11475
|
if (!X) return;
|
|
11476
11476
|
m(fA("midsection"));
|
|
11477
|
-
} else if (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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
|
-
}, [
|
|
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(""),
|
|
11514
|
+
if (QA(""), O === "basics")
|
|
11515
11515
|
u();
|
|
11516
|
-
else if (
|
|
11516
|
+
else if (O === "photo")
|
|
11517
11517
|
m("basics");
|
|
11518
11518
|
else {
|
|
11519
|
-
const M = ef(
|
|
11519
|
+
const M = ef(O);
|
|
11520
11520
|
M ? m(M) : u();
|
|
11521
11521
|
}
|
|
11522
|
-
}, [
|
|
11523
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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 &&
|
|
12119
|
-
const M =
|
|
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
|
-
|
|
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"), [
|
|
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(
|
|
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(
|
|
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:
|
|
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:
|
|
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
|
|
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,
|
|
12807
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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:
|
|
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
|
-
}, [
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
13430
|
+
productId: O,
|
|
13431
13431
|
productTitle: n,
|
|
13432
13432
|
silhouetteContext: Cn(vA, $)
|
|
13433
13433
|
}
|