@primestyleai/tryon 5.8.26 → 5.8.28

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.
@@ -13520,30 +13520,32 @@ const STYLES$1 = `
13520
13520
  overflow-y: auto; -webkit-overflow-scrolling: touch;
13521
13521
  padding: 4px 4px 32px;
13522
13522
  }
13523
- .ps-msp-header { margin-bottom: 18px; }
13523
+ .ps-msp-header { margin-bottom: clamp(10px, 0.85vw, 18px); }
13524
13524
  .ps-msp-title {
13525
- font-size: 26px; font-weight: 700;
13525
+ font-size: clamp(13px, 0.95vw, 18px);
13526
+ font-weight: 700;
13526
13527
  color: var(--ps-text-primary);
13527
- margin: 0 0 6px;
13528
- letter-spacing: -0.01em;
13528
+ margin: 0 0 clamp(2px, 0.2vw, 6px);
13529
+ letter-spacing: -0.005em;
13529
13530
  }
13530
13531
  .ps-msp-subtitle {
13531
- font-size: 13px; color: var(--ps-text-muted);
13532
+ font-size: clamp(10px, 0.7vw, 13px);
13533
+ color: var(--ps-text-muted);
13532
13534
  margin: 0; line-height: 1.5;
13533
13535
  }
13534
13536
 
13535
- /* Card grid */
13537
+ /* Card grid — compact saved profile cards */
13536
13538
  .ps-msp-grid {
13537
13539
  display: grid;
13538
- grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
13539
- gap: 14px;
13540
- margin-bottom: 28px;
13540
+ grid-template-columns: repeat(auto-fill, minmax(clamp(140px, 11vw, 200px), 1fr));
13541
+ gap: clamp(8px, 0.7vw, 14px);
13542
+ margin-bottom: clamp(14px, 1.2vw, 24px);
13541
13543
  }
13542
13544
  .ps-msp-card {
13543
13545
  background: var(--ps-bg-primary);
13544
13546
  border: 1px solid var(--ps-border-subtle);
13545
- border-radius: 12px;
13546
- padding: 14px;
13547
+ border-radius: clamp(8px, 0.6vw, 14px);
13548
+ padding: clamp(8px, 0.7vw, 14px);
13547
13549
  display: flex; flex-direction: column;
13548
13550
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
13549
13551
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
@@ -13577,18 +13579,18 @@ const STYLES$1 = `
13577
13579
  .ps-msp-avatar { color: var(--ps-accent); border-color: var(--ps-accent); }
13578
13580
  .ps-msp-avatar-tag { background: var(--ps-accent); }
13579
13581
 
13580
- /* Big circular profile avatar — only chrome on the card, no
13581
- rectangular hero. Shows the head crop via object-position 12%. */
13582
+ /* Compact circular profile avatar — vw-scaled. */
13582
13583
  .ps-msp-card-circle {
13583
- width: 110px; height: 110px;
13584
+ width: clamp(56px, 4.5vw, 90px);
13585
+ height: clamp(56px, 4.5vw, 90px);
13584
13586
  border-radius: 50%;
13585
13587
  background: var(--ps-bg-secondary);
13586
- border: 3px solid var(--ps-accent);
13587
- box-shadow: 0 6px 18px rgba(33, 84, 239, 0.18);
13588
+ border: 2px solid var(--ps-accent);
13589
+ box-shadow: 0 0.3vw 0.9vw rgba(33, 84, 239, 0.15);
13588
13590
  overflow: hidden;
13589
13591
  display: flex; align-items: center; justify-content: center;
13590
13592
  color: var(--ps-accent);
13591
- margin: 6px auto 14px;
13593
+ margin: clamp(4px, 0.35vw, 8px) auto clamp(8px, 0.7vw, 14px);
13592
13594
  }
