@primestyleai/tryon 5.5.8 → 5.5.10
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 +294 -167
- package/dist/react/styles.d.ts +1 -1
- package/dist/react/views/BasicsStepMobile.d.ts +5 -3
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -2939,42 +2939,31 @@ const STYLES = `
|
|
|
2939
2939
|
════════════════════════════════════════════════════════════════ */
|
|
2940
2940
|
.ps-bpm-root {
|
|
2941
2941
|
display: flex; flex-direction: column;
|
|
2942
|
-
gap:
|
|
2943
|
-
|
|
2944
|
-
.ps-bpm-image {
|
|
2945
|
-
width: 100%;
|
|
2946
|
-
height: 180px;
|
|
2947
|
-
border-radius: 12px; overflow: hidden;
|
|
2948
|
-
background: var(--ps-bg-secondary);
|
|
2949
|
-
flex-shrink: 0;
|
|
2950
|
-
display: flex; align-items: center; justify-content: center;
|
|
2951
|
-
}
|
|
2952
|
-
.ps-bpm-image-img {
|
|
2953
|
-
max-width: 100%; max-height: 100%;
|
|
2954
|
-
width: auto; height: 100%;
|
|
2955
|
-
object-fit: contain; display: block;
|
|
2942
|
+
gap: 10px; padding: 8px 4px 0;
|
|
2943
|
+
flex: 1; min-height: 0;
|
|
2956
2944
|
}
|
|
2945
|
+
.ps-bpm-spacer { flex: 1 1 auto; min-height: 8px; }
|
|
2957
2946
|
.ps-bpm-header { text-align: center; margin: 4px 0 0; }
|
|
2958
2947
|
.ps-bpm-title {
|
|
2959
|
-
font-size:
|
|
2960
|
-
margin: 0 0
|
|
2948
|
+
font-size: 18px; font-weight: 700; color: var(--ps-text-primary);
|
|
2949
|
+
margin: 0 0 4px; line-height: 1.3;
|
|
2961
2950
|
}
|
|
2962
2951
|
.ps-bpm-subtitle {
|
|
2963
|
-
font-size:
|
|
2964
|
-
margin: 0 auto; max-width:
|
|
2952
|
+
font-size: 12px; color: var(--ps-text-muted);
|
|
2953
|
+
margin: 0 auto; max-width: 260px; line-height: 1.45; font-weight: 400;
|
|
2965
2954
|
}
|
|
2966
2955
|
|
|
2967
2956
|
/* Metric / Imperial pill toggle */
|
|
2968
2957
|
.ps-bpm-toggle {
|
|
2969
|
-
display: flex; justify-content: center; gap:
|
|
2970
|
-
margin:
|
|
2958
|
+
display: flex; justify-content: center; gap: 24px;
|
|
2959
|
+
margin: 2px 0 4px;
|
|
2971
2960
|
}
|
|
2972
2961
|
.ps-bpm-toggle-btn {
|
|
2973
|
-
background: none; border: none; padding:
|
|
2974
|
-
font-family: inherit; font-size:
|
|
2975
|
-
letter-spacing: 0.
|
|
2962
|
+
background: none; border: none; padding: 6px 4px;
|
|
2963
|
+
font-family: inherit; font-size: 12px; font-weight: 600;
|
|
2964
|
+
letter-spacing: 0.06em;
|
|
2976
2965
|
color: var(--ps-text-muted); cursor: pointer;
|
|
2977
|
-
border-bottom:
|
|
2966
|
+
border-bottom: 1.5px solid transparent;
|
|
2978
2967
|
transition: all 0.2s;
|
|
2979
2968
|
}
|
|
2980
2969
|
.ps-bpm-toggle-btn.ps-active {
|
|
@@ -2982,38 +2971,66 @@ const STYLES = `
|
|
|
2982
2971
|
border-bottom-color: var(--ps-accent);
|
|
2983
2972
|
}
|
|
2984
2973
|
|
|
2985
|
-
/* Field rows */
|
|
2974
|
+
/* Field rows — minimal, compact, with thin slider underneath */
|
|
2986
2975
|
.ps-bpm-fields {
|
|
2987
2976
|
display: flex; flex-direction: column;
|
|
2988
|
-
margin-top:
|
|
2977
|
+
margin-top: 4px;
|
|
2989
2978
|
}
|
|
2990
2979
|
.ps-bpm-row {
|
|
2991
|
-
display: flex;
|
|
2992
|
-
padding:
|
|
2993
|
-
gap:
|
|
2980
|
+
display: flex; flex-direction: column;
|
|
2981
|
+
padding: 12px 4px 14px;
|
|
2982
|
+
gap: 8px;
|
|
2994
2983
|
border-bottom: 1px solid var(--ps-border-subtle);
|
|
2995
2984
|
}
|
|
2996
2985
|
.ps-bpm-row:last-child { border-bottom: none; }
|
|
2986
|
+
.ps-bpm-row-top {
|
|
2987
|
+
display: flex; align-items: baseline; gap: 14px;
|
|
2988
|
+
}
|
|
2997
2989
|
.ps-bpm-label {
|
|
2998
|
-
flex: 0 0
|
|
2999
|
-
font-size:
|
|
2990
|
+
flex: 0 0 64px;
|
|
2991
|
+
font-size: 10px; font-weight: 700;
|
|
3000
2992
|
letter-spacing: 0.1em; text-transform: uppercase;
|
|
3001
2993
|
color: var(--ps-text-muted);
|
|
3002
2994
|
}
|
|
3003
2995
|
.ps-bpm-value-group {
|
|
3004
|
-
flex: 1; display: flex; align-items: baseline; gap:
|
|
2996
|
+
flex: 1; display: flex; align-items: baseline; gap: 4px;
|
|
3005
2997
|
justify-content: flex-start;
|
|
3006
2998
|
}
|
|
2999
|
+
|
|
3000
|
+
/* Minimal slider — 2px track, 12px accent thumb, no shadows */
|
|
3001
|
+
.ps-bpm-slider {
|
|
3002
|
+
-webkit-appearance: none; appearance: none;
|
|
3003
|
+
width: 100%; height: 2px; outline: none;
|
|
3004
|
+
background: linear-gradient(
|
|
3005
|
+
to right,
|
|
3006
|
+
var(--ps-accent) 0%,
|
|
3007
|
+
var(--ps-accent) var(--ps-pct, 0%),
|
|
3008
|
+
var(--ps-border-color) var(--ps-pct, 0%),
|
|
3009
|
+
var(--ps-border-color) 100%
|
|
3010
|
+
);
|
|
3011
|
+
border-radius: 2px; cursor: pointer;
|
|
3012
|
+
margin: 0 0 0 80px; /* indent under the value, past the label */
|
|
3013
|
+
}
|
|
3014
|
+
.ps-bpm-slider::-webkit-slider-thumb {
|
|
3015
|
+
-webkit-appearance: none; appearance: none;
|
|
3016
|
+
width: 12px; height: 12px; border-radius: 50%;
|
|
3017
|
+
background: var(--ps-accent); border: none;
|
|
3018
|
+
cursor: grab; transition: transform 0.15s ease;
|
|
3019
|
+
}
|
|
3020
|
+
.ps-bpm-slider::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.2); }
|
|
3021
|
+
.ps-bpm-slider::-moz-range-thumb {
|
|
3022
|
+
width: 12px; height: 12px; border-radius: 50%;
|
|
3023
|
+
background: var(--ps-accent); border: none; cursor: grab;
|
|
3024
|
+
}
|
|
3025
|
+
.ps-bpm-slider::-moz-range-track { background: transparent; height: 2px; }
|
|
3007
3026
|
.ps-bpm-input {
|
|
3008
3027
|
background: transparent; border: none; outline: none;
|
|
3009
3028
|
font-family: inherit;
|
|
3010
|
-
font-size:
|
|
3029
|
+
font-size: 20px; font-weight: 600;
|
|
3011
3030
|
color: var(--ps-text-primary);
|
|
3012
3031
|
padding: 0; margin: 0;
|
|
3013
3032
|
width: auto; min-width: 0;
|
|
3014
|
-
/* Width grows with content via field-sizing where supported */
|
|
3015
3033
|
field-sizing: content;
|
|
3016
|
-
/* Fallback width for browsers without field-sizing */
|
|
3017
3034
|
max-width: 4ch;
|
|
3018
3035
|
}
|
|
3019
3036
|
.ps-bpm-input::-webkit-outer-spin-button,
|
|
@@ -3022,71 +3039,87 @@ const STYLES = `
|
|
|
3022
3039
|
.ps-bpm-input::placeholder { color: var(--ps-border-color); }
|
|
3023
3040
|
.ps-bpm-input:focus { outline: none; }
|
|
3024
3041
|
.ps-bpm-unit {
|
|
3025
|
-
font-size:
|
|
3042
|
+
font-size: 11px; font-weight: 500;
|
|
3026
3043
|
color: var(--ps-text-muted);
|
|
3027
|
-
margin-left:
|
|
3044
|
+
margin-left: 1px; flex-shrink: 0;
|
|
3028
3045
|
}
|
|
3029
3046
|
|
|
3030
|
-
/* RECOMMENDED upload card */
|
|
3047
|
+
/* RECOMMENDED upload card — compact */
|
|
3031
3048
|
.ps-bpm-photo-card {
|
|
3032
|
-
display: flex; align-items: center; gap:
|
|
3049
|
+
display: flex; align-items: center; gap: 12px;
|
|
3033
3050
|
background: #1C1D1E; color: #FFFFFF;
|
|
3034
|
-
border: none; border-radius:
|
|
3035
|
-
padding: 14px
|
|
3051
|
+
border: none; border-radius: 10px;
|
|
3052
|
+
padding: 10px 14px; margin-top: 6px;
|
|
3036
3053
|
cursor: pointer; font-family: inherit;
|
|
3037
3054
|
text-align: left; width: 100%;
|
|
3038
|
-
transition: transform 0.15s ease
|
|
3039
|
-
position: relative;
|
|
3055
|
+
transition: transform 0.15s ease;
|
|
3040
3056
|
}
|
|
3041
3057
|
.ps-bpm-photo-card:active { transform: scale(0.98); }
|
|
3042
3058
|
.ps-bpm-photo-card-icon {
|
|
3043
3059
|
flex-shrink: 0;
|
|
3044
|
-
width:
|
|
3060
|
+
width: 32px; height: 32px; border-radius: 7px;
|
|
3045
3061
|
background: rgba(255,255,255,0.08);
|
|
3046
3062
|
display: flex; align-items: center; justify-content: center;
|
|
3047
3063
|
color: #FFFFFF;
|
|
3048
3064
|
}
|
|
3065
|
+
.ps-bpm-photo-card-icon svg { width: 16px; height: 16px; }
|
|
3049
3066
|
.ps-bpm-photo-card-content {
|
|
3050
|
-
flex: 1; display: flex; flex-direction: column; gap:
|
|
3067
|
+
flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0;
|
|
3051
3068
|
}
|
|
3052
3069
|
.ps-bpm-photo-card-badge {
|
|
3053
3070
|
font-size: 9px; font-weight: 700; letter-spacing: 0.12em;
|
|
3054
3071
|
color: rgba(255,255,255,0.55);
|
|
3055
3072
|
}
|
|
3056
3073
|
.ps-bpm-photo-card-text {
|
|
3057
|
-
font-size:
|
|
3074
|
+
font-size: 13px; font-weight: 500; color: #FFFFFF;
|
|
3058
3075
|
}
|
|
3059
3076
|
.ps-bpm-photo-card-arrow {
|
|
3060
3077
|
flex-shrink: 0; color: rgba(255,255,255,0.6);
|
|
3061
3078
|
display: flex; align-items: center;
|
|
3062
3079
|
}
|
|
3080
|
+
.ps-bpm-photo-card-arrow svg { width: 16px; height: 16px; }
|
|
3063
3081
|
|
|
3064
3082
|
/* Helper hint */
|
|
3065
3083
|
.ps-bpm-hint {
|
|
3066
|
-
font-size:
|
|
3067
|
-
text-align: center; margin:
|
|
3084
|
+
font-size: 10px; color: var(--ps-text-muted);
|
|
3085
|
+
text-align: center; margin: 2px 8px 0; line-height: 1.5;
|
|
3068
3086
|
font-style: italic;
|
|
3069
3087
|
}
|
|
3070
3088
|
.ps-bpm-error {
|
|
3071
|
-
font-size:
|
|
3089
|
+
font-size: 11px; color: var(--ps-error-color);
|
|
3072
3090
|
text-align: center; margin: 4px 0 0;
|
|
3073
3091
|
}
|
|
3074
3092
|
|
|
3075
|
-
/* Bottom
|
|
3076
|
-
the modal body
|
|
3077
|
-
|
|
3078
|
-
|
|
3093
|
+
/* Bottom action area — Next button + tab bar grouped together,
|
|
3094
|
+
pushed to the bottom of the modal body by .ps-bpm-spacer above. */
|
|
3095
|
+
.ps-bpm-bottom {
|
|
3096
|
+
display: flex; flex-direction: column;
|
|
3097
|
+
margin: 0 -16px;
|
|
3098
|
+
border-top: 1px solid var(--ps-border-subtle);
|
|
3099
|
+
background: var(--ps-bg-primary);
|
|
3100
|
+
flex-shrink: 0;
|
|
3101
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
3102
|
+
}
|
|
3103
|
+
.ps-bpm-next-btn {
|
|
3104
|
+
margin: 14px 16px 12px;
|
|
3105
|
+
padding: 14px 18px;
|
|
3106
|
+
background: var(--ps-accent); color: #FFFFFF;
|
|
3107
|
+
border: none; border-radius: 10px;
|
|
3108
|
+
font-family: inherit; font-size: 14px; font-weight: 700;
|
|
3109
|
+
cursor: pointer; transition: opacity 0.15s, transform 0.15s;
|
|
3110
|
+
letter-spacing: 0.02em;
|
|
3111
|
+
}
|
|
3112
|
+
.ps-bpm-next-btn:active { transform: scale(0.98); }
|
|
3113
|
+
.ps-bpm-next-btn:disabled { opacity: 0.4; cursor: not-allowed; }
|
|
3079
3114
|
.ps-bpm-bottom-tabs {
|
|
3080
3115
|
display: flex; align-items: stretch;
|
|
3081
|
-
margin: 14px -16px 0;
|
|
3082
3116
|
border-top: 1px solid var(--ps-border-subtle);
|
|
3083
3117
|
background: var(--ps-bg-primary);
|
|
3084
|
-
position: sticky; bottom: 0;
|
|
3085
3118
|
}
|
|
3086
3119
|
.ps-bpm-bottom-tab {
|
|
3087
3120
|
flex: 1; background: none; border: none;
|
|
3088
|
-
padding:
|
|
3089
|
-
font-family: inherit; font-size:
|
|
3121
|
+
padding: 14px 8px 12px;
|
|
3122
|
+
font-family: inherit; font-size: 10px; font-weight: 700;
|
|
3090
3123
|
letter-spacing: 0.12em; text-transform: uppercase;
|
|
3091
3124
|
color: var(--ps-text-muted); cursor: pointer;
|
|
3092
3125
|
border-bottom: 2px solid transparent;
|
|
@@ -3097,7 +3130,7 @@ const STYLES = `
|
|
|
3097
3130
|
color: var(--ps-accent);
|
|
3098
3131
|
border-bottom-color: var(--ps-accent);
|
|
3099
3132
|
}
|
|
3100
|
-
.ps-bpm-bottom-tab svg { width:
|
|
3133
|
+
.ps-bpm-bottom-tab svg { width: 13px; height: 13px; flex-shrink: 0; }
|
|
3101
3134
|
|
|
3102
3135
|
.ps-bp-optional { font-weight: 400; color: var(--ps-text-muted); }
|
|
3103
3136
|
|
|
@@ -3372,10 +3405,21 @@ const STYLES = `
|
|
|
3372
3405
|
@media (max-width: 768px) {
|
|
3373
3406
|
.ps-bp-layout { flex-direction: column; height: auto; gap: 0; overflow: visible; }
|
|
3374
3407
|
/* Desktop layout's product image — hidden on mobile because BasicsStepMobile
|
|
3375
|
-
|
|
3408
|
+
has its own minimal layout. The other steps (chest/midsection/hips) don't
|
|
3376
3409
|
need the giant left-column image on a phone either. */
|
|
3377
3410
|
.ps-bp-image { display: none !important; }
|
|
3378
|
-
.ps-bp-wrapper { overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
|
3411
|
+
.ps-bp-wrapper { overflow-y: auto; -webkit-overflow-scrolling: touch; flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
3412
|
+
.ps-bp-layout { flex: 1; min-height: 0; }
|
|
3413
|
+
/* Override desktop justify-content:center so BasicsStepMobile can
|
|
3414
|
+
stretch to the bottom of the modal — its bottom action bar (Next +
|
|
3415
|
+
tabs) needs to land at the bottom edge, not floating in the middle. */
|
|
3416
|
+
.ps-bp-root {
|
|
3417
|
+
justify-content: stretch !important;
|
|
3418
|
+
height: auto !important;
|
|
3419
|
+
max-height: none !important;
|
|
3420
|
+
overflow: visible !important;
|
|
3421
|
+
flex: 1 !important;
|
|
3422
|
+
}
|
|
3379
3423
|
.ps-bp-upload-placeholder svg { width: 32px; height: 32px; }
|
|
3380
3424
|
.ps-bp-upload-text { font-size: 14px; }
|
|
3381
3425
|
.ps-bp-upload-hint { font-size: 11px; }
|
|
@@ -5394,8 +5438,6 @@ function ScanIconSmall() {
|
|
|
5394
5438
|
] });
|
|
5395
5439
|
}
|
|
5396
5440
|
function BasicsStepMobile({
|
|
5397
|
-
productImage,
|
|
5398
|
-
productTitle,
|
|
5399
5441
|
hUnit,
|
|
5400
5442
|
wUnit,
|
|
5401
5443
|
isImperialMode,
|
|
@@ -5413,11 +5455,22 @@ function BasicsStepMobile({
|
|
|
5413
5455
|
switchToImperial,
|
|
5414
5456
|
onUploadPhoto,
|
|
5415
5457
|
onSwitchToScan,
|
|
5458
|
+
onNext,
|
|
5459
|
+
canProceed,
|
|
5416
5460
|
error,
|
|
5417
5461
|
t
|
|
5418
5462
|
}) {
|
|
5463
|
+
const heightCm = parseFloat(height) || 173;
|
|
5464
|
+
const heightInTotal = (parseFloat(heightFeet) || 5) * 12 + (parseFloat(heightInches) || 8);
|
|
5465
|
+
const weightNum = parseFloat(weight) || (wUnit === "kg" ? 70 : 154);
|
|
5466
|
+
const ageNum = parseFloat(age) || 30;
|
|
5467
|
+
const wMax = wUnit === "kg" ? 200 : 440;
|
|
5468
|
+
const wMinFix = wUnit === "kg" ? 30 : 66;
|
|
5469
|
+
const pctHCm = (heightCm - 120) / (220 - 120) * 100;
|
|
5470
|
+
const pctHIn = (heightInTotal - 48) / (84 - 48) * 100;
|
|
5471
|
+
const pctW = (weightNum - wMinFix) / (wMax - wMinFix) * 100;
|
|
5472
|
+
const pctA = (ageNum - 13) / (100 - 13) * 100;
|
|
5419
5473
|
return /* @__PURE__ */ jsxs("div", { className: "ps-bpm-root", children: [
|
|
5420
|
-
productImage && /* @__PURE__ */ jsx("div", { className: "ps-bpm-image", children: /* @__PURE__ */ jsx("img", { src: productImage, alt: productTitle, className: "ps-bpm-image-img" }) }),
|
|
5421
5474
|
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-header", children: [
|
|
5422
5475
|
/* @__PURE__ */ jsx("h2", { className: "ps-bpm-title", children: t("Let's find your best fit") }),
|
|
5423
5476
|
/* @__PURE__ */ jsx("p", { className: "ps-bpm-subtitle", children: t("Enter your details for a bespoke size recommendation") })
|
|
@@ -5444,90 +5497,151 @@ function BasicsStepMobile({
|
|
|
5444
5497
|
] }),
|
|
5445
5498
|
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-fields", children: [
|
|
5446
5499
|
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row", children: [
|
|
5447
|
-
/* @__PURE__ */
|
|
5448
|
-
|
|
5449
|
-
/* @__PURE__ */
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
|
|
5466
|
-
|
|
5467
|
-
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
/* @__PURE__ */
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5500
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row-top", children: [
|
|
5501
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-label", children: t("HEIGHT") }),
|
|
5502
|
+
hUnit === "in" ? /* @__PURE__ */ jsxs("div", { className: "ps-bpm-value-group", children: [
|
|
5503
|
+
/* @__PURE__ */ jsx(
|
|
5504
|
+
"input",
|
|
5505
|
+
{
|
|
5506
|
+
type: "number",
|
|
5507
|
+
inputMode: "numeric",
|
|
5508
|
+
className: "ps-bpm-input",
|
|
5509
|
+
value: heightFeet,
|
|
5510
|
+
onChange: (e) => setHeightFeet(e.target.value),
|
|
5511
|
+
min: 3,
|
|
5512
|
+
max: 8,
|
|
5513
|
+
placeholder: "5"
|
|
5514
|
+
}
|
|
5515
|
+
),
|
|
5516
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-unit", children: "ft" }),
|
|
5517
|
+
/* @__PURE__ */ jsx(
|
|
5518
|
+
"input",
|
|
5519
|
+
{
|
|
5520
|
+
type: "number",
|
|
5521
|
+
inputMode: "numeric",
|
|
5522
|
+
className: "ps-bpm-input",
|
|
5523
|
+
value: heightInches,
|
|
5524
|
+
onChange: (e) => setHeightInches(e.target.value),
|
|
5525
|
+
min: 0,
|
|
5526
|
+
max: 11,
|
|
5527
|
+
placeholder: "8"
|
|
5528
|
+
}
|
|
5529
|
+
),
|
|
5530
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-unit", children: "in" })
|
|
5531
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "ps-bpm-value-group", children: [
|
|
5532
|
+
/* @__PURE__ */ jsx(
|
|
5533
|
+
"input",
|
|
5534
|
+
{
|
|
5535
|
+
type: "number",
|
|
5536
|
+
inputMode: "numeric",
|
|
5537
|
+
className: "ps-bpm-input",
|
|
5538
|
+
value: height,
|
|
5539
|
+
onChange: (e) => setHeight(e.target.value),
|
|
5540
|
+
min: 100,
|
|
5541
|
+
max: 250,
|
|
5542
|
+
placeholder: "173"
|
|
5543
|
+
}
|
|
5544
|
+
),
|
|
5545
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-unit", children: "cm" })
|
|
5546
|
+
] })
|
|
5547
|
+
] }),
|
|
5548
|
+
hUnit === "in" ? /* @__PURE__ */ jsx(
|
|
5549
|
+
"input",
|
|
5550
|
+
{
|
|
5551
|
+
type: "range",
|
|
5552
|
+
className: "ps-bpm-slider",
|
|
5553
|
+
min: 48,
|
|
5554
|
+
max: 84,
|
|
5555
|
+
step: 1,
|
|
5556
|
+
value: heightInTotal,
|
|
5557
|
+
onChange: (e) => {
|
|
5558
|
+
const v = parseInt(e.target.value, 10);
|
|
5559
|
+
setHeightFeet(String(Math.floor(v / 12)));
|
|
5560
|
+
setHeightInches(String(v % 12));
|
|
5561
|
+
},
|
|
5562
|
+
style: { ["--ps-pct"]: `${pctHIn}%` }
|
|
5563
|
+
}
|
|
5564
|
+
) : /* @__PURE__ */ jsx(
|
|
5565
|
+
"input",
|
|
5566
|
+
{
|
|
5567
|
+
type: "range",
|
|
5568
|
+
className: "ps-bpm-slider",
|
|
5569
|
+
min: 120,
|
|
5570
|
+
max: 220,
|
|
5571
|
+
step: 1,
|
|
5572
|
+
value: heightCm,
|
|
5573
|
+
onChange: (e) => setHeight(e.target.value),
|
|
5574
|
+
style: { ["--ps-pct"]: `${pctHCm}%` }
|
|
5575
|
+
}
|
|
5576
|
+
)
|
|
5493
5577
|
] }),
|
|
5494
5578
|
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row", children: [
|
|
5495
|
-
/* @__PURE__ */
|
|
5496
|
-
|
|
5497
|
-
/* @__PURE__ */
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5579
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row-top", children: [
|
|
5580
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-label", children: t("WEIGHT") }),
|
|
5581
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-value-group", children: [
|
|
5582
|
+
/* @__PURE__ */ jsx(
|
|
5583
|
+
"input",
|
|
5584
|
+
{
|
|
5585
|
+
type: "number",
|
|
5586
|
+
inputMode: "numeric",
|
|
5587
|
+
className: "ps-bpm-input",
|
|
5588
|
+
value: weight,
|
|
5589
|
+
onChange: (e) => setWeight(e.target.value),
|
|
5590
|
+
min: wUnit === "kg" ? 30 : 66,
|
|
5591
|
+
max: wUnit === "kg" ? 300 : 660,
|
|
5592
|
+
placeholder: wUnit === "kg" ? "70" : "154"
|
|
5593
|
+
}
|
|
5594
|
+
),
|
|
5595
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-unit", children: wUnit })
|
|
5596
|
+
] })
|
|
5597
|
+
] }),
|
|
5598
|
+
/* @__PURE__ */ jsx(
|
|
5599
|
+
"input",
|
|
5600
|
+
{
|
|
5601
|
+
type: "range",
|
|
5602
|
+
className: "ps-bpm-slider",
|
|
5603
|
+
min: wMinFix,
|
|
5604
|
+
max: wMax,
|
|
5605
|
+
step: 1,
|
|
5606
|
+
value: weightNum,
|
|
5607
|
+
onChange: (e) => setWeight(e.target.value),
|
|
5608
|
+
style: { ["--ps-pct"]: `${pctW}%` }
|
|
5609
|
+
}
|
|
5610
|
+
)
|
|
5512
5611
|
] }),
|
|
5513
5612
|
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row", children: [
|
|
5514
|
-
/* @__PURE__ */
|
|
5515
|
-
|
|
5516
|
-
/* @__PURE__ */
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5613
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-row-top", children: [
|
|
5614
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-label", children: t("AGE") }),
|
|
5615
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-value-group", children: [
|
|
5616
|
+
/* @__PURE__ */ jsx(
|
|
5617
|
+
"input",
|
|
5618
|
+
{
|
|
5619
|
+
type: "number",
|
|
5620
|
+
inputMode: "numeric",
|
|
5621
|
+
className: "ps-bpm-input",
|
|
5622
|
+
value: age,
|
|
5623
|
+
onChange: (e) => setAge(e.target.value),
|
|
5624
|
+
min: 13,
|
|
5625
|
+
max: 100,
|
|
5626
|
+
placeholder: "30"
|
|
5627
|
+
}
|
|
5628
|
+
),
|
|
5629
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bpm-unit", children: t("years") })
|
|
5630
|
+
] })
|
|
5631
|
+
] }),
|
|
5632
|
+
/* @__PURE__ */ jsx(
|
|
5633
|
+
"input",
|
|
5634
|
+
{
|
|
5635
|
+
type: "range",
|
|
5636
|
+
className: "ps-bpm-slider",
|
|
5637
|
+
min: 13,
|
|
5638
|
+
max: 100,
|
|
5639
|
+
step: 1,
|
|
5640
|
+
value: ageNum,
|
|
5641
|
+
onChange: (e) => setAge(e.target.value),
|
|
5642
|
+
style: { ["--ps-pct"]: `${pctA}%` }
|
|
5643
|
+
}
|
|
5644
|
+
)
|
|
5531
5645
|
] })
|
|
5532
5646
|
] }),
|
|
5533
5647
|
/* @__PURE__ */ jsxs(
|
|
@@ -5548,32 +5662,45 @@ function BasicsStepMobile({
|
|
|
5548
5662
|
),
|
|
5549
5663
|
/* @__PURE__ */ jsx("p", { className: "ps-bpm-hint", children: t("Enter accurate height for better fit recommendations") }),
|
|
5550
5664
|
error && /* @__PURE__ */ jsx("p", { className: "ps-bpm-error", children: error }),
|
|
5551
|
-
/* @__PURE__ */
|
|
5552
|
-
|
|
5665
|
+
/* @__PURE__ */ jsx("div", { className: "ps-bpm-spacer" }),
|
|
5666
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-bottom", children: [
|
|
5667
|
+
/* @__PURE__ */ jsx(
|
|
5553
5668
|
"button",
|
|
5554
5669
|
{
|
|
5555
5670
|
type: "button",
|
|
5556
|
-
className: "ps-bpm-
|
|
5557
|
-
onClick:
|
|
5558
|
-
|
|
5559
|
-
children:
|
|
5560
|
-
/* @__PURE__ */ jsx(RulerIconSmall, {}),
|
|
5561
|
-
t("MANUAL FIT")
|
|
5562
|
-
]
|
|
5671
|
+
className: "ps-bpm-next-btn",
|
|
5672
|
+
onClick: onNext,
|
|
5673
|
+
disabled: !canProceed,
|
|
5674
|
+
children: t("Next")
|
|
5563
5675
|
}
|
|
5564
5676
|
),
|
|
5565
|
-
/* @__PURE__ */ jsxs(
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5677
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-bpm-bottom-tabs", children: [
|
|
5678
|
+
/* @__PURE__ */ jsxs(
|
|
5679
|
+
"button",
|
|
5680
|
+
{
|
|
5681
|
+
type: "button",
|
|
5682
|
+
className: "ps-bpm-bottom-tab ps-active",
|
|
5683
|
+
onClick: () => {
|
|
5684
|
+
},
|
|
5685
|
+
children: [
|
|
5686
|
+
/* @__PURE__ */ jsx(RulerIconSmall, {}),
|
|
5687
|
+
t("MANUAL FIT")
|
|
5688
|
+
]
|
|
5689
|
+
}
|
|
5690
|
+
),
|
|
5691
|
+
/* @__PURE__ */ jsxs(
|
|
5692
|
+
"button",
|
|
5693
|
+
{
|
|
5694
|
+
type: "button",
|
|
5695
|
+
className: "ps-bpm-bottom-tab",
|
|
5696
|
+
onClick: onSwitchToScan,
|
|
5697
|
+
children: [
|
|
5698
|
+
/* @__PURE__ */ jsx(ScanIconSmall, {}),
|
|
5699
|
+
t("AI SCAN")
|
|
5700
|
+
]
|
|
5701
|
+
}
|
|
5702
|
+
)
|
|
5703
|
+
] })
|
|
5577
5704
|
] })
|
|
5578
5705
|
] });
|
|
5579
5706
|
}
|
|
@@ -6085,8 +6212,6 @@ function BodyProfileView({
|
|
|
6085
6212
|
return /* @__PURE__ */ jsx(
|
|
6086
6213
|
BasicsStepMobile,
|
|
6087
6214
|
{
|
|
6088
|
-
productImage,
|
|
6089
|
-
productTitle,
|
|
6090
6215
|
hUnit,
|
|
6091
6216
|
wUnit,
|
|
6092
6217
|
isImperialMode,
|
|
@@ -6104,6 +6229,8 @@ function BodyProfileView({
|
|
|
6104
6229
|
switchToImperial,
|
|
6105
6230
|
onUploadPhoto: () => setStep("photo"),
|
|
6106
6231
|
onSwitchToScan: () => setStep("photo"),
|
|
6232
|
+
onNext: handleNext,
|
|
6233
|
+
canProceed: true,
|
|
6107
6234
|
error,
|
|
6108
6235
|
t
|
|
6109
6236
|
},
|
|
@@ -6281,7 +6408,7 @@ function BodyProfileView({
|
|
|
6281
6408
|
})(),
|
|
6282
6409
|
error && /* @__PURE__ */ jsx("p", { className: "ps-bp-error", children: error })
|
|
6283
6410
|
] }, "step-bra"),
|
|
6284
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-bp-nav", children: [
|
|
6411
|
+
!(isMobile && step === "basics") && /* @__PURE__ */ jsxs("div", { className: "ps-bp-nav", children: [
|
|
6285
6412
|
step !== "basics" ? /* @__PURE__ */ jsxs("button", { className: "ps-bp-back-btn", onClick: handleBackStep, type: "button", children: [
|
|
6286
6413
|
/* @__PURE__ */ jsx("span", { className: "ps-bp-back-arrow", children: "←" }),
|
|
6287
6414
|
" ",
|