@metropolle/design-system 1.2026.0-1.22.2325 → 1.2026.0-1.24.1854

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.
@@ -3808,65 +3808,85 @@ html[data-theme="light"] .mds-profile-card__verified-trigger {
3808
3808
  }
3809
3809
 
3810
3810
  .mds-profile-card__verified-popup {
3811
+ /* Position to the LEFT of the trigger icon */
3811
3812
  position: absolute;
3812
- top: calc(100% + 12px);
3813
- right: 0;
3814
- padding: 16px;
3813
+ top: 50%;
3814
+ right: calc(100% + 12px);
3815
+ transform: translateY(-50%);
3816
+ padding: 32px 40px;
3815
3817
  /* Liquid Glass popup */
3816
- background: rgba(20, 20, 30, 0.75);
3817
- backdrop-filter: blur(16px) saturate(140%);
3818
- -webkit-backdrop-filter: blur(16px) saturate(140%);
3819
- border-radius: 14px;
3820
- border: 1px solid rgba(255, 255, 255, 0.1);
3818
+ background: rgba(20, 20, 30, 0.9);
3819
+ backdrop-filter: blur(24px) saturate(160%);
3820
+ -webkit-backdrop-filter: blur(24px) saturate(160%);
3821
+ border-radius: 20px;
3822
+ border: 1px solid rgba(255, 255, 255, 0.15);
3821
3823
  box-shadow:
3822
- 0 8px 24px rgba(0, 0, 0, 0.25),
3823
- inset 0 1px 0 rgba(255, 255, 255, 0.05);
3824
- min-width: 180px;
3825
- z-index: 20;
3824
+ 0 16px 48px rgba(0, 0, 0, 0.4),
3825
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
3826
+ min-width: 320px;
3827
+ z-index: 100;
3826
3828
  }
3827
3829
 
3828
3830
  html[data-theme="light"] .mds-profile-card__verified-popup {
3829
- background: rgba(255, 255, 255, 0.7);
3830
- border: 1px solid rgba(255, 255, 255, 0.9);
3831
+ background: rgba(255, 255, 255, 0.92);
3832
+ border: 1px solid rgba(255, 255, 255, 0.98);
3831
3833
  box-shadow:
3832
- 0 8px 24px rgba(0, 0, 0, 0.08),
3834
+ 0 16px 48px rgba(0, 0, 0, 0.15),
3833
3835
  inset 0 1px 0 rgba(255, 255, 255, 1);
3834
3836
  }
3835
3837
 
3838
+ /* Mobile: popup centered on screen */
3839
+ @media (max-width: 768px) {
3840
+ .mds-profile-card__verified-popup {
3841
+ position: fixed;
3842
+ top: 50%;
3843
+ left: 0;
3844
+ right: 0;
3845
+ bottom: auto;
3846
+ transform: translateY(-50%);
3847
+ width: 280px;
3848
+ min-width: auto;
3849
+ margin-left: auto;
3850
+ margin-right: auto;
3851
+ padding: 24px 28px;
3852
+ z-index: 1000;
3853
+ }
3854
+ }
3855
+
3836
3856
  .mds-profile-card__verified-header {
3837
3857
  font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3838
- font-size: 12px;
3858
+ font-size: 16px;
3839
3859
  font-weight: bold;
3840
3860
  color: #00d4aa;
3841
3861
  letter-spacing: 0.08em;
3842
3862
  text-transform: uppercase;
3843
- margin-bottom: 14px;
3863
+ margin-bottom: 20px;
3844
3864
  white-space: nowrap;
3845
3865
  }
3846
3866
 
3847
3867
  .mds-profile-card__verified-stats {
3848
3868
  display: flex;
3849
3869
  flex-direction: column;
3850
- gap: 10px;
3870
+ gap: 14px;
3851
3871
  }
3852
3872
 
3853
3873
  .mds-profile-card__stat-item {
3854
3874
  display: flex;
3855
3875
  justify-content: space-between;
3856
3876
  align-items: center;
3857
- gap: 20px;
3877
+ gap: 32px;
3858
3878
  }
3859
3879
 
3860
3880
  .mds-profile-card__stat-label {
3861
3881
  font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3862
- font-size: 11px;
3882
+ font-size: 14px;
3863
3883
  color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3864
3884
  letter-spacing: 0.06em;
3865
3885
  }