13593
13595
  .ps-msp-card-circle img {
13594
13596
  width: 100%; height: 100%; object-fit: cover;
@@ -13613,42 +13615,47 @@ const STYLES$1 = `
13613
13615
  }
13614
13616
 
13615
13617
  .ps-msp-card-name {
13616
- font-size: 16px; font-weight: 700;
13618
+ font-size: clamp(12px, 0.85vw, 16px);
13619
+ font-weight: 700;
13617
13620
  color: var(--ps-text-primary);
13618
- margin-bottom: 8px;
13621
+ margin-bottom: clamp(4px, 0.4vw, 10px);
13619
13622
  }
13620
13623
  .ps-msp-card-meta {
13621
13624
  display: flex; flex-direction: column;
13622
- gap: 4px;
13623
- margin-bottom: 12px;
13625
+ gap: clamp(2px, 0.2vw, 6px);
13626
+ margin-bottom: clamp(6px, 0.55vw, 14px);
13624
13627
  }
13625
13628
  .ps-msp-meta-row {
13626
13629
  display: flex; align-items: center; justify-content: space-between;
13627
- padding: 4px 0;
13630
+ padding: clamp(2px, 0.2vw, 6px) 0;
13628
13631
  border-bottom: 1px solid var(--ps-border-subtle);
13629
13632
  }
13630
13633
  .ps-msp-meta-row:last-child { border-bottom: none; }
13631
13634
  .ps-msp-meta-label {
13632
- font-size: 9px; font-weight: 600;
13635
+ font-size: clamp(8px, 0.55vw, 11px);
13636
+ font-weight: 600;
13633
13637
  letter-spacing: 0.1em; text-transform: uppercase;
13634
13638
  color: var(--ps-text-muted);
13635
13639
  }
13636
13640
  .ps-msp-meta-value {
13637
- font-size: 12px; font-weight: 600;
13641
+ font-size: clamp(10px, 0.7vw, 13px);
13642
+ font-weight: 600;
13638
13643
  color: var(--ps-text-primary);
13639
13644
  font-feature-settings: "tnum" 1;
13640
13645
  }
13641
13646
 
13642
13647
  .ps-msp-card-actions {
13643
- display: flex; gap: 8px;
13648
+ display: flex; gap: clamp(4px, 0.4vw, 10px);
13644
13649
  margin-top: auto;
13645
13650
  }
13646
13651
  .ps-msp-card-select {
13647
13652
  flex: 1;
13648
13653
  background: var(--ps-accent); color: #FFFFFF;
13649
- border: none; border-radius: 6px;
13650
- padding: 10px;
13651
- font-family: inherit; font-size: 11px; font-weight: 700;
13654
+ border: none; border-radius: clamp(4px, 0.35vw, 8px);
13655
+ padding: clamp(6px, 0.55vw, 12px);
13656
+ font-family: inherit;
13657
+ font-size: clamp(9px, 0.65vw, 12px);
13658
+ font-weight: 700;
13652
13659
  letter-spacing: 0.12em; text-transform: uppercase;
13653
13660
  cursor: pointer;
13654
13661
  transition: opacity 0.15s, transform 0.15s;
@@ -13753,14 +13760,15 @@ const STYLES$1 = `
13753
13760
  }
13754
13761
  .ps-msp-edit-save:hover { opacity: 0.9; }
13755
13762
 
13756
- /* "Create New Profile" empty card */
13763
+ /* "Create New Profile" empty card — same compact size as the saved
13764
+ profile cards (no min-height forcing it taller). */
13757
13765
  .ps-msp-card-create {
13758
13766
  background: var(--ps-bg-secondary);
13759
13767
  border: 2px dashed var(--ps-border-color);
13760
13768
  align-items: center; justify-content: center;
13761
13769
  text-align: center;
13762
13770
  cursor: pointer;
13763
- min-height: 280px;
13771
+ min-height: 0;
13764
13772
  transition: border-color 0.15s, background 0.15s;
13765
13773
  }
