@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.
@@ -4816,34 +4816,72 @@ const STYLES = `
4816
4816
  box-sizing: border-box;
4817
4817
  flex: 1; min-height: 0;
4818
4818
  }
4819
+ /* ── Editorial method card ──
4820
+ Layered composition: tinted illustration zone on top, content block
4821
+ on bottom with eyebrow / title / description / arrow. A large
4822
+ corner number watermark gives each card a unique editorial feel. */
4819
4823
  .ps-cpw-method-card {
4824
+ position: relative;
4820
4825
  display: flex; flex-direction: column; align-items: stretch;
4821
4826
  gap: 0;
4822
4827
  min-width: 0; min-height: 0;
4823
4828
  width: 100%; max-width: 100%;
4824
4829
  box-sizing: border-box;
4825
4830
  background: var(--ps-bg-primary);
4826
- border: 1.5px solid var(--ps-border-subtle);
4827
- border-radius: clamp(8px, 0.6vw, 14px);
4831
+ border: 1px solid var(--ps-border-subtle);
4832
+ border-radius: clamp(10px, 0.75vw, 16px);
4828
4833
  overflow: hidden;
4829
4834
  cursor: pointer; font-family: inherit; text-align: left;
4830
- transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
4835
+ transition: border-color 0.22s, transform 0.22s, box-shadow 0.22s;
4836
+ box-shadow: 0 0.1vw 0.4vw rgba(20, 30, 60, 0.04);
4837
+ }
4838
+ .ps-cpw-method-card::before {
4839
+ /* Thin top accent bar that lights up on hover */
4840
+ content: ""; position: absolute; top: 0; left: 0; right: 0;
4841
+ height: clamp(2px, 0.15vw, 4px);
4842
+ background: var(--ps-accent);
4843
+ transform: scaleX(0); transform-origin: left center;
4844
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
4845
+ z-index: 3;
4831
4846
  }
4832
4847
  .ps-cpw-method-card:hover {
4833
4848
  border-color: var(--ps-accent);
4834
- transform: translateY(-1px);
4835
- box-shadow: 0 0.4vw 1.2vw rgba(33, 84, 239, 0.10);
4849
+ transform: translateY(-2px);
4850
+ box-shadow: 0 0.6vw 1.6vw rgba(33, 84, 239, 0.14);
4851
+ }
4852
+ .ps-cpw-method-card:hover::before { transform: scaleX(1); }
4853
+
4854
+ /* Big editorial number watermark in the top-right corner */
4855
+ .ps-cpw-method-num {
4856
+ position: absolute;
4857
+ top: clamp(8px, 0.7vw, 14px);
4858
+ right: clamp(10px, 0.85vw, 18px);
4859
+ z-index: 2;
4860
+ font-family: inherit;
4861
+ font-size: clamp(20px, 1.7vw, 32px);
4862
+ font-weight: 800;
4863
+ line-height: 1;
4864
+ letter-spacing: -0.04em;
4865
+ color: var(--ps-text-primary);
4866
+ opacity: 0.10;
4867
+ pointer-events: none;
4868
+ transition: color 0.22s, opacity 0.22s;
4869
+ }
4870
+ .ps-cpw-method-card:hover .ps-cpw-method-num {
4871
+ color: var(--ps-accent);
4872
+ opacity: 0.30;
4836
4873
  }
4837
- /* Illustration fills the upper portion of each card — flex 1 instead
4838
- of a fixed height so the image grows with the available card height
4839
- instead of leaving empty space. */
4874
+
4875
+ /* Illustration zone tinted background, image fills it */
4840
4876
  .ps-cpw-method-img {
4877
+ position: relative;
4841
4878
  width: 100%;
4842
4879
  flex: 1; min-height: 0;
4843
- background: var(--ps-bg-secondary);
4880
+ background:
4881
+ radial-gradient(ellipse at 50% 60%, rgba(33, 84, 239, 0.06) 0%, transparent 70%),
4882
+ var(--ps-bg-secondary);
4844
4883
  display: flex; align-items: center; justify-content: center;
4845
- border-bottom: 1px solid var(--ps-border-subtle);
4846
- padding: clamp(6px, 0.6vw, 14px);
4884
+ padding: clamp(10px, 0.85vw, 18px);
4847
4885
  box-sizing: border-box;
4848
4886
  }
4849
4887
  .ps-cpw-method-img img {
@@ -4851,22 +4889,66 @@ const STYLES = `
4851
4889
  max-width: 100%; max-height: 100%;
4852
4890
  object-fit: contain;
4853
4891
  display: block;
4892
+ transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
4893
+ }
4894
+ .ps-cpw-method-card:hover .ps-cpw-method-img img {
4895
+ transform: scale(1.04);
4854
4896
  }
