@primestyleai/tryon 5.8.29 → 5.8.30

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.
@@ -14240,34 +14240,72 @@ const STYLES$1 = `
14240
14240
  box-sizing: border-box;
14241
14241
  flex: 1; min-height: 0;
14242
14242
  }
14243
+ /* ── Editorial method card ──
14244
+ Layered composition: tinted illustration zone on top, content block
14245
+ on bottom with eyebrow / title / description / arrow. A large
14246
+ corner number watermark gives each card a unique editorial feel. */
14243
14247
  .ps-cpw-method-card {
14248
+ position: relative;
14244
14249
  display: flex; flex-direction: column; align-items: stretch;
14245
14250
  gap: 0;
14246
14251
  min-width: 0; min-height: 0;
14247
14252
  width: 100%; max-width: 100%;
14248
14253
  box-sizing: border-box;
14249
14254
  background: var(--ps-bg-primary);
14250
- border: 1.5px solid var(--ps-border-subtle);
14251
- border-radius: clamp(8px, 0.6vw, 14px);
14255
+ border: 1px solid var(--ps-border-subtle);
14256
+ border-radius: clamp(10px, 0.75vw, 16px);
14252
14257
  overflow: hidden;
14253
14258
  cursor: pointer; font-family: inherit; text-align: left;
14254
- transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
14259
+ transition: border-color 0.22s, transform 0.22s, box-shadow 0.22s;
14260
+ box-shadow: 0 0.1vw 0.4vw rgba(20, 30, 60, 0.04);
14261
+ }
14262
+ .ps-cpw-method-card::before {
14263
+ /* Thin top accent bar that lights up on hover */
14264
+ content: ""; position: absolute; top: 0; left: 0; right: 0;
14265
+ height: clamp(2px, 0.15vw, 4px);
14266
+ background: var(--ps-accent);
14267
+ transform: scaleX(0); transform-origin: left center;
14268
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
14269
+ z-index: 3;
14255
14270
  }
14256
14271
  .ps-cpw-method-card:hover {
14257
14272
  border-color: var(--ps-accent);
14258
- transform: translateY(-1px);
14259
- box-shadow: 0 0.4vw 1.2vw rgba(33, 84, 239, 0.10);
14273
+ transform: translateY(-2px);
14274
+ box-shadow: 0 0.6vw 1.6vw rgba(33, 84, 239, 0.14);
14275
+ }
14276
+ .ps-cpw-method-card:hover::before { transform: scaleX(1); }
14277
+
14278
+ /* Big editorial number watermark in the top-right corner */
14279
+ .ps-cpw-method-num {
14280
+ position: absolute;
14281
+ top: clamp(8px, 0.7vw, 14px);
14282
+ right: clamp(10px, 0.85vw, 18px);
14283
+ z-index: 2;
14284
+ font-family: inherit;
14285
+ font-size: clamp(20px, 1.7vw, 32px);
14286
+ font-weight: 800;
14287
+ line-height: 1;
14288
+ letter-spacing: -0.04em;
14289
+ color: var(--ps-text-primary);
14290
+ opacity: 0.10;
14291
+ pointer-events: none;
14292
+ transition: color 0.22s, opacity 0.22s;
14293
+ }
14294
+ .ps-cpw-method-card:hover .ps-cpw-method-num {
14295
+ color: var(--ps-accent);
14296
+ opacity: 0.30;
14260
14297
  }
14261
- /* Illustration fills the upper portion of each card — flex 1 instead
14262
- of a fixed height so the image grows with the available card height
14263
- instead of leaving empty space. */
14298
+
14299
+ /* Illustration zone tinted background, image fills it */
14264
14300
  .ps-cpw-method-img {
14301
+ position: relative;
14265
14302
  width: 100%;
14266
14303
  flex: 1; min-height: 0;
14267
- background: var(--ps-bg-secondary);
14304
+ background:
14305
+ radial-gradient(ellipse at 50% 60%, rgba(33, 84, 239, 0.06) 0%, transparent 70%),
14306
+ var(--ps-bg-secondary);
14268
14307
  display: flex; align-items: center; justify-content: center;
14269
- border-bottom: 1px solid var(--ps-border-subtle);
14270
- padding: clamp(6px, 0.6vw, 14px);
14308
+ padding: clamp(10px, 0.85vw, 18px);
14271
14309
  box-sizing: border-box;
14272
14310
  }
14273
14311
  .ps-cpw-method-img img {
@@ -14275,22 +14313,66 @@ const STYLES$1 = `
14275
14313
  max-width: 100%; max-height: 100%;
14276
14314
  object-fit: contain;
14277
14315
  display: block;
14316
+ transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
14317
+ }
14318
+ .ps-cpw-method-card:hover .ps-cpw-method-img img {
14319
+ transform: scale(1.04);
14278
14320
  }