13766
13774
  .ps-msp-card-create:hover {
@@ -13768,19 +13776,22 @@ const STYLES$1 = `
13768
13776
  background: rgba(33,84,239,0.04);
13769
13777
  }
13770
13778
  .ps-msp-create-icon {
13771
- width: 50px; height: 50px;
13779
+ width: clamp(32px, 2.6vw, 48px);
13780
+ height: clamp(32px, 2.6vw, 48px);
13772
13781
  background: var(--ps-accent); color: #FFFFFF;
13773
- border-radius: 8px;
13782
+ border-radius: clamp(4px, 0.35vw, 8px);
13774
13783
  display: flex; align-items: center; justify-content: center;
13775
- margin-bottom: 12px;
13784
+ margin-bottom: clamp(6px, 0.55vw, 12px);
13776
13785
  }
13777
13786
  .ps-msp-create-title {
13778
- font-size: 15px; font-weight: 700;
13787
+ font-size: clamp(11px, 0.78vw, 14px);
13788
+ font-weight: 700;
13779
13789
  color: var(--ps-text-primary);
13780
- margin-bottom: 4px;
13790
+ margin-bottom: clamp(2px, 0.2vw, 6px);
13781
13791
  }
13782
13792
  .ps-msp-create-sub {
13783
- font-size: 9px; font-weight: 700;
13793
+ font-size: clamp(8px, 0.55vw, 11px);
13794
+ font-weight: 700;
13784
13795
  letter-spacing: 0.14em; text-transform: uppercase;
13785
13796
  color: var(--ps-text-muted);
13786
13797
  }
@@ -13873,17 +13884,21 @@ const STYLES$1 = `
13873
13884
  overflow-x: hidden;
13874
13885
  }
13875
13886
 
13876
- /* Step header — single tiny title + a thin progress bar inline */
13887
+ /* Step header — single tiny title + a thin progress bar inline.
13888
+ All sizing is vw-based with sensible clamps so the wizard scales
13889
+ proportionally from a 320px phone all the way up to a 5000px display
13890
+ without losing its ratios. */
13877
13891
  .ps-cpw-step-head {
13878
13892
  display: flex; align-items: center; justify-content: space-between;
13879
- gap: 12px;
13880
- padding: 6px 16px;
13893
+ gap: clamp(8px, 0.75vw, 16px);
13894
+ padding: clamp(4px, 0.4vw, 10px) clamp(12px, 1vw, 22px);
13881
13895
  border-bottom: 1px solid var(--ps-border-subtle);
13882
13896
  flex-shrink: 0;
13883
13897
  }
13884
13898
  .ps-cpw-eyebrow { display: none; }