4897
+
4898
+ /* Content block — eyebrow, title, description, arrow */
4855
4899
  .ps-cpw-method-text {
4856
- display: flex; flex-direction: column; gap: clamp(2px, 0.15vw, 4px);
4857
- padding: clamp(6px, 0.55vw, 12px) clamp(8px, 0.7vw, 14px) clamp(8px, 0.7vw, 14px);
4900
+ position: relative;
4901
+ display: flex; flex-direction: column;
4902
+ gap: clamp(3px, 0.25vw, 6px);
4903
+ padding: clamp(10px, 0.85vw, 18px) clamp(12px, 1vw, 20px) clamp(12px, 1vw, 20px);
4858
4904
  width: 100%; box-sizing: border-box;
4905
+ border-top: 1px solid var(--ps-border-subtle);
4906
+ background: var(--ps-bg-primary);
4907
+ }
4908
+ .ps-cpw-method-eyebrow {
4909
+ font-size: clamp(8px, 0.55vw, 11px);
4910
+ font-weight: 700;
4911
+ letter-spacing: 0.14em;
4912
+ text-transform: uppercase;
4913
+ color: var(--ps-accent);
4859
4914
  }
4860
4915
  .ps-cpw-method-title {
4861
- font-size: clamp(11px, 0.78vw, 15px);
4916
+ font-size: clamp(13px, 0.92vw, 18px);
4862
4917
  font-weight: 700;
4863
4918
  color: var(--ps-text-primary);
4864
- letter-spacing: -0.005em;
4919
+ letter-spacing: -0.012em;
4920
+ line-height: 1.25;
4865
4921
  }
4866
4922
  .ps-cpw-method-desc {
4867
- font-size: clamp(9px, 0.65vw, 12px);
4868
- line-height: 1.4;
4923
+ font-size: clamp(10px, 0.7vw, 13px);
4924
+ line-height: 1.45;
4869
4925
  color: var(--ps-text-muted);
4926
+ /* Cap at 2 lines so cards stay symmetric */
4927
+ display: -webkit-box;
4928
+ -webkit-line-clamp: 2;
4929
+ -webkit-box-orient: vertical;
4930
+ overflow: hidden;
4931
+ }
4932
+ /* Arrow indicator — bottom right of the content block */
4933
+ .ps-cpw-method-arrow {
4934
+ position: absolute;
4935
+ right: clamp(12px, 1vw, 20px);
4936
+ bottom: clamp(12px, 1vw, 20px);
4937
+ width: clamp(22px, 1.6vw, 32px);
4938
+ height: clamp(22px, 1.6vw, 32px);
4939
+ border-radius: 50%;
4940
+ display: flex; align-items: center; justify-content: center;
4941
+ background: var(--ps-bg-secondary);
4942
+ color: var(--ps-text-secondary);
4943
+ transition: background 0.22s, color 0.22s, transform 0.22s;
4944
+ }
4945
+ .ps-cpw-method-arrow svg {
4946
+ width: 55%; height: 55%;
4947
+ }
4948
+ .ps-cpw-method-card:hover .ps-cpw-method-arrow {
4949
+ background: var(--ps-accent);
4950
+ color: #FFFFFF;
4951
+ transform: translateX(0.2vw);
4870
4952
  }
4871
4953
  /* Wizard reuses the SDK basics screen's .ps-bp-inline-* row styles for
4872
4954
  parity. This wrapper just gives them a consistent gap and centers
@@ -8917,10 +8999,16 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
8917
8999
  setManualStep("identity");
8918
9000
  },
8919
9001
  children: [
9002
+ /* @__PURE__ */ jsx("span", { className: "ps-cpw-method-num", children: "01" }),
8920
9003
  /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-img", children: /* @__PURE__ */ jsx("img", { src: methodManualImg, alt: t("Manual measurement illustration") }) }),
8921
9004
  /* @__PURE__ */ jsxs("div", { className: "ps-cpw-method-text", children: [
9005
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-eyebrow", children: t("Quick Setup") }),
8922
9006
  /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-title", children: t("Measure manually") }),
8923
- /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-desc", children: t("Enter height, weight and answer quick body shape questions.") })
9007
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-desc", children: t("Enter height, weight and answer quick body shape questions.") }),
9008
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
9009
+ /* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
9010
+ /* @__PURE__ */ jsx("polyline", { points: "12 5 19 12 12 19" })
9011
+ ] }) })
8924
9012
  ] })
8925
9013
  ]
8926
9014
  }
@@ -8934,10 +9022,16 @@ function CreateProfileWizard({ onSave, onCancel, t }) {
8934
9022
  setMode("image");
8935
9023
  },
8936
9024
  children: [
9025
+ /* @__PURE__ */ jsx("span", { className: "ps-cpw-method-num", children: "02" }),
8937
9026
  /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-img", children: /* @__PURE__ */ jsx("img", { src: methodPhotoImg, alt: t("Photo analysis illustration") }) }),
8938
9027
  /* @__PURE__ */ jsxs("div", { className: "ps-cpw-method-text", children: [
9028
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-eyebrow", children: t("AI Powered") }),
8939
9029
  /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-title", children: t("Analyze by photo") }),
8940
- /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-desc", children: t("Upload a full-body photo. Our AI computes every measurement.") })
9030
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-desc", children: t("Upload a full-body photo. Our AI computes every measurement.") }),
9031
+ /* @__PURE__ */ jsx("div", { className: "ps-cpw-method-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
9032
+ /* @__PURE__ */ jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
9033
+ /* @__PURE__ */ jsx("polyline", { points: "12 5 19 12 12 19" })
9034
+ ] }) })
8941
9035
  ] })
8942
9036
  ]
8943
9037
  }