3866
3886
 
3867
3887
  .mds-profile-card__stat-value {
3868
3888
  font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3869
- font-size: 11px;
3889
+ font-size: 14px;
3870
3890
  letter-spacing: 0.06em;
3871
3891
  text-transform: uppercase;
3872
3892
  color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
@@ -3876,12 +3896,66 @@ html[data-theme="light"] .mds-profile-card__verified-popup {
3876
3896
  color: #00d4aa;
3877
3897
  }
3878
3898
 
3899
+ /* FEAT-090: Verification Score Checks */
3900
+ .mds-profile-card__verified-checks {
3901
+ display: flex;
3902
+ flex-direction: column;
3903
+ gap: 10px;
3904
+ margin: 16px 0;
3905
+ }
3906
+
3907
+ .mds-profile-card__check-item {
3908
+ display: flex;
3909
+ align-items: center;
3910
+ gap: 10px;
3911
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3912
+ font-size: 12px;
3913
+ letter-spacing: 0.04em;
3914
+ }
3915
+
3916
+ .mds-profile-card__check-icon {
3917
+ width: 18px;
3918
+ height: 18px;
3919
+ display: flex;
3920
+ align-items: center;
3921
+ justify-content: center;
3922
+ border-radius: 50%;
3923
+ font-size: 11px;
3924
+ font-weight: bold;
3925
+ background: rgba(255, 255, 255, 0.05);
3926
+ color: rgba(255, 255, 255, 0.3);
3927
+ flex-shrink: 0;
3928
+ }
3929
+
3930
+ .mds-profile-card__check-icon--passed {
3931
+ background: rgba(0, 212, 170, 0.15);
3932
+ color: #00d4aa;
3933
+ }
3934
+
3935
+ html[data-theme="light"] .mds-profile-card__check-icon {
3936
+ background: rgba(0, 0, 0, 0.05);
3937
+ color: rgba(0, 0, 0, 0.3);
3938
+ }
3939
+
3940
+ html[data-theme="light"] .mds-profile-card__check-icon--passed {
3941
+ background: rgba(0, 180, 140, 0.15);
3942
+ color: #00b48c;
3943
+ }
3944
+
3945
+ .mds-profile-card__check-label {
3946
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.7));
3947
+ }
3948
+
3949
+ html[data-theme="light"] .mds-profile-card__check-label {
3950
+ color: rgba(0, 0, 0, 0.7);
3951
+ }
3952
+
3879
3953
  .mds-profile-card__verified-footer {
3880
3954
  display: flex;
3881
3955
  justify-content: space-between;
3882
3956
  align-items: center;
3883
- margin-top: 14px;
3884
- padding-top: 10px;
3957
+ margin-top: 20px;
3958
+ padding-top: 16px;
3885
3959
  border-top: 1px solid rgba(255, 255, 255, 0.08);
3886
3960
  }
3887
3961
 
@@ -3892,7 +3966,7 @@ html[data-theme="light"] .mds-profile-card__verified-footer {
3892
3966
  .mds-profile-card__verified-sequence,
3893
3967
  .mds-profile-card__verified-date {
3894
3968
  font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3895
- font-size: 10px;
3969
+ font-size: 12px;
3896
3970
  color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.4));
3897
3971
  letter-spacing: 0.06em;
3898
3972
  text-transform: uppercase;
@@ -4089,3 +4163,254 @@ html[data-theme="light"] .mds-profile-card__photo-modal-image {
4089
4163
  0 10px 30px rgba(0, 0, 0, 0.08),
4090
4164
  inset 0 1px 0 rgba(255, 255, 255, 1);
4091
4165
  }
