@metropolle/design-system 1.2026.0-1.24.2224 → 1.2026.0-1.24.2327

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.
@@ -4041,6 +4041,16 @@ html[data-theme="light"] .mds-profile-card__info-dot.active {
4041
4041
  transform: none;
4042
4042
  justify-content: center;
4043
4043
  margin-top: 16px;
4044
+ flex-direction: column;
4045
+ align-items: center;
4046
+ gap: 12px;
4047
+ }
4048
+
4049
+ /* Info dots: horizontal on mobile */
4050
+ .mds-profile-card__info-dots {
4051
+ flex-direction: row;
4052
+ gap: 8px;
4053
+ margin-top: 8px;
4044
4054
  }
4045
4055
 
4046
4056
  .mds-profile-card__social {
@@ -4087,11 +4097,11 @@ html[data-theme="light"] .mds-profile-card__info-dot.active {
4087
4097
  .mds-profile-card__photo-modal {
4088
4098
  position: fixed;
4089
4099
  inset: 0;
4090
- z-index: 9999;
4100
+ z-index: 99999; /* Higher z-index to cover everything including header */
4091
4101
  display: flex;
4092
4102
  align-items: center;
4093
4103
  justify-content: center;
4094
- padding: 24px;
4104
+ padding: 16px;
4095
4105
  cursor: pointer;
4096
4106
  animation: mds-photo-modal-fade-in 0.25s ease-out;
4097
4107
  }
@@ -4106,17 +4116,18 @@ html[data-theme="light"] .mds-profile-card__info-dot.active {
4106
4116
  }
4107
4117
 
4108
4118
  .mds-profile-card__photo-modal-backdrop {
4109
- position: absolute;
4119
+ position: fixed;
4110
4120
  inset: 0;
4111
- background: rgba(10, 10, 15, 0.6);
4112
- backdrop-filter: blur(20px) saturate(120%);
4113
- -webkit-backdrop-filter: blur(20px) saturate(120%);
4121
+ /* Stronger blur to cover entire page including header */
4122
+ background: rgba(0, 0, 0, 0.75);
4123
+ backdrop-filter: blur(30px) saturate(100%);
4124
+ -webkit-backdrop-filter: blur(30px) saturate(100%);
4114
4125
  }
4115
4126
 
4116
4127
  html[data-theme="light"] .mds-profile-card__photo-modal-backdrop {
4117
- background: rgba(255, 255, 255, 0.5);
4118
- backdrop-filter: blur(20px) saturate(140%);
4119
- -webkit-backdrop-filter: blur(20px) saturate(140%);
4128
+ background: rgba(255, 255, 255, 0.7);
4129
+ backdrop-filter: blur(30px) saturate(120%);
4130
+ -webkit-backdrop-filter: blur(30px) saturate(120%);
4120
4131
  }
4121
4132
 
4122
4133
  .mds-profile-card__photo-modal-content {
@@ -4124,8 +4135,11 @@ html[data-theme="light"] .mds-profile-card__photo-modal-backdrop {
4124
4135
  display: flex;
4125
4136
  align-items: center;
4126
4137
  justify-content: center;
4138
+ /* Desktop: 90% of viewport */
4127
4139
  max-width: 90vw;
4128
4140
  max-height: 90vh;
4141
+ width: auto;
4142
+ height: auto;
4129
4143
  animation: mds-photo-modal-scale-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
4130
4144
  }
4131
4145
 
@@ -4141,29 +4155,50 @@ html[data-theme="light"] .mds-profile-card__photo-modal-backdrop {
4141
4155
  }
4142
4156
 
4143
4157
  .mds-profile-card__photo-modal-image {
4144
- max-width: 100%;
4145
- max-height: 90vh;
4158
+ /* Fill available space while maintaining aspect ratio */
4159
+ width: auto;
4160
+ height: auto;
4161
+ max-width: 90vw;
4162
+ max-height: 85vh;
4146
4163
  -o-object-fit: contain;
4147
4164
  object-fit: contain;
4148
- border-radius: 20px;
4165
+ border-radius: 16px;
4149
4166
  /* Liquid Glass frame */
4150
4167
  background: rgba(255, 255, 255, 0.03);
4151
- border: 1px solid rgba(255, 255, 255, 0.1);
4168
+ border: 1px solid rgba(255, 255, 255, 0.15);
4152
4169
  box-shadow:
4153
- 0 25px 80px rgba(0, 0, 0, 0.4),
4154
- 0 10px 30px rgba(0, 0, 0, 0.2),
4170
+ 0 25px 80px rgba(0, 0, 0, 0.5),
4171
+ 0 10px 30px rgba(0, 0, 0, 0.3),
4155
4172
  inset 0 1px 0 rgba(255, 255, 255, 0.1);
4156
4173
  }
4157
4174
 
4158
4175
  html[data-theme="light"] .mds-profile-card__photo-modal-image {
4159
4176
  background: rgba(255, 255, 255, 0.1);
4160
- border-color: rgba(255, 255, 255, 0.8);
4177
+ border-color: rgba(0, 0, 0, 0.1);
4161
4178
  box-shadow:
4162
- 0 25px 80px rgba(0, 0, 0, 0.15),
4163
- 0 10px 30px rgba(0, 0, 0, 0.08),
4179
+ 0 25px 80px rgba(0, 0, 0, 0.2),
4180
+ 0 10px 30px rgba(0, 0, 0, 0.1),
4164
4181
  inset 0 1px 0 rgba(255, 255, 255, 1);
4165
4182
  }
4166
4183
 
4184
+ /* Mobile: Photo expands to fill screen width */
4185
+ @media (max-width: 700px) {
4186
+ .mds-profile-card__photo-modal {
4187
+ padding: 12px;
4188
+ }
4189
+
4190
+ .mds-profile-card__photo-modal-content {
4191
+ max-width: 96vw;
4192
+ max-height: 85vh;
4193
+ }
4194
+
4195
+ .mds-profile-card__photo-modal-image {
4196
+ max-width: 96vw;
4197
+ max-height: 80vh;
4198
+ border-radius: 12px;
4199
+ }
4200
+ }
4201
+
4167
4202
  /* =============================================================================
4168
4203
  FEAT-090: Verification Score Components (Settings Page)
4169
4204
  ============================================================================= */
@@ -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;AAC3D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOhF,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,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,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;AAyID,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAgB,EAChB,UAAU,EACV,UAAkB,EAClB,WAAW,EACX,gBAAwB,EACxB,SAAS,EACT,SAAc,EACd,aAAa,GACd,EAAE,gBAAgB,2CA2TlB;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;AAE3D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOhF,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,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,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;AAyID,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAgB,EAChB,UAAU,EACV,UAAkB,EAClB,WAAW,EACX,gBAAwB,EACxB,SAAS,EACT,SAAc,EACd,aAAa,GACd,EAAE,gBAAgB,2CA4TlB;AAED,eAAe,WAAW,CAAC"}
@@ -1625,7 +1625,7 @@ function ProfileCard({ user, variant = 'full', photoWidth, showSocial = false, s
1625
1625
  // Full size photo for modal (prioritize full, then medium)
1626
1626
  const photoUrlFull = user.photo_url_full || user.photo_url_medium;
1627
1627
  const hasRealPhoto = !!(user.photo_url_medium || user.photo_url_full);
1628
- 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
1628
+ 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 && typeof document !== 'undefined' && createPortal(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" }) })] }), document.body), 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
1629
1629
  ? `Verification Score: ${user.verification_score.score}`
1630
1630
  : `Verification Level ${user.verified}`, onClick: (e) => {
1631
1631
  e.stopPropagation();