@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.
package/dist/css/components.css
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
4119
|
+
position: fixed;
|
|
4110
4120
|
inset: 0;
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
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.
|
|
4118
|
-
backdrop-filter: blur(
|
|
4119
|
-
-webkit-backdrop-filter: blur(
|
|
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
|
-
|
|
4145
|
-
|
|
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:
|
|
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.
|
|
4168
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
4152
4169
|
box-shadow:
|
|
4153
|
-
0 25px 80px rgba(0, 0, 0, 0.
|
|
4154
|
-
0 10px 30px rgba(0, 0, 0, 0.
|
|
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(
|
|
4177
|
+
border-color: rgba(0, 0, 0, 0.1);
|
|
4161
4178
|
box-shadow:
|
|
4162
|
-
0 25px 80px rgba(0, 0, 0, 0.
|
|
4163
|
-
0 10px 30px rgba(0, 0, 0, 0.
|
|
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;
|
|
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"}
|
package/dist/react/index.esm.js
CHANGED
|
@@ -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();
|