13885
13899
  .ps-cpw-step-title {
13886
- font-size: 11px; font-weight: 600;
13900
+ font-size: clamp(10px, 0.7vw, 14px);
13901
+ font-weight: 600;
13887
13902
  color: var(--ps-text-primary);
13888
13903
  letter-spacing: 0.02em;
13889
13904
  margin: 0;
@@ -13892,10 +13907,10 @@ const STYLES$1 = `
13892
13907
  .ps-cpw-progress {
13893
13908
  display: flex; flex-direction: column; align-items: flex-end;
13894
13909
  gap: 0; flex-shrink: 0;
13895
- min-width: 80px;
13910
+ min-width: clamp(60px, 5vw, 100px);
13896
13911
  }
13897
13912
  .ps-cpw-progress-track {
13898
- width: 100%; height: 2px;
13913
+ width: 100%; height: clamp(2px, 0.12vw, 3px);
13899
13914
  background: var(--ps-border-color); border-radius: 2px;
13900
13915
  overflow: hidden;
13901
13916
  }
@@ -13907,21 +13922,19 @@ const STYLES$1 = `
13907
13922
 
13908
13923
  .ps-cpw-body {
13909
13924
  display: flex; flex-direction: column;
13910
- gap: 14px;
13925
+ gap: clamp(10px, 0.85vw, 18px);
13911
13926
  flex: 1; min-height: 0;
13912
13927
  width: 100%; max-width: 100%;
13913
13928
  box-sizing: border-box;
13914
- /* Modal height is fixed by the parent — don't grow it. If a step
13915
- happens to be taller (rare), let it scroll inside the body
13916
- instead of forcing the modal to expand. */
13917
13929
  overflow-y: auto; overflow-x: hidden;
13918
13930
  -webkit-overflow-scrolling: touch;
13919
- padding: 14px 16px;
13931
+ padding: clamp(10px, 0.9vw, 18px) clamp(12px, 1vw, 22px);
13920
13932
  }
13921
13933
 
13922
- /* Step 1 — Identity form (compact) */
13934
+ /* Step 1 — Identity form (compact, vw-scaled) */
13923
13935
  .ps-cpw-identity {
13924
- display: flex; flex-direction: column; gap: 10px;
13936
+ display: flex; flex-direction: column;
13937
+ gap: clamp(8px, 0.7vw, 14px);
13925
13938
  flex: 1; min-height: 0;
13926
13939
  width: 100%; box-sizing: border-box;
13927
13940
  }
@@ -13950,7 +13963,8 @@ const STYLES$1 = `
13950
13963
  .ps-cpw-input[type="number"] { -moz-appearance: textfield; }
13951
13964
 
13952
13965
  .ps-cpw-pill-row {
13953
- display: flex; align-items: center; gap: 8px;
13966
+ display: flex; align-items: center;
13967
+ gap: clamp(6px, 0.5vw, 12px);
13954
13968
  flex-wrap: wrap;
13955
13969
  }
13956
13970
  .ps-cpw-pill-group {
@@ -13958,12 +13972,15 @@ const STYLES$1 = `
13958
13972
  background: var(--ps-bg-secondary);
13959
13973
  border: 1px solid var(--ps-border-color);
13960
13974
  border-radius: 999px;
13961
- padding: 2px;
13975
+ padding: clamp(2px, 0.15vw, 4px);
13962
13976
  }
13963
13977
  .ps-cpw-pill {
13964
13978
  background: none; border: none;
13965
- padding: 5px 14px; border-radius: 999px;
13966
- font-family: inherit; font-size: 11px; font-weight: 600;
13979
+ padding: clamp(4px, 0.35vw, 8px) clamp(10px, 0.9vw, 20px);
13980
+ border-radius: 999px;
13981
+ font-family: inherit;
13982
+ font-size: clamp(10px, 0.7vw, 13px);
13983
+ font-weight: 600;
13967
13984
  color: var(--ps-text-secondary); cursor: pointer;
13968
13985
  transition: background 0.15s, color 0.15s;
13969
13986
  }
@@ -14119,11 +14136,11 @@ const STYLES$1 = `
14119
14136
  color: var(--ps-accent);
14120
14137
  }
14121
14138
 
14122
- /* Footer actions — sticky at the bottom (compact) */
14139
+ /* Footer actions — vw-scaled */
14123
14140
  .ps-cpw-footer {
14124
14141
  display: flex; align-items: center; justify-content: space-between;
14125
- gap: 10px;
14126
- padding: 8px 16px;
14142
+ gap: clamp(8px, 0.7vw, 14px);
14143
+ padding: clamp(6px, 0.55vw, 12px) clamp(12px, 1vw, 22px);
14127
14144
  border-top: 1px solid var(--ps-border-subtle);
14128
14145
  background: var(--ps-bg-primary);
14129
14146
  flex-shrink: 0;
@@ -14131,20 +14148,25 @@ const STYLES$1 = `
14131
14148
  .ps-cpw-back-btn {
14132
14149
  background: none; border: none;
14133
14150
  color: var(--ps-text-secondary);
14134
- font-family: inherit; font-size: 11px; font-weight: 600;
14135
- cursor: pointer; padding: 8px 4px;
14151
+ font-family: inherit;
14152
+ font-size: clamp(10px, 0.7vw, 13px);
14153
+ font-weight: 600;
14154
+ cursor: pointer;
14155
+ padding: clamp(6px, 0.55vw, 12px) clamp(2px, 0.2vw, 6px);
14136
14156
  transition: color 0.15s;
14137
14157
  }
