@xeonr/console-shell 0.4.2 → 0.5.1

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.
Files changed (88) hide show
  1. package/dist/AccountMenu.d.ts.map +1 -1
  2. package/dist/AccountMenu.js +6 -1
  3. package/dist/AccountMenu.js.map +1 -1
  4. package/dist/CommandPalette.d.ts +3 -2
  5. package/dist/CommandPalette.d.ts.map +1 -1
  6. package/dist/CommandPalette.js +78 -10
  7. package/dist/CommandPalette.js.map +1 -1
  8. package/dist/ConsoleProvider.d.ts +39 -4
  9. package/dist/ConsoleProvider.d.ts.map +1 -1
  10. package/dist/ConsoleProvider.js +19 -3
  11. package/dist/ConsoleProvider.js.map +1 -1
  12. package/dist/ConsoleShell.d.ts +63 -3
  13. package/dist/ConsoleShell.d.ts.map +1 -1
  14. package/dist/ConsoleShell.js +153 -8
  15. package/dist/ConsoleShell.js.map +1 -1
  16. package/dist/ContextRow.d.ts +2 -0
  17. package/dist/ContextRow.d.ts.map +1 -0
  18. package/dist/ContextRow.js +235 -0
  19. package/dist/ContextRow.js.map +1 -0
  20. package/dist/Gate.d.ts +25 -0
  21. package/dist/Gate.d.ts.map +1 -0
  22. package/dist/Gate.js +38 -0
  23. package/dist/Gate.js.map +1 -0
  24. package/dist/ScopeCard.d.ts +4 -0
  25. package/dist/ScopeCard.d.ts.map +1 -0
  26. package/dist/ScopeCard.js +228 -0
  27. package/dist/ScopeCard.js.map +1 -0
  28. package/dist/ScopeRail.d.ts.map +1 -1
  29. package/dist/ScopeRail.js +42 -1
  30. package/dist/ScopeRail.js.map +1 -1
  31. package/dist/SectionSidebar.d.ts +6 -4
  32. package/dist/SectionSidebar.d.ts.map +1 -1
  33. package/dist/SectionSidebar.js +72 -25
  34. package/dist/SectionSidebar.js.map +1 -1
  35. package/dist/TopBar.d.ts.map +1 -1
  36. package/dist/TopBar.js +16 -2
  37. package/dist/TopBar.js.map +1 -1
  38. package/dist/context.d.ts +82 -0
  39. package/dist/context.d.ts.map +1 -0
  40. package/dist/context.js +65 -0
  41. package/dist/context.js.map +1 -0
  42. package/dist/crumb.d.ts +9 -0
  43. package/dist/crumb.d.ts.map +1 -1
  44. package/dist/crumb.js +20 -2
  45. package/dist/crumb.js.map +1 -1
  46. package/dist/crumbs.d.ts +19 -0
  47. package/dist/crumbs.d.ts.map +1 -0
  48. package/dist/crumbs.js +43 -0
  49. package/dist/crumbs.js.map +1 -0
  50. package/dist/index.d.ts +10 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +10 -2
  53. package/dist/index.js.map +1 -1
  54. package/dist/links.d.ts +5 -4
  55. package/dist/links.d.ts.map +1 -1
  56. package/dist/links.js +5 -15
  57. package/dist/links.js.map +1 -1
  58. package/dist/nav.d.ts +66 -4
  59. package/dist/nav.d.ts.map +1 -1
  60. package/dist/nav.js +99 -2
  61. package/dist/nav.js.map +1 -1
  62. package/dist/origin.d.ts +2 -0
  63. package/dist/origin.d.ts.map +1 -0
  64. package/dist/origin.js +14 -0
  65. package/dist/origin.js.map +1 -0
  66. package/dist/place.d.ts +26 -0
  67. package/dist/place.d.ts.map +1 -0
  68. package/dist/place.js +53 -0
  69. package/dist/place.js.map +1 -0
  70. package/dist/scope.d.ts +35 -0
  71. package/dist/scope.d.ts.map +1 -0
  72. package/dist/scope.js +42 -0
  73. package/dist/scope.js.map +1 -0
  74. package/dist/screen.d.ts +38 -0
  75. package/dist/screen.d.ts.map +1 -0
  76. package/dist/screen.js +79 -0
  77. package/dist/screen.js.map +1 -0
  78. package/dist/shellConfig.d.ts +50 -0
  79. package/dist/shellConfig.d.ts.map +1 -0
  80. package/dist/shellConfig.js +24 -0
  81. package/dist/shellConfig.js.map +1 -0
  82. package/dist/types.d.ts +3 -1
  83. package/dist/types.d.ts.map +1 -1
  84. package/package.json +6 -4
  85. package/dist/TeamCard.d.ts +0 -5
  86. package/dist/TeamCard.d.ts.map +0 -1
  87. package/dist/TeamCard.js +0 -152
  88. package/dist/TeamCard.js.map +0 -1
