@slyxup/ui 0.2.1 → 0.2.3
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +15 -0
- package/README.md +67 -3
- package/dist/components/BillingPortal/BillingPortal.d.ts.map +1 -1
- package/dist/components/BillingPortal/BillingPortal.js +2 -0
- package/dist/components/BillingPortal/BillingPortal.js.map +1 -1
- package/dist/components/EmailVerification/EmailVerification.d.ts.map +1 -1
- package/dist/components/EmailVerification/EmailVerification.js +2 -0
- package/dist/components/EmailVerification/EmailVerification.js.map +1 -1
- package/dist/components/ForgotPassword/ForgotPassword.d.ts.map +1 -1
- package/dist/components/ForgotPassword/ForgotPassword.js +2 -0
- package/dist/components/ForgotPassword/ForgotPassword.js.map +1 -1
- package/dist/components/PricingTable/PricingTable.d.ts.map +1 -1
- package/dist/components/PricingTable/PricingTable.js +2 -0
- package/dist/components/PricingTable/PricingTable.js.map +1 -1
- package/dist/components/ResetPassword/ResetPassword.d.ts.map +1 -1
- package/dist/components/ResetPassword/ResetPassword.js +2 -0
- package/dist/components/ResetPassword/ResetPassword.js.map +1 -1
- package/dist/components/SignIn/SignIn.d.ts +3 -1
- package/dist/components/SignIn/SignIn.d.ts.map +1 -1
- package/dist/components/SignIn/SignIn.js +5 -11
- package/dist/components/SignIn/SignIn.js.map +1 -1
- package/dist/components/SignUp/SignUp.d.ts.map +1 -1
- package/dist/components/SignUp/SignUp.js +4 -10
- package/dist/components/SignUp/SignUp.js.map +1 -1
- package/dist/components/SocialButtons/SocialButtons.d.ts +1 -1
- package/dist/components/SocialButtons/SocialButtons.d.ts.map +1 -1
- package/dist/components/SocialButtons/SocialButtons.js +7 -2
- package/dist/components/SocialButtons/SocialButtons.js.map +1 -1
- package/dist/components/UserButton/UserButton.d.ts.map +1 -1
- package/dist/components/UserButton/UserButton.js +2 -0
- package/dist/components/UserButton/UserButton.js.map +1 -1
- package/dist/components/UserProfile/UserProfile.d.ts +8 -2
- package/dist/components/UserProfile/UserProfile.d.ts.map +1 -1
- package/dist/components/UserProfile/UserProfile.js +202 -6
- package/dist/components/UserProfile/UserProfile.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.d.ts +6 -3
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +194 -73
- package/dist/styles.js.map +1 -1
- package/package.json +2 -2
- package/src/components/BillingPortal/BillingPortal.tsx +2 -0
- package/src/components/EmailVerification/EmailVerification.tsx +2 -0
- package/src/components/ForgotPassword/ForgotPassword.tsx +2 -0
- package/src/components/PricingTable/PricingTable.tsx +2 -0
- package/src/components/ResetPassword/ResetPassword.tsx +2 -0
- package/src/components/SignIn/SignIn.tsx +22 -17
- package/src/components/SignUp/SignUp.tsx +5 -13
- package/src/components/SocialButtons/SocialButtons.tsx +10 -3
- package/src/components/UserButton/UserButton.tsx +2 -0
- package/src/components/UserProfile/UserProfile.tsx +538 -56
- package/src/index.ts +4 -1
- package/src/styles.ts +194 -73
|
@@ -1,15 +1,78 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useAuth, useUser } from '@slyxup/react';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import { injectStyles } from '../../styles';
|
|
5
|
+
function initials(user) {
|
|
6
|
+
const n = user.firstName?.trim();
|
|
7
|
+
if (n)
|
|
8
|
+
return n.slice(0, 1).toUpperCase();
|
|
9
|
+
return user.email.slice(0, 1).toUpperCase();
|
|
10
|
+
}
|
|
11
|
+
/** Best-effort device label from a user agent string. */
|
|
12
|
+
function deviceLabel(ua) {
|
|
13
|
+
if (!ua)
|
|
14
|
+
return 'Unknown device';
|
|
15
|
+
const os = /Windows/i.test(ua)
|
|
16
|
+
? 'Windows'
|
|
17
|
+
: /Mac OS X|Macintosh/i.test(ua)
|
|
18
|
+
? 'macOS'
|
|
19
|
+
: /Android/i.test(ua)
|
|
20
|
+
? 'Android'
|
|
21
|
+
: /iPhone|iPad|iOS/i.test(ua)
|
|
22
|
+
? 'iOS'
|
|
23
|
+
: /Linux/i.test(ua)
|
|
24
|
+
? 'Linux'
|
|
25
|
+
: 'Unknown OS';
|
|
26
|
+
const browser = /Edg\//i.test(ua)
|
|
27
|
+
? 'Edge'
|
|
28
|
+
: /Chrome\//i.test(ua)
|
|
29
|
+
? 'Chrome'
|
|
30
|
+
: /Safari\//i.test(ua)
|
|
31
|
+
? 'Safari'
|
|
32
|
+
: /Firefox\//i.test(ua)
|
|
33
|
+
? 'Firefox'
|
|
34
|
+
: 'Browser';
|
|
35
|
+
return `${browser} · ${os}`;
|
|
36
|
+
}
|
|
37
|
+
function formatDate(iso) {
|
|
38
|
+
const d = new Date(iso);
|
|
39
|
+
return Number.isNaN(d.getTime())
|
|
40
|
+
? iso
|
|
41
|
+
: d.toLocaleDateString(undefined, {
|
|
42
|
+
month: 'short',
|
|
43
|
+
day: 'numeric',
|
|
44
|
+
year: 'numeric',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export function UserProfile({ modal = true, onClose, onDeleted, }) {
|
|
48
|
+
injectStyles();
|
|
6
49
|
const { isLoaded, user, reload } = useUser();
|
|
7
50
|
const { client } = useAuth();
|
|
51
|
+
const [tab, setTab] = useState('profile');
|
|
52
|
+
// ── Profile form state ──
|
|
8
53
|
const [firstName, setFirstName] = useState('');
|
|
9
54
|
const [lastName, setLastName] = useState('');
|
|
10
55
|
const [avatarUrl, setAvatarUrl] = useState('');
|
|
11
56
|
const [busy, setBusy] = useState(false);
|
|
12
57
|
const [saved, setSaved] = useState(false);
|
|
58
|
+
const [resending, setResending] = useState(false);
|
|
59
|
+
const [resent, setResent] = useState(false);
|
|
60
|
+
// ── Password form state ──
|
|
61
|
+
const [currentPassword, setCurrentPassword] = useState('');
|
|
62
|
+
const [newPassword, setNewPassword] = useState('');
|
|
63
|
+
const [confirmPassword, setConfirmPassword] = useState('');
|
|
64
|
+
const [pwBusy, setPwBusy] = useState(false);
|
|
65
|
+
const [pwError, setPwError] = useState(null);
|
|
66
|
+
const [pwSaved, setPwSaved] = useState(false);
|
|
67
|
+
// ── Sessions state ──
|
|
68
|
+
const [sessions, setSessions] = useState([]);
|
|
69
|
+
const [sessionsLoading, setSessionsLoading] = useState(true);
|
|
70
|
+
const [revokingId, setRevokingId] = useState(null);
|
|
71
|
+
const [othersRevoking, setOthersRevoking] = useState(false);
|
|
72
|
+
// ── Danger zone state ──
|
|
73
|
+
const [confirmText, setConfirmText] = useState('');
|
|
74
|
+
const [deleteBusy, setDeleteBusy] = useState(false);
|
|
75
|
+
const [deleteError, setDeleteError] = useState(null);
|
|
13
76
|
useEffect(() => {
|
|
14
77
|
if (user) {
|
|
15
78
|
setFirstName(user.firstName ?? '');
|
|
@@ -17,7 +80,32 @@ export function UserProfile() {
|
|
|
17
80
|
setAvatarUrl(user.avatarUrl ?? '');
|
|
18
81
|
}
|
|
19
82
|
}, [user]);
|
|
20
|
-
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
function onKey(e) {
|
|
85
|
+
if (e.key === 'Escape' && modal)
|
|
86
|
+
onClose?.();
|
|
87
|
+
}
|
|
88
|
+
document.addEventListener('keydown', onKey);
|
|
89
|
+
return () => document.removeEventListener('keydown', onKey);
|
|
90
|
+
}, [modal, onClose]);
|
|
91
|
+
const loadSessions = useCallback(async () => {
|
|
92
|
+
setSessionsLoading(true);
|
|
93
|
+
try {
|
|
94
|
+
const res = await client.sessions.list();
|
|
95
|
+
setSessions(res.sessions);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
setSessions([]);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
setSessionsLoading(false);
|
|
102
|
+
}
|
|
103
|
+
}, [client]);
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (tab === 'security')
|
|
106
|
+
void loadSessions();
|
|
107
|
+
}, [tab, loadSessions]);
|
|
108
|
+
async function onProfileSubmit(e) {
|
|
21
109
|
e.preventDefault();
|
|
22
110
|
setBusy(true);
|
|
23
111
|
setSaved(false);
|
|
@@ -31,8 +119,116 @@ export function UserProfile() {
|
|
|
31
119
|
setBusy(false);
|
|
32
120
|
}
|
|
33
121
|
}
|
|
122
|
+
async function onResendVerification() {
|
|
123
|
+
if (!user)
|
|
124
|
+
return;
|
|
125
|
+
setResending(true);
|
|
126
|
+
try {
|
|
127
|
+
await client.auth.resendVerification(user.email);
|
|
128
|
+
setResent(true);
|
|
129
|
+
setTimeout(() => setResent(false), 4000);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
setResending(false);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async function onPasswordSubmit(e) {
|
|
136
|
+
e.preventDefault();
|
|
137
|
+
setPwError(null);
|
|
138
|
+
setPwSaved(false);
|
|
139
|
+
if (newPassword.length < 8) {
|
|
140
|
+
setPwError('New password must be at least 8 characters.');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (newPassword !== confirmPassword) {
|
|
144
|
+
setPwError('Passwords do not match.');
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
setPwBusy(true);
|
|
148
|
+
try {
|
|
149
|
+
await client.password.change({ currentPassword, newPassword });
|
|
150
|
+
setPwSaved(true);
|
|
151
|
+
setCurrentPassword('');
|
|
152
|
+
setNewPassword('');
|
|
153
|
+
setConfirmPassword('');
|
|
154
|
+
setTimeout(() => setPwSaved(false), 3000);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
setPwError(err instanceof Error ? err.message : 'Failed to change password');
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
setPwBusy(false);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async function onRevoke(id) {
|
|
164
|
+
setRevokingId(id);
|
|
165
|
+
try {
|
|
166
|
+
await client.sessions.revoke(id);
|
|
167
|
+
await loadSessions();
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
setRevokingId(null);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async function onRevokeOthers() {
|
|
174
|
+
setOthersRevoking(true);
|
|
175
|
+
try {
|
|
176
|
+
await client.sessions.revokeOthers();
|
|
177
|
+
await loadSessions();
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
setOthersRevoking(false);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function onDeleteAccount() {
|
|
184
|
+
setDeleteError(null);
|
|
185
|
+
setDeleteBusy(true);
|
|
186
|
+
try {
|
|
187
|
+
await client.users.delete();
|
|
188
|
+
await client.auth.signOut().catch(() => undefined);
|
|
189
|
+
onDeleted?.();
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
setDeleteError(err instanceof Error ? err.message : 'Failed to delete account');
|
|
193
|
+
}
|
|
194
|
+
finally {
|
|
195
|
+
setDeleteBusy(false);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
34
198
|
if (!isLoaded)
|
|
35
199
|
return _jsx("div", { className: "slx-card", "aria-busy": "true" });
|
|
36
|
-
|
|
200
|
+
if (!user)
|
|
201
|
+
return null;
|
|
202
|
+
const emailVerified = user.emailVerified;
|
|
203
|
+
const body = (_jsxs("div", {
|
|
204
|
+
// biome-ignore lint/a11y/useSemanticElements: rendered inside a popover, not a top-level dialog
|
|
205
|
+
role: "dialog", "aria-modal": modal || undefined, "aria-label": "Account settings", children: [_jsxs("div", { className: "slx-profile-head", children: [_jsx("h2", { className: "slx-profile-title", children: "Account settings" }), modal && (_jsx("button", { type: "button", className: "slx-profile-close", onClick: onClose, "aria-label": "Close account settings", children: "\u2715" }))] }), _jsxs("div", { className: "slx-profile-body", children: [_jsxs("nav", { className: "slx-profile-nav", "aria-label": "Settings sections", children: [_jsxs("button", { type: "button", className: `slx-profile-nav-btn${tab === 'profile' ? ' on' : ''}`, onClick: () => setTab('profile'), "aria-current": tab === 'profile' ? 'page' : undefined, children: [_jsx(ProfileIcon, {}), " Profile"] }), _jsxs("button", { type: "button", className: `slx-profile-nav-btn${tab === 'security' ? ' on' : ''}`, onClick: () => setTab('security'), "aria-current": tab === 'security' ? 'page' : undefined, children: [_jsx(ShieldIcon, {}), " Security"] })] }), _jsx("div", { className: "slx-profile-content", children: tab === 'profile' ? (_jsxs(_Fragment, { children: [_jsxs("section", { className: "slx-profile-sec", children: [_jsxs("div", { className: "slx-avatar-row", children: [_jsx("div", { className: "slx-avatar-lg", "aria-hidden": "true", children: user.avatarUrl ? (_jsx("img", { src: user.avatarUrl, alt: "" })) : (initials(user)) }), _jsx("p", { className: "slx-hint", style: { margin: 0 }, children: "Your avatar is loaded from its URL. Paste any public image link below." })] }), saved && (_jsx("p", { className: "slx-error-text", style: { color: '#34a853' }, children: "Profile saved." })), _jsxs("form", { onSubmit: onProfileSubmit, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-up-first", children: "First name" }), _jsx("input", { id: "slx-up-first", className: "slx-input", type: "text", value: firstName, onChange: (e) => setFirstName(e.target.value) })] }), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-up-last", children: "Last name" }), _jsx("input", { id: "slx-up-last", className: "slx-input", type: "text", value: lastName, onChange: (e) => setLastName(e.target.value) })] }), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-up-avatar", children: "Avatar URL" }), _jsx("input", { id: "slx-up-avatar", className: "slx-input", type: "url", placeholder: "https://\u2026", value: avatarUrl, onChange: (e) => setAvatarUrl(e.target.value) })] }), _jsx("button", { className: "slx-btn", type: "submit", disabled: busy, children: busy ? 'Saving…' : 'Save changes' })] })] }), _jsxs("section", { className: "slx-profile-sec", children: [_jsx("h3", { className: "slx-sec-title", children: "Email" }), _jsxs("div", { className: "slx-row", children: [_jsxs("div", { children: [_jsx("p", { className: "slx-row-value", children: user.email }), _jsx("p", { className: "slx-row-label", children: "Primary email" })] }), emailVerified ? (_jsx("span", { className: "slx-badge slx-badge-ok", children: "\u2713 Verified" })) : (_jsxs("span", { style: {
|
|
206
|
+
display: 'inline-flex',
|
|
207
|
+
alignItems: 'center',
|
|
208
|
+
gap: 8,
|
|
209
|
+
}, children: [_jsx("span", { className: "slx-badge slx-badge-warn", children: "Unverified" }), _jsx("button", { type: "button", className: "slx-link", onClick: onResendVerification, disabled: resending, children: resending ? 'Sending…' : resent ? 'Sent ✓' : 'Resend' })] }))] })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("section", { className: "slx-profile-sec", children: [_jsx("h3", { className: "slx-sec-title", children: "Change password" }), pwSaved && (_jsx("p", { className: "slx-error-text", style: { color: '#34a853' }, children: "Password updated." })), pwError && _jsx("p", { className: "slx-error-text", children: pwError }), _jsxs("form", { onSubmit: onPasswordSubmit, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-pw-current", children: "Current password" }), _jsx("input", { id: "slx-pw-current", className: "slx-input", type: "password", autoComplete: "current-password", value: currentPassword, onChange: (e) => setCurrentPassword(e.target.value), required: true })] }), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-pw-new", children: "New password" }), _jsx("input", { id: "slx-pw-new", className: "slx-input", type: "password", autoComplete: "new-password", minLength: 8, value: newPassword, onChange: (e) => setNewPassword(e.target.value), required: true }), _jsx("p", { className: "slx-hint", children: "At least 8 characters." })] }), _jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-pw-confirm", children: "Confirm new password" }), _jsx("input", { id: "slx-pw-confirm", className: "slx-input", type: "password", autoComplete: "new-password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), required: true })] }), _jsx("button", { className: "slx-btn", type: "submit", disabled: pwBusy, children: pwBusy ? 'Updating…' : 'Update password' })] })] }), _jsxs("section", { className: "slx-profile-sec", children: [_jsx("h3", { className: "slx-sec-title", children: "Active sessions" }), sessionsLoading ? (_jsx("p", { className: "slx-hint", children: "Loading sessions\u2026" })) : (_jsxs(_Fragment, { children: [sessions.map((s) => (_jsxs("div", { className: "slx-session", children: [_jsxs("div", { className: "slx-session-meta", children: [_jsxs("p", { className: "slx-session-device", children: [deviceLabel(s.userAgent), s.isCurrent && (_jsx("span", { className: "slx-badge slx-badge-accent", children: "This device" }))] }), _jsx("p", { className: "slx-session-sub", children: [
|
|
210
|
+
s.ipAddress,
|
|
211
|
+
`created ${formatDate(s.createdAt)}`,
|
|
212
|
+
`expires ${formatDate(s.expiresAt)}`,
|
|
213
|
+
]
|
|
214
|
+
.filter(Boolean)
|
|
215
|
+
.join(' · ') })] }), !s.isCurrent && (_jsx("button", { type: "button", className: "slx-btn-danger-outline", onClick: () => onRevoke(s.id), disabled: revokingId === s.id, children: revokingId === s.id ? '…' : 'Revoke' }))] }, s.id))), sessions.some((s) => !s.isCurrent) && (_jsx("button", { type: "button", className: "slx-btn-danger-outline", style: { width: '100%', padding: '9px 11px' }, onClick: onRevokeOthers, disabled: othersRevoking, children: othersRevoking
|
|
216
|
+
? 'Signing out…'
|
|
217
|
+
: 'Sign out other devices' }))] }))] }), _jsxs("section", { className: "slx-danger-zone", children: [_jsx("p", { className: "slx-danger-title", children: "Danger zone" }), _jsx("p", { className: "slx-danger-desc", children: "Permanently deletes your account and all associated data. Active sessions are revoked immediately. This cannot be undone." }), deleteError && _jsx("p", { className: "slx-error-text", children: deleteError }), _jsxs("div", { className: "slx-field", children: [_jsxs("label", { className: "slx-label", htmlFor: "slx-del-confirm", children: ["Type ", _jsx("strong", { children: "DELETE" }), " to confirm"] }), _jsx("input", { id: "slx-del-confirm", className: "slx-input", type: "text", value: confirmText, onChange: (e) => setConfirmText(e.target.value), placeholder: "DELETE" })] }), _jsx("button", { type: "button", className: "slx-btn", style: {
|
|
218
|
+
background: 'var(--slx-danger)',
|
|
219
|
+
borderColor: 'var(--slx-danger)',
|
|
220
|
+
}, onClick: onDeleteAccount, disabled: confirmText !== 'DELETE' || deleteBusy, children: deleteBusy ? 'Deleting…' : 'Delete my account forever' })] })] })) })] })] }));
|
|
221
|
+
if (!modal)
|
|
222
|
+
return body;
|
|
223
|
+
return (_jsx("div", { className: "slx-overlay", onMouseDown: (e) => {
|
|
224
|
+
if (e.target === e.currentTarget)
|
|
225
|
+
onClose?.();
|
|
226
|
+
}, children: body }));
|
|
227
|
+
}
|
|
228
|
+
function ProfileIcon() {
|
|
229
|
+
return (_jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": "true", children: [_jsx("circle", { cx: "12", cy: "8", r: "4" }), _jsx("path", { d: "M5 21c0-3.9 3.1-7 7-7s7 3.1 7 7" })] }));
|
|
230
|
+
}
|
|
231
|
+
function ShieldIcon() {
|
|
232
|
+
return (_jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M12 22s8-3.6 8-10V5l-8-3-8 3v7c0 6.4 8 10 8 10z" }), _jsx("path", { d: "m9 12 2 2 4-4" })] }));
|
|
37
233
|
}
|
|
38
234
|
//# sourceMappingURL=UserProfile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../../../src/components/UserProfile/UserProfile.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../../../src/components/UserProfile/UserProfile.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { KeyholeMark, GoogleIcon, GitHubIcon, CheckIcon } from './icons';
|
|
|
3
3
|
export { SignIn, type SignInProps } from './components/SignIn/SignIn';
|
|
4
4
|
export { SignUp, type SignUpProps } from './components/SignUp/SignUp';
|
|
5
5
|
export { UserButton } from './components/UserButton/UserButton';
|
|
6
|
-
export { UserProfile } from './components/UserProfile/UserProfile';
|
|
6
|
+
export { UserProfile, type UserProfileProps, } from './components/UserProfile/UserProfile';
|
|
7
7
|
export { ForgotPassword, type ForgotPasswordProps, } from './components/ForgotPassword/ForgotPassword';
|
|
8
8
|
export { ResetPassword, type ResetPasswordProps, } from './components/ResetPassword/ResetPassword';
|
|
9
9
|
export { EmailVerification, type EmailVerificationProps, } from './components/EmailVerification/EmailVerification';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,0CAA0C,CAAC;AAKlD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { KeyholeMark, GoogleIcon, GitHubIcon, CheckIcon } from './icons';
|
|
|
3
3
|
export { SignIn } from './components/SignIn/SignIn';
|
|
4
4
|
export { SignUp } from './components/SignUp/SignUp';
|
|
5
5
|
export { UserButton } from './components/UserButton/UserButton';
|
|
6
|
-
export { UserProfile } from './components/UserProfile/UserProfile';
|
|
6
|
+
export { UserProfile, } from './components/UserProfile/UserProfile';
|
|
7
7
|
export { ForgotPassword, } from './components/ForgotPassword/ForgotPassword';
|
|
8
8
|
export { ResetPassword, } from './components/ResetPassword/ResetPassword';
|
|
9
9
|
export { EmailVerification, } from './components/EmailVerification/EmailVerification';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EACL,WAAW,GAEZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,cAAc,GAEf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,aAAa,GAEd,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,iBAAiB,GAElB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,aAAa,GAEd,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,EAAE,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SlyxUp UI — design tokens + stylesheet.
|
|
3
|
-
* Injected
|
|
3
|
+
* Injected automatically by every SlyxUp component. Theme by overriding
|
|
4
|
+
* CSS variables on :root or .slyxup-scope.
|
|
4
5
|
*/
|
|
5
6
|
export declare const FONT_LINK = "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin><link href=\"https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&family=Space+Grotesk:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">";
|
|
6
|
-
export declare const CSS = "\n@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&family=Space+Grotesk:wght@400;500;600;700&display=swap');\n\n.slyxup-root {\n --slx-accent: #5b5bd6;\n --slx-accent-hover: #4c4cc4;\n --slx-accent-soft: rgba(91, 91, 214, 0.14);\n --slx-bg: #ffffff;\n --slx-bg-page: #e9eaf6;\n --slx-ink: #16161d;\n --slx-muted: #6f6f7b;\n --slx-border: #d8d8e8;\n --slx-danger: #d64550;\n --slx-radius: 12px;\n --slx-font: \"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n --slx-display: \"Space Grotesk\", \"DM Sans\", sans-serif;\n --slx-mono: ui-monospace, SFMono-Regular, Menlo, monospace;\n\n font-family: var(--slx-font);\n color: var(--slx-ink);\n -webkit-font-smoothing: antialiased;\n}\n@media (prefers-color-scheme: dark) {\n .slyxup-root:not(.slyxup-light) {\n --slx-accent: #8484f2;\n --slx-accent-hover: #9696f5;\n --slx-accent-soft: rgba(132, 132, 242, 0.14);\n --slx-bg: #191920;\n --slx-bg-page: #121218;\n --slx-ink: #f2f2f5;\n --slx-muted: #9a9aa6;\n --slx-border: #2c2c36;\n --slx-danger: #f0737d;\n }\n}\n\n@keyframes slx-shake {\n 10%, 90% { transform: translateX(-1px); }\n 20%, 80% { transform: translateX(2px); }\n 30%, 50%, 70% { transform: translateX(-4px); }\n 40%, 60% { transform: translateX(4px); }\n}\n@keyframes slx-spin { to { transform: rotate(360deg); } }\n@media (prefers-reduced-motion: reduce) {\n .slyxup-root * { animation: none !important; transition: none !important; }\n}\n\n/* \u2500\u2500 Card \u2500\u2500 */\n.slx-card {\n width: 100%;\n max-width: 380px;\n background: var(--slx-bg);\n border: 1px solid var(--slx-border);\n border-radius: calc(var(--slx-radius) + 4px);\n padding: 32px;\n box-shadow: 0 4px 12px rgba(16,16,29,.08), 0 16px 40px rgba(16,16,29,.12), 0 0 0 1px rgba(16,16,29,.04);\n box-sizing: border-box;\n}\n.slyxup-root .slx-card { background: #ffffff; }\n.slx-card-error { animation: slx-shake .45s cubic-bezier(.36,.07,.19,.97) both; }\n\n/* \u2500\u2500 Header / keyhole mark \u2500\u2500 */\n.slx-mark {\n width: 44px; height: 44px; border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n background: linear-gradient(135deg, var(--slx-accent), #9a6cf0);\n margin-bottom: 18px;\n}\n.slx-mark svg { display: block; }\n.slx-title { font-family: var(--slx-display); font-size: 20px; font-weight: 650; letter-spacing: -0.02em; margin: 0 0 6px; }\n.slx-subtitle { font-size: 13.5px; color: var(--slx-muted); margin: 0 0 22px; line-height: 1.5; }\n\n/* \u2500\u2500 Fields \u2500\u2500 */\n.slx-field { margin-bottom: 14px; }\n.slx-label { display: block; font-size: 12.5px; font-weight: 550; margin-bottom: 6px; letter-spacing: 0.01em; }\n.slx-input {\n width: 100%; box-sizing: border-box;\n font: inherit; font-size: 14px; color: var(--slx-ink);\n background: transparent;\n border: 1px solid var(--slx-border);\n border-radius: var(--slx-radius);\n padding: 10px 12px;\n outline: none;\n transition: border-color .15s, box-shadow .15s;\n}\n.slx-input::placeholder { color: var(--slx-muted); opacity: .75; }\n.slx-input:focus-visible {\n border-color: var(--slx-accent);\n box-shadow: 0 0 0 3px var(--slx-accent-soft);\n}\n.slx-hint { font-size: 12px; color: var(--slx-muted); margin-top: 5px; }\n.slx-error-text {\n font-size: 13px; color: var(--slx-danger);\n background: color-mix(in srgb, var(--slx-danger) 9%, transparent);\n border-radius: 8px; padding: 9px 11px; margin: 0 0 14px; line-height: 1.4;\n}\n\n/* \u2500\u2500 Button \u2500\u2500 */\n.slx-btn {\n width: 100%; box-sizing: border-box;\n font-family: var(--slx-font); font-size: 14px; font-weight: 600; letter-spacing: 0.01em;\n color: #fff; background: #0a0a0f;\n border: 1px solid #0a0a0f; border-radius: var(--slx-radius);\n padding: 11px 14px; cursor: pointer;\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n transition: background .15s, transform .06s, border-color .15s;\n}\n.slx-btn:hover { background: #1a1a23; border-color: #1a1a23; }\n.slx-btn:active { transform: scale(.985); background: #000; }\n.slx-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(10,10,15,.14), 0 0 0 1px #0a0a0f; }\n.slx-btn[disabled] { opacity: .6; cursor: not-allowed; }\n@media (prefers-color-scheme: dark) {\n .slyxup-root:not(.slyxup-light) .slx-btn { background: #f2f2f5; color: #0a0a0f; border-color: #f2f2f5; }\n .slyxup-root:not(.slyxup-light) .slx-btn:hover { background: #e6e6eb; border-color: #e6e6eb; }\n}\n.slx-spinner {\n width: 15px; height: 15px; flex: none;\n border: 2px solid rgba(255,255,255,.35); border-top-color: #fff;\n border-radius: 50%; animation: slx-spin .7s linear infinite;\n}\n\n/* \u2500\u2500 Social \u2500\u2500 */\n.slx-social { display: grid; gap: 10px; margin-bottom: 16px; }\n.slx-social-btn {\n width: 100%; box-sizing: border-box;\n font: inherit; font-size: 13.5px; font-weight: 550;\n color: var(--slx-ink); background: var(--slx-bg);\n border: 1px solid var(--slx-border); border-radius: var(--slx-radius);\n padding: 10px 14px; cursor: pointer;\n display: inline-flex; align-items: center; justify-content: center; gap: 10px;\n transition: background .15s, border-color .15s;\n}\n.slx-social-btn:hover { background: color-mix(in srgb, var(--slx-ink) 4%, var(--slx-bg)); }\n.slx-social-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--slx-accent-soft); }\n\n/* \u2500\u2500 Divider & footer \u2500\u2500 */\n.slx-divider {\n display: flex; align-items: center; gap: 12px;\n color: var(--slx-muted); font-size: 12px;\n margin: 18px 0;\n}\n.slx-divider::before, .slx-divider::after {\n content: \"\"; height: 1px; flex: 1; background: var(--slx-border);\n}\n.slx-footer { font-size: 13px; color: var(--slx-muted); margin-top: 20px; text-align: center; }\n.slx-link {\n color: var(--slx-accent); font-weight: 600; text-decoration: none; cursor: pointer;\n background: none; border: none; font: inherit; font-size: inherit;\n padding: 0; margin: 0;\n}\n.slx-link:hover { text-decoration: underline; color: var(--slx-accent-hover); }\n.slx-link:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--slx-accent-soft); border-radius: 4px; }\n\n/* \u2500\u2500 Success state \u2500\u2500 */\n.slx-success-icon {\n width: 46px; height: 46px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n background: color-mix(in srgb, #34a853 12%, transparent);\n color: #34a853; margin: 4px auto 18px;\n}\n\n/* \u2500\u2500 User button \u2500\u2500 */\n.slx-userbtn-wrap { position: relative; display: inline-block; }\n.slx-userbtn-avatar {\n width: 36px; height: 36px; border-radius: 50%;\n border: 1px solid var(--slx-border); cursor: pointer;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 650; color: #fff;\n background: linear-gradient(135deg, var(--slx-accent), #9a6cf0);\n padding: 0; overflow: hidden;\n}\n.slx-userbtn-avatar img { width: 100%; height: 100%; object-fit: cover; }\n.slx-userbtn-avatar:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--slx-accent-soft); }\n.slx-menu {\n position: absolute; right: 0; top: calc(100% + 8px);\n min-width: 230px;\n background: var(--slx-bg);\n border: 1px solid var(--slx-border);\n border-radius: var(--slx-radius);\n box-shadow: 0 8px 30px rgba(10,10,20,.14);\n overflow: hidden; z-index: 1000;\n}\n.slx-menu-header { padding: 14px 16px; border-bottom: 1px solid var(--slx-border); }\n.slx-menu-name { font-size: 14px; font-weight: 600; margin: 0 0 2px; }\n.slx-menu-email { font-size: 12.5px; color: var(--slx-muted); margin: 0; word-break: break-all; }\n.slx-menu-item {\n display: block; width: 100%; text-align: left; box-sizing: border-box;\n font: inherit; font-size: 13.5px; color: var(--slx-ink);\n background: none; border: none; padding: 10px 16px; cursor: pointer;\n}\n.slx-menu-item:hover { background: color-mix(in srgb, var(--slx-ink) 5%, transparent); }\n.slx-menu-item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--slx-accent-soft); }\n.slx-menu-item-danger { color: var(--slx-danger); }\n";
|
|
7
|
-
/** Inject the SlyxUp stylesheet +
|
|
7
|
+
export declare const CSS = "\n@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&family=Space+Grotesk:wght@400;500;600;700&display=swap');\n\n.slyxup-root {\n /* \u2500\u2500 Tokens \u2500\u2500 */\n --slx-accent: #5b5bd6;\n --slx-accent-hover: #4c4cc4;\n --slx-accent-soft: rgba(91, 91, 214, 0.12);\n --slx-bg: #ffffff;\n --slx-bg-subtle: #f7f7fb;\n --slx-bg-page: #e9eaf6;\n --slx-ink: #16161d;\n --slx-ink-strong: #0c0c12;\n --slx-muted: #6f6f7b;\n --slx-border: #e3e3ee;\n --slx-border-strong: #d3d3e2;\n --slx-danger: #d64550;\n --slx-success: #1f9d55;\n --slx-radius-sm: 8px;\n --slx-radius: 10px;\n --slx-radius-lg: 14px;\n --slx-font: \"DM Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n --slx-display: \"Space Grotesk\", \"DM Sans\", sans-serif;\n --slx-mono: ui-monospace, SFMono-Regular, Menlo, monospace;\n --slx-shadow-card:\n 0 1px 2px rgba(18,18,28,.05),\n 0 8px 24px -6px rgba(18,18,28,.09),\n 0 24px 64px -16px rgba(18,18,28,.13);\n --slx-shadow-pop:\n 0 2px 6px rgba(18,18,28,.08),\n 0 16px 48px -12px rgba(18,18,28,.18);\n\n font-family: var(--slx-font);\n color: var(--slx-ink);\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n font-feature-settings: \"cv11\", \"ss01\";\n}\n@media (prefers-color-scheme: dark) {\n .slyxup-root:not(.slyxup-light) {\n --slx-accent: #8484f2;\n --slx-accent-hover: #9696f5;\n --slx-accent-soft: rgba(132, 132, 242, 0.16);\n --slx-bg: #17171f;\n --slx-bg-subtle: #1e1e28;\n --slx-bg-page: #101016;\n --slx-ink: #f0f0f4;\n --slx-ink-strong: #ffffff;\n --slx-muted: #9a9aa6;\n --slx-border: #292935;\n --slx-border-strong: #343442;\n --slx-danger: #f0737d;\n --slx-success: #4ade80;\n --slx-shadow-card:\n 0 1px 2px rgba(0,0,0,.25),\n 0 12px 32px -8px rgba(0,0,0,.5),\n 0 32px 72px -20px rgba(0,0,0,.55);\n --slx-shadow-pop:\n 0 4px 12px rgba(0,0,0,.4),\n 0 24px 56px -12px rgba(0,0,0,.6);\n }\n}\n\n@keyframes slx-shake {\n 10%, 90% { transform: translateX(-1px); }\n 20%, 80% { transform: translateX(2px); }\n 30%, 50%, 70% { transform: translateX(-4px); }\n 40%, 60% { transform: translateX(4px); }\n}\n@keyframes slx-spin { to { transform: rotate(360deg); } }\n@keyframes slx-rise {\n from { opacity: 0; transform: translateY(8px) scale(.985); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n}\n@keyframes slx-pop {\n 0% { transform: scale(.5); opacity: 0; }\n 60% { transform: scale(1.08); opacity: 1; }\n 100% { transform: scale(1); }\n}\n@media (prefers-reduced-motion: reduce) {\n .slyxup-root * { animation: none !important; transition: none !important; }\n}\n\n/* \u2500\u2500 Card \u2500\u2500 */\n.slx-card {\n width: 100%;\n max-width: 400px;\n background: var(--slx-bg);\n border: 1px solid var(--slx-border);\n border-radius: var(--slx-radius-lg);\n padding: 34px 34px 30px;\n box-shadow: var(--slx-shadow-card);\n box-sizing: border-box;\n animation: slx-rise .38s cubic-bezier(.22,.9,.32,1) both;\n}\n.slyxup-root:not(.slyxup-light) .slx-card,\n.slx-card { color: var(--slx-ink); }\n.slx-card-error { animation: slx-shake .45s cubic-bezier(.36,.07,.19,.97) both; }\n\n/* \u2500\u2500 Header / keyhole mark \u2500\u2500 */\n.slx-mark {\n width: 46px; height: 46px; border-radius: 13px;\n display: flex; align-items: center; justify-content: center;\n background: linear-gradient(140deg, var(--slx-accent) 0%, #8b5cf6 100%);\n box-shadow:\n inset 0 1px 0 rgba(255,255,255,.28),\n 0 6px 16px -6px rgba(91,91,214,.55);\n margin-bottom: 20px;\n}\n.slx-mark svg { display: block; filter: drop-shadow(0 1px 1px rgba(0,0,0,.18)); }\n.slx-title {\n font-family: var(--slx-display);\n font-size: 21px; font-weight: 650; letter-spacing: -0.022em;\n color: var(--slx-ink-strong);\n margin: 0 0 6px;\n}\n.slx-subtitle { font-size: 13.5px; color: var(--slx-muted); margin: 0 0 24px; line-height: 1.55; }\n\n/* \u2500\u2500 Fields \u2500\u2500 */\n.slx-field { margin-bottom: 15px; }\n.slx-row {\n display: flex; align-items: baseline; justify-content: space-between;\n margin-bottom: 6px;\n}\n.slx-label {\n display: inline-block;\n font-size: 12.5px; font-weight: 550; letter-spacing: 0.01em;\n color: var(--slx-ink);\n}\n.slx-input {\n width: 100%; box-sizing: border-box;\n font: inherit; font-size: 14px; line-height: 1.4; color: var(--slx-ink);\n background: var(--slx-bg-subtle);\n border: 1px solid var(--slx-border);\n border-radius: var(--slx-radius);\n padding: 10px 13px;\n outline: none;\n transition: border-color .15s, box-shadow .15s, background .15s;\n}\n.slx-input::placeholder { color: var(--slx-muted); opacity: .7; }\n.slx-input:hover { border-color: var(--slx-border-strong); }\n.slx-input:focus-visible {\n background: var(--slx-bg);\n border-color: var(--slx-accent);\n box-shadow: 0 0 0 3.5px var(--slx-accent-soft);\n}\n.slx-hint { font-size: 12px; color: var(--slx-muted); margin-top: 5px; }\n.slx-error-text {\n font-size: 13px; color: var(--slx-danger);\n background: color-mix(in srgb, var(--slx-danger) 8%, transparent);\n border: 1px solid color-mix(in srgb, var(--slx-danger) 26%, transparent);\n border-left: 3px solid var(--slx-danger);\n border-radius: var(--slx-radius-sm);\n padding: 10px 12px; margin: 0 0 16px; line-height: 1.45;\n}\n.slx-setup-note {\n font-size: 12px; line-height: 1.45;\n color: #7a5c00;\n background: #fff7dc;\n border: 1px solid #f3e3a0;\n border-radius: var(--slx-radius-sm);\n padding: 9px 11px; margin: 0 0 16px;\n}\n.slyxup-root:not(.slyxup-light) .slx-setup-note {\n color: #f5d878; background: rgba(250,204,21,.07); border-color: rgba(250,204,21,.25);\n}\n.slx-setup-note code {\n font-family: var(--slx-mono); font-size: 11px;\n background: rgba(0,0,0,.05); border-radius: 4px; padding: 1px 4px;\n}\n.slyxup-root:not(.slyxup-light) .slx-setup-note code { background: rgba(255,255,255,.08); }\n\n/* \u2500\u2500 Primary button \u2500\u2500 */\n.slx-btn {\n width: 100%; box-sizing: border-box;\n font-family: var(--slx-font); font-size: 14px; font-weight: 600; letter-spacing: 0.01em;\n color: #fff; background: linear-gradient(180deg, #23232e 0%, #0a0a0f 100%);\n border: 1px solid #0a0a0f; border-radius: var(--slx-radius);\n padding: 11px 14px; cursor: pointer;\n box-shadow: 0 1px 2px rgba(10,10,15,.35), inset 0 1px 0 rgba(255,255,255,.08);\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n transition: filter .15s, transform .06s, box-shadow .15s;\n}\n.slx-btn:hover { filter: brightness(1.22); }\n.slx-btn:active { transform: scale(.985); filter: brightness(.92); }\n.slx-btn:focus-visible { outline: none; box-shadow: 0 0 0 3.5px rgba(10,10,15,.16), 0 0 0 1.5px #0a0a0f; }\n.slx-btn[disabled] { opacity: .55; cursor: not-allowed; }\n@media (prefers-color-scheme: dark) {\n .slyxup-root:not(.slyxup-light) .slx-btn {\n background: linear-gradient(180deg, #ffffff 0%, #ececf1 100%);\n color: #0a0a0f; border-color: #ececf1;\n box-shadow: 0 1px 2px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.9);\n }\n .slyxup-root:not(.slyxup-light) .slx-btn:hover { filter: brightness(.94); }\n}\n.slx-spinner {\n width: 15px; height: 15px; flex: none;\n border: 2px solid rgba(255,255,255,.35); border-top-color: #fff;\n border-radius: 50%; animation: slx-spin .7s linear infinite;\n}\n.slyxup-root:not(.slyxup-light) .slx-spinner { border-color: rgba(10,10,15,.25); border-top-color: #0a0a0f; }\n\n/* \u2500\u2500 Social \u2500\u2500 */\n.slx-social { display: grid; gap: 9px; margin-bottom: 4px; }\n.slx-social-btn {\n width: 100%; box-sizing: border-box;\n font: inherit; font-size: 13.5px; font-weight: 550;\n color: var(--slx-ink); background: var(--slx-bg);\n border: 1px solid var(--slx-border-strong); border-radius: var(--slx-radius);\n padding: 10px 14px; cursor: pointer;\n display: inline-flex; align-items: center; justify-content: center; gap: 10px;\n transition: background .15s, border-color .15s, transform .06s, box-shadow .15s;\n}\n.slx-social-btn:hover {\n background: var(--slx-bg-subtle);\n border-color: var(--slx-border-strong);\n box-shadow: 0 2px 8px -2px rgba(18,18,28,.12);\n}\n.slx-social-btn:active { transform: scale(.985); }\n.slx-social-btn:focus-visible { outline: none; box-shadow: 0 0 0 3.5px var(--slx-accent-soft); }\n.slx-social-btn svg { flex: none; }\n\n/* \u2500\u2500 Divider & footer \u2500\u2500 */\n.slx-divider {\n display: flex; align-items: center; gap: 14px;\n color: var(--slx-muted); font-size: 11.5px;\n letter-spacing: .04em; text-transform: uppercase;\n margin: 18px 0;\n}\n.slx-divider::before, .slx-divider::after {\n content: \"\"; height: 1px; flex: 1;\n background: linear-gradient(90deg, transparent, var(--slx-border-strong));\n}\n.slx-divider::after { background: linear-gradient(90deg, var(--slx-border-strong), transparent); }\n.slx-footer { font-size: 13px; color: var(--slx-muted); margin-top: 22px; text-align: center; }\n.slx-link {\n color: var(--slx-accent); font-weight: 600; text-decoration: none; cursor: pointer;\n background: none; border: none; font: inherit; font-size: inherit;\n padding: 0; margin: 0;\n}\n.slx-link:hover { text-decoration: underline; color: var(--slx-accent-hover); }\n.slx-link:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--slx-accent-soft); border-radius: 4px; }\n.slx-forgot { font-size: 12px; }\n\n/* \u2500\u2500 Success state \u2500\u2500 */\n.slx-success-icon {\n width: 48px; height: 48px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n background: color-mix(in srgb, var(--slx-success) 12%, transparent);\n color: var(--slx-success); margin: 4px auto 18px;\n animation: slx-pop .45s cubic-bezier(.22,.9,.32,1) both;\n box-shadow: 0 0 0 6px color-mix(in srgb, var(--slx-success) 6%, transparent);\n}\n\n/* \u2500\u2500 User button \u2500\u2500 */\n.slx-userbtn-wrap { position: relative; display: inline-block; }\n.slx-userbtn-avatar {\n width: 36px; height: 36px; border-radius: 50%;\n border: 1px solid var(--slx-border); cursor: pointer;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 650; color: #fff;\n background: linear-gradient(135deg, var(--slx-accent), #8b5cf6);\n padding: 0; overflow: hidden;\n transition: box-shadow .15s, transform .06s;\n}\n.slx-userbtn-avatar:hover { box-shadow: 0 0 0 3px var(--slx-accent-soft); }\n.slx-userbtn-avatar:active { transform: scale(.96); }\n.slx-userbtn-avatar img { width: 100%; height: 100%; object-fit: cover; }\n.slx-userbtn-avatar:focus-visible { outline: none; box-shadow: 0 0 0 3.5px var(--slx-accent-soft); }\n.slx-menu {\n position: absolute; right: 0; top: calc(100% + 8px);\n min-width: 240px;\n background: var(--slx-bg);\n border: 1px solid var(--slx-border);\n border-radius: var(--slx-radius-lg);\n box-shadow: var(--slx-shadow-pop);\n overflow: hidden; z-index: 1000;\n animation: slx-rise .22s cubic-bezier(.22,.9,.32,1) both;\n}\n.slx-menu-header { padding: 14px 16px; border-bottom: 1px solid var(--slx-border); background: var(--slx-bg-subtle); }\n.slx-menu-name { font-size: 14px; font-weight: 600; margin: 0 0 2px; color: var(--slx-ink-strong); }\n.slx-menu-email { font-size: 12.5px; color: var(--slx-muted); margin: 0; word-break: break-all; }\n.slx-menu-item {\n display: block; width: 100%; text-align: left; box-sizing: border-box;\n font: inherit; font-size: 13.5px; color: var(--slx-ink);\n background: none; border: none; padding: 10px 16px; cursor: pointer;\n transition: background .12s;\n}\n.slx-menu-item:hover { background: color-mix(in srgb, var(--slx-ink) 4%, transparent); }\n.slx-menu-item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--slx-accent-soft); }\n.slx-menu-item-danger { color: var(--slx-danger); }\n.slx-menu-item-danger:hover { background: color-mix(in srgb, var(--slx-danger) 7%, transparent); }\n\n/* \u2500\u2500 Badge (verified etc.) \u2500\u2500 */\n.slx-badge {\n display: inline-flex; align-items: center; gap: 5px;\n font-size: 11px; font-weight: 600; letter-spacing: .02em;\n padding: 2.5px 9px; border-radius: 999px;\n color: var(--slx-success);\n background: color-mix(in srgb, var(--slx-success) 9%, transparent);\n border: 1px solid color-mix(in srgb, var(--slx-success) 30%, transparent);\n}\n";
|
|
8
|
+
/** Inject the SlyxUp stylesheet + fonts once per document. Idempotent + SSR-safe. */
|
|
8
9
|
export declare function injectStyles(): void;
|
|
10
|
+
/** Test hook — whether styles are present. */
|
|
11
|
+
export declare function stylesInjected(): boolean;
|
|
9
12
|
//# sourceMappingURL=styles.d.ts.map
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,SAAS,4VAAgV,CAAC;AAEvW,eAAO,MAAM,GAAG,yqYA8Sf,CAAC;AAIF,qFAAqF;AACrF,wBAAgB,YAAY,IAAI,IAAI,CAqBnC;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
|