14138
14158
  .ps-cpw-back-btn:hover { color: var(--ps-text-primary); }
14139
14159
  .ps-cpw-next-btn {
14140
14160
  background: var(--ps-accent); color: #FFFFFF;
14141
- border: none; border-radius: 6px;
14142
- padding: 10px 22px;
14143
- font-family: inherit; font-size: 11px; font-weight: 700;
14161
+ border: none; border-radius: clamp(4px, 0.35vw, 8px);
14162
+ padding: clamp(8px, 0.7vw, 14px) clamp(16px, 1.4vw, 28px);
14163
+ font-family: inherit;
14164
+ font-size: clamp(10px, 0.7vw, 13px);
14165
+ font-weight: 700;
14144
14166
  letter-spacing: 0.1em; text-transform: uppercase;
14145
14167
  cursor: pointer;
14146
14168
  transition: opacity 0.15s, transform 0.15s, box-shadow 0.15s;
14147
- box-shadow: 0 4px 12px rgba(33, 84, 239, 0.16);
14169
+ box-shadow: 0 0.25vw 0.8vw rgba(33, 84, 239, 0.16);
14148
14170
  }
14149
14171
  .ps-cpw-next-btn:disabled {
14150
14172
  background: var(--ps-border-color);
@@ -14180,8 +14202,9 @@ const STYLES$1 = `
14180
14202
 
14181
14203
  /* ── Progressive (one-question-at-a-time) flow ── */
14182
14204
  .ps-cpw-progressive {
14183
- display: flex; flex-direction: column; gap: 16px;
14184
- padding: 8px 0;
14205
+ display: flex; flex-direction: column;
14206
+ gap: clamp(12px, 1vw, 22px);
14207
+ padding: clamp(6px, 0.5vw, 12px) 0;
14185
14208
  }
14186
14209
  .ps-cpw-fade-in {
14187
14210
  animation: ps-cpw-fade-up 0.35s cubic-bezier(0.16, 1, 0.3, 1);
@@ -14191,22 +14214,20 @@ const STYLES$1 = `
14191
14214
  to { opacity: 1; transform: translateY(0); }
14192
14215
  }
14193
14216
 
14194
- /* ── Method picker (initial step) — vertical stack of compact rows ── */
14217
+ /* ── Method picker (initial step) — vw-scaled compact cards ── */
14195
14218
  .ps-cpw-method-picker {
14196
14219
  display: flex; flex-direction: column;
14197
- gap: 10px; padding: 8px 0;
14220
+ gap: clamp(8px, 0.7vw, 14px);
14221
+ padding: clamp(4px, 0.4vw, 10px) 0;
14198
14222
  flex: 1; min-height: 0;
14199
14223
  width: 100%; box-sizing: border-box;
14200
14224
  justify-content: center;
14201
14225
  }
14202
14226
  .ps-cpw-method-intro { display: none; }
14203
- /* Two cards side by side. Each card stacks the illustration on top
14204
- and the text below — keeps the cards short and lets the picker fit
14205
- inside the wizard body without changing the modal height. */
14206
14227
  .ps-cpw-method-grid {
14207
14228
  display: grid;
14208
14229
  grid-template-columns: 1fr 1fr;
14209
- gap: 12px;
14230
+ gap: clamp(8px, 0.75vw, 16px);
14210
14231
  width: 100%; max-width: 100%;
14211
14232
  box-sizing: border-box;
14212
14233
  }
