@unisim/sdk 0.106.0 → 0.108.0
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/README.md +8 -0
- package/dist/AccountLimits.d.ts +7 -0
- package/dist/AccountLimits.d.ts.map +1 -0
- package/dist/AccountLimits.js +145 -0
- package/dist/AccountLimits.js.map +1 -0
- package/dist/ChangelogMenu.d.ts +11 -1
- package/dist/ChangelogMenu.d.ts.map +1 -1
- package/dist/ChangelogMenu.js +94 -72
- package/dist/ChangelogMenu.js.map +1 -1
- package/dist/DropdownSurface.d.ts +24 -1
- package/dist/DropdownSurface.d.ts.map +1 -1
- package/dist/DropdownSurface.js +33 -3
- package/dist/DropdownSurface.js.map +1 -1
- package/dist/SuiteSwitcher.d.ts +18 -4
- package/dist/SuiteSwitcher.d.ts.map +1 -1
- package/dist/SuiteSwitcher.js +101 -112
- package/dist/SuiteSwitcher.js.map +1 -1
- package/dist/UniversalAppsNavBar.d.ts +23 -17
- package/dist/UniversalAppsNavBar.d.ts.map +1 -1
- package/dist/UniversalAppsNavBar.js +12 -13
- package/dist/UniversalAppsNavBar.js.map +1 -1
- package/dist/UserProfile.d.ts +49 -3
- package/dist/UserProfile.d.ts.map +1 -1
- package/dist/UserProfile.js +215 -63
- package/dist/UserProfile.js.map +1 -1
- package/dist/entitlements.d.ts +55 -0
- package/dist/entitlements.d.ts.map +1 -0
- package/dist/entitlements.js +116 -0
- package/dist/entitlements.js.map +1 -0
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +119 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/menuTheme.d.ts +85 -0
- package/dist/menuTheme.d.ts.map +1 -0
- package/dist/menuTheme.js +195 -0
- package/dist/menuTheme.js.map +1 -0
- package/dist/mockAuth.d.ts.map +1 -1
- package/dist/mockAuth.js +19 -2
- package/dist/mockAuth.js.map +1 -1
- package/dist/types.d.ts +7 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/UserProfile.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useRef, } from 'react';
|
|
3
|
+
import { useEffect, useState, useRef, } from 'react';
|
|
4
4
|
import { t } from './i18n.js';
|
|
5
5
|
import { SUPPORTED_LANGUAGES } from './i18n.js';
|
|
6
6
|
import { useLanguage } from './provider.js';
|
|
7
7
|
import { DropdownSurface } from './DropdownSurface.js';
|
|
8
|
+
import { AccountLimits } from './AccountLimits.js';
|
|
8
9
|
import { useCanHover } from './hover.js';
|
|
9
10
|
import { ProfileAvatarIcon } from './ProfileAvatarIcon.js';
|
|
10
11
|
import { BRAND } from './brand.js';
|
|
12
|
+
import { MENU, MENU_TIER_BADGE } from './menuTheme.js';
|
|
11
13
|
// Native-name labels for the language picker. Kept here (not in i18n.ts) since
|
|
12
14
|
// these are endonyms — they read the same regardless of the active UI locale.
|
|
13
15
|
const LANGUAGE_LABELS = {
|
|
@@ -23,8 +25,12 @@ const LANGUAGE_LABELS = {
|
|
|
23
25
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
24
26
|
// Component
|
|
25
27
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
26
|
-
export function UserProfile({ name, email, photoUrl, initials, profileHref = 'https://app.unisim.co.uk/profile', signInHref, onSignInClick, appSettingsHref, onSignOut, extras, showLanguageSelector = true, actionsLabel, actions, pillTheme = 'light', menuAlign = 'right', ariaLabel, noAccount = false, tier, style, className, }) {
|
|
28
|
+
export function UserProfile({ name, email, photoUrl, initials, profileHref = 'https://app.unisim.co.uk/profile', signInHref, onSignInClick, appSettingsHref, onSignOut, extras, showLanguageSelector = true, actionsLabel, actions, pillTheme, theme = 'light', menuAlign = 'right', ariaLabel, noAccount = false, tier, showLimits = true, style, className, }) {
|
|
27
29
|
const { language, setLanguage } = useLanguage();
|
|
30
|
+
// Not a destructuring default: `pillTheme` and `theme` are separate props and
|
|
31
|
+
// the fallback has to read the OTHER one, which a default in the pattern
|
|
32
|
+
// above cannot do without depending on declaration order.
|
|
33
|
+
const resolvedPillTheme = pillTheme ?? theme;
|
|
28
34
|
const resolvedAriaLabel = ariaLabel ?? t(language, 'profile.label');
|
|
29
35
|
// Passing `actions` is enough to get the pill — the label defaults to the
|
|
30
36
|
// localised "Actions" so no caller has to reach for the SDK's i18n to say
|
|
@@ -45,6 +51,15 @@ export function UserProfile({ name, email, photoUrl, initials, profileHref = 'ht
|
|
|
45
51
|
const [open, setOpen] = useState(false);
|
|
46
52
|
const wrapRef = useRef(null);
|
|
47
53
|
const closeTimer = useRef(null);
|
|
54
|
+
// ── Plan & limits flyout ────────────────────────────────────────────────
|
|
55
|
+
// `seen` gates the MOUNT, `open` gates the animation. Keeping them separate
|
|
56
|
+
// is what makes the Supabase queries lazy (nothing is mounted until the first
|
|
57
|
+
// click) without the panel flashing empty on every reopen afterwards.
|
|
58
|
+
const limitsEnabled = showLimits && showHeader;
|
|
59
|
+
const [limitsOpen, setLimitsOpen] = useState(false);
|
|
60
|
+
const [limitsSeen, setLimitsSeen] = useState(false);
|
|
61
|
+
const headerRef = useRef(null);
|
|
62
|
+
const limitsRef = useRef(null);
|
|
48
63
|
function openNow() {
|
|
49
64
|
if (closeTimer.current)
|
|
50
65
|
clearTimeout(closeTimer.current);
|
|
@@ -55,6 +70,45 @@ export function UserProfile({ name, email, photoUrl, initials, profileHref = 'ht
|
|
|
55
70
|
clearTimeout(closeTimer.current);
|
|
56
71
|
closeTimer.current = setTimeout(() => setOpen(false), 220);
|
|
57
72
|
}
|
|
73
|
+
// The flyout is a child of the menu, so it cannot outlive it — otherwise
|
|
74
|
+
// clicking away leaves a limits panel floating beside nothing.
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (!open)
|
|
77
|
+
setLimitsOpen(false);
|
|
78
|
+
}, [open]);
|
|
79
|
+
// Two CAPTURE-phase listeners on `document`, which is where DropdownSurface
|
|
80
|
+
// puts its own (bubble-phase) ones. Capture runs first, so these get to
|
|
81
|
+
// decide what the menus below them are allowed to see.
|
|
82
|
+
//
|
|
83
|
+
// ⚠️ The mousedown one is load-bearing, not defensive. The flyout is
|
|
84
|
+
// portaled to <body>, so it is inside NEITHER the profile trigger nor the
|
|
85
|
+
// profile panel — which is exactly the test the parent menu's outside-click
|
|
86
|
+
// handler applies. Without this, clicking anything in the flyout closes the
|
|
87
|
+
// menu that opened it, taking the flyout with it.
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
if (!limitsOpen)
|
|
90
|
+
return;
|
|
91
|
+
function onDown(e) {
|
|
92
|
+
if (limitsRef.current?.contains(e.target))
|
|
93
|
+
e.stopPropagation();
|
|
94
|
+
}
|
|
95
|
+
// Escape backs out one level, the way a submenu should: first press closes
|
|
96
|
+
// the flyout, a second closes the menu. Both surfaces listen on document,
|
|
97
|
+
// so without stopping here they would collapse together.
|
|
98
|
+
function onKey(e) {
|
|
99
|
+
if (e.key !== 'Escape')
|
|
100
|
+
return;
|
|
101
|
+
e.stopPropagation();
|
|
102
|
+
setLimitsOpen(false);
|
|
103
|
+
headerRef.current?.focus();
|
|
104
|
+
}
|
|
105
|
+
document.addEventListener('mousedown', onDown, true);
|
|
106
|
+
document.addEventListener('keydown', onKey, true);
|
|
107
|
+
return () => {
|
|
108
|
+
document.removeEventListener('mousedown', onDown, true);
|
|
109
|
+
document.removeEventListener('keydown', onKey, true);
|
|
110
|
+
};
|
|
111
|
+
}, [limitsOpen]);
|
|
58
112
|
// Hover-to-open is desktop-only. On a touch screen one tap fires a
|
|
59
113
|
// synthesised mouseenter AND a click, so hovering open then toggling shut
|
|
60
114
|
// meant these menus could never be opened by touch at all — see hover.ts.
|
|
@@ -88,10 +142,35 @@ export function UserProfile({ name, email, photoUrl, initials, profileHref = 'ht
|
|
|
88
142
|
const isPill = !!pillLabel || !!actions;
|
|
89
143
|
const avatarSize = isPill ? PILL_AVATAR : 36;
|
|
90
144
|
const sized = (base) => avatarSize === 36 ? base : { ...base, width: avatarSize, height: avatarSize };
|
|
91
|
-
|
|
145
|
+
// Written once and rendered by both header branches. They ARE the same three
|
|
146
|
+
// rows — the interactive version only adds a hint line and a chevron — and
|
|
147
|
+
// the copy that used to sit in each drifted the moment one of them changed.
|
|
148
|
+
//
|
|
149
|
+
// Spans, not divs: the interactive branch puts these inside a <button>, whose
|
|
150
|
+
// content model is phrasing content only. `nameStyle`/`emailStyle` carry the
|
|
151
|
+
// `display: block` that used to come from the element.
|
|
152
|
+
const identityRows = (_jsxs(_Fragment, { children: [name && _jsx("span", { style: nameStyle(theme), children: name }), email && _jsx("span", { style: emailStyle(theme), children: email }), tier && _jsx(TierBadge, { tier: tier, language: language, theme: theme })] }));
|
|
153
|
+
const avatar = photoUrl ? (_jsx("img", { src: photoUrl, alt: "", "aria-hidden": true, style: sized(avatarImgStyle) })) : showAvatarIcon ? (_jsx(ProfileAvatarIcon, { size: avatarSize })) : (_jsx("span", { style: sized(noAccount ? avatarGlyphStyle(theme) : avatarFallbackStyle(theme)), children: derivedInitials }));
|
|
92
154
|
return (_jsxs("div", { ref: wrapRef, className: className, style: { position: 'relative', display: 'inline-block', ...style }, onMouseEnter: hoverOpen, onMouseLeave: hoverClose, children: [_jsx("button", { type: "button", "aria-label": pillLabel ? `${pillLabel} · ${resolvedAriaLabel}` : resolvedAriaLabel, "aria-expanded": open, "aria-haspopup": "true", onClick: () => setOpen((v) => !v), onFocus: hoverOpen, style: isPill
|
|
93
|
-
? { ...pillTriggerStyle, ...PILL_THEMES[
|
|
94
|
-
: triggerStyle, children: isPill ? (_jsxs(_Fragment, { children: [pillLabel && _jsx("span", { style: pillLabelStyle, children: pillLabel }), _jsx(IconChevron, { open: open }), avatar] })) : (avatar) }), _jsxs(DropdownSurface, { open: open, anchorRef: wrapRef, align: menuAlign, role: "menu", surfaceStyle: menuSurfaceStyle, onMouseEnter: hoverOpen, onMouseLeave: hoverClose, onRequestClose: () => setOpen(false), children: [actions && (_jsxs(_Fragment, { children: [actions, _jsx(Divider, {
|
|
155
|
+
? { ...pillTriggerStyle, ...PILL_THEMES[resolvedPillTheme].rest, ...(open ? PILL_THEMES[resolvedPillTheme].open : null) }
|
|
156
|
+
: triggerStyle(theme), children: isPill ? (_jsxs(_Fragment, { children: [pillLabel && _jsx("span", { style: pillLabelStyle, children: pillLabel }), _jsx(IconChevron, { open: open }), avatar] })) : (avatar) }), _jsxs(DropdownSurface, { open: open, anchorRef: wrapRef, align: menuAlign, role: "menu", surfaceStyle: menuSurfaceStyle(theme), onMouseEnter: hoverOpen, onMouseLeave: hoverClose, onRequestClose: () => setOpen(false), children: [actions && (_jsxs(_Fragment, { children: [actions, _jsx(Divider, { theme: theme })] })), showHeader && (limitsEnabled ? (
|
|
157
|
+
// The same header, now a control. The identity rows are wrapped in
|
|
158
|
+
// one <span> so the chevron sits beside the block rather than under
|
|
159
|
+
// the email.
|
|
160
|
+
_jsxs("button", { ref: headerRef, type: "button", role: "menuitem", "aria-haspopup": "true", "aria-expanded": limitsOpen, onClick: () => {
|
|
161
|
+
setLimitsSeen(true);
|
|
162
|
+
setLimitsOpen((v) => !v);
|
|
163
|
+
}, style: headerButtonStyle(theme, limitsOpen), onMouseEnter: headerHoverIn(theme), onMouseLeave: headerHoverOut(theme, limitsOpen), children: [_jsxs("span", { style: { minWidth: 0, flex: 1 }, children: [identityRows, _jsx("span", { style: limitsHintStyle(theme), children: t(language, 'limits.title') })] }), _jsx(IconChevronRight, {})] })) : (_jsx("div", { style: headerStyle(theme), children: identityRows }))), limitsSeen && (_jsx(DropdownSurface, { open: limitsOpen, anchorRef: headerRef, placement: "side",
|
|
164
|
+
// The profile menu lives in the right-hand nav cluster, so the room
|
|
165
|
+
// is on its left. `side` is a preference — DropdownSurface flips it
|
|
166
|
+
// when the panel doesn't fit, which is what a narrow window does.
|
|
167
|
+
side: "left", gap: 6,
|
|
168
|
+
// The surface is a plain container; the labelled group is the div
|
|
169
|
+
// inside it, which is the element that can carry the accessible
|
|
170
|
+
// name. Not role="menu" either way — these are values, not
|
|
171
|
+
// commands, and announcing them as menu items would promise
|
|
172
|
+
// arrow-key navigation that isn't there.
|
|
173
|
+
role: "none", surfaceStyle: limitsSurfaceStyle(theme), onMouseEnter: hoverOpen, onMouseLeave: hoverClose, onRequestClose: () => setLimitsOpen(false), children: _jsx("div", { ref: limitsRef, role: "group", "aria-label": t(language, 'limits.title'), children: _jsx(AccountLimits, { language: language, theme: theme }) }) })), showSignIn ? (
|
|
95
174
|
// Guest / anonymous: prominent sign-in CTA instead of "View profile".
|
|
96
175
|
// Stays as an <a> (not a button) so middle-click / ctrl-click open the
|
|
97
176
|
// hub login in a new tab like a normal nav link.
|
|
@@ -105,7 +184,7 @@ export function UserProfile({ name, email, photoUrl, initials, profileHref = 'ht
|
|
|
105
184
|
e.preventDefault();
|
|
106
185
|
setOpen(false);
|
|
107
186
|
onSignInClick();
|
|
108
|
-
}, style: primaryItemStyle, onMouseEnter: primaryHoverIn, onMouseLeave: primaryHoverOut, children: [_jsx(IconSignIn, {}), " ", t(language, 'profile.sign_in')] })) : showProfile ? (_jsxs("a", { role: "menuitem", href: profileHref, style: itemStyle, onMouseEnter: hoverIn, onMouseLeave: hoverOut, children: [_jsx(IconUser, {}), " ", t(language, 'profile.view_profile')] })) : null, appSettingsHref && (_jsxs("a", { role: "menuitem", href: appSettingsHref, style: itemStyle, onMouseEnter: hoverIn, onMouseLeave: hoverOut, children: [_jsx(IconGear, {}), " ", t(language, 'profile.app_settings')] })), showLanguageSelector && (_jsxs("div", { role: "none", style: languageRowStyle, children: [_jsx("span", { "aria-hidden": true, style: { display: 'inline-flex' }, children: _jsx(IconGlobe, {}) }), _jsx("span", { style: { flex: 1 }, children: t(language, 'profile.language') }), _jsx("select", { "aria-label": t(language, 'profile.language'), value: language, onChange: (e) => setLanguage(e.target.value), style: languageSelectStyle, children: SUPPORTED_LANGUAGES.map((lang) => (_jsx("option", { value: lang, children: LANGUAGE_LABELS[lang] ?? lang }, lang))) })] })), extras && (_jsxs(_Fragment, { children: [_jsx(Divider, {}), extras] })), showSignOut && (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsxs("button", { type: "button", role: "menuitem", onClick: onSignOut, style: dangerItemStyle, onMouseEnter: dangerHoverIn, onMouseLeave: dangerHoverOut, children: [_jsx(IconLogout, {}), " ", t(language, 'profile.sign_out')] })] }))] })] }));
|
|
187
|
+
}, style: primaryItemStyle(theme), onMouseEnter: primaryHoverIn, onMouseLeave: primaryHoverOut, children: [_jsx(IconSignIn, {}), " ", t(language, 'profile.sign_in')] })) : showProfile ? (_jsxs("a", { role: "menuitem", href: profileHref, style: itemStyle(theme), onMouseEnter: hoverIn(theme), onMouseLeave: hoverOut(theme), children: [_jsx(IconUser, {}), " ", t(language, 'profile.view_profile')] })) : null, appSettingsHref && (_jsxs("a", { role: "menuitem", href: appSettingsHref, style: itemStyle(theme), onMouseEnter: hoverIn(theme), onMouseLeave: hoverOut(theme), children: [_jsx(IconGear, {}), " ", t(language, 'profile.app_settings')] })), showLanguageSelector && (_jsxs("div", { role: "none", style: languageRowStyle(theme), children: [_jsx("span", { "aria-hidden": true, style: { display: 'inline-flex' }, children: _jsx(IconGlobe, {}) }), _jsx("span", { style: { flex: 1 }, children: t(language, 'profile.language') }), _jsx("select", { "aria-label": t(language, 'profile.language'), value: language, onChange: (e) => setLanguage(e.target.value), style: languageSelectStyle(theme), children: SUPPORTED_LANGUAGES.map((lang) => (_jsx("option", { value: lang, children: LANGUAGE_LABELS[lang] ?? lang }, lang))) })] })), extras && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), extras] })), showSignOut && (_jsxs(_Fragment, { children: [_jsx(Divider, { theme: theme }), _jsxs("button", { type: "button", role: "menuitem", onClick: onSignOut, style: dangerItemStyle(theme), onMouseEnter: dangerHoverIn(theme), onMouseLeave: dangerHoverOut(theme), children: [_jsx(IconLogout, {}), " ", t(language, 'profile.sign_out')] })] }))] })] }));
|
|
109
188
|
}
|
|
110
189
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
111
190
|
// Helpers
|
|
@@ -120,30 +199,35 @@ function deriveInitials(name) {
|
|
|
120
199
|
return parts[0].slice(0, 2).toUpperCase();
|
|
121
200
|
return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
|
|
122
201
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
202
|
+
// Hover is written to the DOM node rather than held in state — one style write
|
|
203
|
+
// beats re-rendering the whole menu on every pointer move across it. Each of
|
|
204
|
+
// these is now a factory: the handler has to close over the theme because the
|
|
205
|
+
// colour it restores on the way out is the theme's resting colour, not a
|
|
206
|
+
// constant. Restoring the wrong one leaves a row permanently mis-coloured
|
|
207
|
+
// after the first hover, which is the failure a naive `theme` lookup inside
|
|
208
|
+
// the handler would have produced.
|
|
209
|
+
const hoverIn = (theme) => (e) => { e.currentTarget.style.background = MENU[theme].rowHover; e.currentTarget.style.color = MENU[theme].rowHoverText; };
|
|
210
|
+
const hoverOut = (theme) => (e) => { e.currentTarget.style.background = 'transparent'; e.currentTarget.style.color = MENU[theme].body; };
|
|
211
|
+
const dangerHoverIn = (theme) => (e) => { e.currentTarget.style.background = MENU[theme].dangerHoverBg; e.currentTarget.style.color = MENU[theme].dangerHoverText; };
|
|
212
|
+
const dangerHoverOut = (theme) => (e) => { e.currentTarget.style.background = 'transparent'; e.currentTarget.style.color = MENU[theme].danger; };
|
|
127
213
|
// Ink, not white — see BRAND.onOrange. Both stops of the brand orange are far
|
|
128
214
|
// too light to carry white text (2.34:1 and 3.84:1 against a 4.5:1 floor).
|
|
129
215
|
function primaryHoverIn(e) { e.currentTarget.style.background = BRAND.orangeDeep; e.currentTarget.style.color = BRAND.onOrange; }
|
|
130
216
|
function primaryHoverOut(e) { e.currentTarget.style.background = BRAND.orange; e.currentTarget.style.color = BRAND.onOrange; }
|
|
131
|
-
function Divider() {
|
|
132
|
-
return _jsx("div", { style: { height: 1, background:
|
|
217
|
+
function Divider({ theme }) {
|
|
218
|
+
return _jsx("div", { style: { height: 1, background: MENU[theme].divider, margin: '4px 0' }, "aria-hidden": true });
|
|
133
219
|
}
|
|
134
220
|
const tierBadgeBase = {
|
|
135
221
|
display: 'inline-block', marginTop: 5, padding: '2px 7px',
|
|
136
222
|
borderRadius: 99, fontSize: 10, fontWeight: 700,
|
|
137
223
|
letterSpacing: '0.06em', textTransform: 'uppercase',
|
|
138
224
|
};
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
};
|
|
145
|
-
function TierBadge({ tier, language }) {
|
|
146
|
-
return (_jsx("span", { style: TIER_BADGE_STYLES[tier], children: t(language, `profile.tier.${tier}`) }));
|
|
225
|
+
function tierBadgeStyle(tier, theme) {
|
|
226
|
+
const pair = MENU_TIER_BADGE[theme][tier] ?? MENU_TIER_BADGE[theme].free;
|
|
227
|
+
return { ...tierBadgeBase, background: pair.bg, color: pair.fg };
|
|
228
|
+
}
|
|
229
|
+
function TierBadge({ tier, language, theme }) {
|
|
230
|
+
return (_jsx("span", { style: tierBadgeStyle(tier, theme), children: t(language, `profile.tier.${tier}`) }));
|
|
147
231
|
}
|
|
148
232
|
function IconUser() {
|
|
149
233
|
return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("path", { d: "M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2" }), _jsx("circle", { cx: "12", cy: "7", r: "4" })] }));
|
|
@@ -170,6 +254,12 @@ function IconChevron({ open }) {
|
|
|
170
254
|
transformOrigin: 'center',
|
|
171
255
|
}, children: _jsx("path", { d: "M2 4 L6 8 L10 4", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
172
256
|
}
|
|
257
|
+
// Points sideways, not down: the panel it opens sits BESIDE the menu, and a
|
|
258
|
+
// down-chevron here would promise the drawer-style expansion this deliberately
|
|
259
|
+
// isn't.
|
|
260
|
+
function IconChevronRight() {
|
|
261
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", "aria-hidden": true, style: { flexShrink: 0 }, children: _jsx("path", { d: "M4.5 2 L8.5 6 L4.5 10", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
262
|
+
}
|
|
173
263
|
function IconGlobe() {
|
|
174
264
|
return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12" }), _jsx("path", { d: "M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z" })] }));
|
|
175
265
|
}
|
|
@@ -179,20 +269,20 @@ function IconGlobe() {
|
|
|
179
269
|
// Trigger sits in the right-cluster alongside the SuiteSwitcher (38×38 with
|
|
180
270
|
// chrome) — match its dimensions and resting chrome so the row reads as a
|
|
181
271
|
// uniform set of buttons rather than a chip next to a floating avatar.
|
|
182
|
-
const triggerStyle = {
|
|
272
|
+
const triggerStyle = (theme) => ({
|
|
183
273
|
display: 'inline-flex',
|
|
184
274
|
alignItems: 'center',
|
|
185
275
|
justifyContent: 'center',
|
|
186
276
|
width: 38,
|
|
187
277
|
height: 38,
|
|
188
278
|
borderRadius: '50%',
|
|
189
|
-
border:
|
|
190
|
-
background:
|
|
279
|
+
border: `1px solid ${MENU[theme].triggerBorder}`,
|
|
280
|
+
background: MENU[theme].triggerBg,
|
|
191
281
|
cursor: 'pointer',
|
|
192
282
|
padding: 0,
|
|
193
283
|
overflow: 'hidden',
|
|
194
284
|
transition: 'all 150ms cubic-bezier(0.16,1,0.3,1)',
|
|
195
|
-
};
|
|
285
|
+
});
|
|
196
286
|
// ── Combined pill trigger (actionsLabel / actions set) ───────────────────────
|
|
197
287
|
// One control instead of two: the app's actions menu and the profile avatar
|
|
198
288
|
// share a single rounded button. Same 38px outer height as the circular
|
|
@@ -263,72 +353,128 @@ const avatarImgStyle = {
|
|
|
263
353
|
// it sits flush inside the triggerStyle border ring. The orange/peach tint
|
|
264
354
|
// is kept as a subtle brand cue — readable on both signed-in and anonymous
|
|
265
355
|
// states without competing with the avatar photo when it does exist.
|
|
266
|
-
const avatarFallbackStyle = {
|
|
356
|
+
const avatarFallbackStyle = (theme) => ({
|
|
267
357
|
width: 36,
|
|
268
358
|
height: 36,
|
|
269
359
|
borderRadius: '50%',
|
|
270
|
-
background:
|
|
271
|
-
color:
|
|
360
|
+
background: MENU[theme].accentBg,
|
|
361
|
+
color: MENU[theme].accentText,
|
|
272
362
|
fontSize: 12,
|
|
273
363
|
fontWeight: 700,
|
|
274
364
|
display: 'inline-flex',
|
|
275
365
|
alignItems: 'center',
|
|
276
366
|
justifyContent: 'center',
|
|
277
367
|
letterSpacing: '0.04em',
|
|
278
|
-
};
|
|
368
|
+
});
|
|
279
369
|
// A single settings glyph, not two bold initials: the 12px/letter-spaced
|
|
280
370
|
// treatment above is tuned for "JM" and leaves one character looking lost in a
|
|
281
371
|
// 38px circle. Bigger, and no letter-spacing (which shunts a lone glyph
|
|
282
372
|
// off-centre).
|
|
283
|
-
const avatarGlyphStyle = {
|
|
284
|
-
...avatarFallbackStyle,
|
|
373
|
+
const avatarGlyphStyle = (theme) => ({
|
|
374
|
+
...avatarFallbackStyle(theme),
|
|
285
375
|
fontSize: 19,
|
|
286
376
|
fontWeight: 400,
|
|
287
377
|
letterSpacing: 0,
|
|
288
378
|
// The gear sits fractionally high in its em box; nudge it back to centre.
|
|
289
379
|
lineHeight: 1,
|
|
290
380
|
paddingTop: 1,
|
|
291
|
-
};
|
|
381
|
+
});
|
|
292
382
|
// Visual styling only — positioning, stacking and the open/close transition
|
|
293
383
|
// are owned by <DropdownSurface />.
|
|
294
|
-
const menuSurfaceStyle = {
|
|
384
|
+
const menuSurfaceStyle = (theme) => ({
|
|
295
385
|
minWidth: 220,
|
|
296
|
-
background:
|
|
297
|
-
border:
|
|
386
|
+
background: MENU[theme].surface,
|
|
387
|
+
border: `1px solid ${MENU[theme].border}`,
|
|
298
388
|
borderRadius: 12,
|
|
299
|
-
boxShadow:
|
|
389
|
+
boxShadow: MENU[theme].shadow,
|
|
300
390
|
padding: '6px 0',
|
|
301
|
-
color:
|
|
302
|
-
};
|
|
303
|
-
const headerStyle = {
|
|
391
|
+
color: MENU[theme].text,
|
|
392
|
+
});
|
|
393
|
+
const headerStyle = (theme) => ({
|
|
304
394
|
padding: '8px 14px 10px',
|
|
305
|
-
borderBottom:
|
|
395
|
+
borderBottom: `1px solid ${MENU[theme].divider}`,
|
|
306
396
|
marginBottom: 4,
|
|
307
397
|
minWidth: 0,
|
|
398
|
+
});
|
|
399
|
+
// The same header, as a button. Everything below the border is a reset of what
|
|
400
|
+
// a <button> brings with it; the padding, rule and spacing are headerStyle's,
|
|
401
|
+
// kept identical so the two branches are the same block of pixels apart from
|
|
402
|
+
// the chevron and the hover fill.
|
|
403
|
+
const headerButtonStyle = (theme, active) => ({
|
|
404
|
+
...headerStyle(theme),
|
|
405
|
+
display: 'flex',
|
|
406
|
+
alignItems: 'center',
|
|
407
|
+
gap: 10,
|
|
408
|
+
width: '100%',
|
|
409
|
+
textAlign: 'left',
|
|
410
|
+
font: 'inherit',
|
|
411
|
+
color: MENU[theme].muted,
|
|
412
|
+
border: 0,
|
|
413
|
+
borderBottom: `1px solid ${MENU[theme].divider}`,
|
|
414
|
+
background: active ? MENU[theme].rowHover : 'transparent',
|
|
415
|
+
cursor: 'pointer',
|
|
416
|
+
transition: 'background 120ms',
|
|
417
|
+
});
|
|
418
|
+
// Written to the node like the other hover handlers. `active` closes over
|
|
419
|
+
// whether the flyout is open, so leaving the header while its panel is still
|
|
420
|
+
// up restores the OPEN fill rather than wiping it — otherwise the control that
|
|
421
|
+
// owns the visible panel stops looking like it does the moment you move the
|
|
422
|
+
// pointer into that panel.
|
|
423
|
+
const headerHoverIn = (theme) => (e) => { e.currentTarget.style.background = MENU[theme].rowHover; };
|
|
424
|
+
const headerHoverOut = (theme, active) => (e) => {
|
|
425
|
+
e.currentTarget.style.background = active ? MENU[theme].rowHover : 'transparent';
|
|
308
426
|
};
|
|
309
|
-
|
|
427
|
+
// The one line of copy that says the header does something — without it, a
|
|
428
|
+
// chevron beside a name is a guess.
|
|
429
|
+
//
|
|
430
|
+
// Deliberately NOT the 10px uppercase treatment of the tier badge sitting
|
|
431
|
+
// directly above it: two small-caps chips stacked read as two badges, and this
|
|
432
|
+
// is an action, not a label. Sentence case in the accent colour reads as the
|
|
433
|
+
// link it behaves like. (accentText on surface is 5.18:1 light / 8.67:1 dark —
|
|
434
|
+
// `node scripts/check-menu-contrast.mjs`.)
|
|
435
|
+
const limitsHintStyle = (theme) => ({
|
|
436
|
+
display: 'block',
|
|
437
|
+
marginTop: 6,
|
|
438
|
+
fontSize: 11,
|
|
439
|
+
fontWeight: 600,
|
|
440
|
+
color: MENU[theme].accentText,
|
|
441
|
+
});
|
|
442
|
+
// Wider than the 220px profile menu it hangs off: this panel carries app names
|
|
443
|
+
// against status chips on the same line, and 220 puts "Universal Signatures"
|
|
444
|
+
// into an ellipsis next to "AVAILABLE".
|
|
445
|
+
const limitsSurfaceStyle = (theme) => ({
|
|
446
|
+
width: 286,
|
|
447
|
+
background: MENU[theme].surface,
|
|
448
|
+
border: `1px solid ${MENU[theme].border}`,
|
|
449
|
+
borderRadius: 12,
|
|
450
|
+
boxShadow: MENU[theme].shadow,
|
|
451
|
+
color: MENU[theme].text,
|
|
452
|
+
});
|
|
453
|
+
const nameStyle = (theme) => ({
|
|
454
|
+
display: 'block',
|
|
310
455
|
fontSize: 13,
|
|
311
456
|
fontWeight: 600,
|
|
312
|
-
color:
|
|
457
|
+
color: MENU[theme].text,
|
|
313
458
|
overflow: 'hidden',
|
|
314
459
|
textOverflow: 'ellipsis',
|
|
315
460
|
whiteSpace: 'nowrap',
|
|
316
|
-
};
|
|
317
|
-
const emailStyle = {
|
|
461
|
+
});
|
|
462
|
+
const emailStyle = (theme) => ({
|
|
463
|
+
display: 'block',
|
|
318
464
|
fontSize: 11,
|
|
319
|
-
color:
|
|
465
|
+
color: MENU[theme].muted,
|
|
320
466
|
marginTop: 2,
|
|
321
467
|
overflow: 'hidden',
|
|
322
468
|
textOverflow: 'ellipsis',
|
|
323
469
|
whiteSpace: 'nowrap',
|
|
324
|
-
};
|
|
325
|
-
const itemStyle = {
|
|
470
|
+
});
|
|
471
|
+
const itemStyle = (theme) => ({
|
|
326
472
|
display: 'flex',
|
|
327
473
|
alignItems: 'center',
|
|
328
474
|
gap: 10,
|
|
329
475
|
padding: '8px 14px',
|
|
330
476
|
fontSize: 13,
|
|
331
|
-
color:
|
|
477
|
+
color: MENU[theme].body,
|
|
332
478
|
background: 'transparent',
|
|
333
479
|
border: 0,
|
|
334
480
|
cursor: 'pointer',
|
|
@@ -337,39 +483,45 @@ const itemStyle = {
|
|
|
337
483
|
textDecoration: 'none',
|
|
338
484
|
fontFamily: 'inherit',
|
|
339
485
|
transition: 'background 120ms, color 120ms',
|
|
340
|
-
};
|
|
341
|
-
const dangerItemStyle = {
|
|
342
|
-
...itemStyle,
|
|
343
|
-
color:
|
|
344
|
-
};
|
|
486
|
+
});
|
|
487
|
+
const dangerItemStyle = (theme) => ({
|
|
488
|
+
...itemStyle(theme),
|
|
489
|
+
color: MENU[theme].danger,
|
|
490
|
+
});
|
|
345
491
|
// Language row: same padding rhythm as itemStyle but holds a <select> on the
|
|
346
492
|
// right rather than being a clickable row itself.
|
|
347
|
-
const languageRowStyle = {
|
|
493
|
+
const languageRowStyle = (theme) => ({
|
|
348
494
|
display: 'flex',
|
|
349
495
|
alignItems: 'center',
|
|
350
496
|
gap: 10,
|
|
351
497
|
padding: '8px 14px',
|
|
352
498
|
fontSize: 13,
|
|
353
|
-
color:
|
|
499
|
+
color: MENU[theme].body,
|
|
354
500
|
fontFamily: 'inherit',
|
|
355
|
-
};
|
|
356
|
-
const languageSelectStyle = {
|
|
501
|
+
});
|
|
502
|
+
const languageSelectStyle = (theme) => ({
|
|
357
503
|
fontSize: 12,
|
|
358
504
|
fontFamily: 'inherit',
|
|
359
505
|
padding: '3px 6px',
|
|
360
|
-
border:
|
|
506
|
+
border: `1px solid ${MENU[theme].inputBorder}`,
|
|
361
507
|
borderRadius: 6,
|
|
362
|
-
background:
|
|
363
|
-
color:
|
|
508
|
+
background: MENU[theme].inputBg,
|
|
509
|
+
color: MENU[theme].inputText,
|
|
510
|
+
// ⚠️ Load-bearing on dark, and only there. A <select> paints its own dropdown
|
|
511
|
+
// list from the UA stylesheet, not from this element's colours, so a dark
|
|
512
|
+
// control with a light popup is the default outcome unless the element
|
|
513
|
+
// declares which scheme it is in. Same trick, and the same reason, as the
|
|
514
|
+
// `color-scheme: dark` on Universal BlackBook's <html>.
|
|
515
|
+
colorScheme: theme,
|
|
364
516
|
cursor: 'pointer',
|
|
365
517
|
outline: 'none',
|
|
366
|
-
};
|
|
518
|
+
});
|
|
367
519
|
// "Sign in" is the primary call-to-action for guest sessions, so it gets
|
|
368
520
|
// the brand orange fill rather than the neutral hover-row treatment used for
|
|
369
521
|
// "View profile". Sits inset 6px on each side so it reads as a button card
|
|
370
522
|
// inside the dropdown rather than an edge-to-edge menu row.
|
|
371
|
-
const primaryItemStyle = {
|
|
372
|
-
...itemStyle,
|
|
523
|
+
const primaryItemStyle = (theme) => ({
|
|
524
|
+
...itemStyle(theme),
|
|
373
525
|
background: BRAND.orange,
|
|
374
526
|
// Ink rather than white: white on this orange is 2.34:1. See BRAND.onOrange.
|
|
375
527
|
color: BRAND.onOrange,
|
|
@@ -379,5 +531,5 @@ const primaryItemStyle = {
|
|
|
379
531
|
width: 'calc(100% - 12px)',
|
|
380
532
|
padding: '9px 12px',
|
|
381
533
|
justifyContent: 'flex-start',
|
|
382
|
-
};
|
|
534
|
+
});
|
|
383
535
|
//# sourceMappingURL=UserProfile.js.map
|
package/dist/UserProfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../src/UserProfile.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../src/UserProfile.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { SubTier, Subscription } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* `available` — untouched, or no row yet.
|
|
4
|
+
* `held` — spent on something refundable that is still in flight (a stored
|
|
5
|
+
* upload, a signature request, a live poll). Deleting that returns the token.
|
|
6
|
+
* `spent` — gone for good. Only Universal Webinar does this, deliberately:
|
|
7
|
+
* live hosting has already cost real infrastructure by the time it ends.
|
|
8
|
+
*/
|
|
9
|
+
export type AppTokenStatus = 'available' | 'held' | 'spent';
|
|
10
|
+
export interface AppToken {
|
|
11
|
+
/** SDK product code — 'pdf', 'qr', 'webinar', … */
|
|
12
|
+
app: string;
|
|
13
|
+
status: AppTokenStatus;
|
|
14
|
+
}
|
|
15
|
+
export interface AdminContact {
|
|
16
|
+
/** Display name of an owner/admin of the org, when one has set a name. */
|
|
17
|
+
name: string | null;
|
|
18
|
+
/** The org's billing email. NOT the admin's own address — `profiles` has no
|
|
19
|
+
* email column, and inventing one from `auth.users` would need service-role
|
|
20
|
+
* access the browser will never have. */
|
|
21
|
+
email: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface AccountLimits {
|
|
24
|
+
/** 'free' when the org has no subscription row at all, which is the common
|
|
25
|
+
* case for someone who just signed in to a free app. */
|
|
26
|
+
tier: SubTier;
|
|
27
|
+
status: Subscription['status'] | null;
|
|
28
|
+
/** ISO timestamp this paid period ends. Null on free AND on Lifetime. */
|
|
29
|
+
periodEnd: string | null;
|
|
30
|
+
/** Set only on the Lifetime plan (tier 'enterprise' + no periodEnd). */
|
|
31
|
+
lifetimeAt: string | null;
|
|
32
|
+
/** The PURCHASED wallet — top-ups and admin grants. Separate from, and spent
|
|
33
|
+
* after, the per-app free tokens. */
|
|
34
|
+
credits: number;
|
|
35
|
+
/** Only the rows that exist. Any app not listed still has its free token. */
|
|
36
|
+
tokens: AppToken[];
|
|
37
|
+
/** This app's own free token, resolved against the absence rule above. */
|
|
38
|
+
thisApp: AppToken;
|
|
39
|
+
/** Who to ask about the plan, when the viewer is not an admin themselves. */
|
|
40
|
+
admin: AdminContact | null;
|
|
41
|
+
/** The viewer is an owner/admin of the org, so the limits ARE theirs to
|
|
42
|
+
* change and there is nobody to be told to ask. */
|
|
43
|
+
isAdmin: boolean;
|
|
44
|
+
loading: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Everything the plan & limits flyout shows, for the active org.
|
|
48
|
+
*
|
|
49
|
+
* Mount it lazily — the component that calls it should only be rendered once
|
|
50
|
+
* the user has actually asked to see their limits. Two round-trips on every
|
|
51
|
+
* navbar render, in eighteen apps, to populate a panel most sessions never
|
|
52
|
+
* open, is not a trade worth making.
|
|
53
|
+
*/
|
|
54
|
+
export declare function useAccountLimits(): AccountLimits;
|
|
55
|
+
//# sourceMappingURL=entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAA;AAE3D,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB;;6CAEyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B;4DACwD;IACxD,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IACrC,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;yCACqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,0EAA0E;IAC1E,OAAO,EAAE,QAAQ,CAAA;IACjB,6EAA6E;IAC7E,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1B;uDACmD;IACnD,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB;AAWD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAmGhD"}
|