4166
+
4167
+ /* =============================================================================
4168
+ FEAT-090: Verification Score Components (Settings Page)
4169
+ ============================================================================= */
4170
+
4171
+ .mds-verification-score-display {
4172
+ display: flex;
4173
+ flex-direction: column;
4174
+ align-items: center;
4175
+ gap: 8px;
4176
+ padding: 24px 40px;
4177
+ border-radius: 16px;
4178
+ background: rgba(255, 255, 255, 0.05);
4179
+ border: 1px solid rgba(255, 255, 255, 0.1);
4180
+ }
4181
+
4182
+ html[data-theme="light"] .mds-verification-score-display {
4183
+ background: rgba(0, 0, 0, 0.02);
4184
+ border-color: rgba(0, 0, 0, 0.1);
4185
+ }
4186
+
4187
+ .mds-verification-score-number {
4188
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
4189
+ font-size: 4rem;
4190
+ font-weight: bold;
4191
+ line-height: 1;
4192
+ color: #00d4aa;
4193
+ }
4194
+
4195
+ html[data-theme="light"] .mds-verification-score-number {
4196
+ color: #00b48c;
4197
+ }
4198
+
4199
+ .mds-verification-score-label {
4200
+ font-size: 0.875rem;
4201
+ text-transform: uppercase;
4202
+ letter-spacing: 0.1em;
4203
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.6));
4204
+ }
4205
+
4206
+ .mds-verification-checks-grid {
4207
+ display: flex;
4208
+ flex-direction: column;
4209
+ gap: 12px;
4210
+ }
4211
+
4212
+ .mds-verification-check-card {
4213
+ display: flex;
4214
+ align-items: center;
4215
+ gap: 16px;
4216
+ padding: 16px 20px;
4217
+ border-radius: 12px;
4218
+ background: rgba(255, 255, 255, 0.03);
4219
+ border: 1px solid rgba(255, 255, 255, 0.08);
4220
+ transition: all 0.2s ease;
4221
+ }
4222
+
4223
+ html[data-theme="light"] .mds-verification-check-card {
4224
+ background: rgba(0, 0, 0, 0.02);
4225
+ border-color: rgba(0, 0, 0, 0.06);
4226
+ }
4227
+
4228
+ .mds-verification-check-card--passed {
4229
+ background: rgba(0, 212, 170, 0.05);
4230
+ border-color: rgba(0, 212, 170, 0.2);
4231
+ }
4232
+
4233
+ html[data-theme="light"] .mds-verification-check-card--passed {
4234
+ background: rgba(0, 180, 140, 0.05);
4235
+ border-color: rgba(0, 180, 140, 0.2);
4236
+ }
4237
+
4238
+ .mds-verification-check-icon {
4239
+ width: 32px;
4240
+ height: 32px;
4241
+ display: flex;
4242
+ align-items: center;
4243
+ justify-content: center;
4244
+ border-radius: 50%;
4245
+ font-size: 16px;
4246
+ font-weight: bold;
4247
+ background: rgba(255, 255, 255, 0.05);
4248
+ color: rgba(255, 255, 255, 0.3);
4249
+ flex-shrink: 0;
4250
+ }
4251
+
4252
+ .mds-verification-check-card--passed .mds-verification-check-icon {
4253
+ background: rgba(0, 212, 170, 0.15);
4254
+ color: #00d4aa;
4255
+ }
4256
+
4257
+ html[data-theme="light"] .mds-verification-check-icon {
4258
+ background: rgba(0, 0, 0, 0.05);
4259
+ color: rgba(0, 0, 0, 0.3);
4260
+ }
4261
+
4262
+ html[data-theme="light"] .mds-verification-check-card--passed .mds-verification-check-icon {
4263
+ background: rgba(0, 180, 140, 0.15);
4264
+ color: #00b48c;
4265
+ }
4266
+
4267
+ .mds-verification-check-content {
4268
+ flex: 1;
4269
+ min-width: 0;
4270
+ }
4271
+
4272
+ .mds-verification-check-action {
4273
+ flex-shrink: 0;
4274
+ }
4275
+
4276
+ /* =============================================================================
4277
+ FEAT-090: Verification Tab (Modal/Backoffice)
4278
+ ============================================================================= */
4279
+
4280
+ .mds-verification-tab {
4281
+ display: flex;
4282
+ flex-direction: column;
4283
+ gap: 20px;
4284
+ padding: 8px 0;
4285
+ }
4286
+
4287
+ .mds-verification-score-header {
4288
+ display: flex;
4289
+ align-items: center;
4290
+ gap: 20px;
4291
+ padding: 20px;
4292
+ background: rgba(0, 212, 170, 0.05);
4293
+ border: 1px solid rgba(0, 212, 170, 0.15);
4294
+ border-radius: 12px;
4295
+ }
4296
+
4297
+ .mds-verification-score-badge {
4298
+ display: flex;
4299
+ flex-direction: column;
4300
+ align-items: center;
4301
+ gap: 4px;
4302
+ padding: 16px 24px;
4303
+ background: rgba(0, 212, 170, 0.1);
4304
+ border-radius: 10px;
4305
+ }
4306
+
4307
+ .mds-verification-score-badge .mds-verification-score-number {
4308
+ display: block;
4309
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
4310
+ font-size: 2.5rem;
4311
+ font-weight: bold;
4312
+ line-height: 1;
4313
+ color: #00d4aa;
4314
+ text-align: center;
4315
+ }
4316
+
4317
+ .mds-verification-score-badge .mds-verification-score-label {
4318
+ display: block;
4319
+ font-size: 0.75rem;
4320
+ text-transform: uppercase;
4321
+ letter-spacing: 0.1em;
4322
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.6));
4323
+ text-align: center;
4324
+ margin-top: 4px;
4325
+ }
4326
+
4327
+ .mds-verification-score-info {
4328
+ flex: 1;
4329
+ }
4330
+
4331
+ .mds-verification-checks-list {
4332
+ display: flex;
4333
+ flex-direction: column;
4334
+ gap: 10px;
4335
+ }
4336
+
4337
+ .mds-verification-check-item {
4338
+ display: flex;
4339
+ align-items: center;
4340
+ gap: 14px;
4341
+ padding: 14px 16px;
4342
+ background: rgba(255, 255, 255, 0.03);
4343
+ border: 1px solid rgba(255, 255, 255, 0.08);
4344
+ border-radius: 10px;
4345
+ transition: all 0.2s ease;
4346
+ }
4347
+
4348
+ .mds-verification-check-item--passed {
4349
+ background: rgba(0, 212, 170, 0.05);
4350
+ border-color: rgba(0, 212, 170, 0.2);
4351
+ }
4352
+
4353
+ .mds-verification-check-status {
4354
+ display: flex;
4355
+ align-items: center;
4356
+ justify-content: center;
4357
+ width: 28px;
4358
+ height: 28px;
4359
+ border-radius: 50%;
4360
+ background: rgba(255, 255, 255, 0.05);
4361
+ color: rgba(255, 255, 255, 0.3);
4362
+ flex-shrink: 0;
4363
+ }
4364
+
4365
+ .mds-verification-check-item--passed .mds-verification-check-status {
4366
+ background: rgba(0, 212, 170, 0.15);
4367
+ color: #00d4aa;
4368
+ }
4369
+
4370
+ .mds-verification-check-content {
4371
+ flex: 1;
4372
+ min-width: 0;
4373
+ }
4374
+
4375
+ .mds-verification-check-item .mds-btn {
4376
+ flex-shrink: 0;
4377
+ margin-left: auto;
4378
+ }
4379
+
4380
+ .mds-verification-check-item .mds-btn--sm {
4381
+ padding: 6px 12px;
4382
+ font-size: 0.75rem;
4383
+ }
4384
+
4385
+ html[data-theme="light"] .mds-verification-score-header {
4386
+ background: rgba(0, 180, 140, 0.05);
4387
+ border-color: rgba(0, 180, 140, 0.15);
4388
+ }
4389
+
4390
+ html[data-theme="light"] .mds-verification-score-badge {
4391
+ background: rgba(0, 180, 140, 0.1);
4392
+ }
4393
+
4394
+ html[data-theme="light"] .mds-verification-score-badge .mds-verification-score-number {
4395
+ color: #00b48c;
4396
+ }
4397
+
4398
+ html[data-theme="light"] .mds-verification-check-item {
4399
+ background: rgba(0, 0, 0, 0.02);
4400
+ border-color: rgba(0, 0, 0, 0.06);
4401
+ }
4402
+
4403
+ html[data-theme="light"] .mds-verification-check-item--passed {
4404
+ background: rgba(0, 180, 140, 0.05);
4405
+ border-color: rgba(0, 180, 140, 0.15);
4406
+ }
4407
+
4408
+ html[data-theme="light"] .mds-verification-check-status {
4409
+ background: rgba(0, 0, 0, 0.05);
4410
+ color: rgba(0, 0, 0, 0.3);
4411
+ }
4412
+
4413
+ html[data-theme="light"] .mds-verification-check-item--passed .mds-verification-check-status {
4414
+ background: rgba(0, 180, 140, 0.15);
4415
+ color: #00b48c;
4416
+ }
@@ -26,6 +26,18 @@ export interface ProfileCardUser {
26
26
  photo_url_full?: string;
27
27
  registration_sequence?: number;
28
28
  mfa_enabled?: boolean;
29
+ verification_score?: VerificationScore;
30
+ }
31
+ export interface VerificationCheck {
32
+ name: string;
33
+ description: string;
34
+ passed: boolean;
35
+ }
36
+ export interface VerificationScore {
37
+ score: number;
38
+ max_score: number;
39
+ breakdown: Record<string, boolean>;
40
+ checks: VerificationCheck[];
29
41
  }