@@ -14218,7 +14239,7 @@ const STYLES$1 = `
14218
14239
  box-sizing: border-box;
14219
14240
  background: var(--ps-bg-primary);
14220
14241
  border: 1.5px solid var(--ps-border-subtle);
14221
- border-radius: 10px;
14242
+ border-radius: clamp(8px, 0.6vw, 14px);
14222
14243
  overflow: hidden;
14223
14244
  cursor: pointer; font-family: inherit; text-align: left;
14224
14245
  transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
@@ -14226,34 +14247,40 @@ const STYLES$1 = `
14226
14247
  .ps-cpw-method-card:hover {
14227
14248
  border-color: var(--ps-accent);
14228
14249
  transform: translateY(-1px);
14229
- box-shadow: 0 6px 18px rgba(33, 84, 239, 0.10);
14250
+ box-shadow: 0 0.4vw 1.2vw rgba(33, 84, 239, 0.10);
14230
14251
  }
14231
- /* Square-ish illustration slot at the top of each card */
14252
+ /* Wide short illustration strip at the top keeps cards compact
14253
+ and scales proportionally with viewport width. */
14232
14254
  .ps-cpw-method-img {
14233
14255
  width: 100%;
14234
- aspect-ratio: 1 / 1;
14256
+ height: clamp(56px, 4.5vw, 100px);
14235
14257
  flex-shrink: 0;
14236
14258
  background: var(--ps-bg-secondary);
14237
14259
  display: flex; align-items: center; justify-content: center;
14238
14260
  border-bottom: 1px solid var(--ps-border-subtle);
14261
+ padding: clamp(4px, 0.4vw, 10px);
14262
+ box-sizing: border-box;
14239
14263
  }
14240
14264
  .ps-cpw-method-img img {
14241
- width: 100%; height: 100%;
14265
+ width: auto; height: 100%;
14266
+ max-width: 100%;
14242
14267
  object-fit: contain;
14243
14268
  display: block;
14244
14269
  }
14245
14270
  .ps-cpw-method-text {
14246
- display: flex; flex-direction: column; gap: 3px;
14247
- padding: 10px 12px 12px;
14271
+ display: flex; flex-direction: column; gap: clamp(2px, 0.15vw, 4px);
14272
+ padding: clamp(6px, 0.55vw, 12px) clamp(8px, 0.7vw, 14px) clamp(8px, 0.7vw, 14px);
14248
14273
  width: 100%; box-sizing: border-box;
14249
14274
  }
14250
14275
  .ps-cpw-method-title {
14251
- font-size: 13px; font-weight: 700;
14276
+ font-size: clamp(11px, 0.78vw, 15px);
14277
+ font-weight: 700;
14252
14278
  color: var(--ps-text-primary);
14253
14279
  letter-spacing: -0.005em;
14254
14280
  }
14255
14281
  .ps-cpw-method-desc {
14256
- font-size: 11px; line-height: 1.4;
14282
+ font-size: clamp(9px, 0.65vw, 12px);
14283
+ line-height: 1.4;
14257
14284
  color: var(--ps-text-muted);
14258
14285
  }
14259
14286
  /* Wizard reuses the SDK basics screen's .ps-bp-inline-* row styles for
@@ -14261,53 +14288,48 @@ const STYLES$1 = `
14261
14288
  them inside the wizard body so all rows fit without scrolling. */
14262
14289
  .ps-cpw-inline-fields {
14263
14290
  width: 100%;
14264
- margin-top: 4px;
14265
- /* Generous breathing room between rows so the inputs don't feel
14266
- cramped together — each row owns its own divider. */
14291
+ margin-top: clamp(2px, 0.2vw, 6px);
14267
14292
  display: flex; flex-direction: column;
14268
- gap: 6px;
14293
+ gap: clamp(4px, 0.4vw, 10px);
14269
14294
  }
14270
14295
  .ps-cpw-inline-fields .ps-bp-inline-row {
14271
- padding: 14px 2px;
14296
+ padding: clamp(10px, 0.9vw, 18px) clamp(1px, 0.1vw, 4px);
14272
14297
  border-bottom: 1px solid var(--ps-border-subtle);
14273
14298
  }
14274
14299
  .ps-cpw-inline-fields .ps-bp-inline-row:last-child { border-bottom: none; }
