@unisim/sdk 0.106.0 → 0.107.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/README.md
CHANGED
|
@@ -75,6 +75,14 @@ function Header() {
|
|
|
75
75
|
- `useHasAccess(productCode)` — feature/product entitlement check
|
|
76
76
|
- `useHasFeature(productCode, feature)`
|
|
77
77
|
- `useSeat(productCode)`
|
|
78
|
+
- `useAccountLimits()` — the whole entitlement picture in one object: tier, term,
|
|
79
|
+
the purchased balance, the per-app free-token wall (`app_free_tokens`) and an
|
|
80
|
+
admin to ask. A missing token row means **available**, not "no allowance" —
|
|
81
|
+
rows are created lazily, so this hook is the one place that rule lives.
|
|
82
|
+
- `<AccountLimits />` — the panel that renders it. Mounted for you by
|
|
83
|
+
`<UserProfile />` when its account header is clicked; pass
|
|
84
|
+
`showLimits={false}` to the navbar's profile if a product shows entitlements
|
|
85
|
+
its own way.
|
|
78
86
|
|
|
79
87
|
### Org admin
|
|
80
88
|
- `useOrgMembers()` / `useOrgSeats()` / `useAuditLog()`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type MenuTheme } from './menuTheme.js';
|
|
2
|
+
export interface AccountLimitsProps {
|
|
3
|
+
language: string;
|
|
4
|
+
theme: MenuTheme;
|
|
5
|
+
}
|
|
6
|
+
export declare function AccountLimits({ language, theme }: AccountLimitsProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=AccountLimits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountLimits.d.ts","sourceRoot":"","sources":["../src/AccountLimits.tsx"],"names":[],"mappings":"AA0BA,OAAO,EAA6D,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;CACjB;AA8BD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CAsHpE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { t } from './i18n.js';
|
|
4
|
+
import { useAccountLimits } from './entitlements.js';
|
|
5
|
+
import { DEFAULT_UNIVERSAL_APPS_PRODUCTS } from './SuiteSwitcher.js';
|
|
6
|
+
import { MENU, MENU_TIER_BADGE, MENU_TOKEN_BADGE } from './menuTheme.js';
|
|
7
|
+
/**
|
|
8
|
+
* Product code → display name, taken from the switcher's catalogue rather than
|
|
9
|
+
* a second list here. An app the catalogue doesn't know falls back to its raw
|
|
10
|
+
* code, which is ugly and therefore gets noticed — the failure mode that
|
|
11
|
+
* matters is a silently blank row, not an ugly one.
|
|
12
|
+
*/
|
|
13
|
+
function appName(code) {
|
|
14
|
+
return DEFAULT_UNIVERSAL_APPS_PRODUCTS.find((p) => p.id === code)?.name ?? code;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `current_period_end` and `lifetime_at` are timestamptz — real instants — so
|
|
18
|
+
* rendering them in the viewer's zone is correct here. (This is NOT the
|
|
19
|
+
* date-only case where local formatting shifts the day; there is no date-only
|
|
20
|
+
* value in this panel.)
|
|
21
|
+
*/
|
|
22
|
+
function formatDate(iso, language) {
|
|
23
|
+
const d = new Date(iso);
|
|
24
|
+
if (Number.isNaN(d.getTime()))
|
|
25
|
+
return iso;
|
|
26
|
+
try {
|
|
27
|
+
return d.toLocaleDateString(language, { day: 'numeric', month: 'long', year: 'numeric' });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// An unsupported locale tag throws rather than falling back. Ask for the
|
|
31
|
+
// same format in English instead of dropping the date entirely.
|
|
32
|
+
return d.toLocaleDateString('en', { day: 'numeric', month: 'long', year: 'numeric' });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function AccountLimits({ language, theme }) {
|
|
36
|
+
const limits = useAccountLimits();
|
|
37
|
+
const c = MENU[theme];
|
|
38
|
+
// Apps other than this one that are holding or have spent their token — the
|
|
39
|
+
// "…and it's currently used on PDF and QR" half of the question. Apps sitting
|
|
40
|
+
// at `available` are deliberately not listed: seventeen rows saying "nothing
|
|
41
|
+
// happening here" is not an answer, it's a wall.
|
|
42
|
+
const elsewhere = limits.tokens
|
|
43
|
+
.filter((row) => row.app !== limits.thisApp.app && row.status !== 'available')
|
|
44
|
+
.sort((a, b) => appName(a.app).localeCompare(appName(b.app)));
|
|
45
|
+
const isFree = limits.tier === 'free';
|
|
46
|
+
// Lifetime is tier 'enterprise' with no period end — see the note on
|
|
47
|
+
// Subscription.lifetime_at. Checking the tier alone would print "expires" on
|
|
48
|
+
// a plan that never does.
|
|
49
|
+
const isLifetime = !!limits.lifetimeAt && !limits.periodEnd;
|
|
50
|
+
// 'canceled' still has a period end, and until that date the plan works. The
|
|
51
|
+
// honest word for that date is "ends", not "renews".
|
|
52
|
+
const endsRatherThanRenews = limits.status === 'canceled' || limits.status === 'past_due';
|
|
53
|
+
return (_jsxs("div", { style: { padding: '12px 14px 10px' }, children: [_jsx("div", { style: eyebrowStyle(c), children: t(language, 'limits.title') }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, marginTop: 6 }, children: [_jsx("span", { style: planNameStyle(c), children: isFree
|
|
54
|
+
? t(language, 'limits.free_tier')
|
|
55
|
+
: t(language, `profile.tier.${limits.tier}`) }), isLifetime && (_jsx("span", { style: tierChipStyle(limits.tier, theme), children: t(language, 'limits.lifetime') }))] }), _jsx("p", { style: blurbStyle(c), children: t(language, 'limits.one_token_per_app') }), limits.loading ? (_jsx("div", { style: { ...blurbStyle(c), marginBottom: 0 }, children: t(language, 'limits.loading') })) : (_jsxs(_Fragment, { children: [_jsxs(Section, { label: t(language, 'limits.tokens'), theme: theme, children: [_jsx(TokenRow, { name: appName(limits.thisApp.app), note: t(language, 'limits.this_app'), status: limits.thisApp.status, language: language, theme: theme }), elsewhere.map((row) => (_jsx(TokenRow, { name: appName(row.app), status: row.status, language: language, theme: theme }, row.app)))] }), limits.credits > 0 && (_jsx(Section, { label: t(language, 'limits.purchased'), theme: theme, children: _jsxs("div", { style: rowStyle, children: [_jsx("span", { style: rowLabelStyle(c), children: t(language, 'limits.purchased_balance') }), _jsx("span", { style: { ...rowLabelStyle(c), fontWeight: 700, color: c.text }, children: limits.credits })] }) })), limits.periodEnd && (_jsx(Section, { label: t(language, 'limits.term'), theme: theme, children: _jsxs("div", { style: rowStyle, children: [_jsx("span", { style: rowLabelStyle(c), children: endsRatherThanRenews
|
|
56
|
+
? t(language, 'limits.ends')
|
|
57
|
+
: t(language, 'limits.renews') }), _jsx("span", { style: { ...rowLabelStyle(c), color: c.text, fontWeight: 600 }, children: formatDate(limits.periodEnd, language) })] }) })), !limits.isAdmin && limits.admin && (_jsxs(Section, { label: t(language, 'limits.admin_contact'), theme: theme, children: [limits.admin.name && (_jsx("div", { style: { ...rowLabelStyle(c), color: c.text, fontWeight: 600 }, children: limits.admin.name })), limits.admin.email && (_jsx("a", { href: `mailto:${limits.admin.email}`, style: contactLinkStyle(c), children: limits.admin.email })), !limits.admin.name && !limits.admin.email && (_jsx("div", { style: rowLabelStyle(c), children: t(language, 'limits.admin_unknown') }))] }))] }))] }));
|
|
58
|
+
}
|
|
59
|
+
// ──────────────────────────────────────────────────────────────────────────────
|
|
60
|
+
// Pieces
|
|
61
|
+
// ──────────────────────────────────────────────────────────────────────────────
|
|
62
|
+
function Section({ label, theme, children, }) {
|
|
63
|
+
return (_jsxs("div", { style: { marginTop: 12, borderTop: `1px solid ${MENU[theme].divider}`, paddingTop: 9 }, children: [_jsx("div", { style: eyebrowStyle(MENU[theme]), children: label }), _jsx("div", { style: { marginTop: 6 }, children: children })] }));
|
|
64
|
+
}
|
|
65
|
+
function TokenRow({ name, note, status, language, theme, }) {
|
|
66
|
+
const c = MENU[theme];
|
|
67
|
+
return (_jsxs("div", { style: rowStyle, children: [_jsxs("span", { style: { ...rowLabelStyle(c), color: c.text, minWidth: 0 }, children: [_jsx("span", { style: ellipsis, children: name }), note && _jsxs("span", { style: { color: c.muted, fontWeight: 400 }, children: [" \u00B7 ", note] })] }), _jsx("span", { style: tokenChipStyle(status, theme), children: t(language, `limits.token.${status}`) })] }));
|
|
68
|
+
}
|
|
69
|
+
// ──────────────────────────────────────────────────────────────────────────────
|
|
70
|
+
// Styles
|
|
71
|
+
// ──────────────────────────────────────────────────────────────────────────────
|
|
72
|
+
const ellipsis = {
|
|
73
|
+
overflow: 'hidden',
|
|
74
|
+
textOverflow: 'ellipsis',
|
|
75
|
+
whiteSpace: 'nowrap',
|
|
76
|
+
};
|
|
77
|
+
const eyebrowStyle = (c) => ({
|
|
78
|
+
fontSize: 10,
|
|
79
|
+
fontWeight: 700,
|
|
80
|
+
letterSpacing: '0.07em',
|
|
81
|
+
textTransform: 'uppercase',
|
|
82
|
+
// `muted`, not `faint`: `faint` is the palette's weakest step and already
|
|
83
|
+
// fails AA in the light theme (see menuTheme.ts). Nothing new gets built on
|
|
84
|
+
// top of a known failure.
|
|
85
|
+
color: c.muted,
|
|
86
|
+
});
|
|
87
|
+
const planNameStyle = (c) => ({
|
|
88
|
+
fontSize: 15,
|
|
89
|
+
fontWeight: 700,
|
|
90
|
+
color: c.text,
|
|
91
|
+
letterSpacing: '-0.01em',
|
|
92
|
+
});
|
|
93
|
+
const blurbStyle = (c) => ({
|
|
94
|
+
margin: '6px 0 0',
|
|
95
|
+
fontSize: 11.5,
|
|
96
|
+
lineHeight: 1.45,
|
|
97
|
+
color: c.muted,
|
|
98
|
+
});
|
|
99
|
+
const rowStyle = {
|
|
100
|
+
display: 'flex',
|
|
101
|
+
alignItems: 'center',
|
|
102
|
+
justifyContent: 'space-between',
|
|
103
|
+
gap: 10,
|
|
104
|
+
padding: '3px 0',
|
|
105
|
+
};
|
|
106
|
+
const rowLabelStyle = (c) => ({
|
|
107
|
+
fontSize: 12,
|
|
108
|
+
fontWeight: 500,
|
|
109
|
+
color: c.body,
|
|
110
|
+
display: 'flex',
|
|
111
|
+
alignItems: 'baseline',
|
|
112
|
+
minWidth: 0,
|
|
113
|
+
});
|
|
114
|
+
const chipBase = {
|
|
115
|
+
flexShrink: 0,
|
|
116
|
+
display: 'inline-block',
|
|
117
|
+
padding: '2px 7px',
|
|
118
|
+
borderRadius: 99,
|
|
119
|
+
fontSize: 10,
|
|
120
|
+
fontWeight: 700,
|
|
121
|
+
letterSpacing: '0.05em',
|
|
122
|
+
textTransform: 'uppercase',
|
|
123
|
+
whiteSpace: 'nowrap',
|
|
124
|
+
};
|
|
125
|
+
function tokenChipStyle(status, theme) {
|
|
126
|
+
// The `?? spent` is for a status this build has never heard of — the check
|
|
127
|
+
// constraint has three values today, and a fourth added in Postgres would
|
|
128
|
+
// otherwise take the whole profile menu down with a read of `undefined.bg`.
|
|
129
|
+
// The label beside it falls back to the raw key, so the unknown stays visible.
|
|
130
|
+
const pair = MENU_TOKEN_BADGE[theme][status] ?? MENU_TOKEN_BADGE[theme].spent;
|
|
131
|
+
return { ...chipBase, background: pair.bg, color: pair.fg };
|
|
132
|
+
}
|
|
133
|
+
function tierChipStyle(tier, theme) {
|
|
134
|
+
const pair = MENU_TIER_BADGE[theme][tier] ?? MENU_TIER_BADGE[theme].free;
|
|
135
|
+
return { ...chipBase, background: pair.bg, color: pair.fg };
|
|
136
|
+
}
|
|
137
|
+
const contactLinkStyle = (c) => ({
|
|
138
|
+
display: 'inline-block',
|
|
139
|
+
marginTop: 2,
|
|
140
|
+
fontSize: 12,
|
|
141
|
+
color: c.accentText,
|
|
142
|
+
textDecoration: 'none',
|
|
143
|
+
wordBreak: 'break-all',
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=AccountLimits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountLimits.js","sourceRoot":"","sources":["../src/AccountLimits.tsx"],"names":[],"mappings":"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"}
|
package/dist/ChangelogMenu.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CSSProperties } from 'react';
|
|
2
|
+
import { type MenuTheme } from './menuTheme.js';
|
|
2
3
|
export interface ChangelogMenuProps {
|
|
3
4
|
/** Trigger icon URL — defaults to the inline UNI·SIM monogram. */
|
|
4
5
|
iconSrc?: string;
|
|
@@ -10,6 +11,15 @@ export interface ChangelogMenuProps {
|
|
|
10
11
|
ariaLabel?: string;
|
|
11
12
|
className?: string;
|
|
12
13
|
style?: CSSProperties;
|
|
14
|
+
/**
|
|
15
|
+
* Colourway for the dropdown panel. `'light'` (default) is what every
|
|
16
|
+
* consumer rendered before 0.107.0; `UniversalAppsNavBar` passes its own
|
|
17
|
+
* `theme` through.
|
|
18
|
+
*
|
|
19
|
+
* The TRIGGER is unaffected and needs no theme — it is a bare transparent
|
|
20
|
+
* button around the UNI·SIM mark, which carries its own orange tile.
|
|
21
|
+
*/
|
|
22
|
+
theme?: MenuTheme;
|
|
13
23
|
}
|
|
14
24
|
/**
|
|
15
25
|
* Dropdown on the UNI·SIM icon that surfaces the suite-wide changelog
|
|
@@ -21,5 +31,5 @@ export interface ChangelogMenuProps {
|
|
|
21
31
|
* default and caches for 5 minutes). When the feed is empty or fails, the
|
|
22
32
|
* trigger still works — the menu just shows "no entries yet".
|
|
23
33
|
*/
|
|
24
|
-
export declare function ChangelogMenu({ iconSrc, limit, productFilter, ariaLabel, className, style, }: ChangelogMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function ChangelogMenu({ iconSrc, limit, productFilter, ariaLabel, className, style, theme, }: ChangelogMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
25
35
|
//# sourceMappingURL=ChangelogMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangelogMenu.d.ts","sourceRoot":"","sources":["../src/ChangelogMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ChangelogMenu.d.ts","sourceRoot":"","sources":["../src/ChangelogMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAA;AAOd,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAMvE,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAeD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAA8B,EAC9B,KAAS,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAe,GAChB,EAAE,kBAAkB,2CAyFpB"}
|
package/dist/ChangelogMenu.js
CHANGED
|
@@ -6,6 +6,7 @@ import { t } from './i18n.js';
|
|
|
6
6
|
import { useLanguage } from './provider.js';
|
|
7
7
|
import { DropdownSurface } from './DropdownSurface.js';
|
|
8
8
|
import { useCanHover } from './hover.js';
|
|
9
|
+
import { MENU, MENU_ENTRY_BADGE } from './menuTheme.js';
|
|
9
10
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
10
11
|
// Component
|
|
11
12
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
@@ -24,7 +25,7 @@ const DEFAULT_TRIGGER_ICON = 'data:image/svg+xml;utf8,' +
|
|
|
24
25
|
* default and caches for 5 minutes). When the feed is empty or fails, the
|
|
25
26
|
* trigger still works — the menu just shows "no entries yet".
|
|
26
27
|
*/
|
|
27
|
-
export function ChangelogMenu({ iconSrc = DEFAULT_TRIGGER_ICON, limit = 5, productFilter, ariaLabel, className, style, }) {
|
|
28
|
+
export function ChangelogMenu({ iconSrc = DEFAULT_TRIGGER_ICON, limit = 5, productFilter, ariaLabel, className, style, theme = 'light', }) {
|
|
28
29
|
const { language } = useLanguage();
|
|
29
30
|
const resolvedAriaLabel = ariaLabel ?? t(language, 'changelog.label');
|
|
30
31
|
const [open, setOpen] = useState(false);
|
|
@@ -47,13 +48,13 @@ export function ChangelogMenu({ iconSrc = DEFAULT_TRIGGER_ICON, limit = 5, produ
|
|
|
47
48
|
const canHover = useCanHover();
|
|
48
49
|
const hoverOpen = canHover ? openNow : undefined;
|
|
49
50
|
const hoverClose = canHover ? closeSoon : undefined;
|
|
50
|
-
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": resolvedAriaLabel, "aria-expanded": open, "aria-haspopup": "true", onClick: () => setOpen((v) => !v), onFocus: hoverOpen, style: triggerStyle, children: _jsx("img", { src: iconSrc, alt: "", "aria-hidden": true, style: { width: 28, height: 28, display: 'block' } }) }), _jsxs(DropdownSurface, { open: open, anchorRef: wrapRef, align: "right", arrow: true, role: "menu", surfaceStyle: menuSurfaceStyle, onMouseEnter: hoverOpen, onMouseLeave: hoverClose, onRequestClose: () => setOpen(false), children: [_jsxs("div", { style: headerStyle, children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', lineHeight: 1.1, minWidth: 0 }, children: [_jsx("span", { style: eyebrowStyle, children: t(language, 'suite.portal_eyebrow') }), _jsx("span", { style: titleStyle, children: t(language, 'changelog.title') })] }), _jsx("span", { style: versionChipStyle, children: currentVersion ?? '…' })] }), _jsx("div", { style: bodyStyle, children: loading ? (_jsx("p", { style: emptyStyle, children: t(language, 'changelog.loading') })) : releases.length === 0 ? (_jsx("p", { style: emptyStyle, children: t(language, 'changelog.no_entries') })) : (releases.map((r) => _jsx(ReleaseBlock, { release: r, language: language }, r.version))) }), _jsx("div", { style: footerStyle, children: _jsxs("a", { href: "https://changelog.unisim.co.uk/changelog.json", target: "_blank", rel: "noreferrer", style: footerLinkStyle, children: [t(language, 'changelog.full_changelog'), " \u2197"] }) })] })] }));
|
|
51
|
+
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": resolvedAriaLabel, "aria-expanded": open, "aria-haspopup": "true", onClick: () => setOpen((v) => !v), onFocus: hoverOpen, style: triggerStyle, children: _jsx("img", { src: iconSrc, alt: "", "aria-hidden": true, style: { width: 28, height: 28, display: 'block' } }) }), _jsxs(DropdownSurface, { open: open, anchorRef: wrapRef, align: "right", arrow: true, role: "menu", surfaceStyle: menuSurfaceStyle(theme), onMouseEnter: hoverOpen, onMouseLeave: hoverClose, onRequestClose: () => setOpen(false), children: [_jsxs("div", { style: headerStyle(theme), children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', lineHeight: 1.1, minWidth: 0 }, children: [_jsx("span", { style: eyebrowStyle(theme), children: t(language, 'suite.portal_eyebrow') }), _jsx("span", { style: titleStyle(theme), children: t(language, 'changelog.title') })] }), _jsx("span", { style: versionChipStyle(theme), children: currentVersion ?? '…' })] }), _jsx("div", { style: bodyStyle, children: loading ? (_jsx("p", { style: emptyStyle(theme), children: t(language, 'changelog.loading') })) : releases.length === 0 ? (_jsx("p", { style: emptyStyle(theme), children: t(language, 'changelog.no_entries') })) : (releases.map((r) => _jsx(ReleaseBlock, { release: r, language: language, theme: theme }, r.version))) }), _jsx("div", { style: footerStyle(theme), children: _jsxs("a", { href: "https://changelog.unisim.co.uk/changelog.json", target: "_blank", rel: "noreferrer", style: footerLinkStyle(theme), children: [t(language, 'changelog.full_changelog'), " \u2197"] }) })] })] }));
|
|
51
52
|
}
|
|
52
53
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
53
54
|
// Subcomponents
|
|
54
55
|
// ──────────────────────────────────────────────────────────────────────────────
|
|
55
|
-
function ReleaseBlock({ release, language }) {
|
|
56
|
-
return (_jsxs("div", { style: releaseStyle, children: [_jsxs("div", { style: releaseHeaderStyle, children: [_jsx("span", { style: releaseVersionStyle, children: release.version }), _jsx("span", { style: releaseDateStyle, children: formatDate(release.date, language) })] }), _jsx("ul", { style: entryListStyle, children: release.entries.map((e, i) => (_jsxs("li", { style: entryItemStyle, children: [_jsx(TypeBadge, { type: e.type }), _jsxs("span", { style: entryTextStyle, children: [e.summary, _jsxs("span", { style: productLabelStyle, children: [" \u2014 ", _jsx(ProductTag, { product: e.product })] })] })] }, i))) })] }));
|
|
56
|
+
function ReleaseBlock({ release, language, theme }) {
|
|
57
|
+
return (_jsxs("div", { style: releaseStyle(theme), children: [_jsxs("div", { style: releaseHeaderStyle, children: [_jsx("span", { style: releaseVersionStyle(theme), children: release.version }), _jsx("span", { style: releaseDateStyle(theme), children: formatDate(release.date, language) })] }), _jsx("ul", { style: entryListStyle, children: release.entries.map((e, i) => (_jsxs("li", { style: entryItemStyle, children: [_jsx(TypeBadge, { type: e.type, theme: theme }), _jsxs("span", { style: entryTextStyle(theme), children: [e.summary, _jsxs("span", { style: productLabelStyle(theme), children: [" \u2014 ", _jsx(ProductTag, { product: e.product, theme: theme })] })] })] }, i))) })] }));
|
|
57
58
|
}
|
|
58
59
|
// Maps the product code stored on each changelog entry to the short label
|
|
59
60
|
// shown after the summary text — "e.g. bugfix text — Ergo". Kept short to
|
|
@@ -73,6 +74,19 @@ function productDisplayName(product) {
|
|
|
73
74
|
case 'video': return 'Video';
|
|
74
75
|
case 'palspayin': return 'PalsPayIn';
|
|
75
76
|
case 'blackbook': return 'BlackBook';
|
|
77
|
+
// ⚠️ These nine were missing, and the `default` below hands back the raw
|
|
78
|
+
// enum code — so an entry tagged `risk_assess` read "risk_assess" in the
|
|
79
|
+
// menu, underscore and all, and `workplace_assess` was the only _assess
|
|
80
|
+
// code that didn't. Anything added to ChangelogProduct needs a case here.
|
|
81
|
+
case 'polling': return 'Polling';
|
|
82
|
+
case 'converter': return 'Converter';
|
|
83
|
+
case 'compress': return 'Compress';
|
|
84
|
+
case 'charts': return 'Charts';
|
|
85
|
+
case 'usb': return 'USB';
|
|
86
|
+
case 'screens': return 'Screens';
|
|
87
|
+
case 'ai': return 'AI';
|
|
88
|
+
case 'haptics': return 'Haptics';
|
|
89
|
+
case 'risk_assess': return 'Risk';
|
|
76
90
|
case 'cyber_assess': return 'Cyber';
|
|
77
91
|
case 'ergo_assess': return 'Ergo';
|
|
78
92
|
case 'workplace_assess': return 'Workplace';
|
|
@@ -87,8 +101,8 @@ function productDisplayName(product) {
|
|
|
87
101
|
// straight to it. The open-source Universal Apps sit under
|
|
88
102
|
// opensource.unisim.co.uk/<slug>; the Assess products serve through the
|
|
89
103
|
// assess.unisim.co.uk router. Codes with no public product page — `suite`
|
|
90
|
-
// (suite-wide entries)
|
|
91
|
-
//
|
|
104
|
+
// (suite-wide entries) and `central` (the admin hub) — are intentionally
|
|
105
|
+
// absent and render as plain text.
|
|
92
106
|
const PRODUCT_URLS = {
|
|
93
107
|
pdf: 'https://opensource.unisim.co.uk/pdf',
|
|
94
108
|
qr: 'https://opensource.unisim.co.uk/qr',
|
|
@@ -108,33 +122,41 @@ const PRODUCT_URLS = {
|
|
|
108
122
|
fire_assess: 'https://assess.unisim.co.uk/fire',
|
|
109
123
|
coshh_assess: 'https://assess.unisim.co.uk/coshh',
|
|
110
124
|
risk_assess: 'https://assess.unisim.co.uk/risk',
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
125
|
+
// Added 2026-08-24 after checking each one actually resolves — `blackbook`
|
|
126
|
+
// was marked "(dropped)" above and has been live since earlier that day, and
|
|
127
|
+
// the other four were held back waiting for their Pages projects, which
|
|
128
|
+
// exist now.
|
|
129
|
+
blackbook: 'https://opensource.unisim.co.uk/blackbook',
|
|
130
|
+
diy: 'https://opensource.unisim.co.uk/diy',
|
|
131
|
+
beam: 'https://opensource.unisim.co.uk/beam',
|
|
132
|
+
video: 'https://opensource.unisim.co.uk/video',
|
|
133
|
+
compress: 'https://opensource.unisim.co.uk/compress',
|
|
134
|
+
// `charts` and `ai` are STILL absent, and were re-checked at the same time:
|
|
135
|
+
// both 404 on the portal today. A tag linking to a 404 is worse than one
|
|
136
|
+
// that doesn't link — curl the URL before adding a code here.
|
|
115
137
|
};
|
|
116
138
|
// Renders the product tag shown after each entry ("… — Images"). When the
|
|
117
139
|
// product has a known public page the name becomes a link to it; suite-wide
|
|
118
140
|
// and page-less codes stay plain text. stopPropagation keeps a click from
|
|
119
141
|
// toggling the hover-menu; the link opens in a new tab so the current app
|
|
120
142
|
// isn't navigated away from.
|
|
121
|
-
function ProductTag({ product }) {
|
|
143
|
+
function ProductTag({ product, theme }) {
|
|
122
144
|
const name = productDisplayName(product);
|
|
123
145
|
const href = PRODUCT_URLS[product];
|
|
124
146
|
if (!href)
|
|
125
147
|
return _jsx(_Fragment, { children: name });
|
|
126
|
-
return (_jsx("a", { href: href, target: "_blank", rel: "noreferrer", style: productLinkStyle, onClick: (e) => e.stopPropagation(), children: name }));
|
|
148
|
+
return (_jsx("a", { href: href, target: "_blank", rel: "noreferrer", style: productLinkStyle(theme), onClick: (e) => e.stopPropagation(), children: name }));
|
|
127
149
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const
|
|
150
|
+
// The three-letter tag before each entry. Colours live in menuTheme.ts; the
|
|
151
|
+
// LABELS stay here because they are copy, not palette — and they are
|
|
152
|
+
// deliberately not translated (they are read as tags, and three letters is the
|
|
153
|
+
// whole design).
|
|
154
|
+
const TYPE_LABELS = {
|
|
155
|
+
added: 'NEW', changed: 'CHG', fixed: 'FIX', removed: 'RM', deprecated: 'DEP', security: 'SEC',
|
|
156
|
+
};
|
|
157
|
+
function TypeBadge({ type, theme }) {
|
|
158
|
+
const pair = MENU_ENTRY_BADGE[theme][type] ?? MENU_ENTRY_BADGE[theme].changed;
|
|
159
|
+
const label = TYPE_LABELS[type] ?? TYPE_LABELS.changed;
|
|
138
160
|
return (_jsx("span", { style: {
|
|
139
161
|
flexShrink: 0,
|
|
140
162
|
fontSize: 9,
|
|
@@ -142,11 +164,11 @@ function TypeBadge({ type }) {
|
|
|
142
164
|
letterSpacing: '0.05em',
|
|
143
165
|
padding: '2px 5px',
|
|
144
166
|
borderRadius: 4,
|
|
145
|
-
background:
|
|
146
|
-
color:
|
|
167
|
+
background: pair.bg,
|
|
168
|
+
color: pair.fg,
|
|
147
169
|
fontFamily: 'ui-monospace, SFMono-Regular, Menlo, monospace',
|
|
148
170
|
textTransform: 'uppercase',
|
|
149
|
-
}, children:
|
|
171
|
+
}, children: label }));
|
|
150
172
|
}
|
|
151
173
|
function formatDate(iso, language) {
|
|
152
174
|
// The feed uses ISO 8601; render as e.g. "15 May" / "15 mai" / "15 mag"
|
|
@@ -179,81 +201,81 @@ const triggerStyle = {
|
|
|
179
201
|
};
|
|
180
202
|
// Visual styling only — positioning, stacking, the caret and the open/close
|
|
181
203
|
// transition are owned by <DropdownSurface />.
|
|
182
|
-
const menuSurfaceStyle = {
|
|
204
|
+
const menuSurfaceStyle = (theme) => ({
|
|
183
205
|
width: 380,
|
|
184
206
|
maxHeight: 'min(70vh, 560px)',
|
|
185
|
-
background:
|
|
186
|
-
border:
|
|
207
|
+
background: MENU[theme].surface,
|
|
208
|
+
border: `1px solid ${MENU[theme].border}`,
|
|
187
209
|
borderRadius: 16,
|
|
188
|
-
boxShadow:
|
|
210
|
+
boxShadow: MENU[theme].shadow,
|
|
189
211
|
padding: 12,
|
|
190
|
-
color:
|
|
212
|
+
color: MENU[theme].text,
|
|
191
213
|
display: 'flex',
|
|
192
214
|
flexDirection: 'column',
|
|
193
|
-
};
|
|
194
|
-
const headerStyle = {
|
|
215
|
+
});
|
|
216
|
+
const headerStyle = (theme) => ({
|
|
195
217
|
display: 'flex',
|
|
196
218
|
alignItems: 'center',
|
|
197
219
|
justifyContent: 'space-between',
|
|
198
220
|
padding: '4px 8px 10px',
|
|
199
|
-
borderBottom:
|
|
221
|
+
borderBottom: `1px solid ${MENU[theme].divider}`,
|
|
200
222
|
marginBottom: 8,
|
|
201
|
-
};
|
|
202
|
-
const eyebrowStyle = {
|
|
223
|
+
});
|
|
224
|
+
const eyebrowStyle = (theme) => ({
|
|
203
225
|
fontSize: 11,
|
|
204
|
-
color:
|
|
226
|
+
color: MENU[theme].muted,
|
|
205
227
|
fontWeight: 600,
|
|
206
228
|
letterSpacing: '0.06em',
|
|
207
229
|
textTransform: 'uppercase',
|
|
208
|
-
};
|
|
209
|
-
const titleStyle = {
|
|
230
|
+
});
|
|
231
|
+
const titleStyle = (theme) => ({
|
|
210
232
|
fontSize: 13,
|
|
211
|
-
color:
|
|
233
|
+
color: MENU[theme].body,
|
|
212
234
|
marginTop: 2,
|
|
213
|
-
};
|
|
214
|
-
const versionChipStyle = {
|
|
235
|
+
});
|
|
236
|
+
const versionChipStyle = (theme) => ({
|
|
215
237
|
flexShrink: 0,
|
|
216
238
|
fontSize: 11,
|
|
217
239
|
fontWeight: 700,
|
|
218
240
|
fontFamily: 'ui-monospace, SFMono-Regular, Menlo, monospace',
|
|
219
|
-
background:
|
|
220
|
-
color:
|
|
221
|
-
border:
|
|
241
|
+
background: MENU[theme].accentBg,
|
|
242
|
+
color: MENU[theme].accentText,
|
|
243
|
+
border: `1px solid ${MENU[theme].accentBorder}`,
|
|
222
244
|
padding: '2px 7px',
|
|
223
245
|
borderRadius: 999,
|
|
224
|
-
};
|
|
246
|
+
});
|
|
225
247
|
const bodyStyle = {
|
|
226
248
|
overflowY: 'auto',
|
|
227
249
|
flex: 1,
|
|
228
250
|
paddingRight: 4,
|
|
229
251
|
};
|
|
230
|
-
const emptyStyle = {
|
|
252
|
+
const emptyStyle = (theme) => ({
|
|
231
253
|
fontSize: 12,
|
|
232
|
-
color:
|
|
254
|
+
color: MENU[theme].faint,
|
|
233
255
|
textAlign: 'center',
|
|
234
256
|
padding: '20px 8px',
|
|
235
257
|
margin: 0,
|
|
236
|
-
};
|
|
237
|
-
const releaseStyle = {
|
|
258
|
+
});
|
|
259
|
+
const releaseStyle = (theme) => ({
|
|
238
260
|
padding: '8px 6px 10px',
|
|
239
|
-
borderBottom:
|
|
240
|
-
};
|
|
261
|
+
borderBottom: `1px dashed ${MENU[theme].divideDashed}`,
|
|
262
|
+
});
|
|
241
263
|
const releaseHeaderStyle = {
|
|
242
264
|
display: 'flex',
|
|
243
265
|
alignItems: 'baseline',
|
|
244
266
|
justifyContent: 'space-between',
|
|
245
267
|
marginBottom: 6,
|
|
246
268
|
};
|
|
247
|
-
const releaseVersionStyle = {
|
|
269
|
+
const releaseVersionStyle = (theme) => ({
|
|
248
270
|
fontSize: 12,
|
|
249
271
|
fontWeight: 700,
|
|
250
|
-
color:
|
|
272
|
+
color: MENU[theme].text,
|
|
251
273
|
fontFamily: 'ui-monospace, SFMono-Regular, Menlo, monospace',
|
|
252
|
-
};
|
|
253
|
-
const releaseDateStyle = {
|
|
274
|
+
});
|
|
275
|
+
const releaseDateStyle = (theme) => ({
|
|
254
276
|
fontSize: 11,
|
|
255
|
-
color:
|
|
256
|
-
};
|
|
277
|
+
color: MENU[theme].faint,
|
|
278
|
+
});
|
|
257
279
|
const entryListStyle = {
|
|
258
280
|
listStyle: 'none',
|
|
259
281
|
padding: 0,
|
|
@@ -267,36 +289,36 @@ const entryItemStyle = {
|
|
|
267
289
|
gap: 8,
|
|
268
290
|
alignItems: 'flex-start',
|
|
269
291
|
};
|
|
270
|
-
const entryTextStyle = {
|
|
292
|
+
const entryTextStyle = (theme) => ({
|
|
271
293
|
fontSize: 12,
|
|
272
|
-
color:
|
|
294
|
+
color: MENU[theme].body,
|
|
273
295
|
lineHeight: 1.4,
|
|
274
296
|
flex: 1,
|
|
275
|
-
};
|
|
276
|
-
const productLabelStyle = {
|
|
277
|
-
color:
|
|
297
|
+
});
|
|
298
|
+
const productLabelStyle = (theme) => ({
|
|
299
|
+
color: MENU[theme].faint,
|
|
278
300
|
fontWeight: 500,
|
|
279
301
|
whiteSpace: 'nowrap',
|
|
280
|
-
};
|
|
302
|
+
});
|
|
281
303
|
// When the product tag resolves to a known page it renders as a link in the
|
|
282
304
|
// brand orange; the muted em-dash before it stays in productLabelStyle's grey.
|
|
283
|
-
const productLinkStyle = {
|
|
284
|
-
color:
|
|
305
|
+
const productLinkStyle = (theme) => ({
|
|
306
|
+
color: MENU[theme].accentText,
|
|
285
307
|
fontWeight: 600,
|
|
286
308
|
textDecoration: 'none',
|
|
287
309
|
whiteSpace: 'nowrap',
|
|
288
|
-
};
|
|
289
|
-
const footerStyle = {
|
|
310
|
+
});
|
|
311
|
+
const footerStyle = (theme) => ({
|
|
290
312
|
display: 'flex',
|
|
291
313
|
justifyContent: 'flex-end',
|
|
292
314
|
paddingTop: 8,
|
|
293
315
|
marginTop: 6,
|
|
294
|
-
borderTop:
|
|
295
|
-
};
|
|
296
|
-
const footerLinkStyle = {
|
|
316
|
+
borderTop: `1px solid ${MENU[theme].divider}`,
|
|
317
|
+
});
|
|
318
|
+
const footerLinkStyle = (theme) => ({
|
|
297
319
|
fontSize: 11,
|
|
298
|
-
color:
|
|
320
|
+
color: MENU[theme].accentText,
|
|
299
321
|
fontWeight: 600,
|
|
300
322
|
textDecoration: 'none',
|
|
301
|
-
};
|
|
323
|
+
});
|
|
302
324
|
//# sourceMappingURL=ChangelogMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangelogMenu.js","sourceRoot":"","sources":["../src/ChangelogMenu.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChangelogMenu.js","sourceRoot":"","sources":["../src/ChangelogMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,QAAQ,EACR,MAAM,GAEP,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAA;AA4BvE,iFAAiF;AACjF,YAAY;AACZ,iFAAiF;AAEjF,MAAM,oBAAoB,GACxB,0BAA0B;IAC1B,kBAAkB,CAChB;;;YAGQ,CACT,CAAA;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,GAAG,oBAAoB,EAC9B,KAAK,GAAG,CAAC,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,GAAG,OAAO,GACI;IACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAClC,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IACrE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAA;IACrE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAA;IAEpF,SAAS,OAAO;QACd,IAAI,UAAU,CAAC,OAAO;YAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IACD,SAAS,SAAS;QAChB,IAAI,UAAU,CAAC,OAAO;YAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACxD,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC;IAED,mEAAmE;IACnE,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAEnD,OAAO,CACL,eACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,KAAK,EAAE,EAClE,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,UAAU,aAExB,iBACE,IAAI,EAAC,QAAQ,gBACD,iBAAiB,mBACd,IAAI,mBACL,MAAM,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,YAAY,YAEnB,cAAK,GAAG,EAAE,OAAO,EAAE,GAAG,EAAC,EAAE,uBAAa,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAI,GACrF,EAET,MAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,OAAO,EAClB,KAAK,EAAC,OAAO,EACb,KAAK,QACL,IAAI,EAAC,MAAM,EACX,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,EACrC,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAGpC,eAAK,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,aAC5B,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,aACpF,eAAM,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,YAAG,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,GAAQ,EAC9E,eAAM,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,YAAG,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAQ,IACnE,EACN,eAAM,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAG,cAAc,IAAI,GAAG,GAAQ,IAChE,EAGN,cAAK,KAAK,EAAE,SAAS,YAClB,OAAO,CAAC,CAAC,CAAC,CACT,YAAG,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,YAAG,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAK,CACpE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,YAAG,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,YAAG,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,GAAK,CACvE,CAAC,CAAC,CAAC,CACF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAC,YAAY,IAAiB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAvD,CAAC,CAAC,OAAO,CAAkD,CAAC,CACpG,GACG,EAGN,cAAK,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,YAC5B,aACE,IAAI,EAAC,+CAA+C,EACpD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,aAE5B,CAAC,CAAC,QAAQ,EAAE,0BAA0B,CAAC,eACtC,GACA,IACU,IACd,CACP,CAAA;AACH,CAAC;AAED,iFAAiF;AACjF,gBAAgB;AAChB,iFAAiF;AAEjF,SAAS,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAqE;IACnH,OAAO,CACL,eAAK,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,aAC7B,eAAK,KAAK,EAAE,kBAAkB,aAC5B,eAAM,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,YAAG,OAAO,CAAC,OAAO,GAAQ,EACjE,eAAM,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAQ,IAC7E,EACN,aAAI,KAAK,EAAE,cAAc,YACtB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,cAAY,KAAK,EAAE,cAAc,aAC/B,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,EACzC,gBAAM,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,aAC/B,CAAC,CAAC,OAAO,EACV,gBAAM,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,yBAAK,KAAC,UAAU,IAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,GAAI,IAAO,IAC5F,KALA,CAAC,CAML,CACN,CAAC,GACC,IACD,CACP,CAAA;AACH,CAAC;AAED,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,SAAS,kBAAkB,CAAC,OAAkC;IAC5D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,CAAC,CAAc,OAAO,KAAK,CAAA;QACrC,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,QAAQ,CAAC,CAAW,OAAO,QAAQ,CAAA;QACxC,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,IAAI,CAAC,CAAe,OAAO,IAAI,CAAA;QACpC,KAAK,YAAY,CAAC,CAAO,OAAO,YAAY,CAAA;QAC5C,KAAK,UAAU,CAAC,CAAS,OAAO,UAAU,CAAA;QAC1C,KAAK,KAAK,CAAC,CAAc,OAAO,KAAK,CAAA;QACrC,KAAK,MAAM,CAAC,CAAa,OAAO,MAAM,CAAA;QACtC,KAAK,OAAO,CAAC,CAAY,OAAO,OAAO,CAAA;QACvC,KAAK,WAAW,CAAC,CAAQ,OAAO,WAAW,CAAA;QAC3C,KAAK,WAAW,CAAC,CAAQ,OAAO,WAAW,CAAA;QAC3C,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,WAAW,CAAC,CAAQ,OAAO,WAAW,CAAA;QAC3C,KAAK,UAAU,CAAC,CAAS,OAAO,UAAU,CAAA;QAC1C,KAAK,QAAQ,CAAC,CAAW,OAAO,QAAQ,CAAA;QACxC,KAAK,KAAK,CAAC,CAAc,OAAO,KAAK,CAAA;QACrC,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,IAAI,CAAC,CAAe,OAAO,IAAI,CAAA;QACpC,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,aAAa,CAAC,CAAM,OAAO,MAAM,CAAA;QACtC,KAAK,cAAc,CAAC,CAAK,OAAO,OAAO,CAAA;QACvC,KAAK,aAAa,CAAC,CAAM,OAAO,MAAM,CAAA;QACtC,KAAK,kBAAkB,CAAC,CAAC,OAAO,WAAW,CAAA;QAC3C,KAAK,aAAa,CAAC,CAAM,OAAO,MAAM,CAAA;QACtC,KAAK,cAAc,CAAC,CAAK,OAAO,OAAO,CAAA;QACvC,KAAK,SAAS,CAAC,CAAU,OAAO,SAAS,CAAA;QACzC,KAAK,OAAO,CAAC,CAAY,OAAO,OAAO,CAAA;QACvC,OAAO,CAAC,CAAiB,OAAO,OAAO,CAAA;IACzC,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,2DAA2D;AAC3D,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,mCAAmC;AACnC,MAAM,YAAY,GAAuD;IACvE,GAAG,EAAe,qCAAqC;IACvD,EAAE,EAAgB,oCAAoC;IACtD,MAAM,EAAY,wCAAwC;IAC1D,QAAQ,EAAU,0CAA0C;IAC5D,OAAO,EAAW,yCAAyC;IAC3D,OAAO,EAAW,yCAAyC;IAC3D,UAAU,EAAQ,4CAA4C;IAC9D,OAAO,EAAW,yCAAyC;IAC3D,SAAS,EAAS,2CAA2C;IAC7D,GAAG,EAAe,qCAAqC;IACvD,OAAO,EAAW,yCAAyC;IAC3D,SAAS,EAAS,2CAA2C;IAC7D,YAAY,EAAM,mCAAmC;IACrD,WAAW,EAAO,kCAAkC;IACpD,gBAAgB,EAAE,iCAAiC;IACnD,WAAW,EAAO,kCAAkC;IACpD,YAAY,EAAM,mCAAmC;IACrD,WAAW,EAAO,kCAAkC;IACpD,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,aAAa;IACb,SAAS,EAAS,2CAA2C;IAC7D,GAAG,EAAe,qCAAqC;IACvD,IAAI,EAAc,sCAAsC;IACxD,KAAK,EAAa,uCAAuC;IACzD,QAAQ,EAAU,0CAA0C;IAC5D,4EAA4E;IAC5E,yEAAyE;IACzE,8DAA8D;CAC/D,CAAA;AAED,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,6BAA6B;AAC7B,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAA4D;IAC9F,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,4BAAG,IAAI,GAAI,CAAA;IAC7B,OAAO,CACL,YACE,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,YAElC,IAAI,GACH,CACL,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,qEAAqE;AACrE,+EAA+E;AAC/E,iBAAiB;AACjB,MAAM,WAAW,GAA2C;IAC1D,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;CAC9F,CAAA;AAED,SAAS,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAsD;IACpF,MAAM,IAAI,GAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAQ,CAAA;IAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAA;IACtD,OAAO,CACL,eACE,KAAK,EAAE;YACL,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,KAAK,EAAE,IAAI,CAAC,EAAE;YACd,UAAU,EAAE,gDAAgD;YAC5D,aAAa,EAAE,WAAW;SAC3B,YAEA,KAAK,GACD,CACR,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,QAAgB;IAC/C,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAA;IACzC,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,iFAAiF;AACjF,+DAA+D;AAC/D,iFAAiF;AAEjF,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,YAAY,GAAkB;IAClC,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,CAAC;CACX,CAAA;AAED,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC7D,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO;IAC/B,MAAM,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;IACzC,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;IAC7B,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI;IACvB,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;CACxB,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAChD,YAAY,EAAE,CAAC;CAChB,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;IACxB,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,WAAW;CAC3B,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACvD,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI;IACvB,SAAS,EAAE,CAAC;CACb,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC7D,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,gDAAgD;IAC5D,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ;IAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU;IAC7B,MAAM,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;IAC/C,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,GAAG;CAClB,CAAC,CAAA;AAEF,MAAM,SAAS,GAAkB;IAC/B,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;CAChB,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACvD,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;IACxB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,CAAC;CACV,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE;CACvD,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAkB;IACxC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,CAAC;CAChB,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAChE,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI;IACvB,UAAU,EAAE,gDAAgD;CAC7D,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC7D,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;CACzB,CAAC,CAAA;AAEF,MAAM,cAAc,GAAkB;IACpC,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,GAAG,EAAE,CAAC;CACP,CAAA;AAED,MAAM,cAAc,GAAkB;IACpC,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,YAAY;CACzB,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI;IACvB,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,CAAC;CACR,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC9D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;IACxB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAA;AAEF,4EAA4E;AAC5E,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU;IAC7B,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,UAAU;IAC1B,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;CAC9C,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAC,KAAgB,EAAiB,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU;IAC7B,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,MAAM;CACvB,CAAC,CAAA"}
|
|
@@ -16,8 +16,31 @@ export interface DropdownSurfaceProps {
|
|
|
16
16
|
* with the trigger's left, `right` lines the right edges up. The panel is
|
|
17
17
|
* shifted back on-screen when that would overflow, so this is a preference,
|
|
18
18
|
* not a hard guarantee.
|
|
19
|
+
*
|
|
20
|
+
* Ignored when `placement` is `'side'` — there the panel's horizontal
|
|
21
|
+
* position IS the placement, and `side` decides it.
|
|
19
22
|
*/
|
|
20
23
|
align?: 'left' | 'right';
|
|
24
|
+
/**
|
|
25
|
+
* Where the panel sits relative to its anchor.
|
|
26
|
+
*
|
|
27
|
+
* `'below'` (default) is the navbar dropdown every menu in the suite used
|
|
28
|
+
* before 0.107.0: under the trigger, flipping above when there is no room.
|
|
29
|
+
*
|
|
30
|
+
* `'side'` is a submenu flyout — beside the anchor, top-aligned to it,
|
|
31
|
+
* flipping to the other side when short of room. It exists for a panel whose
|
|
32
|
+
* anchor is a ROW INSIDE another panel (the account header opening plan &
|
|
33
|
+
* limits): placing that below its row would drop it straight on top of the
|
|
34
|
+
* menu it came from.
|
|
35
|
+
*/
|
|
36
|
+
placement?: 'below' | 'side';
|
|
37
|
+
/**
|
|
38
|
+
* For `placement="side"`: which side to try first. Defaults to `'left'`,
|
|
39
|
+
* because the anchors that want a flyout are rows in the right-hand nav
|
|
40
|
+
* cluster and the room is on their left. The other side is used when the
|
|
41
|
+
* preferred one cannot fit the panel.
|
|
42
|
+
*/
|
|
43
|
+
side?: 'left' | 'right';
|
|
21
44
|
/** Gap between trigger and panel, px. Default 8. */
|
|
22
45
|
gap?: number;
|
|
23
46
|
/** Minimum clearance kept from every viewport edge, px. Default 8. */
|
|
@@ -45,5 +68,5 @@ export interface DropdownSurfaceProps {
|
|
|
45
68
|
onRequestClose?: () => void;
|
|
46
69
|
children: ReactNode;
|
|
47
70
|
}
|
|
48
|
-
export declare function DropdownSurface({ open, anchorRef, align, gap, margin, arrow, surfaceStyle, role, className, onMouseEnter, onMouseLeave, onRequestClose, children, }: DropdownSurfaceProps): import("react").ReactPortal | null;
|
|
71
|
+
export declare function DropdownSurface({ open, anchorRef, align, placement, side, gap, margin, arrow, surfaceStyle, role, className, onMouseEnter, onMouseLeave, onRequestClose, children, }: DropdownSurfaceProps): import("react").ReactPortal | null;
|
|
49
72
|
//# sourceMappingURL=DropdownSurface.d.ts.map
|