@primestyleai/tryon 5.6.16 → 5.6.17

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.
@@ -3080,32 +3080,26 @@ const STYLES = `
3080
3080
  to { opacity: 1; }
3081
3081
  }
3082
3082
 
3083
- /* Active profile loaded banner shows on basics step when a profile is selected */
3084
- .ps-bp-profile-loaded {
3085
- display: flex; align-items: center; justify-content: space-between;
3086
- gap: 12px;
3087
- padding: 10px 14px;
3088
- background: var(--ps-bg-secondary);
3089
- border: 1px solid var(--ps-border-subtle);
3090
- border-radius: 10px;
3091
- margin-bottom: 4px;
3092
- }
3093
- .ps-bp-profile-loaded-label {
3094
- font-size: 12px; color: var(--ps-text-secondary);
3095
- letter-spacing: 0.02em;
3083
+ /* Minimal "Using <profile> · start fresh" hint above the first input */
3084
+ .ps-bp-profile-hint {
3085
+ margin: 0; padding: 0;
3086
+ text-align: center;
3087
+ font-size: 11px; font-weight: 400;
3088
+ color: var(--ps-text-muted);
3089
+ letter-spacing: 0.01em;
3090
+ line-height: 1.4;
3096
3091
  }
3097
- .ps-bp-profile-loaded-label strong {
3098
- color: var(--ps-text-primary); font-weight: 700;
3092
+ .ps-bp-profile-hint strong {
3093
+ color: var(--ps-text-secondary); font-weight: 600;
3099
3094
  }
3100
- .ps-bp-profile-loaded-link {
3095
+ .ps-bp-profile-hint-link {
3101
3096
  background: none; border: none;
3102
- color: var(--ps-accent);
3103
- font-family: inherit; font-size: 12px; font-weight: 700;
3097
+ color: var(--ps-text-muted);
3098
+ font-family: inherit; font-size: inherit; font-weight: 400;
3104
3099
  text-decoration: underline; text-underline-offset: 2px;
3105
3100
  cursor: pointer; padding: 0;
3106
- white-space: nowrap;
3107
3101
  }
3108
- .ps-bp-profile-loaded-link:hover { opacity: 0.85; }
3102
+ .ps-bp-profile-hint-link:hover { color: var(--ps-text-secondary); }
3109
3103
 
3110
3104
  /* Typography */
3111
3105
  .ps-bp-title {
@@ -3467,10 +3461,10 @@ const STYLES = `
3467
3461
  flex: 1; min-height: 0;
3468
3462
  }
3469
3463
 
3470
- /* The dark viewfinder containing the photo + overlays */
3464
+ /* Photo container transparent, no scanner, no chrome */
3471
3465
  .ps-msc-viewfinder {
3472
3466
  position: relative; flex-shrink: 0;
3473
- background: #0E0F11; border-radius: 12px; overflow: hidden;
3467
+ background: transparent; border-radius: 12px; overflow: hidden;
3474
3468
  height: 64vh; max-height: 540px; min-height: 360px;
3475
3469
  display: flex; align-items: center; justify-content: center;
3476
3470
  }