14275
14300
  .ps-cpw-inline-fields .ps-bp-inline-label {
14276
- flex: 0 0 70px;
14277
- font-size: 10px;
14301
+ flex: 0 0 clamp(56px, 4.5vw, 90px);
14302
+ font-size: clamp(9px, 0.62vw, 12px);
14278
14303
  font-weight: 700;
14279
- color: var(--ps-text-primary); /* black labels */
14304
+ color: var(--ps-text-primary);
14280
14305
  letter-spacing: 0.08em;
14281
14306
  }
14282
14307
  .ps-cpw-inline-fields .ps-bp-inline-input {
14283
- font-size: 14px;
14308
+ font-size: clamp(12px, 0.85vw, 16px);
14284
14309
  padding-bottom: 0;
14285
- border-bottom: none; /* parent row owns the divider */
14310
+ border-bottom: none;
14286
14311
  color: var(--ps-text-primary);
14287
14312
  }
14288
14313
  .ps-cpw-inline-fields .ps-bp-inline-unit {
14289
- font-size: 11px;
14314
+ font-size: clamp(10px, 0.7vw, 13px);
14290
14315
  color: var(--ps-text-muted);
14291
14316
  }
14292
14317
 
14293
- /* ── Image path — single combined screen ──
14294
- Gender pills + name input + photo dropzone (or preview) all on one
14295
- screen with no scrolling. The dropzone/preview takes whatever
14296
- vertical space is left after the inputs. */
14318
+ /* ── Image path — single combined screen, vw-scaled ── */
14297
14319
  .ps-cpw-image-combined {
14298
14320
  display: flex; flex-direction: column; align-items: stretch;
14299
- gap: 10px;
14321
+ gap: clamp(8px, 0.7vw, 14px);
14300
14322
  flex: 1; min-height: 0;
14301
14323
  width: 100%; box-sizing: border-box;
14302
14324
  }
14303
14325
  .ps-cpw-photo-dropzone {
14304
14326
  display: flex; flex-direction: column; align-items: center; justify-content: center;
14305
- gap: 6px;
14327
+ gap: clamp(4px, 0.4vw, 10px);
14306
14328
  flex: 1; min-height: 0;
14307
14329
  width: 100%; box-sizing: border-box;
14308
- padding: 14px;
14330
+ padding: clamp(10px, 0.9vw, 18px);
14309
14331
  border: 2px dashed var(--ps-border-color);
14310
- border-radius: 10px;
14332
+ border-radius: clamp(8px, 0.6vw, 14px);
14311
14333
  background: var(--ps-bg-secondary);
14312
14334
  color: var(--ps-text-muted);
14313
14335
  cursor: pointer; font-family: inherit;
@@ -14316,17 +14338,19 @@ const STYLES$1 = `
14316
14338
  .ps-cpw-photo-dropzone:hover { border-color: var(--ps-accent); background: rgba(33, 84, 239, 0.04); }
14317
14339
  .ps-cpw-photo-dropzone:disabled { opacity: 0.6; cursor: default; }
14318
14340
  .ps-cpw-photo-dropzone-title {
14319
- font-size: 12px; font-weight: 600; color: var(--ps-text-primary);
14341
+ font-size: clamp(11px, 0.78vw, 14px);
14342
+ font-weight: 600; color: var(--ps-text-primary);
14320
14343
  }
14321
14344
  .ps-cpw-photo-dropzone-hint {
14322
- font-size: 10px; color: var(--ps-text-muted);
14345
+ font-size: clamp(9px, 0.62vw, 12px);
14346
+ color: var(--ps-text-muted);
14323
14347
  }
14324
14348
  .ps-cpw-photo-frame {
14325
14349
  position: relative;
14326
14350
  flex: 1; min-height: 0;
14327
14351
  width: 100%;
14328
14352
  background: var(--ps-bg-secondary);
14329
- border-radius: 10px;
14353
+ border-radius: clamp(8px, 0.6vw, 14px);
14330
14354
  overflow: hidden;
14331
14355
  border: 1px solid var(--ps-border-subtle);
14332
14356
  }
@@ -14337,25 +14361,27 @@ const STYLES$1 = `
14337
14361
  }