14321
+
14322
+ /* Content block — eyebrow, title, description, arrow */
14279
14323
  .ps-cpw-method-text {
14280
- display: flex; flex-direction: column; gap: clamp(2px, 0.15vw, 4px);
14281
- padding: clamp(6px, 0.55vw, 12px) clamp(8px, 0.7vw, 14px) clamp(8px, 0.7vw, 14px);
14324
+ position: relative;
14325
+ display: flex; flex-direction: column;
14326
+ gap: clamp(3px, 0.25vw, 6px);
14327
+ padding: clamp(10px, 0.85vw, 18px) clamp(12px, 1vw, 20px) clamp(12px, 1vw, 20px);
14282
14328
  width: 100%; box-sizing: border-box;
14329
+ border-top: 1px solid var(--ps-border-subtle);
14330
+ background: var(--ps-bg-primary);
14331
+ }
14332
+ .ps-cpw-method-eyebrow {
14333
+ font-size: clamp(8px, 0.55vw, 11px);
14334
+ font-weight: 700;
14335
+ letter-spacing: 0.14em;
14336
+ text-transform: uppercase;
14337
+ color: var(--ps-accent);
14283
14338
  }
14284
14339
  .ps-cpw-method-title {
14285
- font-size: clamp(11px, 0.78vw, 15px);
14340
+ font-size: clamp(13px, 0.92vw, 18px);
14286
14341
  font-weight: 700;
14287
14342
  color: var(--ps-text-primary);
14288
- letter-spacing: -0.005em;
14343
+ letter-spacing: -0.012em;
14344
+ line-height: 1.25;
14289
14345
  }
14290
14346
  .ps-cpw-method-desc {
14291
- font-size: clamp(9px, 0.65vw, 12px);
14292
- line-height: 1.4;
14347
+ font-size: clamp(10px, 0.7vw, 13px);
14348
+ line-height: 1.45;
14293
14349
  color: var(--ps-text-muted);
14350
+ /* Cap at 2 lines so cards stay symmetric */
14351
+ display: -webkit-box;
14352
+ -webkit-line-clamp: 2;
14353
+ -webkit-box-orient: vertical;
14354
+ overflow: hidden;
14355
+ }
14356
+ /* Arrow indicator — bottom right of the content block */
14357
+ .ps-cpw-method-arrow {
14358
+ position: absolute;
14359
+ right: clamp(12px, 1vw, 20px);
14360
+ bottom: clamp(12px, 1vw, 20px);
14361
+ width: clamp(22px, 1.6vw, 32px);
14362
+ height: clamp(22px, 1.6vw, 32px);
14363
+ border-radius: 50%;
14364
+ display: flex; align-items: center; justify-content: center;
14365
+ background: var(--ps-bg-secondary);
14366
+ color: var(--ps-text-secondary);
14367
+ transition: background 0.22s, color 0.22s, transform 0.22s;
14368
+ }
14369
+ .ps-cpw-method-arrow svg {
14370
+ width: 55%; height: 55%;
14371
+ }
14372
+ .ps-cpw-method-card:hover .ps-cpw-method-arrow {
14373
+ background: var(--ps-accent);
14374
+ color: #FFFFFF;
14375
+ transform: translateX(0.2vw);
14294
14376
  }
14295
14377
  /* Wizard reuses the SDK basics screen's .ps-bp-inline-* row styles for
14296
14378
  parity. This wrapper just gives them a consistent gap and centers
@@ -18341,10 +18423,16 @@ function CreateProfileWizard({ onSave, onCancel, t: t2 }) {
18341
18423
  setManualStep("identity");
18342
18424
  },
18343
18425
  children: [
18426
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-cpw-method-num", children: "01" }),
18344
18427
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-img", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: methodManualImg, alt: t2("Manual measurement illustration") }) }),
18345
18428
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ps-cpw-method-text", children: [
18429
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-eyebrow", children: t2("Quick Setup") }),
18346
18430
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-title", children: t2("Measure manually") }),
18347
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-desc", children: t2("Enter height, weight and answer quick body shape questions.") })
18431
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-desc", children: t2("Enter height, weight and answer quick body shape questions.") }),
18432
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
18433
+ /* @__PURE__ */ jsxRuntimeExports.jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
18434
+ /* @__PURE__ */ jsxRuntimeExports.jsx("polyline", { points: "12 5 19 12 12 19" })
18435
+ ] }) })
18348
18436
  ] })
18349
18437
  ]
18350
18438
  }
@@ -18358,10 +18446,16 @@ function CreateProfileWizard({ onSave, onCancel, t: t2 }) {
18358
18446
  setMode("image");
18359
18447
  },
18360
18448
  children: [
18449
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ps-cpw-method-num", children: "02" }),
18361
18450
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-img", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: methodPhotoImg, alt: t2("Photo analysis illustration") }) }),
18362
18451
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ps-cpw-method-text", children: [
18452
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-eyebrow", children: t2("AI Powered") }),
18363
18453
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-title", children: t2("Analyze by photo") }),
18364
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-desc", children: t2("Upload a full-body photo. Our AI computes every measurement.") })
18454
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-desc", children: t2("Upload a full-body photo. Our AI computes every measurement.") }),
18455
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "ps-cpw-method-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
18456
+ /* @__PURE__ */ jsxRuntimeExports.jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
18457
+ /* @__PURE__ */ jsxRuntimeExports.jsx("polyline", { points: "12 5 19 12 12 19" })
18458
+ ] }) })
18365
18459
  ] })
18366
18460
  ]
18367
18461
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primestyleai/tryon",
3
- "version": "5.8.29",
3
+ "version": "5.8.30",
4
4
  "description": "PrimeStyle Virtual Try-On SDK — React component & Web Component",
5
5
  "type": "module",
6
6
  "main": "dist/primestyle-tryon.js",