@@ -3478,7 +3472,6 @@ const STYLES = `
3478
3472
  max-width: 100%; max-height: 100%;
3479
3473
  width: auto; height: 100%;
3480
3474
  object-fit: contain; display: block;
3481
- filter: brightness(0.9) contrast(1.05);
3482
3475
  }
3483
3476
 
3484
3477
  /* Live feed badge top-left */
@@ -6109,8 +6102,8 @@ function MobileSkeleton({ landmarks, w, h }) {
6109
6102
  y1: pa.y * h,
6110
6103
  x2: pb.x * w,
6111
6104
  y2: pb.y * h,
6112
- stroke: "rgba(255,255,255,0.85)",
6113
- strokeWidth: "3",
6105
+ stroke: "rgba(100,210,255,0.9)",
6106
+ strokeWidth: "4",
6114
6107
  strokeLinecap: "round",
6115
6108
  opacity: 0,
6116
6109
  style: { animation: `ps-msc-fade 0.4s ease ${i * 0.05}s forwards` }
@@ -6124,8 +6117,8 @@ function MobileSkeleton({ landmarks, w, h }) {
6124
6117
  {
6125
6118
  cx: v.x * w,
6126
6119
  cy: v.y * h,
6127
- r: 9,
6128
- fill: "rgba(255,255,255,0.18)",
6120
+ r: 10,
6121
+ fill: "rgba(100,210,255,0.25)",
6129
6122
  opacity: 0,
6130
6123
  style: { animation: `ps-msc-fade 0.3s ease ${i * 0.04}s forwards` }
6131
6124
  }
@@ -6135,8 +6128,8 @@ function MobileSkeleton({ landmarks, w, h }) {
6135
6128
  {
6136
6129
  cx: v.x * w,
6137
6130
  cy: v.y * h,
6138
- r: 5,
6139
- fill: "#FFFFFF",
6131
+ r: 6,
6132
+ fill: "rgba(100,210,255,0.95)",
6140
6133
  opacity: 0,
6141
6134
  style: { animation: `ps-msc-fade 0.3s ease ${i * 0.04}s forwards` }
6142
6135
  }
@@ -6194,11 +6187,6 @@ function MobileScanningView({
6194
6187
  }, [sizingDone]);
6195
6188
  return /* @__PURE__ */ jsxs("div", { className: "ps-msc-root", children: [
6196
6189
  /* @__PURE__ */ jsxs("div", { className: "ps-msc-viewfinder", children: [
6197
- /* @__PURE__ */ jsxs("div", { className: "ps-msc-feed-badge", children: [
6198
- /* @__PURE__ */ jsx("span", { className: "ps-msc-feed-dot" }),
6199
- "LIVE_FEED:",
6200
- String(feedTick).padStart(2, "0")
6201
- ] }),
6202
6190
  displayImage && /* @__PURE__ */ jsx(
6203
6191
  "img",
6204
6192
  {
@@ -6208,22 +6196,7 @@ function MobileScanningView({
6208
6196
  onLoad: handleImgLoad
6209
6197
  }
6210
6198
  ),
6211
- /* @__PURE__ */ jsxs("div", { className: "ps-msc-corners", children: [
6212
- /* @__PURE__ */ jsx("span", { className: "ps-msc-corner ps-tl" }),
6213
- /* @__PURE__ */ jsx("span", { className: "ps-msc-corner ps-tr" }),
6214
- /* @__PURE__ */ jsx("span", { className: "ps-msc-corner ps-bl" }),
6215
- /* @__PURE__ */ jsx("span", { className: "ps-msc-corner ps-br" })
6216
- ] }),
6217
- /* @__PURE__ */ jsx("div", { className: "ps-msc-scanline" }),
6218
- isPhotoMode && bodyLandmarks && /* @__PURE__ */ jsx("div", { className: "ps-msc-pose-wrap", children: /* @__PURE__ */ jsx(MobileSkeleton, { landmarks: bodyLandmarks, w: dims.w, h: dims.h }) }),
6219
- /* @__PURE__ */ jsxs("div", { className: "ps-msc-vf-bottom", children: [
6220
- /* @__PURE__ */ jsxs("div", { className: "ps-msc-vf-text", children: [
6221
- current.viewfinderText,
6222
- "..."
6223
- ] }),
6224
- /* @__PURE__ */ jsx("div", { className: "ps-msc-vf-bar", children: /* @__PURE__ */ jsx("div", { className: "ps-msc-vf-bar-fill" }) }),
6225
- /* @__PURE__ */ jsx("div", { className: "ps-msc-vf-sub", children: t("PLEASE STAND STILL") })
6226
- ] })
6199
+ isPhotoMode && bodyLandmarks && /* @__PURE__ */ jsx("div", { className: "ps-msc-pose-wrap", children: /* @__PURE__ */ jsx(MobileSkeleton, { landmarks: bodyLandmarks, w: dims.w, h: dims.h }) })
6227
6200
  ] }),
6228
6201
  /* @__PURE__ */ jsx("div", { className: "ps-msc-stage", children: /* @__PURE__ */ jsxs("div", { className: "ps-msc-stage-slot", children: [
6229
6202
  /* @__PURE__ */ jsx("div", { className: "ps-msc-stage-title", children: current.title }),
@@ -7366,7 +7339,7 @@ function SizeResultView({
7366
7339
  {
7367
7340
  src: previewUrl || productImage,
7368
7341
  alt: productTitle,
7369
- className: `ps-tryon-sr-product-img${bodyLandmarks ? "" : " ps-tryon-blur"}`,
7342
+ className: "ps-tryon-sr-product-img",
7370
7343
  onLoad: handleImgLoad
7371
7344
  }
7372
7345
  ),
@@ -7520,12 +7493,8 @@ function SizeResultView({
7520
7493
  /* ── Desktop section picker: split layout — image left, image cards right ── */
7521
7494
  /* @__PURE__ */ jsxs("div", { className: "ps-tryon-v2", children: [
7522
7495
  /* @__PURE__ */ jsxs("div", { className: "ps-tryon-v2-bg", style: { position: "relative" }, children: [
7523
- /* @__PURE__ */ jsx("img", { src: tryOnProcessing && previewUrl ? previewUrl : resultImageUrl || productImage, alt: productTitle, className: `ps-tryon-v2-bg-img${tryOnProcessing && !bodyLandmarks ? " ps-tryon-blur" : ""}`, onLoad: handleImgLoad }),
7496
+ /* @__PURE__ */ jsx("img", { src: tryOnProcessing && previewUrl ? previewUrl : resultImageUrl || productImage, alt: productTitle, className: "ps-tryon-v2-bg-img", onLoad: handleImgLoad }),
7524
7497
  tryOnProcessing && bodyLandmarks && /* @__PURE__ */ jsx(SkeletonOverlay, { landmarks: bodyLandmarks, imgWidth: imgDims.w, imgHeight: imgDims.h }),
7525
- tryOnProcessing && !bodyLandmarks && /* @__PURE__ */ jsxs(Fragment, { children: [
7526
- /* @__PURE__ */ jsx("div", { className: "ps-tryon-scan-overlay" }),
7527
- /* @__PURE__ */ jsx("div", { className: "ps-tryon-scan-line" })
7528
- ] }),
7529
7498
  tryOnProcessing && /* @__PURE__ */ jsx("div", { className: "ps-tryon-v2-processing-label", children: t("Generating try-on...") }),
7530
7499
  resultImageUrl && !tryOnProcessing && poseReady && poseLines && /* @__PURE__ */ jsx(MeasurementOverlay, { lines: poseLines, fitRows: (() => {
7531
7500
  const all = [...sizingResult?.matchDetails || []];
@@ -8968,18 +8937,19 @@ function BasicsStepMobile({
8968
8937
  const incAge = () => setAge(String(Math.min(ageMax, ageNum + 1)));
8969
8938
  const decAge = () => setAge(String(Math.max(ageMin, ageNum - 1)));
8970
8939
  return /* @__PURE__ */ jsxs("div", { className: "ps-bpm-root", children: [
8971
- activeProfileName && /* @__PURE__ */ jsxs("div", { className: "ps-bp-profile-loaded", children: [
8972
- /* @__PURE__ */ jsxs("span", { className: "ps-bp-profile-loaded-label", children: [
8973
- t("Profile loaded"),
8974
- ": ",
8975
- /* @__PURE__ */ jsx("strong", { children: activeProfileName })
8976
- ] }),
8977
- onStartFresh && /* @__PURE__ */ jsx("button", { type: "button", className: "ps-bp-profile-loaded-link", onClick: onStartFresh, children: t("Start fresh AI sizing") })
8978
- ] }),
8979
8940
  /* @__PURE__ */ jsxs("div", { className: "ps-bpm-header", children: [
8980
8941
  /* @__PURE__ */ jsx("h2", { className: "ps-bpm-title", children: t("Let's find your best fit") }),
8981
8942
  /* @__PURE__ */ jsx("p", { className: "ps-bpm-subtitle", children: t("Enter your details for a bespoke size recommendation") })
8982
8943
  ] }),
8944
+ activeProfileName && /* @__PURE__ */ jsxs("p", { className: "ps-bp-profile-hint", children: [
8945
+ t("Using"),
8946
+ " ",
8947
+ /* @__PURE__ */ jsx("strong", { children: activeProfileName }),
8948
+ onStartFresh && /* @__PURE__ */ jsxs(Fragment, { children: [
8949
+ " · ",
8950
+ /* @__PURE__ */ jsx("button", { type: "button", className: "ps-bp-profile-hint-link", onClick: onStartFresh, children: t("start fresh") })
8951
+ ] })
8952
+ ] }),
8983
8953
  /* @__PURE__ */ jsxs("div", { className: "ps-bpm-toggle", children: [
8984
8954
  /* @__PURE__ */ jsx(
8985
8955
  "button",
@@ -9813,15 +9783,16 @@ function BodyProfileView({
9813
9783
  );
9814
9784
  }
9815
9785
  return /* @__PURE__ */ jsxs("div", { className: "ps-bp-step ps-bp-step-enter", children: [
9816
- hasActiveProfileWithMeasurements && activeProfileName && /* @__PURE__ */ jsxs("div", { className: "ps-bp-profile-loaded", children: [
9817
- /* @__PURE__ */ jsxs("span", { className: "ps-bp-profile-loaded-label", children: [
9818
- t("Profile loaded"),
9819
- ": ",
9820
- /* @__PURE__ */ jsx("strong", { children: activeProfileName })
9821
- ] }),
9822
- onStartFresh && /* @__PURE__ */ jsx("button", { type: "button", className: "ps-bp-profile-loaded-link", onClick: onStartFresh, children: t("Start fresh AI sizing") })
9823
- ] }),
9824
9786
  /* @__PURE__ */ jsx("h2", { className: "ps-bp-title", children: t("Let's find your best fit") }),
9787
+ hasActiveProfileWithMeasurements && activeProfileName && /* @__PURE__ */ jsxs("p", { className: "ps-bp-profile-hint", children: [
9788
+ t("Using"),
9789
+ " ",
9790
+ /* @__PURE__ */ jsx("strong", { children: activeProfileName }),
9791
+ onStartFresh && /* @__PURE__ */ jsxs(Fragment, { children: [
9792
+ " · ",
9793
+ /* @__PURE__ */ jsx("button", { type: "button", className: "ps-bp-profile-hint-link", onClick: onStartFresh, children: t("start fresh") })
9794
+ ] })
9795
+ ] }),
9825
9796
  /* @__PURE__ */ jsxs("div", { className: "ps-bp-system-toggle", children: [
9826
9797
  /* @__PURE__ */ jsx("button", { className: `ps-bp-system-btn${!isImperialMode ? " ps-bp-system-active" : ""}`, onClick: switchToMetric, type: "button", children: t("Metric") }),
9827
9798
  /* @__PURE__ */ jsx("button", { className: `ps-bp-system-btn${isImperialMode ? " ps-bp-system-active" : ""}`, onClick: switchToImperial, type: "button", children: t("Imperial") })