14338
14362
  .ps-cpw-photo-retake {
14339
14363
  align-self: center;
14340
- padding: 12px 24px;
14364
+ padding: clamp(8px, 0.7vw, 14px) clamp(16px, 1.4vw, 28px);
14341
14365
  border-radius: 999px;
14342
14366
  background: transparent;
14343
14367
  color: var(--ps-accent);
14344
14368
  border: 2px solid var(--ps-accent);
14345
- font-weight: 700; font-size: 12px;
14369
+ font-weight: 700;
14370
+ font-size: clamp(10px, 0.7vw, 13px);
14346
14371
  text-transform: uppercase; letter-spacing: 0.08em;
14347
14372
  cursor: pointer; font-family: inherit;
14348
14373
  transition: background 0.18s;
14349
14374
  }
14350
14375
  .ps-cpw-photo-retake:hover { background: rgba(33, 84, 239, 0.08); }
14351
14376
  .ps-cpw-hint {
14352
- font-size: 12.5px; line-height: 1.6;
14377
+ font-size: clamp(10px, 0.72vw, 13px);
14378
+ line-height: 1.6;
14353
14379
  color: var(--ps-text-muted);
14354
- margin: 8px 0 0;
14355
- padding: 12px 14px;
14380
+ margin: clamp(4px, 0.4vw, 10px) 0 0;
14381
+ padding: clamp(8px, 0.7vw, 14px) clamp(10px, 0.85vw, 16px);
14356
14382
  background: rgba(33, 84, 239, 0.05);
14357
14383
  border-left: 3px solid var(--ps-accent);
14358
- border-radius: 6px;
14384
+ border-radius: clamp(4px, 0.35vw, 8px);
14359
14385
  }
14360
14386
 
14361
14387
  /* ════════════════════════════════════════════════════════════════
@@ -21635,7 +21661,7 @@ function PrimeStyleTryonInner({
21635
21661
  }
21636
21662
  ),
21637
21663
  view !== "idle" && typeof document !== "undefined" && reactDomExports.createPortal(
21638
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cx("ps-tryon-overlay", cn.overlay), style: cssVars, "data-ps-tryon-portal": true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cx(`ps-tryon-modal${view === "result" && resultImageUrl && sizingResult || view === "size-result" || view === "estimation-review" || view === "body-profile" || view === "profiles" ? " ps-tryon-modal-wide" : ""}${view === "profiles" ? " ps-tryon-modal-tall" : ""}`, cn.modal), onClick: (e) => e.stopPropagation(), children: [
21664
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cx("ps-tryon-overlay", cn.overlay), style: cssVars, "data-ps-tryon-portal": true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cx(`ps-tryon-modal${view === "result" && resultImageUrl && sizingResult || view === "size-result" || view === "estimation-review" || view === "body-profile" || view === "profiles" ? " ps-tryon-modal-wide" : ""}`, cn.modal), onClick: (e) => e.stopPropagation(), children: [
21639
21665
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: cx("ps-tryon-header ps-tryon-header-minimal", cn.header), children: [
21640
21666
  /* @__PURE__ */ jsxRuntimeExports.jsx(LangSwitcher, { activeLocale, onSelect: setActiveLocale }),
21641
21667
  /* @__PURE__ */ jsxRuntimeExports.jsx("button", { className: "ps-tryon-header-icon", title: t2("Profiles"), onClick: () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primestyleai/tryon",
3
- "version": "5.8.26",
3
+ "version": "5.8.28",
4
4
  "description": "PrimeStyle Virtual Try-On SDK — React component & Web Component",
5
5
  "type": "module",
6
6
  "main": "dist/primestyle-tryon.js",