@@ -0,0 +1,228 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useRef, useState } from "react";
3
+ import styled from "styled-components";
4
+ import { useNavigate } from "react-router-dom";
5
+ import { Icon, Popover, v } from "@xeonr/platform-ui";
6
+ import { useConsole } from "./ConsoleProvider.js";
7
+ import { ShellLink, isSameOrigin } from "./links.js";
8
+ import { availableScopes, scopeHref } from "./scope.js";
9
+ import { useShellConfig } from "./shellConfig.js";
10
+ // The card at the top of the section sidebar says whose page this is: a team's
11
+ // (today's TeamCard, unchanged), the person's, or the organisation's
12
+ // (NAV-DESIGN.md §8). All three states share one geometry so the sidebar never
13
+ // reflows when the scope changes between routes.
14
+ //
15
+ // The menu lists the scopes the caller can enter, then the teams. A team row on
16
+ // a team page switches team the way it always has (the product's onTeamChange
17
+ // navigates). A team row on a personal or organisation page is a scope change:
18
+ // the shell goes to the team scope's landing itself. Team management lives on
19
+ // the console home, so the menu only switches.
20
+ //
21
+ // The menu is a portal (kit Popover), not a child of the scrolling aside, so it
22
+ // is never clipped by the sidebar it opens from.
23
+ const Card = styled.button `
24
+ width: 100%;
25
+ text-align: left;
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 10px;
29
+ padding: 10px;
30
+ border-radius: ${v.rCard};
31
+ background: ${v.surface};
32
+ border: 1px solid ${v.line2};
33
+ box-shadow: ${v.elev};
34
+ color: ${v.text};
35
+ cursor: pointer;
36
+ transition: border-color 0.14s ease;
37
+ &:hover { border-color: ${v.brand55}; }
38
+ /* a context row hangs off the card's bottom edge: one unit, two controls */
39
+ ${(p) => p.$attached && `border-bottom-left-radius: 0; border-bottom-right-radius: 0; box-shadow: none;`}
40
+ `;
41
+ // Collapsed sidebar: the card is its tile, same menu.
42
+ const Compact = styled.button `
43
+ width: 40px; height: 40px;
44
+ display: grid; place-items: center;
45
+ padding: 0; margin: 0 auto;
46
+ border-radius: ${v.rCard};
47
+ border: 1px solid ${v.line2};
48
+ background: ${v.surface};
49
+ cursor: pointer;
50
+ &:hover { border-color: ${v.brand55}; }
51
+ `;
52
+ const Tile = styled.span `
53
+ width: 34px; height: 34px; flex: none;
54
+ border-radius: ${(p) => (p.$round ? "999px" : "9px")};
55
+ background: ${(p) => (p.$src ? `url(${p.$src}) center/cover` : v.grad)};
56
+ color: ${v.onBrand};
57
+ display: grid; place-items: center;
58
+ font-weight: 700; font-size: 13px;
59
+ svg { font-size: 15px; }
60
+ `;
61
+ const Text = styled.span `
62
+ display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto;
63
+ b { font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
64
+ span { font-size: 11px; color: ${v.faint}; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
65
+ `;
66
+ const Chev = styled.span `color: ${v.faint}; flex: none; display: grid;`;
67
+ const Menu = styled.div `
68
+ padding: 6px;
69
+ display: flex; flex-direction: column; gap: 2px;
70
+ overflow-y: auto;
71
+ `;
72
+ const MenuLabel = styled.div `
73
+ font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
74
+ color: ${v.faint}; padding: 8px 8px 4px;
75
+ `;
76
+ const Item = styled.button `
77
+ display: flex; align-items: center; gap: 10px;
78
+ width: 100%; text-align: left;
79
+ padding: 7px 8px;
80
+ border-radius: ${v.rCtl};
81
+ font-size: 13px;
82
+ color: ${v.text};
83
+ background: ${(p) => (p.$on ? v.brand12 : "transparent")};
84
+ opacity: ${(p) => (p.$mute ? 0.55 : 1)};
85
+ cursor: ${(p) => (p.$mute ? "default" : "pointer")};
86
+ &:hover { background: ${(p) => (p.$on ? v.brand12 : p.$mute ? "transparent" : v.hover)}; }
87
+ small { margin-left: auto; color: ${v.faint}; font-size: 11px; text-transform: capitalize; }
88
+ `;
89
+ const ItemLink = styled(ShellLink) `
90
+ display: flex; align-items: center; gap: 10px;
91
+ padding: 7px 8px;
92
+ border-radius: ${v.rCtl};
93
+ font-size: 13px;
94
+ color: ${v.muted};
95
+ text-decoration: none;
96
+ &:hover { background: ${v.hover}; color: ${v.text}; }
97
+ svg:first-child { font-size: 14px; width: 16px; }
98
+ svg:not(:first-child) { margin-left: auto; font-size: 11px; }
99
+ `;
100
+ const Hair = styled.div `height: 1px; background: ${v.line}; margin: 4px 0;`;
101
+ const Warn = styled.div `
102
+ font-size: 11.5px; line-height: 1.4;
103
+ color: ${v.warning};
104
+ background: ${v.warningBg};
105
+ border-radius: ${v.rCtl};
106
+ padding: 8px 10px;
107
+ margin: 2px 0;
108
+ word-break: break-word;
109
+ `;
110
+ const Empty = styled.div `font-size: 12px; color: ${v.faint}; padding: 8px 10px;`;
111
+ const small = { width: 24, height: 24, fontSize: 10, borderRadius: 7 };
112
+ function initials(name) {
113
+ return name.split(/[\s-]+/).map((s) => s[0] ?? "").join("").slice(0, 2).toUpperCase();
114
+ }
115
+ export function ScopeCard() {
116
+ const c = useConsole();
117
+ const cfg = useShellConfig();
118
+ const navigate = useNavigate();
119
+ const [anchor, setAnchor] = useState(null);
120
+ const ref = useRef(null);
121
+ const closedAt = useRef(0);
122
+ const close = useCallback(() => {
123
+ closedAt.current = Date.now();
124
+ setAnchor(null);
125
+ }, []);
126
+ const toggle = () => {
127
+ // The popover closes on the mousedown that lands on this button; without
128
+ // this the click that follows would reopen it at once.
129
+ if (anchor || Date.now() - closedAt.current < 250)
130
+ return;
131
+ if (ref.current)
132
+ setAnchor(ref.current.getBoundingClientRect());
133
+ };
134
+ const go = (href) => {
135
+ close();
136
+ cfg.closeDrawer();
137
+ if (isSameOrigin(href))
138
+ navigate(href);
139
+ else
140
+ window.location.assign(href);
141
+ };
142
+ const { scope, scopes, productLabel, authOrigin } = cfg;
143
+ const roleOf = (t) => cfg.roleLabel?.(t) ?? t.role;
144
+ // Personal and organisation fall back to the console home and the auth
145
+ // portal, so a team-only product still offers them without declaring them.
146
+ const fallback = {};
147
+ if (c.homeRoot)
148
+ fallback.personal = `${c.homeRoot}/activity`;
149
+ if (c.me.isOrgAdmin)
150
+ fallback.organisation = `${authOrigin}/organisation`;
151
+ const available = availableScopes(scopes, c.activeTeam, c.me, cfg.can, {
152
+ personal: !!fallback.personal,
153
+ organisation: !!fallback.organisation,
154
+ });
155
+ const scopeLanding = (s) => {
156
+ const entry = scopes[s];
157
+ return entry ? scopeHref(entry, c.activeTeam) : fallback[s];
158
+ };
159
+ const orgName = cfg.organisation?.name ?? scopes.organisation?.label ?? "Organisation";
160
+ // The card's face. A screen may point it at the team it is showing (a
161
+ // ticket's owner); a team the caller is not in is shown read-only.
162
+ const st = cfg.screenTeam;
163
+ const stSlug = st === undefined || st === null ? undefined : typeof st === "string" ? st : st.slug;
164
+ const mine = stSlug !== undefined ? c.teams.find((x) => x.slug === stSlug) : undefined;
165
+ const readOnly = stSlug !== undefined && !mine
166
+ ? { id: typeof st === "object" && st?.id ? st.id : stSlug, slug: stSlug, name: (typeof st === "object" && st?.name) || stSlug, avatarUrl: typeof st === "object" ? st?.avatarUrl : undefined, role: "member", roles: [] }
167
+ : null;
168
+ const t = st === null ? null : (mine ?? readOnly ?? c.pageTeam);
169
+ const face = scope === "personal"
170
+ ? { tile: initials(c.me.displayName || c.me.email), src: c.me.avatarUrl, round: true, title: c.me.displayName || c.me.email, sub: `Personal · ${productLabel}` }
171
+ : scope === "organisation"
172
+ ? { tile: initials(orgName), src: cfg.organisation?.avatarUrl, round: false, title: orgName, sub: `Organisation · ${productLabel}` }
173
+ : t
174
+ ? { tile: initials(t.name || t.slug), src: t.avatarUrl, round: false, title: t.name || t.slug, sub: `${readOnly ? "viewing" : roleOf(t)} · ${productLabel}` }
175
+ : { tile: "?", src: undefined, round: false, title: "Choose a team", sub: productLabel };
176
+ const pickTeam = (team) => {
177
+ if (scope === "team") {
178
+ close();
179
+ cfg.closeDrawer();
180
+ const place = cfg.placeFor(team);
181
+ c.setTeam(team.id, { place });
182
+ // No product handler: the shell keeps your section itself.
183
+ if (!c.hasTeamHandler && place.suggested)
184
+ go(place.suggested);
185
+ return;
186
+ }
187
+ // From a personal or organisation page, a team row is a scope change.
188
+ const entry = scopes.team;
189
+ if (entry) {
190
+ c.setTeam(team.id, { notify: false });
191
+ go(scopeHref(entry, team));
192
+ }
193
+ else {
194
+ close();
195
+ c.setTeam(team.id);
196
+ }
197
+ };
198
+ const usable = c.teams.filter((x) => x.entitled !== false);
199
+ const offTeams = c.teams.filter((x) => x.entitled === false);
200
+ const otherScopes = available.filter((s) => s !== "team");
201
+ return (_jsxs("div", { children: [cfg.collapsed ? (_jsx(Compact, { ref: ref, type: "button", "aria-haspopup": "menu", "aria-expanded": !!anchor, "aria-label": `${face.title} — ${face.sub}`, title: `${face.title} · ${face.sub}`, onClick: toggle, children: _jsx(Tile, { "$src": face.src, "$round": face.round, style: { width: 28, height: 28, fontSize: 11, borderRadius: face.round ? 999 : 8 }, children: face.src ? null : face.tile }) })) : (_jsxs(Card, { ref: ref, type: "button", "$attached": !!cfg.context, "aria-haspopup": "menu", "aria-expanded": !!anchor, onClick: toggle, children: [_jsx(Tile, { "$src": face.src, "$round": face.round, children: face.src ? null : face.tile }), _jsxs(Text, { children: [_jsx("b", { children: face.title }), _jsx("span", { children: face.sub })] }), _jsx(Chev, { children: _jsx(Icon, { name: "chevron-down", size: 14 }) })] })), anchor ? (_jsx(Popover, { sheet: true, anchor: anchor, onClose: close, label: "Switch scope or team", width: Math.max(anchor.width, 224), children: _jsxs(Menu, { role: "menu", children: [otherScopes.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(MenuLabel, { children: "Scopes" }), otherScopes.map((s) => {
202
+ const href = scopeLanding(s);
203
+ const on = s === scope;
204
+ return (_jsxs(Item, { role: "menuitemradio", "aria-checked": on, "$on": on, onClick: () => {
205
+ if (on || !href)
206
+ return close();
207
+ const anyTeam = c.activeTeam ?? c.teams[0];
208
+ const place = anyTeam ? cfg.placeFor(anyTeam) : { search: cfg.carried, suggested: "" };
209
+ const override = cfg.onScopeChange?.(s, place);
210
+ go(typeof override === "string" ? override : href);
211
+ }, children: [_jsx(Tile, { "$round": s === "personal", style: small, children: s === "personal" ? initials(c.me.displayName || c.me.email) : initials(orgName) }), s === "personal" ? "You" : orgName, _jsx("small", { children: s === "personal" ? "personal" : "organisation" })] }, s));
212
+ }), _jsx(Hair, {})] })) : null, _jsx(MenuLabel, { children: "Your teams" }), c.teams.length === 0 ? _jsx(Empty, { children: "You are not in any team yet." }) : null, usable.length === 0 && c.teams.length > 0 ? _jsxs(Empty, { children: ["No team has ", productLabel, " enabled yet."] }) : null, c.teams.length === 0 && c.me.warnings?.length ? c.me.warnings.slice(0, 4).map((w, i) => _jsx(Warn, { children: w }, i)) : null, usable.map((team) => {
213
+ const on = scope === "team" && team.id === t?.id;
214
+ return (_jsxs(Item, { role: "menuitemradio", "aria-checked": on, "$on": on, onClick: () => pickTeam(team), children: [_jsx(Tile, { "$src": team.avatarUrl, style: small, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: roleOf(team) })] }, team.id));
215
+ }), offTeams.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(MenuLabel, { children: "Not enabled here" }), offTeams.map((team) => {
216
+ const mute = team.canEnable === false;
217
+ return (_jsxs(Item, { role: "menuitem", "$mute": mute, "aria-disabled": mute, title: mute ? `${productLabel} is not enabled for this team, and only an owner can enable it` : `Enable ${productLabel} for this team`, onClick: () => {
218
+ if (mute)
219
+ return;
220
+ close();
221
+ // Enabling lives on the console home.
222
+ window.location.assign(c.enableHref(c.product, team.slug));
223
+ }, children: [_jsx(Tile, { "$src": team.avatarUrl, style: small, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: mute ? "ask an owner" : "enable" })] }, team.id));
224
+ })] })) : null, _jsx(Hair, {}), scope === "team" && t && c.product !== "home" ? (_jsxs(ItemLink, { href: `${c.homeHref}/members`, mark: _jsx(Icon, { name: "external" }), onClick: close, children: [_jsx(Icon, { name: "members" }), " Members & roles"] })) : null, _jsxs(ItemLink, { href: `${authOrigin}/teams?new=1`, mark: _jsx(Icon, { name: "external" }), onClick: close, children: [_jsx(Icon, { name: "add" }), " New team"] })] }) })) : null] }));
225
+ }
226
+ /** @deprecated the card is a ScopeCard from 0.5; in team scope it is this card. */
227
+ export const TeamCard = ScopeCard;
228
+ //# sourceMappingURL=ScopeCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopeCard.js","sourceRoot":"","sources":["../src/ScopeCard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"AAiEA,eAAO,MAAM,UAAU;;;UACf,OAAO,GAAG,SAAS;cACf,MAAM,GAAG,SAAS;WACrB,OAAO,GAAG,SAAS;gBACd,OAAO,GAAG,SAAS;kBACjB,OAAO,GAAG,SAAS;YAuClC,CAAC;AAqCF,wBAAgB,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;IAAE,cAAc,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAA;CAAE,+BAsIrH"}
1
+ {"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"AAoEA,eAAO,MAAM,UAAU;;;UACf,OAAO,GAAG,SAAS;cACf,MAAM,GAAG,SAAS;WACrB,OAAO,GAAG,SAAS;gBACd,OAAO,GAAG,SAAS;kBACjB,OAAO,GAAG,SAAS;YAuClC,CAAC;AAkEF,wBAAgB,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;IAAE,cAAc,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAA;CAAE,+BAsKrH"}
package/dist/ScopeRail.js CHANGED
@@ -3,6 +3,9 @@ import { useState } from "react";
3
3
  import styled from "styled-components";
4
4
  import { Icon, v, useTheme } from "@xeonr/platform-ui";
5
5
  import { useConsole } from "./ConsoleProvider.js";
6
+ import { useShellConfig } from "./shellConfig.js";
7
+ import { availableScopes, scopeHref } from "./scope.js";
8
+ import { ShellLink } from "./links.js";
6
9
  // The far-left product rail: Home, the pinned products for this team as
7
10
  // coloured tiles, the All-products launcher, then theme and account.
8
11
  // Cross-product tiles are plain <a> to another origin, carrying the team slug.
@@ -123,12 +126,45 @@ const Dot = styled.span `
123
126
  box-shadow: 0 0 0 2px ${v.sidebar};
124
127
  `;
125
128
  const Spacer = styled.div `flex: 1 1 auto;`;
129
+ // Whose page: the scope stack, shown only for products with two or more
130
+ // scopes the caller can enter (auth, notify, trail, trellis, the home). Its
131
+ // active marker is a bar at the rail's edge, not the product tiles' fill, so a
132
+ // scope can never be read as a product.
133
+ const ScopeStack = styled.nav `
134
+ display: flex; flex-direction: column; align-items: center; gap: 4px;
135
+ margin-bottom: 2px;
136
+ `;
137
+ const ScopeTile = styled(ShellLink) `
138
+ position: relative;
139
+ width: 36px; height: 36px;
140
+ display: grid; place-items: center;
141
+ border-radius: ${(p) => (p.$round ? "999px" : "10px")};
142
+ color: ${(p) => (p.$on ? v.text : v.muted)};
143
+ background: ${(p) => (p.$on ? v.surface : "transparent")};
144
+ border: 1px solid ${(p) => (p.$on ? v.line2 : "transparent")};
145
+ font-size: 11px; font-weight: 700;
146
+ text-decoration: none;
147
+ &:hover { color: ${v.text}; background: ${v.hover}; }
148
+ ${(p) => p.$on &&
149
+ `&::before {
150
+ content: ""; position: absolute; left: -10px; top: 8px; bottom: 8px;
151
+ width: 3px; border-radius: 0 3px 3px 0; background: ${v.brand};
152
+ }`}
153
+ svg { font-size: 15px; }
154
+ `;
126
155
  function initials(name) {
127
156
  return name.split(/\s+/).map((s) => s[0] ?? "").join("").slice(0, 2).toUpperCase();
128
157
  }
129
158
  export function ScopeRail({ onOpenLauncher, onOpenAccount }) {
130
159
  const c = useConsole();
160
+ const cfg = useShellConfig();
131
161
  const theme = useTheme();
162
+ // Declared scopes only (no console-home fallbacks): the stack is for a
163
+ // product whose own pages span scopes.
164
+ const stack = availableScopes(cfg.scopes, c.activeTeam, c.me, cfg.can);
165
+ const showStack = stack.length >= 2;
166
+ const orgName = cfg.organisation?.name ?? cfg.scopes.organisation?.label ?? "Organisation";
167
+ const scopeLabel = (s) => (s === "team" ? (c.activeTeam?.name || c.activeTeam?.slug || "Team") : s === "personal" ? "You" : orgName);
132
168
  // In PIN order. This used to filter `c.products`, which meant the rail
133
169
  // rendered in registry order and threw the saved order away entirely — so
134
170
  // `pinned_products` being "in order" was a fiction and reordering could not
@@ -162,7 +198,12 @@ export function ScopeRail({ onOpenLauncher, onOpenAccount }) {
162
198
  e.preventDefault();
163
199
  c.reorderPins(key, from + (e.key === "ArrowUp" ? -1 : 1));
164
200
  };
165
- return (_jsxs(Rail, { "aria-label": "Products", children: [self ? (_jsx(Logo, { href: c.productHref(self), "$icon": true, "aria-label": self.name, title: self.name, children: _jsx(Icon, { name: self.icon }) })) : (_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" })), _jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-current": c.product === "home" ? "page" : undefined, "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) }), _jsx(Divider, {}), _jsx(Tiles, { onDragOver: (e) => { if (dragKey)
201
+ return (_jsxs(Rail, { "aria-label": "Products", children: [self ? (_jsx(Logo, { href: c.productHref(self), "$icon": true, "aria-label": self.name, title: self.name, children: _jsx(Icon, { name: self.icon }) })) : (_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" })), showStack ? (_jsx(ScopeStack, { "aria-label": "Scope", children: stack.map((s) => {
202
+ const entry = cfg.scopes[s];
203
+ const on = s === cfg.scope;
204
+ const label = scopeLabel(s);
205
+ return (_jsx(ScopeTile, { href: scopeHref(entry, c.activeTeam), "$on": on, "$round": s === "personal", "aria-current": on ? "page" : undefined, "aria-label": `${s === "team" ? "Team" : s === "personal" ? "Personal" : "Organisation"}: ${label}`, title: label, children: s === "organisation" ? _jsx(Icon, { name: "organisation" }) : initials(s === "personal" ? c.me.displayName || "You" : label) }, s));
206
+ }) })) : null, showStack && c.product === "home" && stack.includes("team") ? null : (_jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-current": c.product === "home" ? "page" : undefined, "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) })), _jsx(Divider, {}), _jsx(Tiles, { onDragOver: (e) => { if (dragKey)
166
207
  e.preventDefault(); }, onDrop: (e) => {
167
208
  // Dropped past the last tile: send it to the end. Without this, a drop
168
209
  // in the empty space below the list is silently lost.
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAuB,CAAC;AAEnD,wEAAwE;AACxE,qEAAqE;AACrE,+EAA+E;AAE/E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;gBAQP,CAAC,CAAC,OAAO;4BACG,CAAC,CAAC,IAAI;;;;CAIjC,CAAC;AAEF,6EAA6E;AAC7E,2EAA2E;AAC3E,mEAAmE;AACnE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAUvB,CAAC;AAEF,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,8EAA8E;AAC9E,uEAAuE;AACvE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAiC;;;gBAGtC,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;iCAEa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;;;CAGlE,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;gBAEV,CAAC,CAAC,KAAK;;CAEtB,CAAC;AAEF,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAMhC;;;;;WAKS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;aAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;;;;;;;kBAOtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;;;;;IAKzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,gBAAgB;;;;;IAKtC,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,WAAW;IACb;;;;;;;oBAOgB,CAAC,CAAC,KAAK;;GAExB;CACF,CAAC;AAEF,+EAA+E;AAC/E,iDAAiD;AACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;WAKhB,CAAC,CAAC,KAAK;gBACF,CAAC,CAAC,OAAO;0BACC,CAAC,CAAC,KAAK;CAChC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;;;gBAGV,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;;;CAInB,CAAC;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAA;;;gBAGP,CAAC,CAAC,MAAM;0BACE,CAAC,CAAC,OAAO;CAClC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,iBAAiB,CAAC;AAE3C,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAA6D;IACpH,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,yBAAyB;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,4EAA4E;IAC5E,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAEnC,+EAA+E;IAC/E,0EAA0E;IAC1E,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAEpC,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,aAAa,GAAG,CAAC,CAAsB,EAAE,GAAW,EAAE,EAAE;QAC5D,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;YAAE,OAAO;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO;QACrB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,kBAAY,UAAU,aACxB,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,+BAAoB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,YAC5E,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,GACpB,CACR,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,gBAAa,qBAAqB,kBAAS,CAClE,EACD,KAAC,UAAU,IAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,SAAO,CAAC,CAAC,OAAO,KAAK,MAAM,kBAAgB,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAa,MAAM,EAAC,KAAK,EAAC,MAAM,YAC9I,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,GACT,EACb,KAAC,OAAO,KAAG,EACX,KAAC,KAAK,IACJ,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,OAAO;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EACvD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;oBACZ,uEAAuE;oBACvE,sDAAsD;oBACtD,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO;wBAAE,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;oBACtD,UAAU,CAAC,IAAI,CAAC,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC,YAEA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,oEAAoE;oBACpE,uEAAuE;oBACvE,sEAAsE;oBACtE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;oBAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1C,OAAO,CACL,MAAC,UAAU,IAET,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAC7C,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,kBAGV,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAC7C,CAAC,CAAC,MAAM,UACX,GAAG,eACE,OAAO,KAAK,CAAC,CAAC,GAAG,iBACf,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC/D,KAAK,EAAE,GAAG;4BACR,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB;4BACnF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;wBAClE,qEAAqE;wBACrE,qDAAqD;wBACrD,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClB,mEAAmE;4BACnE,yDAAyD;4BACzD,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;4BACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC9C,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACxD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;4BAChB,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;gCAAE,OAAO;4BAClC,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACpB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;4BACZ,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;gCAAE,OAAO;4BAClC,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAChD,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjB,UAAU,CAAC,IAAI,CAAC,CAAC;wBACnB,CAAC,aAED,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,EACrB,GAAG,CAAC,CAAC,CAAC,KAAC,OAAO,mBAAa,MAAM,YAAC,KAAC,IAAI,IAAC,IAAI,EAAC,KAAK,GAAG,GAAU,CAAC,CAAC,CAAC,IAAI,KA1ClE,CAAC,CAAC,GAAG,CA2CC,CACd,CAAC;gBACJ,CAAC,CAAC,GACI,EACR,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,gBAAa,cAAc,EAAC,KAAK,EAAC,cAAc,YAC3G,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG,GACb,EACb,KAAC,MAAM,KAAG,EACV,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,gBAAc,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,EAAE,YAC3H,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAI,GACpF,EACb,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,aAAa,gBAAa,cAAc,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,YAC7G,MAAC,MAAM,eACJ,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAC1B,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,GAAG,kBAAa,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,sBAAsB,GAAI,CAAC,CAAC,CAAC,IAAI,IAC9F,GACE,IACR,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAa,CAAC;AAExC,wEAAwE;AACxE,qEAAqE;AACrE,+EAA+E;AAE/E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;gBAQP,CAAC,CAAC,OAAO;4BACG,CAAC,CAAC,IAAI;;;;CAIjC,CAAC;AAEF,6EAA6E;AAC7E,2EAA2E;AAC3E,mEAAmE;AACnE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAUvB,CAAC;AAEF,6EAA6E;AAC7E,+EAA+E;AAC/E,yEAAyE;AACzE,8EAA8E;AAC9E,uEAAuE;AACvE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAiC;;;gBAGtC,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;iCAEa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;;;CAGlE,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;gBAEV,CAAC,CAAC,KAAK;;CAEtB,CAAC;AAEF,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAMhC;;;;;WAKS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;aAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;;;;;;;kBAOtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;;;;;IAKzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,gBAAgB;;;;;IAKtC,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,WAAW;IACb;;;;;;;oBAOgB,CAAC,CAAC,KAAK;;GAExB;CACF,CAAC;AAEF,+EAA+E;AAC/E,iDAAiD;AACjD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;WAKhB,CAAC,CAAC,KAAK;gBACF,CAAC,CAAC,OAAO;0BACC,CAAC,CAAC,KAAK;CAChC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;;;gBAGV,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;;;CAInB,CAAC;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAA;;;gBAGP,CAAC,CAAC,MAAM;0BACE,CAAC,CAAC,OAAO;CAClC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,iBAAiB,CAAC;AAE3C,wEAAwE;AACxE,4EAA4E;AAC5E,+EAA+E;AAC/E,wCAAwC;AACxC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAG5B,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAA6D;;;;mBAI7E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;WAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;sBACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;;;qBAGzC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,KAAK;IAC/C,CAAC,CAAC,EAAE,EAAE,CACN,CAAC,CAAC,GAAG;IACL;;4DAEwD,CAAC,CAAC,KAAK;MAC7D;;CAEL,CAAC;AAEF,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAA6D;IACpH,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,uEAAuE;IACvE,uCAAuC;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,IAAI,cAAc,CAAC;IAC3F,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE7I,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,yBAAyB;IACzB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,4EAA4E;IAC5E,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;IAEnC,+EAA+E;IAC/E,0EAA0E;IAC1E,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAEpC,yEAAyE;IACzE,iDAAiD;IACjD,MAAM,aAAa,GAAG,CAAC,CAAsB,EAAE,GAAW,EAAE,EAAE;QAC5D,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;YAAE,OAAO;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO;QACrB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,kBAAY,UAAU,aACxB,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,+BAAoB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,YAC5E,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,GACpB,CACR,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,gBAAa,qBAAqB,kBAAS,CAClE,EACA,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,UAAU,kBAAY,OAAO,YAC3B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC;oBAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC5B,OAAO,CACL,KAAC,SAAS,IAER,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,SAC/B,EAAE,YACC,CAAC,KAAK,UAAU,kBACV,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBACzB,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,EAAE,EACjG,KAAK,EAAE,KAAK,YAEX,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,cAAc,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IARhH,CAAC,CASI,CACb,CAAC;gBACJ,CAAC,CAAC,GACS,CACd,CAAC,CAAC,CAAC,IAAI,EAEP,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpE,KAAC,UAAU,IAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,SAAO,CAAC,CAAC,OAAO,KAAK,MAAM,kBAAgB,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,gBAAa,MAAM,EAAC,KAAK,EAAC,MAAM,YAC9I,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,GACT,CACd,EACD,KAAC,OAAO,KAAG,EACX,KAAC,KAAK,IACJ,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,OAAO;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EACvD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;oBACZ,uEAAuE;oBACvE,sDAAsD;oBACtD,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO;wBAAE,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;oBACtD,UAAU,CAAC,IAAI,CAAC,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC,YAEA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,oEAAoE;oBACpE,uEAAuE;oBACvE,sEAAsE;oBACtE,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;oBAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC1C,OAAO,CACL,MAAC,UAAU,IAET,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAC7C,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,kBAGV,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAC7C,CAAC,CAAC,MAAM,UACX,GAAG,eACE,OAAO,KAAK,CAAC,CAAC,GAAG,iBACf,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,OAAO,KAAK,CAAC,CAAC,GAAG,gBACpD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC/D,KAAK,EAAE,GAAG;4BACR,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,kBAAkB,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB;4BACnF,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;wBAClE,qEAAqE;wBACrE,qDAAqD;wBACrD,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAClB,mEAAmE;4BACnE,yDAAyD;4BACzD,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;4BACtC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC9C,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACxD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;4BAChB,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;gCAAE,OAAO;4BAClC,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACpB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;4BACZ,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;gCAAE,OAAO;4BAClC,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4BACpB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAChD,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjB,UAAU,CAAC,IAAI,CAAC,CAAC;wBACnB,CAAC,aAED,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,EACrB,GAAG,CAAC,CAAC,CAAC,KAAC,OAAO,mBAAa,MAAM,YAAC,KAAC,IAAI,IAAC,IAAI,EAAC,KAAK,GAAG,GAAU,CAAC,CAAC,CAAC,IAAI,KA1ClE,CAAC,CAAC,GAAG,CA2CC,CACd,CAAC;gBACJ,CAAC,CAAC,GACI,EACR,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,gBAAa,cAAc,EAAC,KAAK,EAAC,cAAc,YAC3G,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,GAAG,GACb,EACb,KAAC,MAAM,KAAG,EACV,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,KAAK,gBAAc,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,IAAI,EAAE,YAC3H,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAI,GACpF,EACb,KAAC,UAAU,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,aAAa,gBAAa,cAAc,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,YAC7G,MAAC,MAAM,eACJ,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAC1B,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,GAAG,kBAAa,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,sBAAsB,GAAI,CAAC,CAAC,CAAC,IAAI,IAC9F,GACE,IACR,CACR,CAAC;AACJ,CAAC"}
@@ -1,10 +1,12 @@
1
- import type { NavGroup } from "./nav.ts";
2
- export declare function SectionSidebar({ open, base, groups, productLabel, authOrigin, docsHref, onNavigate, }: {
1
+ import { type NavGroup } from "./nav.ts";
2
+ export declare function SectionSidebar({ open, base, groups, activeKey, docsLabel, onToggleCollapse, docsHref, onNavigate, }: {
3
3
  open: boolean;
4
4
  base: string;
5
5
  groups: NavGroup[];
6
- productLabel: string;
7
- authOrigin: string;
6
+ /** the resolved section (resolveActive), or undefined when none is current */
7
+ activeKey?: string | undefined;
8
+ docsLabel?: string | undefined;
9
+ onToggleCollapse?: (() => void) | undefined;
8
10
  docsHref?: string | undefined;
9
11
  onNavigate?: (() => void) | undefined;
10
12
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionSidebar.d.ts","sourceRoot":"","sources":["../src/SectionSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AA2EzC,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,GACX,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,+BAgDA"}
1
+ {"version":3,"file":"SectionSidebar.d.ts","sourceRoot":"","sources":["../src/SectionSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAwGrF,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,SAAsB,EACtB,gBAAgB,EAChB,QAAQ,EACR,UAAU,GACX,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,+BAwEA"}
@@ -1,16 +1,29 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import styled from "styled-components";
3
- import { Link, NavLink } from "react-router-dom";
3
+ import { Link } from "react-router-dom";
4
4
  import { Icon, v } from "@xeonr/platform-ui";
5
- import { TeamCard } from "./TeamCard.js";
5
+ import { isLegacySwitcher, itemTarget } from "./nav.js";
6
+ import { ScopeCard } from "./ScopeCard.js";
7
+ import { ContextRow } from "./ContextRow.js";
8
+ import { useConsole } from "./ConsoleProvider.js";
9
+ import { satisfies } from "./scope.js";
10
+ import { withCarry } from "./place.js";
11
+ import { useShellConfig } from "./shellConfig.js";
6
12
  // 224px section sidebar: the shell's TeamCard on top, then the product's own
7
- // registry. In-product links are router NavLinks relative to `base` (the
8
- // product's team root, e.g. "/platform-core"); items with `href` open on
9
- // another host and get the external mark, unless `internal` — a same-origin
10
- // link that changes the base (a namespace or project switch) — in which case
11
- // they are router links whose active state the product sets.
13
+ // registry. Every item that stays on this origin is a router link; which one is
14
+ // current is decided once, by resolveActive in ConsoleShell, and handed in as
15
+ // `activeKey` — the sidebar never asks the router itself, so the sidebar, the
16
+ // crumb and ⌘K cannot disagree. Items on another host get the external mark.
17
+ // 0.4 switcher rows (href + internal + active) still render their own flag.
12
18
  const Aside = styled.aside `
13
- width: 224px;
19
+ width: ${(p) => (p.$collapsed ? "56px" : "224px")};
20
+ transition: width 0.16s ease;
21
+ ${(p) => p.$collapsed &&
22
+ `
23
+ padding: 12px 8px !important;
24
+ a > span, a > .ext, a > .lock { display: none; }
25
+ a { justify-content: center; padding: 0; }
26
+ `}
14
27
  flex: none;
15
28
  display: flex;
16
29
  flex-direction: column;
@@ -22,8 +35,10 @@ const Aside = styled.aside `
22
35
  position: fixed;
23
36
  inset: 2px auto 0 56px;
24
37
  z-index: ${v.zNav};
25
- transform: translateX(${(p) => (p.$open ? "0" : "-110%")});
26
- transition: transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1);
38
+ /* closed: past the rail's 56px offset and the shadow, and out of the tab order */
39
+ transform: translateX(${(p) => (p.$open ? "0" : "calc(-100% - 80px)")});
40
+ visibility: ${(p) => (p.$open ? "visible" : "hidden")};
41
+ transition: transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1), visibility 0s linear ${(p) => (p.$open ? "0s" : "0.18s")};
27
42
  box-shadow: ${v.elev};
28
43
  }
29
44
  `;
@@ -43,13 +58,11 @@ const itemCss = `
43
58
  &:hover { background: ${v.hover}; color: ${v.text}; }
44
59
  svg { font-size: 14px; width: 16px; }
45
60
  `;
46
- const Item = styled(NavLink) `
47
- ${itemCss}
48
- &.active { background: ${v.brand12}; color: ${v.text}; }
49
- `;
50
61
  const ForcedItem = styled(Link) `
51
62
  ${itemCss}
52
63
  ${(p) => p.$active && `background: ${v.brand12}; color: ${v.text};`}
64
+ ${(p) => p.$locked && `opacity: 0.6;`}
65
+ .lock { margin-left: auto; color: ${v.faint}; font-size: 11px; }
53
66
  `;
54
67
  const ExtItem = styled.a `
55
68
  ${itemCss}
@@ -58,20 +71,54 @@ const ExtItem = styled.a `
58
71
  const Pill = styled.span `
59
72
  margin-left: auto;
60
73
  font-size: 11px; line-height: 18px;
61
- color: ${v.faint};
62
- background: ${v.field};
63
- border: 1px solid ${v.fieldLine};
74
+ color: ${(p) => (p.$attention ? v.text : v.faint)};
75
+ background: ${(p) => (p.$attention ? v.brand16 : v.field)};
76
+ border: 1px solid ${(p) => (p.$attention ? v.brand55 : v.fieldLine)};
64
77
  border-radius: 999px;
65
78
  padding: 0 7px;
66
79
  `;
80
+ function Count({ item, counts }) {
81
+ const n = item.count ?? (item.countKey !== undefined ? counts?.[item.countKey] : undefined);
82
+ if (n === undefined)
83
+ return null;
84
+ return _jsx(Pill, { "$attention": item.tone === "attention", children: n });
85
+ }
86
+ const Hairline = styled.div `height: 1px; background: ${v.line}; margin: 10px 8px 6px;`;
87
+ const Foot = styled.button `
88
+ ${itemCss}
89
+ width: 100%;
90
+ background: transparent; border: 0; cursor: pointer;
91
+ justify-content: ${(p) => (p.$collapsed ? "center" : "flex-start")};
92
+ font: inherit; font-size: 12px;
93
+ @media (max-width: 900px) { display: none; }
94
+ `;
67
95
  const Spacer = styled.div `flex: 1 1 auto;`;
68
- export function SectionSidebar({ open, base, groups, productLabel, authOrigin, docsHref, onNavigate, }) {
69
- return (_jsxs(Aside, { "$open": open, children: [_jsx(TeamCard, { productLabel: productLabel, authOrigin: authOrigin }), _jsx(List, { children: groups.map((g, gi) => (_jsxs("div", { children: [g.label ? _jsx(GroupLabel, { children: g.label }) : null, g.items
70
- .filter((i) => !i.hidden)
71
- .map((i) => i.href && i.internal ? (
72
- // A switcher item's active state is the product's to say, so the
73
- // router cannot mark it current — aria-current has to come from
74
- // the same flag, or only sighted users can tell which is current.
75
- _jsxs(ForcedItem, { to: i.href, "$active": i.active, "aria-current": i.active ? "page" : undefined, onClick: onNavigate, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), i.count !== undefined ? _jsx(Pill, { children: i.count }) : null] }, i.key)) : i.href ? (_jsxs(ExtItem, { href: i.href, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), i.count !== undefined ? _jsx(Pill, { children: i.count }) : null, _jsx(Icon, { className: "ext", name: "external" })] }, i.key)) : (_jsxs(Item, { to: i.path ? `${base}/${i.path}` : base, end: i.path === "", onClick: onNavigate, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), i.count !== undefined ? _jsx(Pill, { children: i.count }) : null] }, i.key)))] }, gi))) }), _jsx(Spacer, {}), docsHref ? (_jsxs(ExtItem, { href: docsHref, children: [_jsx(Icon, { name: "docs" }), _jsx("span", { children: "API docs" }), _jsx(Icon, { className: "ext", name: "external" })] })) : null] }));
96
+ export function SectionSidebar({ open, base, groups, activeKey, docsLabel = "API docs", onToggleCollapse, docsHref, onNavigate, }) {
97
+ const c = useConsole();
98
+ const cfg = useShellConfig();
99
+ const allowed = (r) => satisfies(r, c.pageTeam ?? c.activeTeam, c.me, cfg.can);
100
+ return (_jsxs(Aside, { "$open": open, "$collapsed": cfg.collapsed, "aria-label": "Sections", children: [_jsx(ScopeCard, {}), cfg.context ? _jsx(ContextRow, {}) : null, _jsx(List, { children: groups.map((g, gi) => {
101
+ // A gated item is hidden, unless it is the page you are on: then it
102
+ // stays, muted and locked, so the sidebar still says where you are
103
+ // and the screen's Gate says why.
104
+ const items = g.items.filter((i) => !i.hidden && ((allowed(g.requires) && allowed(i.requires)) || i.key === activeKey));
105
+ if (items.length === 0)
106
+ return null;
107
+ return (_jsxs("div", { children: [g.label ? cfg.collapsed ? _jsx(Hairline, { role: "separator" }) : _jsx(GroupLabel, { children: g.label }) : null, items
108
+ .map((i) => {
109
+ // A 0.4 switcher row: the product computes its highlight, so
110
+ // aria-current must come from the same flag.
111
+ if (isLegacySwitcher(i)) {
112
+ return (_jsxs(ForcedItem, { to: i.href ?? base, "$active": i.active, "aria-current": i.active ? "page" : undefined, "aria-label": cfg.collapsed ? i.label : undefined, title: cfg.collapsed ? i.label : undefined, onClick: onNavigate, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), _jsx(Count, { item: i, counts: cfg.counts })] }, i.key));
113
+ }
114
+ const t = itemTarget(i, base);
115
+ if (t.kind === "external") {
116
+ return (_jsxs(ExtItem, { href: t.href, "aria-label": cfg.collapsed ? `${i.label} (opens elsewhere)` : undefined, title: cfg.collapsed ? i.label : undefined, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), _jsx(Count, { item: i, counts: cfg.counts }), _jsx(Icon, { className: "ext", name: "external" })] }, i.key));
117
+ }
118
+ const on = i.key === activeKey;
119
+ const locked = !(allowed(g.requires) && allowed(i.requires));
120
+ return (_jsxs(ForcedItem, { to: withCarry(t.href, cfg.carried), "$active": on, "$locked": locked, "aria-current": on ? "page" : undefined, "aria-label": cfg.collapsed ? i.label : undefined, title: cfg.collapsed ? i.label : undefined, onClick: onNavigate, children: [_jsx(Icon, { name: i.icon }), _jsx("span", { children: i.label }), locked ? _jsx(Icon, { className: "lock", name: "lock" }) : _jsx(Count, { item: i, counts: cfg.counts })] }, i.key));
121
+ })] }, gi));
122
+ }) }), _jsx(Spacer, {}), docsHref ? (_jsxs(ExtItem, { href: docsHref, "aria-label": cfg.collapsed ? docsLabel : undefined, title: cfg.collapsed ? docsLabel : undefined, children: [_jsx(Icon, { name: "docs" }), _jsx("span", { children: docsLabel }), _jsx(Icon, { className: "ext", name: "external" })] })) : null, onToggleCollapse ? (_jsxs(Foot, { type: "button", "$collapsed": cfg.collapsed, "aria-expanded": !cfg.collapsed, "aria-label": cfg.collapsed ? "Expand sidebar" : "Collapse sidebar", title: `${cfg.collapsed ? "Expand" : "Collapse"} sidebar (⌘\\)`, onClick: onToggleCollapse, children: [_jsx(Icon, { name: cfg.collapsed ? "chevron-right" : "chevron-left" }), cfg.collapsed ? null : _jsx("span", { children: "Collapse" })] })) : null] }));
76
123
  }
77
124
  //# sourceMappingURL=SectionSidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionSidebar.js","sourceRoot":"","sources":["../src/SectionSidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAgB,CAAC;AAE1C,6EAA6E;AAC7E,yEAAyE;AACzE,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,6DAA6D;AAE7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAoB;;;;;gBAK9B,CAAC,CAAC,OAAO;4BACG,CAAC,CAAC,IAAI;;;;;;eAMnB,CAAC,CAAC,IAAI;4BACO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;;kBAE1C,CAAC,CAAC,IAAI;;CAEvB,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA,mEAAmE,CAAC;AAE3F,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;WAElB,CAAC,CAAC,KAAK;CACjB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;WAIL,CAAC,CAAC,KAAK;;;;0BAIQ,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,IAAI;;CAElD,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IACxB,OAAO;2BACgB,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI;CACrD,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAmC;IAC9D,OAAO;IACP,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,GAAG;CACpE,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;IACpB,OAAO;qCAC0B,CAAC,CAAC,KAAK;CAC3C,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;;;WAGb,CAAC,CAAC,KAAK;gBACF,CAAC,CAAC,KAAK;sBACD,CAAC,CAAC,SAAS;;;CAGhC,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,iBAAiB,CAAC;AAE3C,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,GASX;IACC,OAAO,CACL,MAAC,KAAK,aAAQ,IAAI,aAChB,KAAC,QAAQ,IAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,GAAI,EAChE,KAAC,IAAI,cACF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CACrB,0BACG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,UAAU,cAAE,CAAC,CAAC,KAAK,GAAc,CAAC,CAAC,CAAC,IAAI,EACnD,CAAC,CAAC,KAAK;6BACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;6BACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACrB,iEAAiE;wBACjE,gEAAgE;wBAChE,kEAAkE;wBAClE,MAAC,UAAU,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,aAAW,CAAC,CAAC,MAAM,kBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,aACrH,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,EACtB,yBAAO,CAAC,CAAC,KAAK,GAAQ,EACrB,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,CAAC,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,KAHvC,CAAC,CAAC,GAAG,CAIT,CACd,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,MAAC,OAAO,IAAa,IAAI,EAAE,CAAC,CAAC,IAAI,aAC/B,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,EACtB,yBAAO,CAAC,CAAC,KAAK,GAAQ,EACrB,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,CAAC,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EACtD,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,UAAU,GAAG,KAJ5B,CAAC,CAAC,GAAG,CAKT,CACX,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,aAChG,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAI,EACtB,yBAAO,CAAC,CAAC,KAAK,GAAQ,EACrB,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,CAAC,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,KAH7C,CAAC,CAAC,GAAG,CAIT,CACR,CACF,KA5BK,EAAE,CA6BN,CACP,CAAC,GACG,EACP,KAAC,MAAM,KAAG,EACT,QAAQ,CAAC,CAAC,CAAC,CACV,MAAC,OAAO,IAAC,IAAI,EAAE,QAAQ,aACrB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,EACpB,sCAAqB,EACrB,KAAC,IAAI,IAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,UAAU,GAAG,IAChC,CACX,CAAC,CAAC,CAAC,IAAI,IACF,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SectionSidebar.js","sourceRoot":"","sources":["../src/SectionSidebar.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../src/TopBar.tsx"],"names":[],"mappings":"AAuEA,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,aAAiB,EACjB,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5C,+BA8BA"}
1
+ {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../src/TopBar.tsx"],"names":[],"mappings":"AAgFA,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,aAAiB,EACjB,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5C,+BA4CA"}