30
42
  export interface ProfileCardProps {
31
43
  /** User data to display */
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/react/ProfileCard/ProfileCard.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,eAAe,CAAC;IAEtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8BAA8B;IAC9B,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAwID,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAgB,EAChB,UAAU,EACV,UAAkB,EAClB,WAAW,EACX,gBAAwB,EACxB,SAAS,EACT,SAAc,EACd,aAAa,GACd,EAAE,gBAAgB,2CA6QlB;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ProfileCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/react/ProfileCard/ProfileCard.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAO3D,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,eAAe,CAAC;IAEtB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,8BAA8B;IAC9B,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAyJD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAgB,EAChB,UAAU,EACV,UAAkB,EAClB,WAAW,EACX,gBAAwB,EACxB,SAAS,EACT,SAAc,EACd,aAAa,GACd,EAAE,gBAAgB,2CAwTlB;AAED,eAAe,WAAW,CAAC"}
@@ -1508,6 +1508,9 @@ function UsernameLinks({ username, className }) {
1508
1508
  function StatItem({ label, verified }) {
1509
1509
  return (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__stat-item", children: [jsxRuntimeExports.jsx("span", { className: "mds-profile-card__stat-label", children: label }), jsxRuntimeExports.jsx("span", { className: `mds-profile-card__stat-value ${verified ? 'mds-profile-card__stat-value--verified' : ''}`, children: verified ? 'Verified' : 'Not Verified' })] }));
1510
1510
  }
1511
+ function VerificationCheckItem({ description, passed }) {
1512
+ return (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__check-item", children: [jsxRuntimeExports.jsx("span", { className: `mds-profile-card__check-icon ${passed ? 'mds-profile-card__check-icon--passed' : ''}`, children: passed ? '\u2713' : '\u2717' }), jsxRuntimeExports.jsx("span", { className: "mds-profile-card__check-label", children: description })] }));
1513
+ }
1511
1514
  // =============================================================================
1512
1515
  // Main Component
1513
1516
  // =============================================================================
@@ -1588,10 +1591,18 @@ function ProfileCard({ user, variant = 'full', photoWidth, showSocial = false, s
1588
1591
  // Full size photo for modal (prioritize full, then medium)
1589
1592
  const photoUrlFull = user.photo_url_full || user.photo_url_medium;
1590
1593
  const hasRealPhoto = !!(user.photo_url_medium || user.photo_url_full);
1591
- return (jsxRuntimeExports.jsxs("article", { className: `mds-profile-card ${className}`, style: { '--mds-profile-card-photo-width': `${computedPhotoWidth}px` }, children: [jsxRuntimeExports.jsx("div", { className: "mds-profile-card__grain" }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo", children: photoSlot ? (jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-slot", children: photoSlot })) : (jsxRuntimeExports.jsx("img", { src: photoUrl, alt: displayName, className: `mds-profile-card__avatar ${hasRealPhoto ? 'mds-profile-card__avatar--clickable' : ''}`, onClick: hasRealPhoto ? () => setShowPhotoModal(true) : undefined, role: hasRealPhoto ? 'button' : undefined, tabIndex: hasRealPhoto ? 0 : undefined, onKeyDown: hasRealPhoto ? (e) => e.key === 'Enter' && setShowPhotoModal(true) : undefined })) }), showPhotoModal && photoUrlFull && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__photo-modal", onClick: () => setShowPhotoModal(false), role: "dialog", "aria-modal": "true", "aria-label": "Enlarged photo - click anywhere to close", children: [jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-modal-backdrop" }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-modal-content", children: jsxRuntimeExports.jsx("img", { src: photoUrlFull, alt: displayName, className: "mds-profile-card__photo-modal-image" }) })] })), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__content", children: [jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__identity", children: [jsxRuntimeExports.jsx("h1", { className: "mds-profile-card__name", children: displayName.toUpperCase() }), variant === 'full' && profession && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__profession", children: profession.toUpperCase() })), variant === 'compact' && (jsxRuntimeExports.jsx(UsernameLinks, { username: user.username, className: "mds-profile-card__username" }))] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__details", children: [variant === 'full' && getLocation() && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__location", children: getLocation() })), variant === 'full' && (jsxRuntimeExports.jsx(UsernameLinks, { username: user.username, className: "mds-profile-card__username-detail" })), variant === 'compact' && user.email && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__email", children: user.email })), variant === 'compact' && (jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__member", children: ["Member since ", memberSince] }))] }), variant === 'compact' && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verification", children: [jsxRuntimeExports.jsxs("button", { className: "mds-profile-card__verified-badge", title: `Verification Level ${user.verified}`, onClick: (e) => {
1594
+ return (jsxRuntimeExports.jsxs("article", { className: `mds-profile-card ${className}`, style: { '--mds-profile-card-photo-width': `${computedPhotoWidth}px` }, children: [jsxRuntimeExports.jsx("div", { className: "mds-profile-card__grain" }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo", children: photoSlot ? (jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-slot", children: photoSlot })) : (jsxRuntimeExports.jsx("img", { src: photoUrl, alt: displayName, className: `mds-profile-card__avatar ${hasRealPhoto ? 'mds-profile-card__avatar--clickable' : ''}`, onClick: hasRealPhoto ? () => setShowPhotoModal(true) : undefined, role: hasRealPhoto ? 'button' : undefined, tabIndex: hasRealPhoto ? 0 : undefined, onKeyDown: hasRealPhoto ? (e) => e.key === 'Enter' && setShowPhotoModal(true) : undefined })) }), showPhotoModal && photoUrlFull && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__photo-modal", onClick: () => setShowPhotoModal(false), role: "dialog", "aria-modal": "true", "aria-label": "Enlarged photo - click anywhere to close", children: [jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-modal-backdrop" }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__photo-modal-content", children: jsxRuntimeExports.jsx("img", { src: photoUrlFull, alt: displayName, className: "mds-profile-card__photo-modal-image" }) })] })), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__content", children: [jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__identity", children: [jsxRuntimeExports.jsx("h1", { className: "mds-profile-card__name", children: displayName.toUpperCase() }), variant === 'full' && profession && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__profession", children: profession.toUpperCase() })), variant === 'compact' && (jsxRuntimeExports.jsx(UsernameLinks, { username: user.username, className: "mds-profile-card__username" }))] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__details", children: [variant === 'full' && getLocation() && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__location", children: getLocation() })), variant === 'full' && (jsxRuntimeExports.jsx(UsernameLinks, { username: user.username, className: "mds-profile-card__username-detail" })), variant === 'compact' && user.email && (jsxRuntimeExports.jsx("p", { className: "mds-profile-card__email", children: user.email })), variant === 'compact' && (jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__member", children: ["Member since ", memberSince] }))] }), variant === 'compact' && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verification", children: [jsxRuntimeExports.jsxs("button", { className: "mds-profile-card__verified-badge", title: user.verification_score
1595
+ ? `Verification Score: ${user.verification_score.score}`
1596
+ : `Verification Level ${user.verified}`, onClick: (e) => {
1592
1597
  e.stopPropagation();
1593
1598
  setShowVerifiedPopup(!showVerifiedPopup);
1594
- }, children: [Icons.shield, jsxRuntimeExports.jsxs("span", { children: ["Level ", user.verified] })] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__dots", children: [jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 1 ? 'active' : ''}`, title: "Email Verified" }), jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 2 ? 'active' : ''}`, title: "Identity Verified" }), jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 3 ? 'active' : ''}`, title: "Area Verified" })] })] })), showSocial && (jsxRuntimeExports.jsxs("div", { ref: socialRef, className: "mds-profile-card__social", children: [jsxRuntimeExports.jsx("button", { className: "mds-profile-card__social-trigger", onClick: (e) => {
1599
+ }, children: [Icons.shield, jsxRuntimeExports.jsx("span", { children: user.verification_score
1600
+ ? user.verification_score.score
1601
+ : `Level ${user.verified}` })] }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__dots", children: user.verification_score ? (
1602
+ // FEAT-090: Show 6 dots for verification score
1603
+ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: user.verification_score.checks.slice(0, 6).map((check, index) => (jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${check.passed ? 'active' : ''}`, title: check.description }, check.name))) })) : (
1604
+ // Legacy: Show 3 dots for old verification levels
1605
+ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 1 ? 'active' : ''}`, title: "Email Verified" }), jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 2 ? 'active' : ''}`, title: "Identity Verified" }), jsxRuntimeExports.jsx("span", { className: `mds-profile-card__dot ${user.verified >= 3 ? 'active' : ''}`, title: "Area Verified" })] })) })] })), showSocial && (jsxRuntimeExports.jsxs("div", { ref: socialRef, className: "mds-profile-card__social", children: [jsxRuntimeExports.jsx("button", { className: "mds-profile-card__social-trigger", onClick: (e) => {
1595
1606
  e.stopPropagation();
1596
1607
  setShowSocialPopup(!showSocialPopup);
1597
1608
  setShowVerifiedPopup(false);
@@ -1600,7 +1611,11 @@ function ProfileCard({ user, variant = 'full', photoWidth, showSocial = false, s
1600
1611
  e.stopPropagation();
1601
1612
  setShowVerifiedPopup(!showVerifiedPopup);
1602
1613
  setShowSocialPopup(false);
1603
- }, title: "Verification Status", children: Icons.shield }), showVerifiedPopup && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-popup", children: [jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-header", children: ["Verification Level ", user.verified] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-stats", children: [jsxRuntimeExports.jsx(StatItem, { label: "Email", verified: user.verified >= 1 }), jsxRuntimeExports.jsx(StatItem, { label: "Identity", verified: user.verified >= 2 }), jsxRuntimeExports.jsx(StatItem, { label: "Area", verified: user.verified >= 3 })] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-footer", children: [user.registration_sequence && (jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__verified-sequence", children: ["User #", user.registration_sequence.toLocaleString()] })), jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__verified-date", children: ["Since ", memberSince] })] })] }))] }), showRotatingInfo && (jsxRuntimeExports.jsx("div", { className: "mds-profile-card__info-dots", children: infoTexts.map((_, index) => (jsxRuntimeExports.jsx("span", { className: `mds-profile-card__info-dot ${index === currentInfoIndex ? 'active' : ''}` }, index))) }))] }))] })] }));
1614
+ }, title: "Verification Status", children: Icons.shield }), showVerifiedPopup && (jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-popup", children: [user.verification_score ? (
1615
+ // FEAT-090: New 6-point verification score
1616
+ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-header", children: ["Verificacao: ", user.verification_score.score] }), jsxRuntimeExports.jsx("div", { className: "mds-profile-card__verified-checks", children: user.verification_score.checks.map((check) => (jsxRuntimeExports.jsx(VerificationCheckItem, { description: check.description, passed: check.passed }, check.name))) })] })) : (
1617
+ // Legacy: Old verification levels
1618
+ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-header", children: ["Verification Level ", user.verified] }), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-stats", children: [jsxRuntimeExports.jsx(StatItem, { label: "Email", verified: user.verified >= 1 }), jsxRuntimeExports.jsx(StatItem, { label: "Identity", verified: user.verified >= 2 }), jsxRuntimeExports.jsx(StatItem, { label: "Area", verified: user.verified >= 3 })] })] })), jsxRuntimeExports.jsxs("div", { className: "mds-profile-card__verified-footer", children: [user.registration_sequence && (jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__verified-sequence", children: ["User #", user.registration_sequence.toLocaleString()] })), jsxRuntimeExports.jsxs("span", { className: "mds-profile-card__verified-date", children: ["Since ", memberSince] })] })] }))] }), showRotatingInfo && (jsxRuntimeExports.jsx("div", { className: "mds-profile-card__info-dots", children: infoTexts.map((_, index) => (jsxRuntimeExports.jsx("span", { className: `mds-profile-card__info-dot ${index === currentInfoIndex ? 'active' : ''}` }, index))) }))] }))] })] }));
1604
1619
  }
1605
1620
 
1606
1621
  const variantElementMap = {