@primestyleai/tryon 5.10.187 → 5.10.189
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/api-client.d.ts +6 -0
- package/dist/{index-CYT0nGWX.js → index-BlzviBfP.js} +101 -110
- package/dist/index-BlzviBfP.js.map +1 -0
- package/dist/primestyle-tryon.js +2 -2
- package/dist/react/PrimeStyleTryonInner.d.ts +1 -1
- package/dist/react/icons.d.ts +6 -0
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.js +7003 -6216
- package/dist/react/index.js.map +1 -1
- package/dist/react/styles.d.ts +1 -1
- package/dist/react/types.d.ts +23 -0
- package/dist/react/usePrimeStyleSize.d.ts +2 -0
- package/dist/react/utils/storage.d.ts +2 -0
- package/dist/react/views/BodyProfileView.d.ts +6 -1
- package/dist/react/views/CreateProfileWizard.d.ts +3 -1
- package/dist/react/views/MultiSectionMobile.d.ts +3 -1
- package/dist/react/views/NoChartView.d.ts +2 -1
- package/dist/react/views/PhotoStepMobile.d.ts +2 -1
- package/dist/react/views/SizeResultView.d.ts +7 -1
- package/dist/storefront/primestyle-tryon.js +1585 -638
- package/package.json +1 -1
- package/dist/index-CYT0nGWX.js.map +0 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface TryOnContext {
|
|
|
3
3
|
/** Storefront product the customer is currently viewing — shown in analytics. */
|
|
4
4
|
productId?: string;
|
|
5
5
|
productTitle?: string;
|
|
6
|
+
productCategory?: string;
|
|
7
|
+
productSubcategory?: string;
|
|
6
8
|
productFitType?: string;
|
|
7
9
|
productType?: string;
|
|
8
10
|
productTags?: string[];
|
|
@@ -13,6 +15,10 @@ export interface TryOnContext {
|
|
|
13
15
|
* — forwarded to the prompt so Gemini drapes the fabric correctly without
|
|
14
16
|
* having to guess from the image alone. */
|
|
15
17
|
productMaterial?: string;
|
|
18
|
+
/** Optional clean product/detail image. The backend sends it to Gemini as an
|
|
19
|
+
* additional design reference while `garmentImage` remains the worn/model
|
|
20
|
+
* styling reference. */
|
|
21
|
+
garmentDetailImage?: string;
|
|
16
22
|
/** Optional silhouette-prompt context forwarded to the backend Gemini try-on
|
|
17
23
|
* call. Enables doc-example-grade fit reasoning ("X tension at button
|
|
18
24
|
* because waist 54.4 exceeds size 50 drop"). All fields optional. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const f = "ps_session";
|
|
3
|
+
const A = "ps_mem_";
|
|
4
4
|
let S = null;
|
|
5
5
|
function E() {
|
|
6
6
|
try {
|
|
@@ -9,20 +9,20 @@ function E() {
|
|
|
9
9
|
return !1;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function P() {
|
|
13
13
|
if (typeof crypto < "u" && typeof crypto.randomUUID == "function")
|
|
14
14
|
return crypto.randomUUID();
|
|
15
|
-
const
|
|
16
|
-
let e =
|
|
17
|
-
for (let o = 0; o < 32; o++) e +=
|
|
15
|
+
const r = "0123456789abcdef";
|
|
16
|
+
let e = A;
|
|
17
|
+
for (let o = 0; o < 32; o++) e += r[Math.floor(Math.random() * 16)];
|
|
18
18
|
return e;
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function I() {
|
|
21
21
|
if (!E()) return S;
|
|
22
22
|
try {
|
|
23
|
-
const
|
|
24
|
-
if (!
|
|
25
|
-
const e = JSON.parse(
|
|
23
|
+
const r = window.localStorage.getItem(f);
|
|
24
|
+
if (!r) return null;
|
|
25
|
+
const e = JSON.parse(r);
|
|
26
26
|
return typeof e.id != "string" || typeof e.issuedAt != "number" ? null : {
|
|
27
27
|
id: e.id,
|
|
28
28
|
issuedAt: e.issuedAt,
|
|
@@ -32,43 +32,43 @@ function T() {
|
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
if (S =
|
|
35
|
+
function g(r) {
|
|
36
|
+
if (S = r, !!E())
|
|
37
37
|
try {
|
|
38
|
-
window.localStorage.setItem(
|
|
38
|
+
window.localStorage.setItem(f, JSON.stringify(r));
|
|
39
39
|
} catch {
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
function
|
|
43
|
-
const
|
|
44
|
-
if (e &&
|
|
45
|
-
return
|
|
46
|
-
const o = { id:
|
|
47
|
-
return
|
|
42
|
+
function p() {
|
|
43
|
+
const r = Date.now(), e = I();
|
|
44
|
+
if (e && r - e.lastSeenAt < 2592e6)
|
|
45
|
+
return r - e.lastSeenAt > 5 * 60 * 1e3 && g({ ...e, lastSeenAt: r }), e.id;
|
|
46
|
+
const o = { id: P(), issuedAt: r, lastSeenAt: r };
|
|
47
|
+
return g(o), o.id;
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function y() {
|
|
50
50
|
if (typeof navigator > "u") return null;
|
|
51
|
-
const
|
|
52
|
-
return /ipad|tablet|(android(?!.*mobile))/.test(
|
|
51
|
+
const r = (navigator.userAgent || "").toLowerCase();
|
|
52
|
+
return /ipad|tablet|(android(?!.*mobile))/.test(r) ? "tablet" : /mobile|android|iphone|ipod|blackberry|iemobile|opera mini/.test(r) ? "mobile" : "desktop";
|
|
53
53
|
}
|
|
54
|
-
const
|
|
54
|
+
const T = "http://localhost:4000";
|
|
55
55
|
class W {
|
|
56
56
|
constructor(e, o) {
|
|
57
|
-
this.apiKey = e || void 0, this.baseUrl = (o ||
|
|
57
|
+
this.apiKey = e || void 0, this.baseUrl = (o || T).replace(/\/+$/, "");
|
|
58
58
|
}
|
|
59
59
|
get headers() {
|
|
60
|
-
return
|
|
60
|
+
return w(this.apiKey);
|
|
61
61
|
}
|
|
62
|
-
async submitTryOn(e, o, a, s,
|
|
62
|
+
async submitTryOn(e, o, a, s, t) {
|
|
63
63
|
const i = {
|
|
64
64
|
garmentImage: o,
|
|
65
65
|
// Attribution fields — backend logs these into the TryOnEvent collection
|
|
66
66
|
// so non-technical operators can answer "which products are being tried on
|
|
67
67
|
// and by how many customers". Safe fallbacks when absent.
|
|
68
|
-
sessionId:
|
|
69
|
-
deviceHint:
|
|
68
|
+
sessionId: p(),
|
|
69
|
+
deviceHint: y()
|
|
70
70
|
};
|
|
71
|
-
if (
|
|
71
|
+
if (t?.modelImageId && (i.modelImageId = t.modelImageId), e && (i.modelImage = e), a && a.length > 0 && (i.fitInfo = a), s && s !== "apparel" && (i.category = s), t?.productId && (i.productId = t.productId), t?.productTitle && (i.productTitle = t.productTitle), t?.productCategory && (i.productCategory = t.productCategory), t?.productSubcategory && (i.productSubcategory = t.productSubcategory), t?.productFitType && (i.productFitType = t.productFitType), t?.productType && (i.productType = t.productType), t?.productTags?.length && (i.productTags = t.productTags), t?.productDescription && (i.productDescription = t.productDescription), t?.productMaterial && (i.productMaterial = t.productMaterial), t?.garmentDetailImage && t.garmentDetailImage !== o && (i.garmentDetailImage = t.garmentDetailImage), t?.silhouetteContext && (i.silhouetteContext = t.silhouetteContext), t?.editFromPrevious && (i.editFromPrevious = !0), a && a.length > 0)
|
|
72
72
|
for (const n of a) {
|
|
73
73
|
const l = (n.garmentRange || "").replace(/[^\d.\-–]/g, " ").trim().split(/[\s\-–]+/).filter(Boolean).map(Number).filter((u) => !isNaN(u));
|
|
74
74
|
if (l.length && n.userValue != null) {
|
|
@@ -112,8 +112,8 @@ class W {
|
|
|
112
112
|
headers: this.headers,
|
|
113
113
|
body: JSON.stringify({
|
|
114
114
|
...e,
|
|
115
|
-
sessionId:
|
|
116
|
-
deviceHint:
|
|
115
|
+
sessionId: p(),
|
|
116
|
+
deviceHint: y()
|
|
117
117
|
})
|
|
118
118
|
});
|
|
119
119
|
if (!o.ok) {
|
|
@@ -130,9 +130,9 @@ class W {
|
|
|
130
130
|
return this.apiKey ? `${e}?key=${encodeURIComponent(this.apiKey)}` : e;
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function w(r) {
|
|
134
134
|
const e = { "Content-Type": "application/json" };
|
|
135
|
-
return
|
|
135
|
+
return r && (e.Authorization = `Bearer ${r}`), e;
|
|
136
136
|
}
|
|
137
137
|
class h extends Error {
|
|
138
138
|
constructor(e, o) {
|
|
@@ -190,10 +190,10 @@ class Y {
|
|
|
190
190
|
this.reconnectTimer && (clearTimeout(this.reconnectTimer), this.reconnectTimer = null), this.eventSource && (this.eventSource.close(), this.eventSource = null), this.listeners.clear(), this.reconnectAttempts = 0;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
const
|
|
194
|
-
function
|
|
195
|
-
const o = e.maxDimension ??
|
|
196
|
-
return new Promise((s,
|
|
193
|
+
const v = 512, C = 0.65;
|
|
194
|
+
function z(r, e = {}) {
|
|
195
|
+
const o = e.maxDimension ?? v, a = e.quality ?? C;
|
|
196
|
+
return new Promise((s, t) => {
|
|
197
197
|
const i = new FileReader();
|
|
198
198
|
i.onload = () => {
|
|
199
199
|
const d = new Image();
|
|
@@ -204,25 +204,25 @@ function U(t, e = {}) {
|
|
|
204
204
|
(l > o || u > o) && (l > u ? (u = Math.round(u * o / l), l = o) : (l = Math.round(l * o / u), u = o)), n.width = l, n.height = u;
|
|
205
205
|
const m = n.getContext("2d");
|
|
206
206
|
if (!m) {
|
|
207
|
-
|
|
207
|
+
t(new Error("Canvas context not available"));
|
|
208
208
|
return;
|
|
209
209
|
}
|
|
210
210
|
m.drawImage(d, 0, 0, l, u);
|
|
211
211
|
const b = n.toDataURL("image/jpeg", a);
|
|
212
212
|
s(b);
|
|
213
213
|
} catch (n) {
|
|
214
|
-
|
|
214
|
+
t(n);
|
|
215
215
|
}
|
|
216
|
-
}, d.onerror = () =>
|
|
217
|
-
}, i.onerror = () =>
|
|
216
|
+
}, d.onerror = () => t(new Error("Failed to load image")), d.src = i.result;
|
|
217
|
+
}, i.onerror = () => t(new Error("Failed to read file")), i.readAsDataURL(r);
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
|
-
function F(
|
|
221
|
-
return ["image/jpeg", "image/png", "image/webp", "image/avif"].includes(
|
|
220
|
+
function F(r) {
|
|
221
|
+
return ["image/jpeg", "image/png", "image/webp", "image/avif"].includes(r.type);
|
|
222
222
|
}
|
|
223
|
-
async function
|
|
223
|
+
async function K(r, e, o) {
|
|
224
224
|
try {
|
|
225
|
-
const a = typeof
|
|
225
|
+
const a = typeof r == "string" ? r : await z(r, { maxDimension: 384, quality: 0.6 }), s = await fetch(`${e}/api/v1/sizing/age-check`, {
|
|
226
226
|
method: "POST",
|
|
227
227
|
headers: {
|
|
228
228
|
"Content-Type": "application/json",
|
|
@@ -232,27 +232,27 @@ async function j(t, e, o) {
|
|
|
232
232
|
});
|
|
233
233
|
if (!s.ok)
|
|
234
234
|
return { isAdult: !0, confidence: "low" };
|
|
235
|
-
const
|
|
235
|
+
const t = await s.json();
|
|
236
236
|
return {
|
|
237
|
-
isAdult:
|
|
237
|
+
isAdult: t?.isAdult !== !1,
|
|
238
238
|
// anything other than explicit false → allow
|
|
239
|
-
confidence:
|
|
240
|
-
detectedGender:
|
|
241
|
-
reasoning: typeof
|
|
239
|
+
confidence: t?.confidence === "high" ? "high" : "low",
|
|
240
|
+
detectedGender: t?.detectedGender === "male" || t?.detectedGender === "female" || t?.detectedGender === "unknown" ? t.detectedGender : void 0,
|
|
241
|
+
reasoning: typeof t?.reasoning == "string" ? t.reasoning : void 0
|
|
242
242
|
};
|
|
243
243
|
} catch {
|
|
244
244
|
return { isAdult: !0, confidence: "low" };
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
const c = {};
|
|
248
|
-
function
|
|
249
|
-
c[
|
|
248
|
+
function U(r, e) {
|
|
249
|
+
c[r] = { ...c[r] || {}, ...e };
|
|
250
250
|
}
|
|
251
|
-
function
|
|
252
|
-
const e =
|
|
251
|
+
function V(r) {
|
|
252
|
+
const e = r?.toLowerCase().split("-")[0] || "en";
|
|
253
253
|
return (o) => e === "en" || !c[e] ? o : c[e][o] ?? o;
|
|
254
254
|
}
|
|
255
|
-
function
|
|
255
|
+
function j() {
|
|
256
256
|
return typeof navigator > "u" ? "en" : (navigator.language || navigator.userLanguage || "en").split("-")[0].toLowerCase();
|
|
257
257
|
}
|
|
258
258
|
const J = [
|
|
@@ -277,14 +277,14 @@ const J = [
|
|
|
277
277
|
zh: "中文",
|
|
278
278
|
ko: "한국어",
|
|
279
279
|
ar: "العربية"
|
|
280
|
-
},
|
|
280
|
+
}, Z = [
|
|
281
281
|
"Virtual Try-On",
|
|
282
282
|
"Find Your Size & See It On You",
|
|
283
283
|
"See Your Fit",
|
|
284
284
|
"Your fit basics are saved",
|
|
285
285
|
"Add one profile photo to reuse your measurements across PrimeStyleAI products.",
|
|
286
286
|
"Complete Profile",
|
|
287
|
-
"
|
|
287
|
+
"Check your size, then try it on virtually",
|
|
288
288
|
"Get Your Size",
|
|
289
289
|
"Instant fit recommendation",
|
|
290
290
|
"Try It On",
|
|
@@ -318,7 +318,7 @@ const J = [
|
|
|
318
318
|
"Size guide",
|
|
319
319
|
"Your fit",
|
|
320
320
|
"Your measure",
|
|
321
|
-
"
|
|
321
|
+
"within range",
|
|
322
322
|
"within range",
|
|
323
323
|
"too tight",
|
|
324
324
|
"tight",
|
|
@@ -432,8 +432,8 @@ const J = [
|
|
|
432
432
|
"Loose",
|
|
433
433
|
"Short",
|
|
434
434
|
"Long",
|
|
435
|
-
"
|
|
436
|
-
"
|
|
435
|
+
"Recommended",
|
|
436
|
+
"Within range",
|
|
437
437
|
"Within range",
|
|
438
438
|
"WITHIN RANGE",
|
|
439
439
|
"✓ Fit",
|
|
@@ -442,7 +442,7 @@ const J = [
|
|
|
442
442
|
"loose",
|
|
443
443
|
"short",
|
|
444
444
|
"long",
|
|
445
|
-
"
|
|
445
|
+
"within range",
|
|
446
446
|
"within range",
|
|
447
447
|
"too tight",
|
|
448
448
|
"a bit tight",
|
|
@@ -467,7 +467,7 @@ const J = [
|
|
|
467
467
|
"Virtual Try-On": "Probador Virtual",
|
|
468
468
|
"Find Your Size & See It On You": "Encuentra tu talla y pruébatelo",
|
|
469
469
|
"See Your Fit": "Ver tu ajuste",
|
|
470
|
-
"
|
|
470
|
+
"Check your size, then try it on virtually": "Comprueba tu talla y pruébatelo virtualmente",
|
|
471
471
|
"Get Your Size": "Tu talla",
|
|
472
472
|
"Instant fit recommendation": "Recomendación de ajuste instantánea",
|
|
473
473
|
"Try It On": "Pruébatelo",
|
|
@@ -502,8 +502,9 @@ const J = [
|
|
|
502
502
|
"Edit measurements": "Editar medidas",
|
|
503
503
|
"Size guide": "Guía de tallas",
|
|
504
504
|
"Your fit": "Tu ajuste",
|
|
505
|
+
"Your Size Recommendation": "Tu recomendación de talla",
|
|
505
506
|
"Your measure": "Tu medida",
|
|
506
|
-
"
|
|
507
|
+
"within range": "dentro del rango",
|
|
507
508
|
"too tight": "demasiado ajustado",
|
|
508
509
|
tight: "ajustado",
|
|
509
510
|
"a bit tight": "un poco ajustado",
|
|
@@ -606,8 +607,6 @@ const J = [
|
|
|
606
607
|
Loose: "Holgado",
|
|
607
608
|
Short: "Corto",
|
|
608
609
|
Long: "Largo",
|
|
609
|
-
Perfect: "Perfecto",
|
|
610
|
-
"Perfect fit": "Ajuste perfecto",
|
|
611
610
|
"✓ Fit": "✓ Ajuste",
|
|
612
611
|
"too short": "demasiado corto",
|
|
613
612
|
"too long": "demasiado largo",
|
|
@@ -723,7 +722,7 @@ const J = [
|
|
|
723
722
|
"Virtual Try-On": "Essayage Virtuel",
|
|
724
723
|
"Find Your Size & See It On You": "Trouvez votre taille et essayez-le",
|
|
725
724
|
"See Your Fit": "Voir votre ajustement",
|
|
726
|
-
"
|
|
725
|
+
"Check your size, then try it on virtually": "Vérifiez votre taille, puis essayez-le virtuellement",
|
|
727
726
|
"Get Your Size": "Votre taille",
|
|
728
727
|
"Instant fit recommendation": "Recommandation de coupe instantanée",
|
|
729
728
|
"Try It On": "Essayer",
|
|
@@ -758,8 +757,9 @@ const J = [
|
|
|
758
757
|
"Edit measurements": "Modifier les mesures",
|
|
759
758
|
"Size guide": "Guide des tailles",
|
|
760
759
|
"Your fit": "Votre coupe",
|
|
760
|
+
"Your Size Recommendation": "Votre recommandation de taille",
|
|
761
761
|
"Your measure": "Votre mesure",
|
|
762
|
-
"
|
|
762
|
+
"within range": "dans la plage",
|
|
763
763
|
"too tight": "trop serré",
|
|
764
764
|
tight: "serré",
|
|
765
765
|
"a bit tight": "un peu serré",
|
|
@@ -862,8 +862,6 @@ const J = [
|
|
|
862
862
|
Loose: "Lâche",
|
|
863
863
|
Short: "Court",
|
|
864
864
|
Long: "Long",
|
|
865
|
-
Perfect: "Parfait",
|
|
866
|
-
"Perfect fit": "Ajustement parfait",
|
|
867
865
|
"✓ Fit": "✓ Ajusté",
|
|
868
866
|
"too short": "trop court",
|
|
869
867
|
"too long": "trop long",
|
|
@@ -979,7 +977,7 @@ const J = [
|
|
|
979
977
|
"Virtual Try-On": "Virtuelle Anprobe",
|
|
980
978
|
"Find Your Size & See It On You": "Finden Sie Ihre Größe und probieren Sie es an",
|
|
981
979
|
"See Your Fit": "Ihre Passform ansehen",
|
|
982
|
-
"
|
|
980
|
+
"Check your size, then try it on virtually": "Prüfen Sie Ihre Größe und probieren Sie es virtuell an",
|
|
983
981
|
"Get Your Size": "Ihre Größe",
|
|
984
982
|
"Instant fit recommendation": "Sofortige Passformempfehlung",
|
|
985
983
|
"Try It On": "Anprobieren",
|
|
@@ -1014,8 +1012,9 @@ const J = [
|
|
|
1014
1012
|
"Edit measurements": "Maße bearbeiten",
|
|
1015
1013
|
"Size guide": "Größentabelle",
|
|
1016
1014
|
"Your fit": "Ihre Passform",
|
|
1015
|
+
"Your Size Recommendation": "Ihre Größenempfehlung",
|
|
1017
1016
|
"Your measure": "Ihr Maß",
|
|
1018
|
-
"
|
|
1017
|
+
"within range": "im Bereich",
|
|
1019
1018
|
"too tight": "zu eng",
|
|
1020
1019
|
tight: "eng",
|
|
1021
1020
|
"a bit tight": "etwas eng",
|
|
@@ -1118,8 +1117,6 @@ const J = [
|
|
|
1118
1117
|
Loose: "Locker",
|
|
1119
1118
|
Short: "Kurz",
|
|
1120
1119
|
Long: "Lang",
|
|
1121
|
-
Perfect: "Perfekt",
|
|
1122
|
-
"Perfect fit": "Perfekte Passform",
|
|
1123
1120
|
"✓ Fit": "✓ Passt",
|
|
1124
1121
|
"too short": "zu kurz",
|
|
1125
1122
|
"too long": "zu lang",
|
|
@@ -1235,7 +1232,7 @@ const J = [
|
|
|
1235
1232
|
"Virtual Try-On": "Prova Virtuale",
|
|
1236
1233
|
"Find Your Size & See It On You": "Trova la tua taglia e provalo",
|
|
1237
1234
|
"See Your Fit": "Vedi la vestibilità",
|
|
1238
|
-
"
|
|
1235
|
+
"Check your size, then try it on virtually": "Controlla la tua taglia, poi provalo virtualmente",
|
|
1239
1236
|
"Get Your Size": "La tua taglia",
|
|
1240
1237
|
"Instant fit recommendation": "Raccomandazione vestibilità istantanea",
|
|
1241
1238
|
"Try It On": "Provalo",
|
|
@@ -1270,8 +1267,9 @@ const J = [
|
|
|
1270
1267
|
"Edit measurements": "Modifica misure",
|
|
1271
1268
|
"Size guide": "Guida alle taglie",
|
|
1272
1269
|
"Your fit": "La tua vestibilità",
|
|
1270
|
+
"Your Size Recommendation": "La tua taglia consigliata",
|
|
1273
1271
|
"Your measure": "La tua misura",
|
|
1274
|
-
"
|
|
1272
|
+
"within range": "entro l'intervallo",
|
|
1275
1273
|
"too tight": "troppo stretto",
|
|
1276
1274
|
tight: "stretto",
|
|
1277
1275
|
"a bit tight": "un po' stretto",
|
|
@@ -1374,8 +1372,6 @@ const J = [
|
|
|
1374
1372
|
Loose: "Largo",
|
|
1375
1373
|
Short: "Corto",
|
|
1376
1374
|
Long: "Lungo",
|
|
1377
|
-
Perfect: "Perfetto",
|
|
1378
|
-
"Perfect fit": "Vestibilità perfetta",
|
|
1379
1375
|
"✓ Fit": "✓ Adatto",
|
|
1380
1376
|
"too short": "troppo corto",
|
|
1381
1377
|
"too long": "troppo lungo",
|
|
@@ -1491,7 +1487,7 @@ const J = [
|
|
|
1491
1487
|
"Virtual Try-On": "Provador Virtual",
|
|
1492
1488
|
"Find Your Size & See It On You": "Encontre seu tamanho e experimente",
|
|
1493
1489
|
"See Your Fit": "Veja seu ajuste",
|
|
1494
|
-
"
|
|
1490
|
+
"Check your size, then try it on virtually": "Confira seu tamanho e experimente virtualmente",
|
|
1495
1491
|
"Get Your Size": "Seu tamanho",
|
|
1496
1492
|
"Instant fit recommendation": "Recomendação de caimento instantânea",
|
|
1497
1493
|
"Try It On": "Experimentar",
|
|
@@ -1526,8 +1522,9 @@ const J = [
|
|
|
1526
1522
|
"Edit measurements": "Editar medidas",
|
|
1527
1523
|
"Size guide": "Guia de tamanhos",
|
|
1528
1524
|
"Your fit": "Seu caimento",
|
|
1525
|
+
"Your Size Recommendation": "Sua recomendação de tamanho",
|
|
1529
1526
|
"Your measure": "Sua medida",
|
|
1530
|
-
"
|
|
1527
|
+
"within range": "dentro da faixa",
|
|
1531
1528
|
"too tight": "muito apertado",
|
|
1532
1529
|
tight: "apertado",
|
|
1533
1530
|
"a bit tight": "um pouco apertado",
|
|
@@ -1630,8 +1627,6 @@ const J = [
|
|
|
1630
1627
|
Loose: "Folgado",
|
|
1631
1628
|
Short: "Curto",
|
|
1632
1629
|
Long: "Longo",
|
|
1633
|
-
Perfect: "Perfeito",
|
|
1634
|
-
"Perfect fit": "Caimento perfeito",
|
|
1635
1630
|
"✓ Fit": "✓ Caimento",
|
|
1636
1631
|
"too short": "muito curto",
|
|
1637
1632
|
"too long": "muito longo",
|
|
@@ -1747,7 +1742,7 @@ const J = [
|
|
|
1747
1742
|
"Virtual Try-On": "バーチャル試着",
|
|
1748
1743
|
"Find Your Size & See It On You": "あなたのサイズを見つけて試着",
|
|
1749
1744
|
"See Your Fit": "フィット感を見る",
|
|
1750
|
-
"
|
|
1745
|
+
"Check your size, then try it on virtually": "サイズを確認して、バーチャルで試着しましょう",
|
|
1751
1746
|
"Get Your Size": "サイズを確認",
|
|
1752
1747
|
"Instant fit recommendation": "瞬時にフィット提案",
|
|
1753
1748
|
"Try It On": "試着する",
|
|
@@ -1782,8 +1777,9 @@ const J = [
|
|
|
1782
1777
|
"Edit measurements": "寸法を編集",
|
|
1783
1778
|
"Size guide": "サイズガイド",
|
|
1784
1779
|
"Your fit": "あなたのフィット",
|
|
1780
|
+
"Your Size Recommendation": "サイズのおすすめ",
|
|
1785
1781
|
"Your measure": "あなたの寸法",
|
|
1786
|
-
"
|
|
1782
|
+
"within range": "範囲内",
|
|
1787
1783
|
"too tight": "きつすぎる",
|
|
1788
1784
|
tight: "きつい",
|
|
1789
1785
|
"a bit tight": "少しきつい",
|
|
@@ -1886,8 +1882,6 @@ const J = [
|
|
|
1886
1882
|
Loose: "ゆるい",
|
|
1887
1883
|
Short: "短い",
|
|
1888
1884
|
Long: "長い",
|
|
1889
|
-
Perfect: "ぴったり",
|
|
1890
|
-
"Perfect fit": "ぴったりフィット",
|
|
1891
1885
|
"✓ Fit": "✓ フィット",
|
|
1892
1886
|
"too short": "短すぎる",
|
|
1893
1887
|
"too long": "長すぎる",
|
|
@@ -2003,7 +1997,7 @@ const J = [
|
|
|
2003
1997
|
"Virtual Try-On": "虚拟试穿",
|
|
2004
1998
|
"Find Your Size & See It On You": "找到你的尺码并试穿",
|
|
2005
1999
|
"See Your Fit": "查看合身效果",
|
|
2006
|
-
"
|
|
2000
|
+
"Check your size, then try it on virtually": "确认尺码,然后虚拟试穿",
|
|
2007
2001
|
"Get Your Size": "获取尺码",
|
|
2008
2002
|
"Instant fit recommendation": "即时合身推荐",
|
|
2009
2003
|
"Try It On": "试穿",
|
|
@@ -2038,8 +2032,9 @@ const J = [
|
|
|
2038
2032
|
"Edit measurements": "编辑尺寸",
|
|
2039
2033
|
"Size guide": "尺码指南",
|
|
2040
2034
|
"Your fit": "你的合身度",
|
|
2035
|
+
"Your Size Recommendation": "你的尺码建议",
|
|
2041
2036
|
"Your measure": "你的尺寸",
|
|
2042
|
-
"
|
|
2037
|
+
"within range": "在范围内",
|
|
2043
2038
|
"too tight": "太紧",
|
|
2044
2039
|
tight: "偏紧",
|
|
2045
2040
|
"a bit tight": "略紧",
|
|
@@ -2142,8 +2137,6 @@ const J = [
|
|
|
2142
2137
|
Loose: "松",
|
|
2143
2138
|
Short: "短",
|
|
2144
2139
|
Long: "长",
|
|
2145
|
-
Perfect: "完美",
|
|
2146
|
-
"Perfect fit": "完美合身",
|
|
2147
2140
|
"✓ Fit": "✓ 合身",
|
|
2148
2141
|
"too short": "太短",
|
|
2149
2142
|
"too long": "太长",
|
|
@@ -2259,7 +2252,7 @@ const J = [
|
|
|
2259
2252
|
"Virtual Try-On": "가상 피팅",
|
|
2260
2253
|
"Find Your Size & See It On You": "사이즈를 찾고 입어보세요",
|
|
2261
2254
|
"See Your Fit": "핏 확인하기",
|
|
2262
|
-
"
|
|
2255
|
+
"Check your size, then try it on virtually": "사이즈를 확인하고 가상으로 입어보세요",
|
|
2263
2256
|
"Get Your Size": "사이즈 확인",
|
|
2264
2257
|
"Instant fit recommendation": "즉시 핏 추천",
|
|
2265
2258
|
"Try It On": "입어보기",
|
|
@@ -2294,8 +2287,9 @@ const J = [
|
|
|
2294
2287
|
"Edit measurements": "치수 수정",
|
|
2295
2288
|
"Size guide": "사이즈 가이드",
|
|
2296
2289
|
"Your fit": "나의 핏",
|
|
2290
|
+
"Your Size Recommendation": "사이즈 추천",
|
|
2297
2291
|
"Your measure": "내 치수",
|
|
2298
|
-
"
|
|
2292
|
+
"within range": "범위 내",
|
|
2299
2293
|
"too tight": "너무 타이트",
|
|
2300
2294
|
tight: "타이트",
|
|
2301
2295
|
"a bit tight": "약간 타이트",
|
|
@@ -2398,8 +2392,6 @@ const J = [
|
|
|
2398
2392
|
Loose: "헐렁한",
|
|
2399
2393
|
Short: "짧은",
|
|
2400
2394
|
Long: "긴",
|
|
2401
|
-
Perfect: "완벽",
|
|
2402
|
-
"Perfect fit": "완벽한 핏",
|
|
2403
2395
|
"✓ Fit": "✓ 적합",
|
|
2404
2396
|
"too short": "너무 짧음",
|
|
2405
2397
|
"too long": "너무 김",
|
|
@@ -2515,7 +2507,7 @@ const J = [
|
|
|
2515
2507
|
"Virtual Try-On": "تجربة افتراضية",
|
|
2516
2508
|
"Find Your Size & See It On You": "اعثر على مقاسك وجرّبه",
|
|
2517
2509
|
"See Your Fit": "شاهد الملاءمة",
|
|
2518
|
-
"
|
|
2510
|
+
"Check your size, then try it on virtually": "تحقق من مقاسك ثم جرّبه افتراضياً",
|
|
2519
2511
|
"Get Your Size": "مقاسك",
|
|
2520
2512
|
"Instant fit recommendation": "توصية فورية بالمقاس",
|
|
2521
2513
|
"Try It On": "جرّبه",
|
|
@@ -2550,8 +2542,9 @@ const J = [
|
|
|
2550
2542
|
"Edit measurements": "تعديل القياسات",
|
|
2551
2543
|
"Size guide": "دليل المقاسات",
|
|
2552
2544
|
"Your fit": "ملاءمتك",
|
|
2545
|
+
"Your Size Recommendation": "توصية المقاس",
|
|
2553
2546
|
"Your measure": "قياسك",
|
|
2554
|
-
"
|
|
2547
|
+
"within range": "ضمن النطاق",
|
|
2555
2548
|
"too tight": "ضيق جداً",
|
|
2556
2549
|
tight: "ضيق",
|
|
2557
2550
|
"a bit tight": "ضيق قليلاً",
|
|
@@ -2654,8 +2647,6 @@ const J = [
|
|
|
2654
2647
|
Loose: "فضفاض",
|
|
2655
2648
|
Short: "قصير",
|
|
2656
2649
|
Long: "طويل",
|
|
2657
|
-
Perfect: "مثالي",
|
|
2658
|
-
"Perfect fit": "مقاس مثالي",
|
|
2659
2650
|
"✓ Fit": "✓ مناسب",
|
|
2660
2651
|
"too short": "قصير جداً",
|
|
2661
2652
|
"too long": "طويل جداً",
|
|
@@ -2778,23 +2769,23 @@ const J = [
|
|
|
2778
2769
|
ko: L,
|
|
2779
2770
|
ar: G
|
|
2780
2771
|
};
|
|
2781
|
-
for (const [
|
|
2782
|
-
|
|
2772
|
+
for (const [r, e] of Object.entries(O))
|
|
2773
|
+
U(r, e);
|
|
2783
2774
|
export {
|
|
2784
2775
|
W as A,
|
|
2785
2776
|
q as L,
|
|
2786
2777
|
h as P,
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2778
|
+
J as S,
|
|
2779
|
+
Z as T,
|
|
2780
|
+
Y as a,
|
|
2781
|
+
z as b,
|
|
2791
2782
|
K as c,
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
f,
|
|
2795
|
-
g,
|
|
2783
|
+
V as d,
|
|
2784
|
+
j as e,
|
|
2785
|
+
p as f,
|
|
2786
|
+
y as g,
|
|
2796
2787
|
F as i,
|
|
2797
|
-
|
|
2798
|
-
|
|
2788
|
+
w as j,
|
|
2789
|
+
U as r
|
|
2799
2790
|
};
|
|
2800
|
-
//# sourceMappingURL=index-
|
|
2791
|
+
//# sourceMappingURL=index-BlzviBfP.js.map
|