@primestyleai/tryon 3.4.2 → 3.5.1
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/README.md +433 -433
- package/dist/react/index.js +254 -75
- package/logo.svg +46 -46
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -21,6 +21,22 @@ function lsSet(key, value) {
|
|
|
21
21
|
} catch {
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
const FALLBACK_FIELDS_FEMALE = [
|
|
25
|
+
{ key: "bust", label: "Bust", required: true, unit: "cm", placeholder: "e.g. 88", category: "body" },
|
|
26
|
+
{ key: "waist", label: "Waist", required: true, unit: "cm", placeholder: "e.g. 70", category: "body" },
|
|
27
|
+
{ key: "hips", label: "Hips", required: true, unit: "cm", placeholder: "e.g. 96", category: "body" },
|
|
28
|
+
{ key: "shoulderWidth", label: "Shoulders", required: false, unit: "cm", placeholder: "e.g. 39", category: "body" },
|
|
29
|
+
{ key: "inseam", label: "Inseam", required: false, unit: "cm", placeholder: "e.g. 76", category: "body" },
|
|
30
|
+
{ key: "footLengthCm", label: "Foot length", required: false, unit: "cm", placeholder: "e.g. 24", category: "shoe" }
|
|
31
|
+
];
|
|
32
|
+
const FALLBACK_FIELDS_MALE = [
|
|
33
|
+
{ key: "chest", label: "Chest", required: true, unit: "cm", placeholder: "e.g. 104", category: "body" },
|
|
34
|
+
{ key: "waist", label: "Waist", required: true, unit: "cm", placeholder: "e.g. 84", category: "body" },
|
|
35
|
+
{ key: "shoulderWidth", label: "Shoulders", required: false, unit: "cm", placeholder: "e.g. 46", category: "body" },
|
|
36
|
+
{ key: "sleeveLength", label: "Sleeve", required: false, unit: "cm", placeholder: "e.g. 64", category: "body" },
|
|
37
|
+
{ key: "inseam", label: "Inseam", required: false, unit: "cm", placeholder: "e.g. 81", category: "body" },
|
|
38
|
+
{ key: "footLengthCm", label: "Foot length", required: false, unit: "cm", placeholder: "e.g. 27", category: "shoe" }
|
|
39
|
+
];
|
|
24
40
|
const SIZING_COUNTRIES = [
|
|
25
41
|
{ code: "US", label: "United States" },
|
|
26
42
|
{ code: "UK", label: "United Kingdom" },
|
|
@@ -425,6 +441,12 @@ function PrimeStyleTryonInner({
|
|
|
425
441
|
}
|
|
426
442
|
}
|
|
427
443
|
}, [onComplete, onError, cleanupJob]);
|
|
444
|
+
const dynamicFields = useMemo(() => {
|
|
445
|
+
if (sizeGuide?.found && sizeGuide.requiredFields && sizeGuide.requiredFields.length > 0) {
|
|
446
|
+
return sizeGuide.requiredFields;
|
|
447
|
+
}
|
|
448
|
+
return formGender === "female" ? FALLBACK_FIELDS_FEMALE : FALLBACK_FIELDS_MALE;
|
|
449
|
+
}, [sizeGuide, formGender]);
|
|
428
450
|
const submitSizing = useCallback(async () => {
|
|
429
451
|
if (!apiRef.current) return;
|
|
430
452
|
const baseUrl = getApiUrl(apiUrl);
|
|
@@ -435,10 +457,17 @@ function PrimeStyleTryonInner({
|
|
|
435
457
|
product: { title: productTitle, description: "", variants: [] }
|
|
436
458
|
};
|
|
437
459
|
if (sizeGuide?.found) payload.sizeGuide = sizeGuide;
|
|
460
|
+
payload.sizingUnit = sizingUnit;
|
|
438
461
|
if (sizingMethod === "exact") {
|
|
439
|
-
const m = { gender: formRef.current.gender || "male" };
|
|
440
|
-
const
|
|
441
|
-
for (const
|
|
462
|
+
const m = { gender: formRef.current.gender || "male", sizingUnit };
|
|
463
|
+
const numericKeys = /* @__PURE__ */ new Set();
|
|
464
|
+
for (const f of dynamicFields) {
|
|
465
|
+
if (f.unit !== "size" && !["shoeEU", "shoeUS", "shoeUK"].includes(f.key)) numericKeys.add(f.key);
|
|
466
|
+
}
|
|
467
|
+
for (const k of ["chest", "bust", "waist", "hips", "shoulderWidth", "sleeveLength", "inseam", "neckCircumference", "footLengthCm"]) {
|
|
468
|
+
if (formRef.current[k]) numericKeys.add(k);
|
|
469
|
+
}
|
|
470
|
+
for (const k of numericKeys) {
|
|
442
471
|
if (formRef.current[k]) m[k] = sizingUnit === "in" ? inToCm(parseFloat(formRef.current[k])) : parseFloat(formRef.current[k]);
|
|
443
472
|
}
|
|
444
473
|
if (formRef.current.shoeEU) m.shoeEU = formRef.current.shoeEU;
|
|
@@ -474,7 +503,7 @@ function PrimeStyleTryonInner({
|
|
|
474
503
|
} finally {
|
|
475
504
|
setSizingLoading(false);
|
|
476
505
|
}
|
|
477
|
-
}, [apiUrl, sizingMethod, sizingCountry, heightUnit, weightUnit, sizingUnit, sizeGuide, productTitle]);
|
|
506
|
+
}, [apiUrl, sizingMethod, sizingCountry, heightUnit, weightUnit, sizingUnit, sizeGuide, productTitle, dynamicFields]);
|
|
478
507
|
const handleSubmit = useCallback(async () => {
|
|
479
508
|
if (!selectedFile || !apiRef.current || !sseRef.current) {
|
|
480
509
|
const msg = !apiRef.current ? "Missing NEXT_PUBLIC_PRIMESTYLE_API_KEY" : "No file selected";
|
|
@@ -575,6 +604,11 @@ function PrimeStyleTryonInner({
|
|
|
575
604
|
if (p.shoeUS) fd.shoeUS = p.shoeUS;
|
|
576
605
|
if (p.shoeUK) fd.shoeUK = p.shoeUK;
|
|
577
606
|
if (p.fitPreference) fd.fitPreference = p.fitPreference;
|
|
607
|
+
if (p.customMeasurements) {
|
|
608
|
+
for (const [key, value] of Object.entries(p.customMeasurements)) {
|
|
609
|
+
fd[key] = String(value);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
578
612
|
formRef.current = fd;
|
|
579
613
|
setFormGender(fd.gender || "male");
|
|
580
614
|
if (p.country) setSizingCountry(p.country);
|
|
@@ -610,6 +644,33 @@ function PrimeStyleTryonInner({
|
|
|
610
644
|
weightUnit,
|
|
611
645
|
createdAt: Date.now()
|
|
612
646
|
};
|
|
647
|
+
const KNOWN_PROFILE_KEYS = /* @__PURE__ */ new Set([
|
|
648
|
+
"chest",
|
|
649
|
+
"bust",
|
|
650
|
+
"waist",
|
|
651
|
+
"hips",
|
|
652
|
+
"shoulderWidth",
|
|
653
|
+
"sleeveLength",
|
|
654
|
+
"inseam",
|
|
655
|
+
"neckCircumference",
|
|
656
|
+
"footLengthCm",
|
|
657
|
+
"shoeEU",
|
|
658
|
+
"shoeUS",
|
|
659
|
+
"shoeUK",
|
|
660
|
+
"fitPreference",
|
|
661
|
+
"gender",
|
|
662
|
+
"height",
|
|
663
|
+
"weight",
|
|
664
|
+
"heightFeet",
|
|
665
|
+
"heightInches"
|
|
666
|
+
]);
|
|
667
|
+
const custom = {};
|
|
668
|
+
for (const [key, val] of Object.entries(formRef.current)) {
|
|
669
|
+
if (!KNOWN_PROFILE_KEYS.has(key) && val && !isNaN(Number(val))) {
|
|
670
|
+
custom[key] = parseFloat(val);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
if (Object.keys(custom).length > 0) p.customMeasurements = custom;
|
|
613
674
|
setProfiles((prev) => {
|
|
614
675
|
const idx = prev.findIndex((x) => x.id === id);
|
|
615
676
|
if (idx >= 0) {
|
|
@@ -821,7 +882,7 @@ function PrimeStyleTryonInner({
|
|
|
821
882
|
/* @__PURE__ */ jsx("div", { className: "ps-tryon-choice-icon", children: /* @__PURE__ */ jsx(RulerIcon, { size: 24 }) }),
|
|
822
883
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-choice-info", children: [
|
|
823
884
|
/* @__PURE__ */ jsx("div", { className: "ps-tryon-choice-title", children: "Enter my measurements" }),
|
|
824
|
-
/* @__PURE__ */ jsx("div", { className: "ps-tryon-choice-desc", children: "Chest, waist, hips, shoes & more" })
|
|
885
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-choice-desc", children: sizeGuide?.requiredFields?.length ? sizeGuide.requiredFields.filter((f) => f.required).slice(0, 3).map((f) => f.label).join(", ") + (sizeGuide.requiredFields.length > 3 ? " & more" : "") : "Chest, waist, hips, shoes & more" })
|
|
825
886
|
] }),
|
|
826
887
|
/* @__PURE__ */ jsx("span", { className: "ps-tryon-choice-badge", children: "Best accuracy" })
|
|
827
888
|
] }),
|
|
@@ -891,42 +952,77 @@ function PrimeStyleTryonInner({
|
|
|
891
952
|
setHeightUnit(v === "cm" ? "cm" : "ft");
|
|
892
953
|
setWeightUnit(v === "cm" ? "kg" : "lbs");
|
|
893
954
|
} }) }),
|
|
894
|
-
sizingMethod === "exact" ? /* @__PURE__ */
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
/* @__PURE__ */ jsx(
|
|
905
|
-
|
|
906
|
-
/* @__PURE__ */ jsx(InputRow, { label: "Inseam", fieldKey: "inseam", placeholder: isCm ? "e.g. 81" : "e.g. 32", type: "number", unit: sizingUnit })
|
|
907
|
-
] }),
|
|
908
|
-
isFemale && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-input-row", children: [
|
|
909
|
-
/* @__PURE__ */ jsx("label", { children: "Fit type" }),
|
|
910
|
-
/* @__PURE__ */ jsx("div", { className: "ps-tryon-unit-toggle", children: ["petite", "standard", "tall", "plus"].map((fp) => /* @__PURE__ */ jsx(
|
|
911
|
-
"button",
|
|
955
|
+
sizingMethod === "exact" ? /* @__PURE__ */ jsx(Fragment, { children: (() => {
|
|
956
|
+
const reqFields = dynamicFields.filter((f) => f.required);
|
|
957
|
+
const optFields = dynamicFields.filter((f) => !f.required);
|
|
958
|
+
const renderField = (field) => {
|
|
959
|
+
if (["shoeEU", "shoeUS", "shoeUK"].includes(field.key)) {
|
|
960
|
+
return /* @__PURE__ */ jsx(InputRow, { label: `${field.label} *`, fieldKey: field.key, placeholder: field.placeholder }, field.key);
|
|
961
|
+
}
|
|
962
|
+
const phCm = field.placeholder?.replace(/[^0-9.]/g, "") || "0";
|
|
963
|
+
const phIn = String(field.unit === "cm" ? Math.round(parseFloat(phCm) / 2.54) : phCm);
|
|
964
|
+
const placeholder = isCm ? field.placeholder || "" : `e.g. ${phIn}`;
|
|
965
|
+
return /* @__PURE__ */ jsx(
|
|
966
|
+
InputRow,
|
|
912
967
|
{
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
},
|
|
919
|
-
children: fp.charAt(0).toUpperCase() + fp.slice(1)
|
|
968
|
+
label: `${field.label}${field.required ? " *" : ""}`,
|
|
969
|
+
fieldKey: field.key,
|
|
970
|
+
placeholder,
|
|
971
|
+
type: "number",
|
|
972
|
+
unit: field.unit === "cm" ? sizingUnit : void 0
|
|
920
973
|
},
|
|
921
|
-
|
|
922
|
-
)
|
|
923
|
-
|
|
924
|
-
/* @__PURE__ */ jsxs(
|
|
925
|
-
/* @__PURE__ */
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
974
|
+
field.key
|
|
975
|
+
);
|
|
976
|
+
};
|
|
977
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
978
|
+
reqFields.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
979
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-section-label", children: "Required for this product" }),
|
|
980
|
+
reqFields.map(renderField)
|
|
981
|
+
] }),
|
|
982
|
+
isFemale && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-input-row", children: [
|
|
983
|
+
/* @__PURE__ */ jsx("label", { children: "Fit type" }),
|
|
984
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-unit-toggle", children: ["petite", "standard", "tall", "plus"].map((fp) => /* @__PURE__ */ jsx(
|
|
985
|
+
"button",
|
|
986
|
+
{
|
|
987
|
+
className: `ps-tryon-unit-btn${(formRef.current.fitPreference || "standard") === fp ? " ps-active" : ""}`,
|
|
988
|
+
onClick: (e) => {
|
|
989
|
+
updateField("fitPreference", fp);
|
|
990
|
+
const btns = e.target.parentElement.querySelectorAll(".ps-tryon-unit-btn");
|
|
991
|
+
btns.forEach((b) => b.classList.toggle("ps-active", b.textContent?.toLowerCase() === fp));
|
|
992
|
+
},
|
|
993
|
+
children: fp.charAt(0).toUpperCase() + fp.slice(1)
|
|
994
|
+
},
|
|
995
|
+
fp
|
|
996
|
+
)) })
|
|
997
|
+
] }),
|
|
998
|
+
optFields.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-optional-section", children: [
|
|
999
|
+
/* @__PURE__ */ jsxs("button", { className: "ps-tryon-optional-toggle", onClick: (e) => {
|
|
1000
|
+
const wrap = e.target.closest(".ps-tryon-optional-section").querySelector(".ps-tryon-optional-fields");
|
|
1001
|
+
const arrow = e.target.closest(".ps-tryon-optional-toggle").querySelector(".ps-tryon-chevron");
|
|
1002
|
+
if (wrap) {
|
|
1003
|
+
const open = wrap.style.display !== "none";
|
|
1004
|
+
wrap.style.display = open ? "none" : "flex";
|
|
1005
|
+
if (arrow) arrow.style.transform = open ? "rotate(0deg)" : "rotate(180deg)";
|
|
1006
|
+
}
|
|
1007
|
+
}, children: [
|
|
1008
|
+
/* @__PURE__ */ jsx("span", { children: "Optional — improve accuracy & save to profile" }),
|
|
1009
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-chevron", children: "▾" })
|
|
1010
|
+
] }),
|
|
1011
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-optional-fields", style: { display: "none" }, children: [
|
|
1012
|
+
optFields.map(renderField),
|
|
1013
|
+
!dynamicFields.some((f) => f.category === "shoe") && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1014
|
+
/* @__PURE__ */ jsx(InputRow, { label: "Foot length", fieldKey: "footLengthCm", placeholder: isCm ? "e.g. 27" : "e.g. 10.5", type: "number", unit: sizingUnit }),
|
|
1015
|
+
/* @__PURE__ */ jsx(InputRow, { label: shoeField.label, fieldKey: shoeField.key, placeholder: shoeField.ph })
|
|
1016
|
+
] })
|
|
1017
|
+
] })
|
|
1018
|
+
] }),
|
|
1019
|
+
optFields.length === 0 && !dynamicFields.some((f) => f.category === "shoe") && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-shoe-section", children: [
|
|
1020
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-shoe-title", children: "Shoe sizing (optional)" }),
|
|
1021
|
+
/* @__PURE__ */ jsx(InputRow, { label: "Foot length", fieldKey: "footLengthCm", placeholder: isCm ? "e.g. 27" : "e.g. 10.5", type: "number", unit: sizingUnit }),
|
|
1022
|
+
/* @__PURE__ */ jsx(InputRow, { label: shoeField.label, fieldKey: shoeField.key, placeholder: shoeField.ph })
|
|
1023
|
+
] })
|
|
1024
|
+
] });
|
|
1025
|
+
})() }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
930
1026
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-input-row", children: [
|
|
931
1027
|
/* @__PURE__ */ jsx("label", { children: "Height *" }),
|
|
932
1028
|
heightUnit === "ft" ? /* @__PURE__ */ jsxs("div", { className: "ps-tryon-height-ft", children: [
|
|
@@ -974,7 +1070,10 @@ function PrimeStyleTryonInner({
|
|
|
974
1070
|
function ProcessingView() {
|
|
975
1071
|
return /* @__PURE__ */ jsxs("div", { className: "ps-tryon-processing", children: [
|
|
976
1072
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-processing-image-wrap", children: [
|
|
977
|
-
previewUrl && /* @__PURE__ */
|
|
1073
|
+
previewUrl && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1074
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-processing-blur", style: { backgroundImage: `url(${previewUrl})` } }),
|
|
1075
|
+
/* @__PURE__ */ jsx("img", { src: previewUrl, alt: "Your photo", className: "ps-tryon-processing-model" })
|
|
1076
|
+
] }),
|
|
978
1077
|
/* @__PURE__ */ jsx("div", { className: "ps-tryon-scan-line" }),
|
|
979
1078
|
/* @__PURE__ */ jsx("div", { className: "ps-tryon-scan-overlay" })
|
|
980
1079
|
] }),
|
|
@@ -990,6 +1089,8 @@ function PrimeStyleTryonInner({
|
|
|
990
1089
|
const hasSizing = !!sizingResult || sizingLoading;
|
|
991
1090
|
const hasBoth = !!resultImageUrl && hasSizing;
|
|
992
1091
|
const [profileName, setProfileName] = useState("");
|
|
1092
|
+
const [showFitDetails, setShowFitDetails] = useState(false);
|
|
1093
|
+
const confidenceLabel = sizingResult?.confidence === "high" ? "High Confidence" : sizingResult?.confidence === "medium" ? "Medium Confidence" : sizingResult?.confidence === "low" ? "Low Confidence" : "";
|
|
993
1094
|
return /* @__PURE__ */ jsxs("div", { className: `ps-tryon-result-layout${hasBoth ? " ps-tryon-result-split" : ""}`, children: [
|
|
994
1095
|
resultImageUrl && /* @__PURE__ */ jsx("div", { className: "ps-tryon-result-image-col", children: /* @__PURE__ */ jsx("img", { src: resultImageUrl, alt: "Try-on result", className: cn.resultImage }) }),
|
|
995
1096
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-result-info-col", children: [
|
|
@@ -998,20 +1099,23 @@ function PrimeStyleTryonInner({
|
|
|
998
1099
|
/* @__PURE__ */ jsx("p", { className: "ps-tryon-size-reasoning", children: "Analyzing your size..." })
|
|
999
1100
|
] }),
|
|
1000
1101
|
sizingResult && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-size-recommend", children: [
|
|
1001
|
-
/* @__PURE__ */ jsx("
|
|
1002
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-size-
|
|
1003
|
-
"
|
|
1004
|
-
/* @__PURE__ */ jsx("span", { className: `ps-conf-${sizingResult.confidence}`, children:
|
|
1102
|
+
/* @__PURE__ */ jsx("h3", { className: "ps-tryon-size-title", children: "Recommended Size" }),
|
|
1103
|
+
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-size-hero-row", children: [
|
|
1104
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-size-badge", children: sizingResult.recommendedSize }),
|
|
1105
|
+
/* @__PURE__ */ jsx("span", { className: `ps-tryon-size-conf-label ps-conf-${sizingResult.confidence}`, children: confidenceLabel })
|
|
1005
1106
|
] }),
|
|
1006
|
-
/* @__PURE__ */
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1107
|
+
sizingResult.matchDetails && sizingResult.matchDetails.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-fit-summary", children: [
|
|
1108
|
+
/* @__PURE__ */ jsx("h4", { className: "ps-tryon-fit-summary-title", children: "Fit Summary" }),
|
|
1109
|
+
sizingResult.matchDetails.map((m, i) => /* @__PURE__ */ jsxs("div", { className: "ps-tryon-fit-row", children: [
|
|
1110
|
+
/* @__PURE__ */ jsx("span", { className: `ps-tryon-fit-icon ps-fit-icon-${m.fit}`, children: m.fit === "good" ? "✓" : m.fit === "tight" ? "↑" : "↓" }),
|
|
1111
|
+
/* @__PURE__ */ jsxs("span", { className: "ps-tryon-fit-text", children: [
|
|
1112
|
+
/* @__PURE__ */ jsx("strong", { children: m.measurement }),
|
|
1113
|
+
" ",
|
|
1114
|
+
m.fit === "good" ? "within range" : m.fit === "tight" ? "may be snug" : "may be loose"
|
|
1115
|
+
] })
|
|
1116
|
+
] }, i)),
|
|
1117
|
+
/* @__PURE__ */ jsx("button", { className: "ps-tryon-fit-details-toggle", onClick: () => setShowFitDetails(!showFitDetails), children: showFitDetails ? "Hide detailed fit analysis ↑" : "See detailed fit analysis ↓" }),
|
|
1118
|
+
showFitDetails && /* @__PURE__ */ jsxs("table", { className: "ps-tryon-fit-table", children: [
|
|
1015
1119
|
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
1016
1120
|
/* @__PURE__ */ jsx("th", { children: "Area" }),
|
|
1017
1121
|
/* @__PURE__ */ jsx("th", { children: "You" }),
|
|
@@ -1025,7 +1129,15 @@ function PrimeStyleTryonInner({
|
|
|
1025
1129
|
/* @__PURE__ */ jsx("td", { className: `ps-fit-${m.fit}`, children: m.fit })
|
|
1026
1130
|
] }, i)) })
|
|
1027
1131
|
] })
|
|
1028
|
-
] })
|
|
1132
|
+
] }),
|
|
1133
|
+
sizingResult.internationalSizes && Object.keys(sizingResult.internationalSizes).length > 0 && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-equiv-section", children: [
|
|
1134
|
+
/* @__PURE__ */ jsx("h4", { className: "ps-tryon-equiv-title", children: "Equivalent Sizes" }),
|
|
1135
|
+
/* @__PURE__ */ jsx("div", { className: "ps-tryon-equiv-chips", children: Object.entries(sizingResult.internationalSizes).map(([k, v]) => /* @__PURE__ */ jsxs("div", { className: "ps-tryon-equiv-chip", children: [
|
|
1136
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-equiv-region", children: k }),
|
|
1137
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-equiv-value", children: v })
|
|
1138
|
+
] }, k)) })
|
|
1139
|
+
] }),
|
|
1140
|
+
(!sizingResult.matchDetails || sizingResult.matchDetails.length === 0) && sizingResult.reasoning && /* @__PURE__ */ jsx("p", { className: "ps-tryon-size-reasoning", children: sizingResult.reasoning })
|
|
1029
1141
|
] }),
|
|
1030
1142
|
/* @__PURE__ */ jsxs("div", { className: cx("ps-tryon-result-actions", cn.resultActions), children: [
|
|
1031
1143
|
/* @__PURE__ */ jsx("button", { onClick: handleDownload, className: cx("ps-tryon-btn-download", cn.downloadButton), children: "Download" }),
|
|
@@ -1036,15 +1148,21 @@ function PrimeStyleTryonInner({
|
|
|
1036
1148
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-save-row", children: [
|
|
1037
1149
|
/* @__PURE__ */ jsx("input", { type: "text", placeholder: "Name this profile (e.g. John, Sarah)", value: profileName, onChange: (e) => setProfileName(e.target.value) }),
|
|
1038
1150
|
activeProfileId ? /* @__PURE__ */ jsxs("div", { className: "ps-tryon-save-btn-group", children: [
|
|
1039
|
-
/* @__PURE__ */
|
|
1151
|
+
/* @__PURE__ */ jsxs("button", { onClick: () => {
|
|
1040
1152
|
if (profileName.trim()) saveProfile(profileName.trim());
|
|
1041
|
-
}, children:
|
|
1153
|
+
}, children: [
|
|
1154
|
+
"💾",
|
|
1155
|
+
" Update"
|
|
1156
|
+
] }),
|
|
1042
1157
|
/* @__PURE__ */ jsx("button", { className: "ps-tryon-save-new-btn", onClick: () => {
|
|
1043
1158
|
if (profileName.trim()) saveProfile(profileName.trim(), true);
|
|
1044
1159
|
}, children: "+ New" })
|
|
1045
|
-
] }) : /* @__PURE__ */
|
|
1160
|
+
] }) : /* @__PURE__ */ jsxs("button", { onClick: () => {
|
|
1046
1161
|
if (profileName.trim()) saveProfile(profileName.trim());
|
|
1047
|
-
}, children:
|
|
1162
|
+
}, children: [
|
|
1163
|
+
"💾",
|
|
1164
|
+
" Save"
|
|
1165
|
+
] })
|
|
1048
1166
|
] })
|
|
1049
1167
|
] }),
|
|
1050
1168
|
profileSaved && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-save-done", children: [
|
|
@@ -1229,7 +1347,11 @@ const STYLES = `
|
|
|
1229
1347
|
.ps-tryon-overlay {
|
|
1230
1348
|
position: fixed; inset: 0; background: var(--ps-modal-overlay, rgba(0,0,0,0.6));
|
|
1231
1349
|
display: flex; align-items: center; justify-content: center;
|
|
1232
|
-
z-index: 999999;
|
|
1350
|
+
z-index: 999999;
|
|
1351
|
+
padding: 16px;
|
|
1352
|
+
padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
|
|
1353
|
+
animation: ps-fade-in 0.2s ease;
|
|
1354
|
+
overflow-y: auto; -webkit-overflow-scrolling: touch;
|
|
1233
1355
|
}
|
|
1234
1356
|
@keyframes ps-fade-in { from { opacity: 0; } to { opacity: 1; } }
|
|
1235
1357
|
|
|
@@ -1240,6 +1362,7 @@ const STYLES = `
|
|
|
1240
1362
|
font-family: var(--ps-modal-font, system-ui, -apple-system, sans-serif);
|
|
1241
1363
|
box-shadow: 0 25px 50px rgba(0,0,0,0.4); animation: ps-slide-up 0.3s ease;
|
|
1242
1364
|
scrollbar-width: thin; scrollbar-color: #333 transparent;
|
|
1365
|
+
flex-shrink: 0;
|
|
1243
1366
|
}
|
|
1244
1367
|
.ps-tryon-modal-wide { max-width: 920px; }
|
|
1245
1368
|
.ps-tryon-modal:has(.ps-tryon-drawer-open) { overflow: hidden; }
|
|
@@ -1439,6 +1562,12 @@ const STYLES = `
|
|
|
1439
1562
|
font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s; font-family: inherit;
|
|
1440
1563
|
}
|
|
1441
1564
|
.ps-tryon-unit-btn.ps-active { background: #bb945c; color: #111; }
|
|
1565
|
+
.ps-tryon-section-label { font-size: 11px; font-weight: 700; color: #bb945c; text-transform: uppercase; letter-spacing: 0.08em; margin: 4px 0 2px; }
|
|
1566
|
+
.ps-tryon-optional-section { border-top: 1px solid #333; padding-top: 10px; margin-top: 6px; }
|
|
1567
|
+
.ps-tryon-optional-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: 1px solid #333; border-radius: 10px; padding: 10px 14px; color: #999; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; transition: all 0.2s; }
|
|
1568
|
+
.ps-tryon-optional-toggle:hover { border-color: #555; color: #ccc; }
|
|
1569
|
+
.ps-tryon-chevron { transition: transform 0.2s; font-size: 14px; }
|
|
1570
|
+
.ps-tryon-optional-fields { display: flex; flex-direction: column; gap: 10px; padding-top: 12px; }
|
|
1442
1571
|
.ps-tryon-shoe-section { border-top: 1px solid #333; padding-top: 14px; margin-top: 6px; display: flex; flex-direction: column; gap: 10px; }
|
|
1443
1572
|
.ps-tryon-shoe-title { font-size: 13px; font-weight: 600; color: #999; }
|
|
1444
1573
|
.ps-tryon-disclaimer { font-size: 11px; color: #666; margin: 4px 0 0; }
|
|
@@ -1460,11 +1589,15 @@ const STYLES = `
|
|
|
1460
1589
|
.ps-tryon-processing { text-align: center; padding: 24px; display: flex; flex-direction: column; align-items: center; }
|
|
1461
1590
|
|
|
1462
1591
|
.ps-tryon-processing-image-wrap {
|
|
1463
|
-
position: relative; width:
|
|
1592
|
+
position: relative; width: 220px; height: 280px; margin: 0 auto 24px;
|
|
1464
1593
|
border-radius: 16px; overflow: hidden; border: 2px solid #333;
|
|
1465
1594
|
}
|
|
1595
|
+
.ps-tryon-processing-blur {
|
|
1596
|
+
position: absolute; inset: -20px; background-size: cover; background-position: center;
|
|
1597
|
+
filter: blur(25px) brightness(0.5); transform: scale(1.2);
|
|
1598
|
+
}
|
|
1466
1599
|
.ps-tryon-processing-model {
|
|
1467
|
-
width: 100%; height: 100%; object-fit:
|
|
1600
|
+
position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; display: block;
|
|
1468
1601
|
}
|
|
1469
1602
|
.ps-tryon-scan-overlay {
|
|
1470
1603
|
position: absolute; inset: 0;
|
|
@@ -1523,12 +1656,20 @@ const STYLES = `
|
|
|
1523
1656
|
|
|
1524
1657
|
/* Size recommendation */
|
|
1525
1658
|
.ps-tryon-size-recommend { margin-bottom: 16px; }
|
|
1659
|
+
.ps-tryon-size-title { font-size: 18px; font-weight: 700; color: #fff; margin: 0 0 14px; }
|
|
1660
|
+
.ps-tryon-size-hero-row {
|
|
1661
|
+
display: flex; align-items: center; gap: 16px; padding: 16px 20px;
|
|
1662
|
+
border: 1.5px solid #333; border-radius: 14px; margin-bottom: 18px; background: rgba(255,255,255,0.02);
|
|
1663
|
+
}
|
|
1526
1664
|
.ps-tryon-size-badge {
|
|
1527
1665
|
display: inline-flex; align-items: center; justify-content: center;
|
|
1528
|
-
width: 56px; height: 56px; border-radius:
|
|
1666
|
+
min-width: 56px; height: 56px; padding: 0 12px; border-radius: 12px;
|
|
1529
1667
|
background: linear-gradient(135deg, #bb945c, #d6ba7d);
|
|
1530
|
-
color: #111; font-size:
|
|
1668
|
+
color: #111; font-size: 24px; font-weight: 800; letter-spacing: -0.02em;
|
|
1531
1669
|
}
|
|
1670
|
+
.ps-tryon-size-conf-label { font-size: 15px; font-weight: 600; }
|
|
1671
|
+
.ps-conf-high { color: #4ade80; } .ps-conf-medium { color: #bb945c; } .ps-conf-low { color: #ef4444; }
|
|
1672
|
+
|
|
1532
1673
|
.ps-tryon-sizing-loading { text-align: center; padding: 20px 0; }
|
|
1533
1674
|
.ps-tryon-size-loading-spinner {
|
|
1534
1675
|
width: 36px; height: 36px; border: 3px solid #333;
|
|
@@ -1536,18 +1677,42 @@ const STYLES = `
|
|
|
1536
1677
|
animation: ps-spin 0.8s linear infinite; margin: 0 auto 12px;
|
|
1537
1678
|
}
|
|
1538
1679
|
@keyframes ps-spin { to { transform: rotate(360deg); } }
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
.ps-tryon-
|
|
1542
|
-
.ps-tryon-
|
|
1543
|
-
.ps-tryon-
|
|
1544
|
-
.ps-tryon-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
.ps-
|
|
1680
|
+
|
|
1681
|
+
/* Fit Summary */
|
|
1682
|
+
.ps-tryon-fit-summary { margin-bottom: 16px; }
|
|
1683
|
+
.ps-tryon-fit-summary-title { font-size: 15px; font-weight: 700; color: #fff; margin: 0 0 10px; }
|
|
1684
|
+
.ps-tryon-fit-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; }
|
|
1685
|
+
.ps-tryon-fit-icon {
|
|
1686
|
+
width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
|
|
1687
|
+
font-size: 12px; font-weight: 700; flex-shrink: 0;
|
|
1688
|
+
}
|
|
1689
|
+
.ps-fit-icon-good { background: rgba(74,222,128,0.15); color: #4ade80; }
|
|
1690
|
+
.ps-fit-icon-tight { background: rgba(245,158,11,0.15); color: #f59e0b; }
|
|
1691
|
+
.ps-fit-icon-loose { background: rgba(96,165,250,0.15); color: #60a5fa; }
|
|
1692
|
+
.ps-tryon-fit-text { font-size: 14px; color: #ccc; line-height: 1.4; }
|
|
1693
|
+
.ps-tryon-fit-text strong { color: #fff; font-weight: 600; }
|
|
1694
|
+
.ps-tryon-fit-details-toggle {
|
|
1695
|
+
display: inline-block; margin-top: 8px; font-size: 13px; color: #bb945c; cursor: pointer;
|
|
1696
|
+
font-weight: 600; background: none; border: none; padding: 0; font-family: inherit;
|
|
1697
|
+
}
|
|
1698
|
+
.ps-tryon-fit-details-toggle:hover { color: #d6ba7d; }
|
|
1699
|
+
.ps-tryon-fit-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 13px; }
|
|
1700
|
+
.ps-tryon-fit-table th { text-align: left; padding: 8px 10px; border-bottom: 1px solid #333; color: #999; font-weight: 600; }
|
|
1701
|
+
.ps-tryon-fit-table td { padding: 8px 10px; border-bottom: 1px solid #222; color: #ccc; }
|
|
1549
1702
|
.ps-fit-good { color: #4ade80; } .ps-fit-tight { color: #f59e0b; } .ps-fit-loose { color: #60a5fa; }
|
|
1550
1703
|
|
|
1704
|
+
/* Equivalent Sizes */
|
|
1705
|
+
.ps-tryon-equiv-section { margin-bottom: 16px; }
|
|
1706
|
+
.ps-tryon-equiv-title { font-size: 15px; font-weight: 700; color: #fff; margin: 0 0 10px; }
|
|
1707
|
+
.ps-tryon-equiv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
1708
|
+
.ps-tryon-equiv-chip {
|
|
1709
|
+
display: flex; align-items: center; border: 1.5px solid #333; border-radius: 10px; overflow: hidden;
|
|
1710
|
+
}
|
|
1711
|
+
.ps-tryon-equiv-region { padding: 7px 10px; font-size: 12px; color: #999; font-weight: 600; background: rgba(255,255,255,0.03); }
|
|
1712
|
+
.ps-tryon-equiv-value { padding: 7px 12px; font-size: 14px; color: #fff; font-weight: 700; }
|
|
1713
|
+
|
|
1714
|
+
.ps-tryon-size-reasoning { font-size: 14px; color: #ccc; line-height: 1.6; margin-bottom: 14px; }
|
|
1715
|
+
|
|
1551
1716
|
/* Save profile prompt */
|
|
1552
1717
|
.ps-tryon-save-prompt { margin-top: 14px; padding: 14px; border: 1px solid #333; border-radius: 12px; background: #1a1b1a; }
|
|
1553
1718
|
.ps-tryon-save-label { font-size: 12px; color: #999; margin-bottom: 10px; }
|
|
@@ -1677,13 +1842,27 @@ const STYLES = `
|
|
|
1677
1842
|
.ps-tryon-detail-delete svg { stroke: currentColor; fill: none; }
|
|
1678
1843
|
|
|
1679
1844
|
/* Mobile responsive */
|
|
1845
|
+
@media (max-width: 768px) {
|
|
1846
|
+
.ps-tryon-overlay {
|
|
1847
|
+
padding: 0;
|
|
1848
|
+
padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
|
|
1849
|
+
align-items: stretch; justify-content: stretch;
|
|
1850
|
+
}
|
|
1851
|
+
.ps-tryon-modal {
|
|
1852
|
+
max-width: 100%; max-height: none; width: 100%;
|
|
1853
|
+
border-radius: 0; box-shadow: none;
|
|
1854
|
+
min-height: 100%; flex: 1;
|
|
1855
|
+
display: flex; flex-direction: column;
|
|
1856
|
+
}
|
|
1857
|
+
.ps-tryon-modal-wide { max-width: 100%; }
|
|
1858
|
+
.ps-tryon-modal > :last-child { flex: 1; }
|
|
1859
|
+
.ps-tryon-header { border-radius: 0; }
|
|
1860
|
+
}
|
|
1680
1861
|
@media (max-width: 720px) {
|
|
1681
1862
|
.ps-tryon-result-split { flex-direction: column; }
|
|
1682
1863
|
.ps-tryon-result-image-col { flex: none; }
|
|
1683
|
-
.ps-tryon-modal-wide { max-width: 520px; }
|
|
1684
1864
|
}
|
|
1685
1865
|
@media (max-width: 480px) {
|
|
1686
|
-
.ps-tryon-modal { max-height: 100vh; border-radius: 14px; }
|
|
1687
1866
|
.ps-tryon-body { padding: 18px; }
|
|
1688
1867
|
.ps-tryon-header { padding: 14px 18px; }
|
|
1689
1868
|
.ps-tryon-stepper { padding: 14px 18px 8px; }
|
package/logo.svg
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
-
viewBox="0 0 841.9 510.4" style="enable-background:new 0 0 841.9 510.4;" xml:space="preserve">
|
|
5
|
-
<style type="text/css">
|
|
6
|
-
.st0{fill:#D6BA7D;}
|
|
7
|
-
</style>
|
|
8
|
-
<g>
|
|
9
|
-
<path class="st0" d="M333.7,230.1c-9.1-0.1-12.4,3.9-10.7,12.8c1.2,6.3,2.8,12.7,5.3,18.7c16.1,39.2,43.1,69.4,77.8,93.1
|
|
10
|
-
c5.8,3.9,11,3.7,16.8,0.2c20.3-12.2,37.5-28.1,52-46.6c15-19.1,27.6-39.7,32.5-64c2.2-11-2.4-15.7-13.8-14.5
|
|
11
|
-
c-2.9,0.3-5.7,1.4-8.5,1.9c-1.9,0.4-3.8,0.4-6.9,0.7c10.4-11.8,29.4-13.9,39.3-4.7c11,10.2,21,21.3,31.8,31.7
|
|
12
|
-
c5.2,4.9,8,10.6,6.9,17.4c-2.2,14.3-3.6,28.9-8,42.5c-14.1,43.9-41.2,79.8-72.3,113.1c-6.5,6.9-7.2,6.9-13-1.1
|
|
13
|
-
c-13.3-18.4-26.3-37-39.7-55.3c-8.3-11.3-8.5-11.2-16.7,0.3c-13.3,18.6-26.6,37.3-39.9,56c-2.8,3.8-5.4,6.9-10.2,1.8
|
|
14
|
-
c-27.8-29.9-52.8-61.7-68.4-99.8c-7.6-18.6-14-37.7-13.7-58.1c0.1-4.7,1.5-10.6,4.5-13.9c11.1-12.1,22.8-23.6,34.8-34.8
|
|
15
|
-
c9.9-9.2,29.1-6.9,39.2,4.9C345.6,231.4,339.7,230,333.7,230.1z M375.1,401.5c7.5-10.7,14.9-21.4,22.7-31.8c3-4.1,2.6-6.2-1.7-9.1
|
|
16
|
-
c-27.9-18.8-50.4-42.9-66.7-72.2c-7.5-13.5-12.2-28.6-18.3-43.3c-0.2,0.2-1.7,1.2-2.9,2.4c-4.1,4.1-7.5,9.1-12.2,12.3
|
|
17
|
-
c-12.4,8.4-12.5,19.7-9.7,32.6c7.5,34.4,22.9,64.9,43.9,92.8c9.4,12.4,19.5,24.4,30,37.4C365.7,414.8,370.4,408.1,375.1,401.5z
|
|
18
|
-
M429.1,364.4c13.7,19.3,27.2,38.3,41.2,57.9c20.5-23.3,39.3-47,53.7-74c10-18.7,16.8-38.4,20.3-59.3c1.9-11.5,1-21.2-9.4-28.8
|
|
19
|
-
c-5.7-4.3-10.2-10.2-16.3-16.4C506.1,297.7,473,334.6,429.1,364.4z"/>
|
|
20
|
-
<path class="st0" d="M481.8,268.1c-45.8-25.2-85.4-57.9-117.4-99.3c-6.8-8.8-11.9-19.4-15.4-30c-9.1-28.2,0.9-56.7,24.9-75.2
|
|
21
|
-
c21.6-16.5,54-18.1,77.7-3c16.9,10.8,27.8,26.1,30.3,46.3c0.4,3.4-1.6,8.3-4.2,10.6c-2,1.8-7.6,2.4-9.8,0.9
|
|
22
|
-
c-3.1-2.2-5.5-6.5-6.5-10.4c-6.6-25.5-26.7-39.5-53-36.5c-23.2,2.6-41.3,23.8-41.5,48.2c-0.1,13,4.2,24.7,12.4,34
|
|
23
|
-
c16.2,18.4,32.4,37.2,50.9,53.1c20,17.2,42.7,31.1,65.1,47.1c-1.8,4.5-4.3,10.7-6.9,17.2C485.7,270,483.7,269.3,481.8,268.1z"/>
|
|
24
|
-
<path class="st0" d="M134.3,426.9c64-0.3,127.9-0.2,191.9-0.1c2.3,0,5.5-0.2,6.8,1.1c6.5,6.5,12.4,13.5,19.1,20.9
|
|
25
|
-
c-2.4,0.2-4.1,0.4-5.7,0.4c-73.1,0-146.3-0.1-219.4-0.2c-3.4,0-6.8-0.2-10.1-0.7c-18.1-2.9-25-17.4-16-35.3
|
|
26
|
-
C108.4,426.9,121,426.9,134.3,426.9z"/>
|
|
27
|
-
<path class="st0" d="M705.1,448.9c-0.8,0-1.5,0-2.2,0c-73.6,0.1-147.3,0.2-220.9,0.3c-1.3,0-2.6-0.3-4.1-0.5
|
|
28
|
-
c5.6-5.9,11.1-11.2,16-17.1c2.9-3.5,5.8-5,10.4-5c64.7,0.2,129.4,0,194.1,0.4c12.9,0.1,24.5-1.1,32.3-14.9
|
|
29
|
-
C737.7,437.7,729.3,448.9,705.1,448.9z"/>
|
|
30
|
-
<path class="st0" d="M264.5,297.8c1.3,5-0.8,6.7-4.9,8.4c-22.4,9.4-45.2,18.2-67,28.9c-25.3,12.3-50.2,25.6-74.4,40
|
|
31
|
-
c-15.8,9.4-26.4,24-30.2,42.5c-1.1,5-0.9,10.3-1.4,17.3c-2.4-3.3-4.2-5.1-5.3-7.3c-8.5-17.5-8.9-35.3,3.8-50.3
|
|
32
|
-
c9.4-11,20.8-21.3,33.4-28.2c31.3-17.1,63.6-32.3,95.8-47.6c15.5-7.3,31.6-13.2,48.5-20.2C263.4,287.7,263.2,292.9,264.5,297.8z"/>
|
|
33
|
-
<path class="st0" d="M742.9,419.1c-3.1-18.8-13.7-33.1-29-43.3c-15.6-10.4-31.8-20.3-48.7-28.3c-31-14.7-62.6-27.8-93.9-41.8
|
|
34
|
-
c-2.2-1.1-5.5-3.5-5.5-5.2c0.2-6.2,1.6-12.3,2.6-18.8c2.2,0.7,4.1,1.1,5.8,1.9c34,15.1,68.3,29.5,101.8,45.5
|
|
35
|
-
c17.7,8.5,34.6,19.1,51.2,29.8c11.6,7.6,21.2,17.8,25.4,31.6c4.8,15.9,2.4,30.6-8.8,45C743.4,429,743.6,424,742.9,419.1z"/>
|
|
36
|
-
<path class="st0" d="M379.1,227.4c17-9.9,16.9-10.1,30.2,4.5c0.3,0.4,0.5,0.9,1.4,2.5c-22.4,12.4-44.9,24.7-68.2,37.6
|
|
37
|
-
c-3-7.7-5.3-13.7-7.8-20C350.1,243.5,364.7,235.7,379.1,227.4z"/>
|
|
38
|
-
<path class="st0" d="M556.3,327.9c2-5,3.5-9,5.3-13.4c48.9,20.7,98.9,36.9,143.1,66.1C657,358.4,606.5,344.1,556.3,327.9z"/>
|
|
39
|
-
<path class="st0" d="M268.3,315.2c1.1,2.9,2,4.9,2.6,6.9c0.6,2.1,1,4.1,1.2,5.1c-48.9,17.4-97.3,34.7-143.9,51.3
|
|
40
|
-
C170.4,351.4,219.9,335,268.3,315.2z"/>
|
|
41
|
-
<path class="st0" d="M465,299.1c-33.6,10.9-67,9.6-100.5,0c-7.8-2.2-9.4-3.6-12.6-12.2c42.3,15.7,84.4,16.7,127.2-0.3
|
|
42
|
-
C476.5,294.7,471.1,297.1,465,299.1z"/>
|
|
43
|
-
<path class="st0" d="M381.9,140.1c9.7,6.8,19.9,14.1,30.2,21.2c11.4,8,17.3,19,18.8,33.9C415.3,183.5,382.7,146,381.9,140.1z"/>
|
|
44
|
-
<path class="st0" d="M360.8,276c36.5,10.4,71.8,9.6,107.1,1.3C442.6,294.2,376.8,293.8,360.8,276z"/>
|
|
45
|
-
</g>
|
|
46
|
-
</svg>
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 841.9 510.4" style="enable-background:new 0 0 841.9 510.4;" xml:space="preserve">
|
|
5
|
+
<style type="text/css">
|
|
6
|
+
.st0{fill:#D6BA7D;}
|
|
7
|
+
</style>
|
|
8
|
+
<g>
|
|
9
|
+
<path class="st0" d="M333.7,230.1c-9.1-0.1-12.4,3.9-10.7,12.8c1.2,6.3,2.8,12.7,5.3,18.7c16.1,39.2,43.1,69.4,77.8,93.1
|
|
10
|
+
c5.8,3.9,11,3.7,16.8,0.2c20.3-12.2,37.5-28.1,52-46.6c15-19.1,27.6-39.7,32.5-64c2.2-11-2.4-15.7-13.8-14.5
|
|
11
|
+
c-2.9,0.3-5.7,1.4-8.5,1.9c-1.9,0.4-3.8,0.4-6.9,0.7c10.4-11.8,29.4-13.9,39.3-4.7c11,10.2,21,21.3,31.8,31.7
|
|
12
|
+
c5.2,4.9,8,10.6,6.9,17.4c-2.2,14.3-3.6,28.9-8,42.5c-14.1,43.9-41.2,79.8-72.3,113.1c-6.5,6.9-7.2,6.9-13-1.1
|
|
13
|
+
c-13.3-18.4-26.3-37-39.7-55.3c-8.3-11.3-8.5-11.2-16.7,0.3c-13.3,18.6-26.6,37.3-39.9,56c-2.8,3.8-5.4,6.9-10.2,1.8
|
|
14
|
+
c-27.8-29.9-52.8-61.7-68.4-99.8c-7.6-18.6-14-37.7-13.7-58.1c0.1-4.7,1.5-10.6,4.5-13.9c11.1-12.1,22.8-23.6,34.8-34.8
|
|
15
|
+
c9.9-9.2,29.1-6.9,39.2,4.9C345.6,231.4,339.7,230,333.7,230.1z M375.1,401.5c7.5-10.7,14.9-21.4,22.7-31.8c3-4.1,2.6-6.2-1.7-9.1
|
|
16
|
+
c-27.9-18.8-50.4-42.9-66.7-72.2c-7.5-13.5-12.2-28.6-18.3-43.3c-0.2,0.2-1.7,1.2-2.9,2.4c-4.1,4.1-7.5,9.1-12.2,12.3
|
|
17
|
+
c-12.4,8.4-12.5,19.7-9.7,32.6c7.5,34.4,22.9,64.9,43.9,92.8c9.4,12.4,19.5,24.4,30,37.4C365.7,414.8,370.4,408.1,375.1,401.5z
|
|
18
|
+
M429.1,364.4c13.7,19.3,27.2,38.3,41.2,57.9c20.5-23.3,39.3-47,53.7-74c10-18.7,16.8-38.4,20.3-59.3c1.9-11.5,1-21.2-9.4-28.8
|
|
19
|
+
c-5.7-4.3-10.2-10.2-16.3-16.4C506.1,297.7,473,334.6,429.1,364.4z"/>
|
|
20
|
+
<path class="st0" d="M481.8,268.1c-45.8-25.2-85.4-57.9-117.4-99.3c-6.8-8.8-11.9-19.4-15.4-30c-9.1-28.2,0.9-56.7,24.9-75.2
|
|
21
|
+
c21.6-16.5,54-18.1,77.7-3c16.9,10.8,27.8,26.1,30.3,46.3c0.4,3.4-1.6,8.3-4.2,10.6c-2,1.8-7.6,2.4-9.8,0.9
|
|
22
|
+
c-3.1-2.2-5.5-6.5-6.5-10.4c-6.6-25.5-26.7-39.5-53-36.5c-23.2,2.6-41.3,23.8-41.5,48.2c-0.1,13,4.2,24.7,12.4,34
|
|
23
|
+
c16.2,18.4,32.4,37.2,50.9,53.1c20,17.2,42.7,31.1,65.1,47.1c-1.8,4.5-4.3,10.7-6.9,17.2C485.7,270,483.7,269.3,481.8,268.1z"/>
|
|
24
|
+
<path class="st0" d="M134.3,426.9c64-0.3,127.9-0.2,191.9-0.1c2.3,0,5.5-0.2,6.8,1.1c6.5,6.5,12.4,13.5,19.1,20.9
|
|
25
|
+
c-2.4,0.2-4.1,0.4-5.7,0.4c-73.1,0-146.3-0.1-219.4-0.2c-3.4,0-6.8-0.2-10.1-0.7c-18.1-2.9-25-17.4-16-35.3
|
|
26
|
+
C108.4,426.9,121,426.9,134.3,426.9z"/>
|
|
27
|
+
<path class="st0" d="M705.1,448.9c-0.8,0-1.5,0-2.2,0c-73.6,0.1-147.3,0.2-220.9,0.3c-1.3,0-2.6-0.3-4.1-0.5
|
|
28
|
+
c5.6-5.9,11.1-11.2,16-17.1c2.9-3.5,5.8-5,10.4-5c64.7,0.2,129.4,0,194.1,0.4c12.9,0.1,24.5-1.1,32.3-14.9
|
|
29
|
+
C737.7,437.7,729.3,448.9,705.1,448.9z"/>
|
|
30
|
+
<path class="st0" d="M264.5,297.8c1.3,5-0.8,6.7-4.9,8.4c-22.4,9.4-45.2,18.2-67,28.9c-25.3,12.3-50.2,25.6-74.4,40
|
|
31
|
+
c-15.8,9.4-26.4,24-30.2,42.5c-1.1,5-0.9,10.3-1.4,17.3c-2.4-3.3-4.2-5.1-5.3-7.3c-8.5-17.5-8.9-35.3,3.8-50.3
|
|
32
|
+
c9.4-11,20.8-21.3,33.4-28.2c31.3-17.1,63.6-32.3,95.8-47.6c15.5-7.3,31.6-13.2,48.5-20.2C263.4,287.7,263.2,292.9,264.5,297.8z"/>
|
|
33
|
+
<path class="st0" d="M742.9,419.1c-3.1-18.8-13.7-33.1-29-43.3c-15.6-10.4-31.8-20.3-48.7-28.3c-31-14.7-62.6-27.8-93.9-41.8
|
|
34
|
+
c-2.2-1.1-5.5-3.5-5.5-5.2c0.2-6.2,1.6-12.3,2.6-18.8c2.2,0.7,4.1,1.1,5.8,1.9c34,15.1,68.3,29.5,101.8,45.5
|
|
35
|
+
c17.7,8.5,34.6,19.1,51.2,29.8c11.6,7.6,21.2,17.8,25.4,31.6c4.8,15.9,2.4,30.6-8.8,45C743.4,429,743.6,424,742.9,419.1z"/>
|
|
36
|
+
<path class="st0" d="M379.1,227.4c17-9.9,16.9-10.1,30.2,4.5c0.3,0.4,0.5,0.9,1.4,2.5c-22.4,12.4-44.9,24.7-68.2,37.6
|
|
37
|
+
c-3-7.7-5.3-13.7-7.8-20C350.1,243.5,364.7,235.7,379.1,227.4z"/>
|
|
38
|
+
<path class="st0" d="M556.3,327.9c2-5,3.5-9,5.3-13.4c48.9,20.7,98.9,36.9,143.1,66.1C657,358.4,606.5,344.1,556.3,327.9z"/>
|
|
39
|
+
<path class="st0" d="M268.3,315.2c1.1,2.9,2,4.9,2.6,6.9c0.6,2.1,1,4.1,1.2,5.1c-48.9,17.4-97.3,34.7-143.9,51.3
|
|
40
|
+
C170.4,351.4,219.9,335,268.3,315.2z"/>
|
|
41
|
+
<path class="st0" d="M465,299.1c-33.6,10.9-67,9.6-100.5,0c-7.8-2.2-9.4-3.6-12.6-12.2c42.3,15.7,84.4,16.7,127.2-0.3
|
|
42
|
+
C476.5,294.7,471.1,297.1,465,299.1z"/>
|
|
43
|
+
<path class="st0" d="M381.9,140.1c9.7,6.8,19.9,14.1,30.2,21.2c11.4,8,17.3,19,18.8,33.9C415.3,183.5,382.7,146,381.9,140.1z"/>
|
|
44
|
+
<path class="st0" d="M360.8,276c36.5,10.4,71.8,9.6,107.1,1.3C442.6,294.2,376.8,293.8,360.8,276z"/>
|
|
45
|
+
</g>
|
|
46
|
+
</svg>
|