@primestyleai/tryon 5.8.31 → 5.8.33
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
CHANGED
|
@@ -4974,44 +4974,179 @@ const STYLES = `
|
|
|
4974
4974
|
color: var(--ps-text-muted);
|
|
4975
4975
|
}
|
|
4976
4976
|
|
|
4977
|
-
/* ── Image path —
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4977
|
+
/* ── Image path — split layout with dropzone + photo guide ──
|
|
4978
|
+
Two columns: dropzone with silhouette placeholder on the LEFT,
|
|
4979
|
+
gender pills + name input + photo-guide checklist on the RIGHT.
|
|
4980
|
+
Collapses to single column on narrow viewports via flex-wrap. */
|
|
4981
|
+
.ps-cpw-image-split {
|
|
4982
|
+
display: grid;
|
|
4983
|
+
grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
|
|
4984
|
+
gap: clamp(14px, 1.2vw, 26px);
|
|
4981
4985
|
flex: 1; min-height: 0;
|
|
4982
4986
|
width: 100%; box-sizing: border-box;
|
|
4983
4987
|
}
|
|
4984
|
-
.ps-cpw-
|
|
4985
|
-
display: flex; flex-direction: column;
|
|
4986
|
-
|
|
4988
|
+
.ps-cpw-image-left {
|
|
4989
|
+
display: flex; flex-direction: column;
|
|
4990
|
+
min-width: 0; min-height: 0;
|
|
4991
|
+
}
|
|
4992
|
+
.ps-cpw-image-right {
|
|
4993
|
+
display: flex; flex-direction: column;
|
|
4994
|
+
gap: clamp(10px, 0.9vw, 18px);
|
|
4995
|
+
min-width: 0; min-height: 0;
|
|
4996
|
+
}
|
|
4997
|
+
|
|
4998
|
+
/* Dropzone — premium card with a faded body silhouette behind the
|
|
4999
|
+
upload prompt. Communicates "this is where the body photo goes". */
|
|
5000
|
+
.ps-cpw-dropzone {
|
|
5001
|
+
position: relative;
|
|
5002
|
+
display: flex; align-items: center; justify-content: center;
|
|
4987
5003
|
flex: 1; min-height: 0;
|
|
4988
5004
|
width: 100%; box-sizing: border-box;
|
|
4989
|
-
padding: clamp(
|
|
4990
|
-
border:
|
|
4991
|
-
border-radius: clamp(
|
|
4992
|
-
background:
|
|
5005
|
+
padding: clamp(14px, 1.2vw, 26px);
|
|
5006
|
+
border: 1.5px dashed var(--ps-border-color);
|
|
5007
|
+
border-radius: clamp(10px, 0.75vw, 16px);
|
|
5008
|
+
background:
|
|
5009
|
+
radial-gradient(ellipse at 50% 60%, rgba(33, 84, 239, 0.05) 0%, transparent 70%),
|
|
5010
|
+
var(--ps-bg-secondary);
|
|
4993
5011
|
color: var(--ps-text-muted);
|
|
4994
5012
|
cursor: pointer; font-family: inherit;
|
|
4995
|
-
|
|
5013
|
+
overflow: hidden;
|
|
5014
|
+
transition: border-color 0.22s, background 0.22s, transform 0.22s;
|
|
5015
|
+
}
|
|
5016
|
+
.ps-cpw-dropzone:hover {
|
|
5017
|
+
border-color: var(--ps-accent);
|
|
5018
|
+
transform: translateY(-1px);
|
|
5019
|
+
}
|
|
5020
|
+
.ps-cpw-dropzone:disabled { opacity: 0.6; cursor: default; transform: none; }
|
|
5021
|
+
/* Faded body silhouette behind the upload prompt */
|
|
5022
|
+
.ps-cpw-dropzone-silhouette {
|
|
5023
|
+
position: absolute;
|
|
5024
|
+
left: 50%; top: 50%;
|
|
5025
|
+
transform: translate(-50%, -50%);
|
|
5026
|
+
width: clamp(60px, 7vw, 130px);
|
|
5027
|
+
height: auto;
|
|
5028
|
+
color: var(--ps-accent);
|
|
5029
|
+
opacity: 0.08;
|
|
5030
|
+
pointer-events: none;
|
|
5031
|
+
}
|
|
5032
|
+
.ps-cpw-dropzone-content {
|
|
5033
|
+
position: relative;
|
|
5034
|
+
z-index: 1;
|
|
5035
|
+
display: flex; flex-direction: column; align-items: center;
|
|
5036
|
+
gap: clamp(4px, 0.4vw, 10px);
|
|
5037
|
+
}
|
|
5038
|
+
.ps-cpw-dropzone-upload-icon {
|
|
5039
|
+
width: clamp(28px, 2vw, 40px);
|
|
5040
|
+
height: clamp(28px, 2vw, 40px);
|
|
5041
|
+
color: var(--ps-accent);
|
|
5042
|
+
margin-bottom: clamp(2px, 0.2vw, 6px);
|
|
4996
5043
|
}
|
|
4997
|
-
.ps-cpw-
|
|
4998
|
-
.ps-cpw-photo-dropzone:disabled { opacity: 0.6; cursor: default; }
|
|
4999
|
-
.ps-cpw-photo-dropzone-title {
|
|
5044
|
+
.ps-cpw-dropzone-title {
|
|
5000
5045
|
font-size: clamp(11px, 0.78vw, 14px);
|
|
5001
|
-
font-weight: 600;
|
|
5046
|
+
font-weight: 600;
|
|
5047
|
+
color: var(--ps-text-primary);
|
|
5048
|
+
text-align: center;
|
|
5002
5049
|
}
|
|
5003
|
-
.ps-cpw-
|
|
5050
|
+
.ps-cpw-dropzone-hint {
|
|
5004
5051
|
font-size: clamp(9px, 0.62vw, 12px);
|
|
5005
5052
|
color: var(--ps-text-muted);
|
|
5053
|
+
letter-spacing: 0.04em;
|
|
5006
5054
|
}
|
|
5007
|
-
|
|
5055
|
+
|
|
5056
|
+
/* Photo preview frame (after upload) */
|
|
5057
|
+
.ps-cpw-photo-preview-frame {
|
|
5008
5058
|
position: relative;
|
|
5009
5059
|
flex: 1; min-height: 0;
|
|
5010
5060
|
width: 100%;
|
|
5011
5061
|
background: var(--ps-bg-secondary);
|
|
5012
|
-
border-radius: clamp(
|
|
5062
|
+
border-radius: clamp(10px, 0.75vw, 16px);
|
|
5013
5063
|
overflow: hidden;
|
|
5014
5064
|
border: 1px solid var(--ps-border-subtle);
|
|
5065
|
+
display: flex; align-items: center; justify-content: center;
|
|
5066
|
+
}
|
|
5067
|
+
.ps-cpw-photo-preview-img {
|
|
5068
|
+
width: 100%; height: 100%;
|
|
5069
|
+
object-fit: contain;
|
|
5070
|
+
display: block;
|
|
5071
|
+
}
|
|
5072
|
+
.ps-cpw-photo-retake-pill {
|
|
5073
|
+
position: absolute;
|
|
5074
|
+
bottom: clamp(8px, 0.7vw, 14px);
|
|
5075
|
+
left: 50%;
|
|
5076
|
+
transform: translateX(-50%);
|
|
5077
|
+
background: rgba(255,255,255,0.95);
|
|
5078
|
+
border: 1px solid var(--ps-border-subtle);
|
|
5079
|
+
color: var(--ps-text-primary);
|
|
5080
|
+
padding: clamp(6px, 0.55vw, 12px) clamp(12px, 1vw, 20px);
|
|
5081
|
+
border-radius: 999px;
|
|
5082
|
+
font-family: inherit;
|
|
5083
|
+
font-size: clamp(10px, 0.7vw, 13px);
|
|
5084
|
+
font-weight: 600;
|
|
5085
|
+
cursor: pointer;
|
|
5086
|
+
backdrop-filter: blur(6px);
|
|
5087
|
+
transition: background 0.22s, color 0.22s;
|
|
5088
|
+
}
|
|
5089
|
+
.ps-cpw-photo-retake-pill:hover {
|
|
5090
|
+
background: var(--ps-accent);
|
|
5091
|
+
color: #FFFFFF;
|
|
5092
|
+
border-color: var(--ps-accent);
|
|
5093
|
+
}
|
|
5094
|
+
.ps-cpw-photo-remove {
|
|
5095
|
+
position: absolute;
|
|
5096
|
+
top: clamp(8px, 0.7vw, 14px);
|
|
5097
|
+
right: clamp(8px, 0.7vw, 14px);
|
|
5098
|
+
width: clamp(24px, 1.8vw, 34px);
|
|
5099
|
+
height: clamp(24px, 1.8vw, 34px);
|
|
5100
|
+
border-radius: 50%;
|
|
5101
|
+
background: rgba(28, 29, 30, 0.7);
|
|
5102
|
+
color: #FFFFFF;
|
|
5103
|
+
border: none;
|
|
5104
|
+
cursor: pointer;
|
|
5105
|
+
font-size: clamp(14px, 1.1vw, 18px);
|
|
5106
|
+
font-weight: 600;
|
|
5107
|
+
display: flex; align-items: center; justify-content: center;
|
|
5108
|
+
backdrop-filter: blur(6px);
|
|
5109
|
+
transition: background 0.18s;
|
|
5110
|
+
}
|
|
5111
|
+
.ps-cpw-photo-remove:hover { background: rgba(28, 29, 30, 0.9); }
|
|
5112
|
+
|
|
5113
|
+
/* Photo guide checklist — soft tinted card on the right column */
|
|
5114
|
+
.ps-cpw-photo-guide {
|
|
5115
|
+
background: var(--ps-bg-secondary);
|
|
5116
|
+
border: 1px solid var(--ps-border-subtle);
|
|
5117
|
+
border-radius: clamp(10px, 0.75vw, 16px);
|
|
5118
|
+
padding: clamp(12px, 1vw, 20px) clamp(14px, 1.1vw, 22px);
|
|
5119
|
+
display: flex; flex-direction: column;
|
|
5120
|
+
gap: clamp(6px, 0.55vw, 12px);
|
|
5121
|
+
margin-top: auto;
|
|
5122
|
+
}
|
|
5123
|
+
.ps-cpw-photo-guide-title {
|
|
5124
|
+
font-size: clamp(9px, 0.62vw, 11px);
|
|
5125
|
+
font-weight: 700;
|
|
5126
|
+
letter-spacing: 0.14em;
|
|
5127
|
+
text-transform: uppercase;
|
|
5128
|
+
color: var(--ps-text-primary);
|
|
5129
|
+
}
|
|
5130
|
+
.ps-cpw-photo-guide-list {
|
|
5131
|
+
list-style: none;
|
|
5132
|
+
margin: 0;
|
|
5133
|
+
padding: 0;
|
|
5134
|
+
display: flex; flex-direction: column;
|
|
5135
|
+
gap: clamp(4px, 0.4vw, 10px);
|
|
5136
|
+
}
|
|
5137
|
+
.ps-cpw-photo-guide-list li {
|
|
5138
|
+
display: flex; align-items: flex-start;
|
|
5139
|
+
gap: clamp(6px, 0.55vw, 12px);
|
|
5140
|
+
font-size: clamp(10px, 0.72vw, 13px);
|
|
5141
|
+
line-height: 1.45;
|
|
5142
|
+
color: var(--ps-text-secondary);
|
|
5143
|
+
}
|
|
5144
|
+
.ps-cpw-photo-guide-list li svg {
|
|
5145
|
+
flex-shrink: 0;
|
|
5146
|
+
width: clamp(12px, 0.9vw, 16px);
|
|
5147
|
+
height: clamp(12px, 0.9vw, 16px);
|
|
5148
|
+
color: var(--ps-accent);
|
|
5149
|
+
margin-top: 0.15em;
|
|
5015
5150
|
}
|
|
5016
5151
|
.ps-cpw-photo-frame-img {
|
|
5017
5152
|
width: 100%; height: 100%;
|
|
@@ -5044,101 +5179,141 @@ const STYLES = `
|
|
|
5044
5179
|
}
|
|
5045
5180
|
|
|
5046
5181
|
/* ════════════════════════════════════════════════════════════════
|
|
5047
|
-
ProfileMeasurementsView (.ps-pmv-*) —
|
|
5048
|
-
|
|
5182
|
+
ProfileMeasurementsView (.ps-pmv-*) — minimal monoline-icon
|
|
5183
|
+
redesign. Two-column body: silhouette diagram on the left,
|
|
5184
|
+
basics + measurements list (each with an inline line-art icon)
|
|
5185
|
+
on the right. No avatar, no card boxes — just typography, icons
|
|
5186
|
+
and a body diagram, all vw/clamp scaled.
|
|
5049
5187
|
════════════════════════════════════════════════════════════════ */
|
|
5050
5188
|
.ps-pmv-root {
|
|
5051
|
-
display: flex; flex-direction: column;
|
|
5052
|
-
|
|
5189
|
+
display: flex; flex-direction: column;
|
|
5190
|
+
gap: clamp(14px, 1.3vw, 28px);
|
|
5191
|
+
padding: clamp(2px, 0.25vw, 6px) clamp(2px, 0.25vw, 6px) clamp(14px, 1.3vw, 28px);
|
|
5053
5192
|
}
|
|
5193
|
+
|
|
5194
|
+
/* Hero — name + eyebrow only, no avatar */
|
|
5054
5195
|
.ps-pmv-hero {
|
|
5055
|
-
display: flex;
|
|
5056
|
-
|
|
5196
|
+
display: flex; flex-direction: column;
|
|
5197
|
+
gap: clamp(4px, 0.35vw, 10px);
|
|
5198
|
+
padding-bottom: clamp(10px, 0.95vw, 20px);
|
|
5057
5199
|
border-bottom: 1px solid var(--ps-border-subtle);
|
|
5058
5200
|
}
|
|
5059
|
-
.ps-pmv-hero-avatar {
|
|
5060
|
-
width: 76px; height: 76px;
|
|
5061
|
-
border-radius: 50%;
|
|
5062
|
-
background: var(--ps-bg-secondary);
|
|
5063
|
-
border: 2px solid var(--ps-accent);
|
|
5064
|
-
color: var(--ps-accent);
|
|
5065
|
-
display: flex; align-items: center; justify-content: center;
|
|
5066
|
-
overflow: hidden; flex-shrink: 0;
|
|
5067
|
-
}
|
|
5068
|
-
.ps-pmv-hero-avatar img {
|
|
5069
|
-
width: 100%; height: 100%; object-fit: cover;
|
|
5070
|
-
/* Bias the crop toward the top of the photo so the head/face shows
|
|
5071
|
-
through the circular avatar instead of the torso. Works for any
|
|
5072
|
-
full-body or head-and-torso photo where the head is in the upper
|
|
5073
|
-
portion of the frame. */
|
|
5074
|
-
object-position: 50% 12%;
|
|
5075
|
-
}
|
|
5076
|
-
.ps-pmv-hero-info { flex: 1; min-width: 0; }
|
|
5077
5201
|
.ps-pmv-hero-eyebrow {
|
|
5078
|
-
font-size:
|
|
5079
|
-
letter-spacing: 0.
|
|
5202
|
+
font-size: clamp(9px, 0.6vw, 12px); font-weight: 700;
|
|
5203
|
+
letter-spacing: 0.18em; text-transform: uppercase;
|
|
5080
5204
|
color: var(--ps-accent);
|
|
5081
|
-
margin-bottom: 6px;
|
|
5082
5205
|
}
|
|
5083
5206
|
.ps-pmv-hero-name {
|
|
5084
|
-
font-size:
|
|
5207
|
+
font-size: clamp(18px, 1.5vw, 32px); font-weight: 700;
|
|
5085
5208
|
color: var(--ps-text-primary);
|
|
5086
5209
|
margin: 0;
|
|
5087
5210
|
letter-spacing: -0.01em;
|
|
5211
|
+
line-height: 1.1;
|
|
5088
5212
|
}
|
|
5089
5213
|
|
|
5090
|
-
/*
|
|
5091
|
-
.ps-pmv-
|
|
5214
|
+
/* Two-column split — diagram on left, data on right */
|
|
5215
|
+
.ps-pmv-split {
|
|
5092
5216
|
display: grid;
|
|
5093
|
-
grid-template-columns:
|
|
5094
|
-
gap:
|
|
5217
|
+
grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
|
|
5218
|
+
gap: clamp(16px, 1.6vw, 36px);
|
|
5219
|
+
align-items: start;
|
|
5095
5220
|
}
|
|
5096
|
-
.ps-pmv-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
display: flex; flex-direction: column; gap: 4px;
|
|
5221
|
+
.ps-pmv-diagram {
|
|
5222
|
+
display: flex; flex-direction: column; align-items: center;
|
|
5223
|
+
gap: clamp(6px, 0.5vw, 12px);
|
|
5224
|
+
padding: clamp(8px, 0.8vw, 18px) 0;
|
|
5225
|
+
color: var(--ps-text-primary);
|
|
5102
5226
|
}
|
|
5227
|
+
.ps-pmv-body-diagram-svg {
|
|
5228
|
+
width: 100%;
|
|
5229
|
+
max-width: clamp(110px, 9vw, 180px);
|
|
5230
|
+
height: auto;
|
|
5231
|
+
color: var(--ps-text-primary);
|
|
5232
|
+
opacity: 0.78;
|
|
5233
|
+
}
|
|
5234
|
+
.ps-pmv-diagram-caption {
|
|
5235
|
+
font-size: clamp(8px, 0.55vw, 11px);
|
|
5236
|
+
font-weight: 600;
|
|
5237
|
+
letter-spacing: 0.16em;
|
|
5238
|
+
text-transform: uppercase;
|
|
5239
|
+
color: var(--ps-text-muted);
|
|
5240
|
+
}
|
|
5241
|
+
.ps-pmv-data {
|
|
5242
|
+
display: flex; flex-direction: column;
|
|
5243
|
+
gap: clamp(14px, 1.2vw, 26px);
|
|
5244
|
+
min-width: 0;
|
|
5245
|
+
}
|
|
5246
|
+
|
|
5247
|
+
/* Basics list — height / weight / age, inline icon + label + value */
|
|
5248
|
+
.ps-pmv-basics {
|
|
5249
|
+
display: flex; flex-direction: column;
|
|
5250
|
+
gap: clamp(6px, 0.55vw, 14px);
|
|
5251
|
+
padding-bottom: clamp(10px, 0.9vw, 18px);
|
|
5252
|
+
border-bottom: 1px solid var(--ps-border-subtle);
|
|
5253
|
+
}
|
|
5254
|
+
.ps-pmv-basic-row {
|
|
5255
|
+
display: flex; align-items: center;
|
|
5256
|
+
gap: clamp(8px, 0.7vw, 16px);
|
|
5257
|
+
}
|
|
5258
|
+
.ps-pmv-basic-icon {
|
|
5259
|
+
flex-shrink: 0;
|
|
5260
|
+
width: clamp(14px, 1vw, 20px);
|
|
5261
|
+
height: clamp(14px, 1vw, 20px);
|
|
5262
|
+
color: var(--ps-text-muted);
|
|
5263
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
5264
|
+
}
|
|
5265
|
+
.ps-pmv-basic-icon svg { width: 100%; height: 100%; }
|
|
5103
5266
|
.ps-pmv-basic-label {
|
|
5104
|
-
|
|
5105
|
-
|
|
5267
|
+
flex: 1; min-width: 0;
|
|
5268
|
+
font-size: clamp(9px, 0.65vw, 12px);
|
|
5269
|
+
font-weight: 700;
|
|
5270
|
+
letter-spacing: 0.14em;
|
|
5271
|
+
text-transform: uppercase;
|
|
5106
5272
|
color: var(--ps-text-muted);
|
|
5107
5273
|
}
|
|
5108
5274
|
.ps-pmv-basic-value {
|
|
5109
|
-
font-size:
|
|
5275
|
+
font-size: clamp(13px, 0.95vw, 18px);
|
|
5276
|
+
font-weight: 700;
|
|
5110
5277
|
color: var(--ps-text-primary);
|
|
5111
5278
|
font-feature-settings: "tnum" 1;
|
|
5279
|
+
text-align: right;
|
|
5112
5280
|
}
|
|
5113
5281
|
|
|
5114
|
-
/* Section blocks */
|
|
5282
|
+
/* Section blocks (BODY MEASUREMENTS) */
|
|
5115
5283
|
.ps-pmv-section {
|
|
5116
|
-
display: flex; flex-direction: column;
|
|
5284
|
+
display: flex; flex-direction: column;
|
|
5285
|
+
gap: clamp(8px, 0.7vw, 16px);
|
|
5117
5286
|
}
|
|
5118
5287
|
.ps-pmv-section-head {
|
|
5119
|
-
display: flex; flex-direction: column; gap:
|
|
5288
|
+
display: flex; flex-direction: column; gap: clamp(2px, 0.2vw, 6px);
|
|
5120
5289
|
}
|
|
5121
5290
|
.ps-pmv-section-title {
|
|
5122
|
-
font-size:
|
|
5123
|
-
|
|
5291
|
+
font-size: clamp(9px, 0.65vw, 12px);
|
|
5292
|
+
font-weight: 700;
|
|
5293
|
+
letter-spacing: 0.16em;
|
|
5294
|
+
text-transform: uppercase;
|
|
5124
5295
|
color: var(--ps-text-primary);
|
|
5125
5296
|
}
|
|
5126
5297
|
.ps-pmv-section-title-row {
|
|
5127
5298
|
display: flex; align-items: center; justify-content: space-between;
|
|
5128
|
-
gap:
|
|
5299
|
+
gap: clamp(8px, 0.7vw, 14px);
|
|
5129
5300
|
}
|
|
5130
5301
|
.ps-pmv-loading-pill {
|
|
5131
|
-
display: inline-flex; align-items: center;
|
|
5132
|
-
|
|
5302
|
+
display: inline-flex; align-items: center;
|
|
5303
|
+
gap: clamp(4px, 0.4vw, 10px);
|
|
5304
|
+
padding: clamp(3px, 0.3vw, 7px) clamp(7px, 0.6vw, 14px);
|
|
5133
5305
|
background: rgba(33, 84, 239, 0.08);
|
|
5134
5306
|
color: var(--ps-accent);
|
|
5135
5307
|
border-radius: 999px;
|
|
5136
|
-
font-size:
|
|
5137
|
-
|
|
5308
|
+
font-size: clamp(8px, 0.55vw, 11px);
|
|
5309
|
+
font-weight: 700;
|
|
5310
|
+
letter-spacing: 0.12em;
|
|
5311
|
+
text-transform: uppercase;
|
|
5138
5312
|
}
|
|
5139
5313
|
.ps-pmv-loading-spinner {
|
|
5140
|
-
width:
|
|
5141
|
-
|
|
5314
|
+
width: clamp(8px, 0.65vw, 14px);
|
|
5315
|
+
height: clamp(8px, 0.65vw, 14px);
|
|
5316
|
+
border: 1.5px solid rgba(33, 84, 239, 0.25);
|
|
5142
5317
|
border-top-color: var(--ps-accent);
|
|
5143
5318
|
border-radius: 50%;
|
|
5144
5319
|
animation: ps-pmv-spin 0.8s linear infinite;
|
|
@@ -5146,141 +5321,111 @@ const STYLES = `
|
|
|
5146
5321
|
@keyframes ps-pmv-spin {
|
|
5147
5322
|
to { transform: rotate(360deg); }
|
|
5148
5323
|
}
|
|
5149
|
-
.ps-pmv-section-sub {
|
|
5150
|
-
font-size: 12px; font-weight: 400;
|
|
5151
|
-
color: var(--ps-text-muted);
|
|
5152
|
-
}
|
|
5153
5324
|
|
|
5154
|
-
/* Body measurements
|
|
5155
|
-
.ps-pmv-measure-
|
|
5156
|
-
display:
|
|
5157
|
-
grid-template-columns: repeat(4, 1fr);
|
|
5158
|
-
gap: 10px;
|
|
5325
|
+
/* Body measurements list — single column, icon + label + value rows */
|
|
5326
|
+
.ps-pmv-measure-list {
|
|
5327
|
+
display: flex; flex-direction: column;
|
|
5159
5328
|
}
|
|
5160
|
-
.ps-pmv-measure {
|
|
5161
|
-
|
|
5162
|
-
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5329
|
+
.ps-pmv-measure-row {
|
|
5330
|
+
display: flex; align-items: center;
|
|
5331
|
+
gap: clamp(8px, 0.7vw, 16px);
|
|
5332
|
+
padding: clamp(8px, 0.7vw, 14px) 0;
|
|
5333
|
+
border-bottom: 1px solid var(--ps-border-subtle);
|
|
5334
|
+
}
|
|
5335
|
+
.ps-pmv-measure-row:last-child { border-bottom: none; }
|
|
5336
|
+
.ps-pmv-measure-icon {
|
|
5337
|
+
flex-shrink: 0;
|
|
5338
|
+
width: clamp(14px, 1vw, 20px);
|
|
5339
|
+
height: clamp(14px, 1vw, 20px);
|
|
5340
|
+
color: var(--ps-text-muted);
|
|
5341
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
5166
5342
|
}
|
|
5343
|
+
.ps-pmv-measure-icon svg { width: 100%; height: 100%; }
|
|
5167
5344
|
.ps-pmv-measure-label {
|
|
5168
|
-
|
|
5169
|
-
|
|
5345
|
+
flex: 1; min-width: 0;
|
|
5346
|
+
font-size: clamp(9px, 0.65vw, 12px);
|
|
5347
|
+
font-weight: 700;
|
|
5348
|
+
letter-spacing: 0.14em;
|
|
5349
|
+
text-transform: uppercase;
|
|
5170
5350
|
color: var(--ps-text-muted);
|
|
5171
5351
|
}
|
|
5172
5352
|
.ps-pmv-measure-value {
|
|
5173
|
-
font-size:
|
|
5353
|
+
font-size: clamp(12px, 0.85vw, 16px);
|
|
5354
|
+
font-weight: 700;
|
|
5174
5355
|
color: var(--ps-text-primary);
|
|
5175
5356
|
font-feature-settings: "tnum" 1;
|
|
5357
|
+
text-align: right;
|
|
5176
5358
|
}
|
|
5177
5359
|
.ps-pmv-measure-value.ps-loading {
|
|
5178
5360
|
color: var(--ps-border-color);
|
|
5179
5361
|
animation: ps-pmv-shimmer 1.4s ease-in-out infinite;
|
|
5180
5362
|
}
|
|
5181
|
-
.ps-pmv-measure.ps-loading
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
var(--ps-bg-primary) 0%,
|
|
5185
|
-
var(--ps-bg-secondary) 50%,
|
|
5186
|
-
var(--ps-bg-primary) 100%
|
|
5187
|
-
);
|
|
5188
|
-
background-size: 200% 100%;
|
|
5189
|
-
animation: ps-pmv-skeleton 1.6s ease-in-out infinite;
|
|
5363
|
+
.ps-pmv-measure-row.ps-loading .ps-pmv-measure-icon,
|
|
5364
|
+
.ps-pmv-measure-row.ps-loading .ps-pmv-measure-label {
|
|
5365
|
+
opacity: 0.55;
|
|
5190
5366
|
}
|
|
5191
5367
|
@keyframes ps-pmv-shimmer {
|
|
5192
5368
|
0%, 100% { opacity: 0.5; }
|
|
5193
5369
|
50% { opacity: 1; }
|
|
5194
5370
|
}
|
|
5195
|
-
@keyframes ps-pmv-skeleton {
|
|
5196
|
-
0% { background-position: 200% 0; }
|
|
5197
|
-
100% { background-position: -200% 0; }
|
|
5198
|
-
}
|
|
5199
5371
|
|
|
5200
5372
|
/* Inline measurement edit inputs */
|
|
5201
|
-
.ps-pmv-measure.ps-editing {
|
|
5202
|
-
border-color: var(--ps-accent);
|
|
5373
|
+
.ps-pmv-measure-row.ps-editing {
|
|
5203
5374
|
background: rgba(33, 84, 239, 0.04);
|
|
5204
5375
|
}
|
|
5205
5376
|
.ps-pmv-measure-edit {
|
|
5206
|
-
display: flex; align-items: baseline;
|
|
5377
|
+
display: flex; align-items: baseline;
|
|
5378
|
+
gap: clamp(2px, 0.2vw, 6px);
|
|
5207
5379
|
}
|
|
5208
5380
|
.ps-pmv-measure-input {
|
|
5209
|
-
|
|
5210
|
-
background: transparent;
|
|
5381
|
+
width: clamp(40px, 3vw, 70px);
|
|
5382
|
+
background: transparent;
|
|
5383
|
+
border: none;
|
|
5384
|
+
border-bottom: 1px solid var(--ps-border-color);
|
|
5385
|
+
outline: none;
|
|
5211
5386
|
font-family: inherit;
|
|
5212
|
-
font-size:
|
|
5387
|
+
font-size: clamp(12px, 0.85vw, 16px);
|
|
5388
|
+
font-weight: 700;
|
|
5213
5389
|
color: var(--ps-text-primary);
|
|
5214
|
-
padding: 0;
|
|
5390
|
+
padding: clamp(2px, 0.15vw, 4px) 0;
|
|
5391
|
+
text-align: right;
|
|
5215
5392
|
font-feature-settings: "tnum" 1;
|
|
5216
5393
|
}
|
|
5394
|
+
.ps-pmv-measure-input:focus {
|
|
5395
|
+
border-bottom-color: var(--ps-accent);
|
|
5396
|
+
}
|
|
5217
5397
|
.ps-pmv-measure-input::-webkit-outer-spin-button,
|
|
5218
5398
|
.ps-pmv-measure-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
|
|
5219
5399
|
.ps-pmv-measure-input[type="number"] { -moz-appearance: textfield; }
|
|
5220
5400
|
.ps-pmv-measure-input-unit {
|
|
5221
|
-
font-size:
|
|
5222
|
-
}
|
|
5223
|
-
|
|
5224
|
-
/* Saved sizes history (per-product cache) — kept for backwards compat,
|
|
5225
|
-
no longer rendered inside ProfileMeasurementsView */
|
|
5226
|
-
.ps-pmv-history {
|
|
5227
|
-
display: flex; flex-direction: column; gap: 8px;
|
|
5228
|
-
}
|
|
5229
|
-
.ps-pmv-history-card {
|
|
5230
|
-
display: flex; align-items: center; gap: 12px;
|
|
5231
|
-
padding: 12px;
|
|
5232
|
-
background: var(--ps-bg-primary);
|
|
5233
|
-
border: 1px solid var(--ps-border-subtle);
|
|
5234
|
-
border-radius: 10px;
|
|
5235
|
-
}
|
|
5236
|
-
.ps-pmv-history-thumb {
|
|
5237
|
-
width: 44px; height: 44px;
|
|
5238
|
-
border-radius: 6px; overflow: hidden;
|
|
5239
|
-
background: var(--ps-bg-secondary);
|
|
5240
|
-
flex-shrink: 0;
|
|
5241
|
-
display: flex; align-items: center; justify-content: center;
|
|
5242
|
-
}
|
|
5243
|
-
.ps-pmv-history-thumb img {
|
|
5244
|
-
max-width: 100%; max-height: 100%; object-fit: contain;
|
|
5245
|
-
}
|
|
5246
|
-
.ps-pmv-history-info {
|
|
5247
|
-
flex: 1; min-width: 0;
|
|
5248
|
-
display: flex; flex-direction: column; gap: 2px;
|
|
5249
|
-
}
|
|
5250
|
-
.ps-pmv-history-name {
|
|
5251
|
-
font-size: 13px; font-weight: 600;
|
|
5252
|
-
color: var(--ps-text-primary);
|
|
5253
|
-
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
5254
|
-
}
|
|
5255
|
-
.ps-pmv-history-meta {
|
|
5256
|
-
font-size: 10px;
|
|
5401
|
+
font-size: clamp(8px, 0.55vw, 11px);
|
|
5257
5402
|
color: var(--ps-text-muted);
|
|
5258
|
-
|
|
5259
|
-
.ps-pmv-history-size {
|
|
5260
|
-
font-size: 22px; font-weight: 700;
|
|
5261
|
-
color: var(--ps-accent);
|
|
5262
|
-
font-feature-settings: "tnum" 1;
|
|
5403
|
+
font-weight: 500;
|
|
5263
5404
|
}
|
|
5264
5405
|
|
|
5265
5406
|
/* Actions */
|
|
5266
5407
|
.ps-pmv-actions {
|
|
5267
5408
|
display: flex; align-items: center; justify-content: space-between;
|
|
5268
|
-
gap:
|
|
5269
|
-
padding-top:
|
|
5409
|
+
gap: clamp(8px, 0.7vw, 14px);
|
|
5410
|
+
padding-top: clamp(12px, 1vw, 22px);
|
|
5270
5411
|
border-top: 1px solid var(--ps-border-subtle);
|
|
5271
|
-
margin-top:
|
|
5412
|
+
margin-top: clamp(2px, 0.2vw, 6px);
|
|
5272
5413
|
}
|
|
5273
5414
|
.ps-pmv-actions-right {
|
|
5274
|
-
display: flex; align-items: center;
|
|
5415
|
+
display: flex; align-items: center;
|
|
5416
|
+
gap: clamp(6px, 0.5vw, 12px);
|
|
5275
5417
|
}
|
|
5276
5418
|
.ps-pmv-btn-secondary,
|
|
5277
5419
|
.ps-pmv-btn-edit,
|
|
5278
5420
|
.ps-pmv-btn-delete {
|
|
5279
|
-
background: none;
|
|
5280
|
-
border
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5421
|
+
background: none;
|
|
5422
|
+
border: 1px solid var(--ps-border-color);
|
|
5423
|
+
border-radius: clamp(4px, 0.35vw, 8px);
|
|
5424
|
+
padding: clamp(6px, 0.55vw, 12px) clamp(10px, 0.9vw, 20px);
|
|
5425
|
+
font-family: inherit;
|
|
5426
|
+
font-size: clamp(9px, 0.65vw, 12px);
|
|
5427
|
+
font-weight: 600;
|
|
5428
|
+
letter-spacing: 0.08em;
|
|
5284
5429
|
color: var(--ps-text-secondary);
|
|
5285
5430
|
cursor: pointer;
|
|
5286
5431
|
transition: border-color 0.15s, color 0.15s;
|
|
@@ -5296,14 +5441,19 @@ const STYLES = `
|
|
|
5296
5441
|
}
|
|
5297
5442
|
.ps-pmv-btn-primary {
|
|
5298
5443
|
background: var(--ps-accent); color: #FFFFFF;
|
|
5299
|
-
border: none;
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5444
|
+
border: none;
|
|
5445
|
+
border-radius: clamp(4px, 0.35vw, 8px);
|
|
5446
|
+
padding: clamp(7px, 0.65vw, 14px) clamp(12px, 1vw, 22px);
|
|
5447
|
+
font-family: inherit;
|
|
5448
|
+
font-size: clamp(9px, 0.65vw, 12px);
|
|
5449
|
+
font-weight: 700;
|
|
5450
|
+
letter-spacing: 0.14em;
|
|
5451
|
+
text-transform: uppercase;
|
|
5303
5452
|
cursor: pointer;
|
|
5304
5453
|
transition: opacity 0.15s, transform 0.15s, background 0.2s;
|
|
5305
|
-
box-shadow: 0
|
|
5306
|
-
display: inline-flex; align-items: center;
|
|
5454
|
+
box-shadow: 0 0.3vw 1vw rgba(33, 84, 239, 0.18);
|
|
5455
|
+
display: inline-flex; align-items: center;
|
|
5456
|
+
gap: clamp(4px, 0.4vw, 10px);
|
|
5307
5457
|
justify-content: center;
|
|
5308
5458
|
}
|
|
5309
5459
|
.ps-pmv-btn-primary:hover:not(:disabled) { opacity: 0.92; }
|
|
@@ -5315,22 +5465,14 @@ const STYLES = `
|
|
|
5315
5465
|
opacity: 0.65;
|
|
5316
5466
|
}
|
|
5317
5467
|
.ps-pmv-btn-spinner {
|
|
5318
|
-
width:
|
|
5319
|
-
|
|
5468
|
+
width: clamp(8px, 0.65vw, 14px);
|
|
5469
|
+
height: clamp(8px, 0.65vw, 14px);
|
|
5470
|
+
border: 1.5px solid rgba(255, 255, 255, 0.35);
|
|
5320
5471
|
border-top-color: #FFFFFF;
|
|
5321
5472
|
border-radius: 50%;
|
|
5322
5473
|
animation: ps-pmv-spin 0.8s linear infinite;
|
|
5323
5474
|
}
|
|
5324
5475
|
|
|
5325
|
-
@media (max-width: 768px) {
|
|
5326
|
-
.ps-pmv-hero { flex-direction: column; align-items: flex-start; gap: 12px; }
|
|
5327
|
-
.ps-pmv-hero-name { font-size: 22px; }
|
|
5328
|
-
.ps-pmv-basics { grid-template-columns: 1fr; }
|
|
5329
|
-
.ps-pmv-measure-grid { grid-template-columns: repeat(2, 1fr); }
|
|
5330
|
-
.ps-pmv-actions { flex-direction: column; align-items: stretch; gap: 10px; }
|
|
5331
|
-
.ps-pmv-actions-right { flex-wrap: wrap; }
|
|
5332
|
-
}
|
|
5333
|
-
|
|
5334
5476
|
/* Big product / try-on image */
|
|
5335
5477
|
.ps-msd-image {
|
|
5336
5478
|
width: 100%; height: 420px;
|
|
@@ -9213,27 +9355,7 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
|
|
|
9213
9355
|
] })
|
|
9214
9356
|
] }, "bra"),
|
|
9215
9357
|
mode === "manual" && error && /* @__PURE__ */ jsx("div", { className: "ps-cpw-error", children: error }),
|
|
9216
|
-
mode === "image" && /* @__PURE__ */ jsxs("div", { className: "ps-cpw-image-
|
|
9217
|
-
/* @__PURE__ */ jsx("div", { className: "ps-cpw-pill-row", children: /* @__PURE__ */ jsxs("div", { className: "ps-cpw-pill-group", children: [
|
|
9218
|
-
/* @__PURE__ */ jsx("button", { type: "button", className: `ps-cpw-pill${gender === "male" ? " ps-active" : ""}`, onClick: () => setGender("male"), children: t("Male") }),
|
|
9219
|
-
/* @__PURE__ */ jsx("button", { type: "button", className: `ps-cpw-pill${gender === "female" ? " ps-active" : ""}`, onClick: () => setGender("female"), children: t("Female") })
|
|
9220
|
-
] }) }),
|
|
9221
|
-
/* @__PURE__ */ jsx("div", { className: "ps-bp-inline-fields ps-cpw-inline-fields", children: /* @__PURE__ */ jsxs("div", { className: "ps-bp-inline-row", children: [
|
|
9222
|
-
/* @__PURE__ */ jsx("span", { className: "ps-bp-inline-label", children: t("NAME") }),
|
|
9223
|
-
/* @__PURE__ */ jsx("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ jsx(
|
|
9224
|
-
"input",
|
|
9225
|
-
{
|
|
9226
|
-
type: "text",
|
|
9227
|
-
className: "ps-bp-inline-input",
|
|
9228
|
-
value: name,
|
|
9229
|
-
placeholder: t("e.g. My Photo Profile"),
|
|
9230
|
-
onChange: (e) => {
|
|
9231
|
-
setName(e.target.value);
|
|
9232
|
-
setError("");
|
|
9233
|
-
}
|
|
9234
|
-
}
|
|
9235
|
-
) })
|
|
9236
|
-
] }) }),
|
|
9358
|
+
mode === "image" && /* @__PURE__ */ jsxs("div", { className: "ps-cpw-image-split ps-cpw-fade-in", children: [
|
|
9237
9359
|
/* @__PURE__ */ jsx(
|
|
9238
9360
|
"input",
|
|
9239
9361
|
{
|
|
@@ -9244,8 +9366,8 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
|
|
|
9244
9366
|
onChange: handlePhotoSelect
|
|
9245
9367
|
}
|
|
9246
9368
|
),
|
|
9247
|
-
photoBase64 ? /* @__PURE__ */ jsxs("div", { className: "ps-cpw-photo-frame", children: [
|
|
9248
|
-
/* @__PURE__ */ jsx("img", { src: photoBase64, alt: t("Profile photo"), className: "ps-cpw-photo-
|
|
9369
|
+
/* @__PURE__ */ jsx("div", { className: "ps-cpw-image-left", children: photoBase64 ? /* @__PURE__ */ jsxs("div", { className: "ps-cpw-photo-preview-frame", children: [
|
|
9370
|
+
/* @__PURE__ */ jsx("img", { src: photoBase64, alt: t("Profile photo"), className: "ps-cpw-photo-preview-img" }),
|
|
9249
9371
|
/* @__PURE__ */ jsx(
|
|
9250
9372
|
"button",
|
|
9251
9373
|
{
|
|
@@ -9255,26 +9377,84 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
|
|
|
9255
9377
|
"aria-label": t("Remove photo"),
|
|
9256
9378
|
children: "×"
|
|
9257
9379
|
}
|
|
9380
|
+
),
|
|
9381
|
+
/* @__PURE__ */ jsx(
|
|
9382
|
+
"button",
|
|
9383
|
+
{
|
|
9384
|
+
type: "button",
|
|
9385
|
+
className: "ps-cpw-photo-retake-pill",
|
|
9386
|
+
onClick: () => photoInputRef.current?.click(),
|
|
9387
|
+
children: t("Retake")
|
|
9388
|
+
}
|
|
9258
9389
|
)
|
|
9259
9390
|
] }) : /* @__PURE__ */ jsxs(
|
|
9260
9391
|
"button",
|
|
9261
9392
|
{
|
|
9262
9393
|
type: "button",
|
|
9263
|
-
className: "ps-cpw-
|
|
9394
|
+
className: "ps-cpw-dropzone",
|
|
9264
9395
|
onClick: () => photoInputRef.current?.click(),
|
|
9265
9396
|
disabled: photoUploading,
|
|
9266
9397
|
children: [
|
|
9267
|
-
/* @__PURE__ */ jsxs("svg", { viewBox: "0 0
|
|
9268
|
-
/* @__PURE__ */ jsx("
|
|
9269
|
-
/* @__PURE__ */ jsx("
|
|
9270
|
-
/* @__PURE__ */ jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
|
|
9398
|
+
/* @__PURE__ */ jsxs("svg", { className: "ps-cpw-dropzone-silhouette", viewBox: "0 0 80 200", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9399
|
+
/* @__PURE__ */ jsx("circle", { cx: "40", cy: "20", r: "13" }),
|
|
9400
|
+
/* @__PURE__ */ jsx("path", { d: "M40 35 L40 110 M22 60 L22 105 M58 60 L58 105 M22 60 Q40 50 58 60 M40 110 L25 195 M40 110 L55 195" })
|
|
9271
9401
|
] }),
|
|
9272
|
-
/* @__PURE__ */
|
|
9273
|
-
|
|
9402
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-cpw-dropzone-content", children: [
|
|
9403
|
+
/* @__PURE__ */ jsxs("svg", { className: "ps-cpw-dropzone-upload-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9404
|
+
/* @__PURE__ */ jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
|
|
9405
|
+
/* @__PURE__ */ jsx("polyline", { points: "17 8 12 3 7 8" }),
|
|
9406
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
|
|
9407
|
+
] }),
|
|
9408
|
+
/* @__PURE__ */ jsx("span", { className: "ps-cpw-dropzone-title", children: photoUploading ? t("Processing…") : t("Drop a photo or click to upload") }),
|
|
9409
|
+
/* @__PURE__ */ jsx("span", { className: "ps-cpw-dropzone-hint", children: t("JPEG · PNG · WebP · up to 10MB") })
|
|
9410
|
+
] })
|
|
9274
9411
|
]
|
|
9275
9412
|
}
|
|
9276
|
-
),
|
|
9277
|
-
|
|
9413
|
+
) }),
|
|
9414
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-cpw-image-right", children: [
|
|
9415
|
+
/* @__PURE__ */ jsx("div", { className: "ps-cpw-pill-row", children: /* @__PURE__ */ jsxs("div", { className: "ps-cpw-pill-group", children: [
|
|
9416
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: `ps-cpw-pill${gender === "male" ? " ps-active" : ""}`, onClick: () => setGender("male"), children: t("Male") }),
|
|
9417
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: `ps-cpw-pill${gender === "female" ? " ps-active" : ""}`, onClick: () => setGender("female"), children: t("Female") })
|
|
9418
|
+
] }) }),
|
|
9419
|
+
/* @__PURE__ */ jsx("div", { className: "ps-bp-inline-fields ps-cpw-inline-fields", children: /* @__PURE__ */ jsxs("div", { className: "ps-bp-inline-row", children: [
|
|
9420
|
+
/* @__PURE__ */ jsx("span", { className: "ps-bp-inline-label", children: t("NAME") }),
|
|
9421
|
+
/* @__PURE__ */ jsx("div", { className: "ps-bp-inline-input-group", children: /* @__PURE__ */ jsx(
|
|
9422
|
+
"input",
|
|
9423
|
+
{
|
|
9424
|
+
type: "text",
|
|
9425
|
+
className: "ps-bp-inline-input",
|
|
9426
|
+
value: name,
|
|
9427
|
+
placeholder: t("e.g. My Photo Profile"),
|
|
9428
|
+
onChange: (e) => {
|
|
9429
|
+
setName(e.target.value);
|
|
9430
|
+
setError("");
|
|
9431
|
+
}
|
|
9432
|
+
}
|
|
9433
|
+
) })
|
|
9434
|
+
] }) }),
|
|
9435
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-cpw-photo-guide", children: [
|
|
9436
|
+
/* @__PURE__ */ jsx("div", { className: "ps-cpw-photo-guide-title", children: t("HOW TO TAKE A GOOD PHOTO") }),
|
|
9437
|
+
/* @__PURE__ */ jsxs("ul", { className: "ps-cpw-photo-guide-list", children: [
|
|
9438
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
9439
|
+
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("polyline", { points: "3 8 7 12 13 4" }) }),
|
|
9440
|
+
t("Stand straight, arms relaxed at your sides")
|
|
9441
|
+
] }),
|
|
9442
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
9443
|
+
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("polyline", { points: "3 8 7 12 13 4" }) }),
|
|
9444
|
+
t("Full body in frame, head to toes")
|
|
9445
|
+
] }),
|
|
9446
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
9447
|
+
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("polyline", { points: "3 8 7 12 13 4" }) }),
|
|
9448
|
+
t("Form-fitting clothing, no loose layers")
|
|
9449
|
+
] }),
|
|
9450
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
9451
|
+
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("polyline", { points: "3 8 7 12 13 4" }) }),
|
|
9452
|
+
t("Plain background, neutral lighting")
|
|
9453
|
+
] })
|
|
9454
|
+
] })
|
|
9455
|
+
] }),
|
|
9456
|
+
error && /* @__PURE__ */ jsx("div", { className: "ps-cpw-error", children: error })
|
|
9457
|
+
] })
|
|
9278
9458
|
] }, "image-combined")
|
|
9279
9459
|
] }),
|
|
9280
9460
|
/* @__PURE__ */ jsxs("div", { className: "ps-cpw-footer", children: [
|
|
@@ -9293,26 +9473,95 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
|
|
|
9293
9473
|
] })
|
|
9294
9474
|
] });
|
|
9295
9475
|
}
|
|
9476
|
+
const HeightIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9477
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "3", x2: "12", y2: "21" }),
|
|
9478
|
+
/* @__PURE__ */ jsx("polyline", { points: "7 6 12 3 17 6" }),
|
|
9479
|
+
/* @__PURE__ */ jsx("polyline", { points: "7 18 12 21 17 18" })
|
|
9480
|
+
] });
|
|
9481
|
+
const WeightIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9482
|
+
/* @__PURE__ */ jsx("path", { d: "M5 7h14l-1.5 12a2 2 0 0 1-2 2h-9a2 2 0 0 1-2-2L5 7z" }),
|
|
9483
|
+
/* @__PURE__ */ jsx("path", { d: "M9 7a3 3 0 0 1 6 0" }),
|
|
9484
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "11", x2: "12", y2: "15" })
|
|
9485
|
+
] });
|
|
9486
|
+
const AgeIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9487
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
|
|
9488
|
+
/* @__PURE__ */ jsx("polyline", { points: "12 7 12 12 15 14" })
|
|
9489
|
+
] });
|
|
9490
|
+
const ChestIcon = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M4 8 L8 5 L16 5 L20 8 L20 13 L17 11 L17 17 L7 17 L7 11 L4 13 Z" }) });
|
|
9491
|
+
const BustIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9492
|
+
/* @__PURE__ */ jsx("path", { d: "M5 9 Q12 3 19 9" }),
|
|
9493
|
+
/* @__PURE__ */ jsx("circle", { cx: "9", cy: "13", r: "2.5" }),
|
|
9494
|
+
/* @__PURE__ */ jsx("circle", { cx: "15", cy: "13", r: "2.5" })
|
|
9495
|
+
] });
|
|
9496
|
+
const WaistIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9497
|
+
/* @__PURE__ */ jsx("path", { d: "M6 4 Q10 4 10 9 Q10 12 6 14" }),
|
|
9498
|
+
/* @__PURE__ */ jsx("path", { d: "M18 4 Q14 4 14 9 Q14 12 18 14" }),
|
|
9499
|
+
/* @__PURE__ */ jsx("path", { d: "M6 14 Q10 16 10 20" }),
|
|
9500
|
+
/* @__PURE__ */ jsx("path", { d: "M18 14 Q14 16 14 20" })
|
|
9501
|
+
] });
|
|
9502
|
+
const HipsIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9503
|
+
/* @__PURE__ */ jsx("path", { d: "M7 4 Q10 4 10 9 Q10 11 9 13" }),
|
|
9504
|
+
/* @__PURE__ */ jsx("path", { d: "M17 4 Q14 4 14 9 Q14 11 15 13" }),
|
|
9505
|
+
/* @__PURE__ */ jsx("path", { d: "M5 14 Q12 22 19 14" })
|
|
9506
|
+
] });
|
|
9507
|
+
const ShoulderIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9508
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "6", r: "2.5" }),
|
|
9509
|
+
/* @__PURE__ */ jsx("path", { d: "M4 13 Q8 9 12 9 Q16 9 20 13" }),
|
|
9510
|
+
/* @__PURE__ */ jsx("line", { x1: "4", y1: "15", x2: "20", y2: "15" })
|
|
9511
|
+
] });
|
|
9512
|
+
const SleeveIcon = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M4 6 L8 4 L12 6 L11 11 L9 21 L5 21 L5 11 Z" }) });
|
|
9513
|
+
const NeckIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9514
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "6", r: "3" }),
|
|
9515
|
+
/* @__PURE__ */ jsx("path", { d: "M9 9 L9 13 Q9 15 12 15 Q15 15 15 13 L15 9" }),
|
|
9516
|
+
/* @__PURE__ */ jsx("path", { d: "M5 17 Q12 19 19 17" })
|
|
9517
|
+
] });
|
|
9518
|
+
const InseamIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9519
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "3", x2: "12", y2: "21" }),
|
|
9520
|
+
/* @__PURE__ */ jsx("line", { x1: "9", y1: "3", x2: "15", y2: "3" }),
|
|
9521
|
+
/* @__PURE__ */ jsx("line", { x1: "9", y1: "21", x2: "15", y2: "21" })
|
|
9522
|
+
] });
|
|
9523
|
+
const ThighIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
9524
|
+
/* @__PURE__ */ jsx("path", { d: "M8 4 Q10 8 10 14 L9 21" }),
|
|
9525
|
+
/* @__PURE__ */ jsx("path", { d: "M16 4 Q14 8 14 14 L15 21" }),
|
|
9526
|
+
/* @__PURE__ */ jsx("ellipse", { cx: "12", cy: "11", rx: "6", ry: "2" })
|
|
9527
|
+
] });
|
|
9296
9528
|
const FIELDS_MEN = [
|
|
9297
|
-
{ key: "chest", label: "CHEST" },
|
|
9298
|
-
{ key: "waist", label: "WAIST" },
|
|
9299
|
-
{ key: "hips", label: "HIPS" },
|
|
9300
|
-
{ key: "shoulderWidth", label: "SHOULDER" },
|
|
9301
|
-
{ key: "sleeveLength", label: "SLEEVE" },
|
|
9302
|
-
{ key: "neckCircumference", label: "NECK" },
|
|
9303
|
-
{ key: "inseam", label: "INSEAM" },
|
|
9304
|
-
{ key: "thighCircumference", label: "THIGH" }
|
|
9529
|
+
{ key: "chest", label: "CHEST", Icon: ChestIcon },
|
|
9530
|
+
{ key: "waist", label: "WAIST", Icon: WaistIcon },
|
|
9531
|
+
{ key: "hips", label: "HIPS", Icon: HipsIcon },
|
|
9532
|
+
{ key: "shoulderWidth", label: "SHOULDER", Icon: ShoulderIcon },
|
|
9533
|
+
{ key: "sleeveLength", label: "SLEEVE", Icon: SleeveIcon },
|
|
9534
|
+
{ key: "neckCircumference", label: "NECK", Icon: NeckIcon },
|
|
9535
|
+
{ key: "inseam", label: "INSEAM", Icon: InseamIcon },
|
|
9536
|
+
{ key: "thighCircumference", label: "THIGH", Icon: ThighIcon }
|
|
9305
9537
|
];
|
|
9306
9538
|
const FIELDS_WOMEN = [
|
|
9307
|
-
{ key: "bust", label: "BUST" },
|
|
9308
|
-
{ key: "waist", label: "WAIST" },
|
|
9309
|
-
{ key: "hips", label: "HIPS" },
|
|
9310
|
-
{ key: "shoulderWidth", label: "SHOULDER" },
|
|
9311
|
-
{ key: "sleeveLength", label: "SLEEVE" },
|
|
9312
|
-
{ key: "neckCircumference", label: "NECK" },
|
|
9313
|
-
{ key: "inseam", label: "INSEAM" },
|
|
9314
|
-
{ key: "thighCircumference", label: "THIGH" }
|
|
9539
|
+
{ key: "bust", label: "BUST", Icon: BustIcon },
|
|
9540
|
+
{ key: "waist", label: "WAIST", Icon: WaistIcon },
|
|
9541
|
+
{ key: "hips", label: "HIPS", Icon: HipsIcon },
|
|
9542
|
+
{ key: "shoulderWidth", label: "SHOULDER", Icon: ShoulderIcon },
|
|
9543
|
+
{ key: "sleeveLength", label: "SLEEVE", Icon: SleeveIcon },
|
|
9544
|
+
{ key: "neckCircumference", label: "NECK", Icon: NeckIcon },
|
|
9545
|
+
{ key: "inseam", label: "INSEAM", Icon: InseamIcon },
|
|
9546
|
+
{ key: "thighCircumference", label: "THIGH", Icon: ThighIcon }
|
|
9315
9547
|
];
|
|
9548
|
+
const BodyDiagram = ({ female }) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 120 320", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", className: "ps-pmv-body-diagram-svg", "aria-hidden": "true", children: [
|
|
9549
|
+
/* @__PURE__ */ jsx("circle", { cx: "60", cy: "28", r: "18" }),
|
|
9550
|
+
/* @__PURE__ */ jsx("line", { x1: "60", y1: "46", x2: "60", y2: "58" }),
|
|
9551
|
+
female ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9552
|
+
/* @__PURE__ */ jsx("path", { d: "M30 70 Q35 65 60 65 Q85 65 90 70" }),
|
|
9553
|
+
/* @__PURE__ */ jsx("path", { d: "M30 70 Q26 110 32 145 Q40 165 60 168 Q80 165 88 145 Q94 110 90 70" })
|
|
9554
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9555
|
+
/* @__PURE__ */ jsx("path", { d: "M22 72 Q32 62 60 62 Q88 62 98 72" }),
|
|
9556
|
+
/* @__PURE__ */ jsx("path", { d: "M22 72 Q24 110 32 145 Q42 162 60 165 Q78 162 88 145 Q96 110 98 72" })
|
|
9557
|
+
] }),
|
|
9558
|
+
/* @__PURE__ */ jsx("path", { d: "M22 72 Q12 130 18 175" }),
|
|
9559
|
+
/* @__PURE__ */ jsx("path", { d: "M98 72 Q108 130 102 175" }),
|
|
9560
|
+
/* @__PURE__ */ jsx("path", { d: "M40 168 L36 295" }),
|
|
9561
|
+
/* @__PURE__ */ jsx("path", { d: "M80 168 L84 295" }),
|
|
9562
|
+
/* @__PURE__ */ jsx("line", { x1: "30", y1: "295", x2: "42", y2: "295" }),
|
|
9563
|
+
/* @__PURE__ */ jsx("line", { x1: "78", y1: "295", x2: "90", y2: "295" })
|
|
9564
|
+
] });
|
|
9316
9565
|
function ProfileMeasurementsView({
|
|
9317
9566
|
profile,
|
|
9318
9567
|
isActive,
|
|
@@ -9372,60 +9621,64 @@ function ProfileMeasurementsView({
|
|
|
9372
9621
|
const ageDisplay = profile.age ? `${profile.age}` : "—";
|
|
9373
9622
|
return /* @__PURE__ */ jsxs("div", { className: "ps-pmv-root", children: [
|
|
9374
9623
|
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-hero", children: [
|
|
9375
|
-
/* @__PURE__ */ jsx("div", { className: "ps-pmv-hero-
|
|
9376
|
-
|
|
9377
|
-
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "7", r: "4" })
|
|
9378
|
-
] }) }),
|
|
9379
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-hero-info", children: [
|
|
9380
|
-
/* @__PURE__ */ jsx("div", { className: "ps-pmv-hero-eyebrow", children: isActive ? t("ACTIVE PROFILE") : profile.gender === "female" ? t("WOMEN'S FIT") : t("MEN'S FIT") }),
|
|
9381
|
-
/* @__PURE__ */ jsx("h2", { className: "ps-pmv-hero-name", children: profile.name })
|
|
9382
|
-
] })
|
|
9624
|
+
/* @__PURE__ */ jsx("div", { className: "ps-pmv-hero-eyebrow", children: isActive ? t("ACTIVE PROFILE") : profile.gender === "female" ? t("WOMEN'S FIT") : t("MEN'S FIT") }),
|
|
9625
|
+
/* @__PURE__ */ jsx("h2", { className: "ps-pmv-hero-name", children: profile.name })
|
|
9383
9626
|
] }),
|
|
9384
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-
|
|
9385
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-
|
|
9386
|
-
/* @__PURE__ */ jsx(
|
|
9387
|
-
/* @__PURE__ */ jsx("div", { className: "ps-pmv-
|
|
9388
|
-
] }),
|
|
9389
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-basic", children: [
|
|
9390
|
-
/* @__PURE__ */ jsx("div", { className: "ps-pmv-basic-label", children: t("WEIGHT") }),
|
|
9391
|
-
/* @__PURE__ */ jsx("div", { className: "ps-pmv-basic-value", children: weightDisplay })
|
|
9627
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-split", children: [
|
|
9628
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-diagram", children: [
|
|
9629
|
+
/* @__PURE__ */ jsx(BodyDiagram, { female: profile.gender === "female" }),
|
|
9630
|
+
/* @__PURE__ */ jsx("div", { className: "ps-pmv-diagram-caption", children: t("Reference figure") })
|
|
9392
9631
|
] }),
|
|
9393
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-
|
|
9394
|
-
/* @__PURE__ */
|
|
9395
|
-
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9402
|
-
|
|
9403
|
-
/* @__PURE__ */ jsx("span", { className: "ps-pmv-
|
|
9404
|
-
|
|
9632
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-data", children: [
|
|
9633
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-basics", children: [
|
|
9634
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-basic-row", children: [
|
|
9635
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-icon", children: /* @__PURE__ */ jsx(HeightIcon, {}) }),
|
|
9636
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-label", children: t("HEIGHT") }),
|
|
9637
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-value", children: heightDisplay })
|
|
9638
|
+
] }),
|
|
9639
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-basic-row", children: [
|
|
9640
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-icon", children: /* @__PURE__ */ jsx(WeightIcon, {}) }),
|
|
9641
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-label", children: t("WEIGHT") }),
|
|
9642
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-value", children: weightDisplay })
|
|
9643
|
+
] }),
|
|
9644
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-basic-row", children: [
|
|
9645
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-icon", children: /* @__PURE__ */ jsx(AgeIcon, {}) }),
|
|
9646
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-label", children: t("AGE") }),
|
|
9647
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-basic-value", children: ageDisplay })
|
|
9405
9648
|
] })
|
|
9406
9649
|
] }),
|
|
9407
|
-
/* @__PURE__ */
|
|
9408
|
-
|
|
9409
|
-
|
|
9410
|
-
|
|
9411
|
-
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9427
|
-
|
|
9428
|
-
|
|
9650
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-section", children: [
|
|
9651
|
+
/* @__PURE__ */ jsx("div", { className: "ps-pmv-section-head", children: /* @__PURE__ */ jsxs("div", { className: "ps-pmv-section-title-row", children: [
|
|
9652
|
+
/* @__PURE__ */ jsx("div", { className: "ps-pmv-section-title", children: t("BODY MEASUREMENTS") }),
|
|
9653
|
+
!hasMeasurements && /* @__PURE__ */ jsxs("div", { className: "ps-pmv-loading-pill", children: [
|
|
9654
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-loading-spinner" }),
|
|
9655
|
+
/* @__PURE__ */ jsx("span", { children: t("Calculating...") })
|
|
9656
|
+
] })
|
|
9657
|
+
] }) }),
|
|
9658
|
+
/* @__PURE__ */ jsx("div", { className: "ps-pmv-measure-list", children: fields.map((f) => {
|
|
9659
|
+
const v = measurements[f.key];
|
|
9660
|
+
const Icon = f.Icon;
|
|
9661
|
+
return /* @__PURE__ */ jsxs("div", { className: `ps-pmv-measure-row${v == null && !editing ? " ps-loading" : ""}${editing ? " ps-editing" : ""}`, children: [
|
|
9662
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-measure-icon", children: /* @__PURE__ */ jsx(Icon, {}) }),
|
|
9663
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-measure-label", children: t(f.label) }),
|
|
9664
|
+
editing ? /* @__PURE__ */ jsxs("div", { className: "ps-pmv-measure-edit", children: [
|
|
9665
|
+
/* @__PURE__ */ jsx(
|
|
9666
|
+
"input",
|
|
9667
|
+
{
|
|
9668
|
+
type: "number",
|
|
9669
|
+
inputMode: "decimal",
|
|
9670
|
+
className: "ps-pmv-measure-input",
|
|
9671
|
+
value: draft[f.key] ?? "",
|
|
9672
|
+
placeholder: "—",
|
|
9673
|
+
onChange: (e) => handleDraftChange(f.key, e.target.value)
|
|
9674
|
+
}
|
|
9675
|
+
),
|
|
9676
|
+
/* @__PURE__ */ jsx("span", { className: "ps-pmv-measure-input-unit", children: unit })
|
|
9677
|
+
] }) : /* @__PURE__ */ jsx("span", { className: `ps-pmv-measure-value${v == null ? " ps-loading" : ""}`, children: v != null ? `${Math.round(v * 10) / 10} ${unit}` : "—" })
|
|
9678
|
+
] }, f.key);
|
|
9679
|
+
}) })
|
|
9680
|
+
] })
|
|
9681
|
+
] })
|
|
9429
9682
|
] }),
|
|
9430
9683
|
/* @__PURE__ */ jsxs("div", { className: "ps-pmv-actions", children: [
|
|
9431
9684
|
/* @__PURE__ */ jsx("button", { type: "button", className: "ps-pmv-btn-secondary", onClick: editing ? handleEditCancel : onBack, children: editing ? t("Cancel") : t("Back") }),
|