@primestyleai/tryon 5.8.54 → 5.8.56
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/pose-detect.d.ts +9 -1
- package/dist/react/index.js +31 -10
- package/dist/storefront/primestyle-tryon.js +31 -10
- package/package.json +1 -1
package/dist/pose-detect.d.ts
CHANGED
|
@@ -67,7 +67,15 @@ export interface BodyLandmarks {
|
|
|
67
67
|
y: number;
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
+
/** Pixel dimensions of the image the landmarks were detected on. Sent to
|
|
71
|
+
* the backend alongside the landmarks so it can convert normalized x/y
|
|
72
|
+
* into pixels — without this, horizontal and vertical distances on a
|
|
73
|
+
* non-square image are skewed by the aspect ratio. */
|
|
74
|
+
export interface BodyLandmarksWithDims extends BodyLandmarks {
|
|
75
|
+
imageWidth: number;
|
|
76
|
+
imageHeight: number;
|
|
77
|
+
}
|
|
70
78
|
export declare function detectMeasurementLines(imageSrc: string): Promise<MeasurementLines | null>;
|
|
71
79
|
/** Detect full body landmarks for per-field measurement guides.
|
|
72
80
|
* Accepts a URL string OR an already-loaded HTMLImageElement to avoid CORS issues. */
|
|
73
|
-
export declare function detectBodyLandmarks(imageSrc: string | HTMLImageElement): Promise<
|
|
81
|
+
export declare function detectBodyLandmarks(imageSrc: string | HTMLImageElement): Promise<BodyLandmarksWithDims | null>;
|
package/dist/react/index.js
CHANGED
|
@@ -121,7 +121,9 @@ async function detectBodyLandmarks(imageSrc) {
|
|
|
121
121
|
rightKnee: { x: lm[RIGHT_KNEE].x, y: lm[RIGHT_KNEE].y },
|
|
122
122
|
leftAnkle: { x: lm[LEFT_ANKLE].x, y: lm[LEFT_ANKLE].y },
|
|
123
123
|
rightAnkle: { x: lm[RIGHT_ANKLE].x, y: lm[RIGHT_ANKLE].y },
|
|
124
|
-
nose: { x: lm[NOSE].x, y: lm[NOSE].y }
|
|
124
|
+
nose: { x: lm[NOSE].x, y: lm[NOSE].y },
|
|
125
|
+
imageWidth: img.naturalWidth || img.width,
|
|
126
|
+
imageHeight: img.naturalHeight || img.height
|
|
125
127
|
};
|
|
126
128
|
} catch (err) {
|
|
127
129
|
console.error("[PS-SDK] Body landmark detection failed:", err);
|
|
@@ -7819,6 +7821,7 @@ function SkeletonOverlay({ landmarks, imgWidth, imgHeight }) {
|
|
|
7819
7821
|
SKELETON_CONNECTIONS.map(([a, b], i) => {
|
|
7820
7822
|
const pa = landmarks[a];
|
|
7821
7823
|
const pb = landmarks[b];
|
|
7824
|
+
if (!pa || !pb || typeof pa !== "object" || typeof pb !== "object" || typeof pa.x !== "number" || typeof pa.y !== "number" || typeof pb.x !== "number" || typeof pb.y !== "number") return null;
|
|
7822
7825
|
return /* @__PURE__ */ jsx(
|
|
7823
7826
|
"line",
|
|
7824
7827
|
{
|
|
@@ -7835,7 +7838,7 @@ function SkeletonOverlay({ landmarks, imgWidth, imgHeight }) {
|
|
|
7835
7838
|
`l-${i}`
|
|
7836
7839
|
);
|
|
7837
7840
|
}),
|
|
7838
|
-
Object.entries(landmarks).map(([key, v], i) => /* @__PURE__ */ jsxs("g", { children: [
|
|
7841
|
+
Object.entries(landmarks).filter(([, v]) => v && typeof v === "object" && typeof v.x === "number" && typeof v.y === "number").map(([key, v], i) => /* @__PURE__ */ jsxs("g", { children: [
|
|
7839
7842
|
/* @__PURE__ */ jsx(
|
|
7840
7843
|
"circle",
|
|
7841
7844
|
{
|
|
@@ -7879,6 +7882,7 @@ function MeasurementOverlay({ lines, fitRows, show, imgWidth, imgHeight }) {
|
|
|
7879
7882
|
const strokeW = Math.max(5, 3 * scale);
|
|
7880
7883
|
const dotR = Math.max(7, 5 * scale);
|
|
7881
7884
|
return /* @__PURE__ */ jsx("svg", { className: "ps-tryon-pose-overlay", viewBox: `0 0 ${W} ${H}`, preserveAspectRatio: "xMidYMid meet", children: areas.map(({ key, line, label }, i) => {
|
|
7885
|
+
if (!line || typeof line.x1 !== "number" || typeof line.x2 !== "number" || typeof line.y !== "number") return null;
|
|
7882
7886
|
const x1 = line.x1 * W;
|
|
7883
7887
|
const x2 = line.x2 * W;
|
|
7884
7888
|
const cy = line.y * H;
|
|
@@ -8046,7 +8050,8 @@ function SectionDetailView({
|
|
|
8046
8050
|
tryOnProcessing,
|
|
8047
8051
|
backLabel,
|
|
8048
8052
|
internationalSizes,
|
|
8049
|
-
continueLabel
|
|
8053
|
+
continueLabel,
|
|
8054
|
+
renderRaw = false
|
|
8050
8055
|
}) {
|
|
8051
8056
|
const recSize = sectionResult?.recommendedSize || "";
|
|
8052
8057
|
const [selectedSize, setSelectedSize] = useState(null);
|
|
@@ -8164,6 +8169,18 @@ function SectionDetailView({
|
|
|
8164
8169
|
return { range: val, ...parsed };
|
|
8165
8170
|
}, [section, sizeColIdx, sizeHeader, unitLbl, columnUnits]);
|
|
8166
8171
|
const fitRows = useMemo(() => {
|
|
8172
|
+
if (renderRaw) {
|
|
8173
|
+
const raw = sectionResult?.matchDetails || [];
|
|
8174
|
+
return raw.map((m) => ({
|
|
8175
|
+
area: m.measurement.replace(/\s*\(.*?\)\s*$/, "").trim() || m.measurement,
|
|
8176
|
+
rawUserValue: m.userValue,
|
|
8177
|
+
rawChartRange: m.chartRange,
|
|
8178
|
+
fit: m.fit,
|
|
8179
|
+
userNum: 0,
|
|
8180
|
+
chartLabel: "",
|
|
8181
|
+
isLength: false
|
|
8182
|
+
}));
|
|
8183
|
+
}
|
|
8167
8184
|
const mainDetails = sectionResult?.matchDetails || [];
|
|
8168
8185
|
const lengthDetails = lengthEntry?.secResult?.matchDetails || [];
|
|
8169
8186
|
const details = [...mainDetails, ...lengthDetails];
|
|
@@ -8233,11 +8250,12 @@ function SectionDetailView({
|
|
|
8233
8250
|
}
|
|
8234
8251
|
return { area: m.measurement, userNum, chartLabel: cleanNumFn(chartLabel), fit, isLength: false };
|
|
8235
8252
|
});
|
|
8236
|
-
}, [sectionResult, lengthEntry, userMeasurements, displaySize, recSize, chartRangeFor, selectedLength, recLength]);
|
|
8253
|
+
}, [sectionResult, lengthEntry, userMeasurements, displaySize, recSize, chartRangeFor, selectedLength, recLength, renderRaw]);
|
|
8237
8254
|
const goodCount = fitRows.filter(
|
|
8238
8255
|
(r) => r.fit === "good" || r.fit === "a-bit-tight" || r.fit === "a-bit-loose"
|
|
8239
8256
|
).length;
|
|
8240
8257
|
const matchPercent = fitRows.length > 0 ? Math.round(goodCount / fitRows.length * 100) : 0;
|
|
8258
|
+
const showMatchPercent = !renderRaw;
|
|
8241
8259
|
const secAny = sectionResult;
|
|
8242
8260
|
const backendSize = secAny?.size || recSize;
|
|
8243
8261
|
const backendLength = secAny?.length || recLength;
|
|
@@ -8404,7 +8422,7 @@ function SectionDetailView({
|
|
|
8404
8422
|
/* @__PURE__ */ jsxs("div", { className: "ps-msd-row-cells", children: [
|
|
8405
8423
|
/* @__PURE__ */ jsxs("div", { className: "ps-msd-row-cell", children: [
|
|
8406
8424
|
/* @__PURE__ */ jsx("span", { className: "ps-msd-cell-label", children: t("USER") }),
|
|
8407
|
-
/* @__PURE__ */ jsx("span", { className: "ps-msd-cell-value", children: isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` })
|
|
8425
|
+
/* @__PURE__ */ jsx("span", { className: "ps-msd-cell-value", children: renderRaw ? row.rawUserValue || "—" : isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` })
|
|
8408
8426
|
] }),
|
|
8409
8427
|
/* @__PURE__ */ jsxs("div", { className: "ps-msd-row-cell ps-right", children: [
|
|
8410
8428
|
/* @__PURE__ */ jsxs("span", { className: "ps-msd-cell-label", children: [
|
|
@@ -8412,7 +8430,7 @@ function SectionDetailView({
|
|
|
8412
8430
|
" ",
|
|
8413
8431
|
displaySize
|
|
8414
8432
|
] }),
|
|
8415
|
-
/* @__PURE__ */ jsx("span", { className: "ps-msd-cell-value", children: dLabel(row.chartLabel) })
|
|
8433
|
+
/* @__PURE__ */ jsx("span", { className: "ps-msd-cell-value", children: renderRaw ? row.rawChartRange || "—" : dLabel(row.chartLabel) })
|
|
8416
8434
|
] })
|
|
8417
8435
|
] }),
|
|
8418
8436
|
/* @__PURE__ */ jsxs("div", { className: `ps-msd-row-badge ${fitClass}`, children: [
|
|
@@ -8511,7 +8529,7 @@ function SectionDetailView({
|
|
|
8511
8529
|
] })
|
|
8512
8530
|
] })
|
|
8513
8531
|
] }),
|
|
8514
|
-
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.4vw", marginBottom: "1.2vw" }, children: [
|
|
8532
|
+
showMatchPercent && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.4vw", marginBottom: "1.2vw" }, children: [
|
|
8515
8533
|
/* @__PURE__ */ jsxs("svg", { width: "1vw", height: "1vw", viewBox: "0 0 16 16", fill: "none", children: [
|
|
8516
8534
|
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "8", fill: "var(--ps-accent)" }),
|
|
8517
8535
|
/* @__PURE__ */ jsx("path", { d: "M4.5 8L7 10.5L11.5 5.5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
@@ -8534,8 +8552,8 @@ function SectionDetailView({
|
|
|
8534
8552
|
const fitBg = row.fit === "good" ? "rgba(33,84,239,0.08)" : row.fit.includes("tight") ? "rgba(220,38,38,0.08)" : "rgba(217,119,6,0.08)";
|
|
8535
8553
|
return /* @__PURE__ */ jsxs("tr", { style: { borderBottom: i < fitRows.length - 1 ? "1px solid rgba(0,0,0,0.04)" : "none" }, children: [
|
|
8536
8554
|
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", fontWeight: 500, color: "var(--ps-text-primary)" }, children: row.area }),
|
|
8537
|
-
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` }),
|
|
8538
|
-
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: dLabel(row.chartLabel) }),
|
|
8555
|
+
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: renderRaw ? row.rawUserValue || "—" : isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` }),
|
|
8556
|
+
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: renderRaw ? row.rawChartRange || "—" : dLabel(row.chartLabel) }),
|
|
8539
8557
|
/* @__PURE__ */ jsx("td", { style: { padding: "0.55vw 0.6vw", textAlign: "right" }, children: /* @__PURE__ */ jsx("span", { style: { fontSize: "0.6vw", fontWeight: 600, color: fitColor, background: fitBg, borderRadius: "1vw", padding: "0.15vw 0.5vw", whiteSpace: "nowrap" }, children: row.isLength ? lengthFitLabelFn(row.fit, t) : fitLabelFn(row.fit, t) }) })
|
|
8540
8558
|
] }, i);
|
|
8541
8559
|
}) })
|
|
@@ -9264,6 +9282,7 @@ function SizeResultView({
|
|
|
9264
9282
|
productImage: resultImageUrl || productImage,
|
|
9265
9283
|
productTitle,
|
|
9266
9284
|
isMobile: true,
|
|
9285
|
+
renderRaw: isAccessory,
|
|
9267
9286
|
isTryOnImage: !!resultImageUrl,
|
|
9268
9287
|
showLines,
|
|
9269
9288
|
onToggleLines: () => setShowLines(!showLines),
|
|
@@ -9307,7 +9326,8 @@ function SizeResultView({
|
|
|
9307
9326
|
onTryOn: resultImageUrl || isAccessory ? void 0 : handleSingleTryOn,
|
|
9308
9327
|
continueLabel: resultImageUrl ? t("Continue Shopping") : void 0,
|
|
9309
9328
|
tryOnProcessing,
|
|
9310
|
-
t
|
|
9329
|
+
t,
|
|
9330
|
+
renderRaw: isAccessory
|
|
9311
9331
|
}
|
|
9312
9332
|
) }, "panel-single")
|
|
9313
9333
|
] });
|
|
@@ -13039,6 +13059,7 @@ function FootSizeView(props) {
|
|
|
13039
13059
|
{
|
|
13040
13060
|
title: "Shoe Size",
|
|
13041
13061
|
fields,
|
|
13062
|
+
disablePhotoUpload: true,
|
|
13042
13063
|
...rest
|
|
13043
13064
|
}
|
|
13044
13065
|
);
|
|
@@ -9583,7 +9583,9 @@ async function detectBodyLandmarks(imageSrc) {
|
|
|
9583
9583
|
rightKnee: { x: lm[RIGHT_KNEE].x, y: lm[RIGHT_KNEE].y },
|
|
9584
9584
|
leftAnkle: { x: lm[LEFT_ANKLE].x, y: lm[LEFT_ANKLE].y },
|
|
9585
9585
|
rightAnkle: { x: lm[RIGHT_ANKLE].x, y: lm[RIGHT_ANKLE].y },
|
|
9586
|
-
nose: { x: lm[NOSE].x, y: lm[NOSE].y }
|
|
9586
|
+
nose: { x: lm[NOSE].x, y: lm[NOSE].y },
|
|
9587
|
+
imageWidth: img.naturalWidth || img.width,
|
|
9588
|
+
imageHeight: img.naturalHeight || img.height
|
|
9587
9589
|
};
|
|
9588
9590
|
} catch (err) {
|
|
9589
9591
|
console.error("[PS-SDK] Body landmark detection failed:", err);
|
|
@@ -17243,6 +17245,7 @@ function SkeletonOverlay({ landmarks, imgWidth, imgHeight }) {
|
|
|
17243
17245
|
SKELETON_CONNECTIONS.map(([a, b], i) => {
|
|
17244
17246
|
const pa2 = landmarks[a];
|
|
17245
17247
|
const pb2 = landmarks[b];
|
|
17248
|
+
if (!pa2 || !pb2 || typeof pa2 !== "object" || typeof pb2 !== "object" || typeof pa2.x !== "number" || typeof pa2.y !== "number" || typeof pb2.x !== "number" || typeof pb2.y !== "number") return null;
|
|
17246
17249
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
17247
17250
|
"line",
|
|
17248
17251
|
{
|
|
@@ -17259,7 +17262,7 @@ function SkeletonOverlay({ landmarks, imgWidth, imgHeight }) {
|
|
|
17259
17262
|
`l-${i}`
|
|
17260
17263
|
);
|
|
17261
17264
|
}),
|
|
17262
|
-
Object.entries(landmarks).map(([key, v2], i) => /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { children: [
|
|
17265
|
+
Object.entries(landmarks).filter(([, v2]) => v2 && typeof v2 === "object" && typeof v2.x === "number" && typeof v2.y === "number").map(([key, v2], i) => /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { children: [
|
|
17263
17266
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
17264
17267
|
"circle",
|
|
17265
17268
|
{
|
|
@@ -17303,6 +17306,7 @@ function MeasurementOverlay({ lines, fitRows, show, imgWidth, imgHeight }) {
|
|
|
17303
17306
|
const strokeW = Math.max(5, 3 * scale);
|
|
17304
17307
|
const dotR = Math.max(7, 5 * scale);
|
|
17305
17308
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "ps-tryon-pose-overlay", viewBox: `0 0 ${W2} ${H2}`, preserveAspectRatio: "xMidYMid meet", children: areas.map(({ key, line, label }, i) => {
|
|
17309
|
+
if (!line || typeof line.x1 !== "number" || typeof line.x2 !== "number" || typeof line.y !== "number") return null;
|
|
17306
17310
|
const x1 = line.x1 * W2;
|
|
17307
17311
|
const x2 = line.x2 * W2;
|
|
17308
17312
|
const cy = line.y * H2;
|
|
@@ -17470,7 +17474,8 @@ function SectionDetailView({
|
|
|
17470
17474
|
tryOnProcessing,
|
|
17471
17475
|
backLabel,
|
|
17472
17476
|
internationalSizes,
|
|
17473
|
-
continueLabel
|
|
17477
|
+
continueLabel,
|
|
17478
|
+
renderRaw = false
|
|
17474
17479
|
}) {
|
|
17475
17480
|
const recSize = sectionResult?.recommendedSize || "";
|
|
17476
17481
|
const [selectedSize, setSelectedSize] = reactExports.useState(null);
|
|
@@ -17588,6 +17593,18 @@ function SectionDetailView({
|
|
|
17588
17593
|
return { range: val, ...parsed };
|
|
17589
17594
|
}, [section, sizeColIdx, sizeHeader, unitLbl, columnUnits]);
|
|
17590
17595
|
const fitRows = reactExports.useMemo(() => {
|
|
17596
|
+
if (renderRaw) {
|
|
17597
|
+
const raw = sectionResult?.matchDetails || [];
|
|
17598
|
+
return raw.map((m2) => ({
|
|
17599
|
+
area: m2.measurement.replace(/\s*\(.*?\)\s*$/, "").trim() || m2.measurement,
|
|
17600
|
+
rawUserValue: m2.userValue,
|
|
17601
|
+
rawChartRange: m2.chartRange,
|
|
17602
|
+
fit: m2.fit,
|
|
17603
|
+
userNum: 0,
|
|
17604
|
+
chartLabel: "",
|
|
17605
|
+
isLength: false
|
|
17606
|
+
}));
|
|
17607
|
+
}
|
|
17591
17608
|
const mainDetails = sectionResult?.matchDetails || [];
|
|
17592
17609
|
const lengthDetails = lengthEntry?.secResult?.matchDetails || [];
|
|
17593
17610
|
const details = [...mainDetails, ...lengthDetails];
|
|
@@ -17657,11 +17674,12 @@ function SectionDetailView({
|
|
|
17657
17674
|
}
|
|
17658
17675
|
return { area: m2.measurement, userNum, chartLabel: cleanNumFn(chartLabel), fit, isLength: false };
|
|
17659
17676
|
});
|
|
17660
|
-
}, [sectionResult, lengthEntry, userMeasurements, displaySize, recSize, chartRangeFor, selectedLength, recLength]);
|
|
17677
|
+
}, [sectionResult, lengthEntry, userMeasurements, displaySize, recSize, chartRangeFor, selectedLength, recLength, renderRaw]);
|
|
17661
17678
|
const goodCount = fitRows.filter(
|
|
17662
17679
|
(r2) => r2.fit === "good" || r2.fit === "a-bit-tight" || r2.fit === "a-bit-loose"
|
|
17663
17680
|
).length;
|
|
17664
17681
|
const matchPercent = fitRows.length > 0 ? Math.round(goodCount / fitRows.length * 100) : 0;
|
|
17682
|
+
const showMatchPercent = !renderRaw;
|
|
17665
17683
|
const secAny = sectionResult;
|
|
17666
17684
|
const backendSize = secAny?.size || recSize;
|
|
17667
17685
|
const backendLength = secAny?.length || recLength;
|
|
@@ -17828,7 +17846,7 @@ function SectionDetailView({
|
|
|
17828
17846
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ps-msd-row-cells", children: [
|
|
17829
17847
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ps-msd-row-cell", children: [
|
|
17830
17848
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-msd-cell-label", children: t2("USER") }),
|
|
17831
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-msd-cell-value", children: isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` })
|
|
17849
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-msd-cell-value", children: renderRaw ? row.rawUserValue || "—" : isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` })
|
|
17832
17850
|
] }),
|
|
17833
17851
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ps-msd-row-cell ps-right", children: [
|
|
17834
17852
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ps-msd-cell-label", children: [
|
|
@@ -17836,7 +17854,7 @@ function SectionDetailView({
|
|
|
17836
17854
|
" ",
|
|
17837
17855
|
displaySize
|
|
17838
17856
|
] }),
|
|
17839
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-msd-cell-value", children: dLabel(row.chartLabel) })
|
|
17857
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-msd-cell-value", children: renderRaw ? row.rawChartRange || "—" : dLabel(row.chartLabel) })
|
|
17840
17858
|
] })
|
|
17841
17859
|
] }),
|
|
17842
17860
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `ps-msd-row-badge ${fitClass}`, children: [
|
|
@@ -17935,7 +17953,7 @@ function SectionDetailView({
|
|
|
17935
17953
|
] })
|
|
17936
17954
|
] })
|
|
17937
17955
|
] }),
|
|
17938
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.4vw", marginBottom: "1.2vw" }, children: [
|
|
17956
|
+
showMatchPercent && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "0.4vw", marginBottom: "1.2vw" }, children: [
|
|
17939
17957
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { width: "1vw", height: "1vw", viewBox: "0 0 16 16", fill: "none", children: [
|
|
17940
17958
|
/* @__PURE__ */ jsxRuntimeExports.jsx("circle", { cx: "8", cy: "8", r: "8", fill: "var(--ps-accent)" }),
|
|
17941
17959
|
/* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M4.5 8L7 10.5L11.5 5.5", stroke: "white", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
@@ -17958,8 +17976,8 @@ function SectionDetailView({
|
|
|
17958
17976
|
const fitBg = row.fit === "good" ? "rgba(33,84,239,0.08)" : row.fit.includes("tight") ? "rgba(220,38,38,0.08)" : "rgba(217,119,6,0.08)";
|
|
17959
17977
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("tr", { style: { borderBottom: i < fitRows.length - 1 ? "1px solid rgba(0,0,0,0.04)" : "none" }, children: [
|
|
17960
17978
|
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", fontWeight: 500, color: "var(--ps-text-primary)" }, children: row.area }),
|
|
17961
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` }),
|
|
17962
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: dLabel(row.chartLabel) }),
|
|
17979
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: renderRaw ? row.rawUserValue || "—" : isNaN(row.userNum) || row.userNum === 0 ? "—" : `${dNum(row.userNum)} ${unitLbl}` }),
|
|
17980
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", fontSize: "0.75vw", color: "var(--ps-text-secondary)" }, children: renderRaw ? row.rawChartRange || "—" : dLabel(row.chartLabel) }),
|
|
17963
17981
|
/* @__PURE__ */ jsxRuntimeExports.jsx("td", { style: { padding: "0.55vw 0.6vw", textAlign: "right" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: "0.6vw", fontWeight: 600, color: fitColor, background: fitBg, borderRadius: "1vw", padding: "0.15vw 0.5vw", whiteSpace: "nowrap" }, children: row.isLength ? lengthFitLabelFn(row.fit, t2) : fitLabelFn(row.fit, t2) }) })
|
|
17964
17982
|
] }, i);
|
|
17965
17983
|
}) })
|
|
@@ -18688,6 +18706,7 @@ function SizeResultView({
|
|
|
18688
18706
|
productImage: resultImageUrl || productImage,
|
|
18689
18707
|
productTitle,
|
|
18690
18708
|
isMobile: true,
|
|
18709
|
+
renderRaw: isAccessory,
|
|
18691
18710
|
isTryOnImage: !!resultImageUrl,
|
|
18692
18711
|
showLines,
|
|
18693
18712
|
onToggleLines: () => setShowLines(!showLines),
|
|
@@ -18731,7 +18750,8 @@ function SizeResultView({
|
|
|
18731
18750
|
onTryOn: resultImageUrl || isAccessory ? void 0 : handleSingleTryOn,
|
|
18732
18751
|
continueLabel: resultImageUrl ? t2("Continue Shopping") : void 0,
|
|
18733
18752
|
tryOnProcessing,
|
|
18734
|
-
t: t2
|
|
18753
|
+
t: t2,
|
|
18754
|
+
renderRaw: isAccessory
|
|
18735
18755
|
}
|
|
18736
18756
|
) }, "panel-single")
|
|
18737
18757
|
] });
|
|
@@ -22463,6 +22483,7 @@ function FootSizeView(props) {
|
|
|
22463
22483
|
{
|
|
22464
22484
|
title: "Shoe Size",
|
|
22465
22485
|
fields,
|
|
22486
|
+
disablePhotoUpload: true,
|
|
22466
22487
|
...rest
|
|
22467
22488
|
}
|
|
22468
22489
|
);
|