@xeonr/console-shell 0.2.0 → 0.2.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.
- package/dist/ConsoleProvider.d.ts +7 -0
- package/dist/ConsoleProvider.d.ts.map +1 -1
- package/dist/ConsoleProvider.js +21 -12
- package/dist/ConsoleProvider.js.map +1 -1
- package/dist/ScopeRail.d.ts +1 -0
- package/dist/ScopeRail.d.ts.map +1 -1
- package/dist/ScopeRail.js +32 -4
- package/dist/ScopeRail.js.map +1 -1
- package/dist/TeamCard.d.ts.map +1 -1
- package/dist/TeamCard.js +36 -4
- package/dist/TeamCard.js.map +1 -1
- package/dist/types.d.ts +14 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,13 @@ export interface ConsoleState {
|
|
|
27
27
|
enableProduct(p: Product): Promise<void>;
|
|
28
28
|
/** absolute link into another product for the active team */
|
|
29
29
|
productHref(p: Product, path?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* The console home for a team, asking it to offer enabling `productKey`.
|
|
32
|
+
* Enabling belongs to the home console, so a product console sends you there
|
|
33
|
+
* rather than into a product the team holds no binding for — which is what a
|
|
34
|
+
* plain productHref would do, and it 404s.
|
|
35
|
+
*/
|
|
36
|
+
enableHref(productKey: string, teamSlug?: string): string;
|
|
30
37
|
/** the console home for the active team (homeOrigin, else a "home" registry entry, else "/") */
|
|
31
38
|
homeHref: string;
|
|
32
39
|
/** federated ⌘K (tier 2); resolves to [] when the client has no search */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleProvider.d.ts","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7G,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAW7G,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,6DAA6D;IAC7D,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"ConsoleProvider.d.ts","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7G,OAAO,KAAK,EAAE,aAAa,EAAkB,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAW7G,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,6DAA6D;IAC7D,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1D,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BA4L/H;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,UAAU,IAAI,YAAY,CAIzC"}
|
package/dist/ConsoleProvider.js
CHANGED
|
@@ -23,10 +23,8 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
23
23
|
// which is the whole load window.
|
|
24
24
|
//
|
|
25
25
|
// `null` means "not chosen yet, use the registry defaults"; a list means
|
|
26
|
-
// "this is my set",
|
|
27
|
-
//
|
|
28
|
-
// sticks for this session but the defaults return on reload. Closing that
|
|
29
|
-
// needs a tri-state in the BFF; tracked rather than faked here.
|
|
26
|
+
// "this is my set", the empty one included. The BFF carries that distinction
|
|
27
|
+
// from bff v0.1.19, which is what makes unpinning your last product stick.
|
|
30
28
|
const [pins, setPins] = useState(null);
|
|
31
29
|
useEffect(() => {
|
|
32
30
|
let live = true;
|
|
@@ -42,17 +40,17 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
42
40
|
return;
|
|
43
41
|
}
|
|
44
42
|
const m = mr.value;
|
|
45
|
-
const c = cr.status === "fulfilled" ? cr.value : { activeTeam: null, pinnedProducts:
|
|
43
|
+
const c = cr.status === "fulfilled" ? cr.value : { activeTeam: null, pinnedProducts: null, theme: "system" };
|
|
46
44
|
if (cr.status === "rejected")
|
|
47
45
|
onError?.(cr.reason);
|
|
48
46
|
const inv = ir.status === "fulfilled" ? ir.value : [];
|
|
49
47
|
setMe(m);
|
|
50
48
|
setCtx(c);
|
|
51
49
|
setInvitations(inv);
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
setPins((cur) => cur ??
|
|
50
|
+
// null from the BFF means nobody has chosen; an array — including an empty
|
|
51
|
+
// one — is a choice. An older BFF always sends an array, so an empty one
|
|
52
|
+
// from it is treated as unset, exactly as it behaved before.
|
|
53
|
+
setPins((cur) => cur ?? c.pinnedProducts ?? null);
|
|
56
54
|
// The server-held theme follows you across hosts; local preference wins
|
|
57
55
|
// only if it was set explicitly on this host.
|
|
58
56
|
if (theme.pref === "system" && c.theme !== "system")
|
|
@@ -70,7 +68,11 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
70
68
|
return me.teams.find((t) => t.slug === teamSlug) ?? null;
|
|
71
69
|
if (ctx?.activeTeam)
|
|
72
70
|
return me.teams.find((t) => t.id === ctx.activeTeam) ?? null;
|
|
73
|
-
|
|
71
|
+
// The list can now include teams this product is not enabled for, so the
|
|
72
|
+
// fallback prefers one that works. Landing a product on an unentitled team
|
|
73
|
+
// by default would render it against a binding that does not exist; an
|
|
74
|
+
// explicit slug or saved context is still honoured, because that is a choice.
|
|
75
|
+
return me.teams.find((t) => t.entitled !== false) ?? me.teams[0] ?? null;
|
|
74
76
|
}, [me, ctx, teamSlug]);
|
|
75
77
|
// `tick` belongs here: refresh() is what a caller invokes after enabling a
|
|
76
78
|
// product, and without it the registry was never re-read — the tile kept its
|
|
@@ -97,7 +99,7 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
97
99
|
if (!t)
|
|
98
100
|
return;
|
|
99
101
|
const prev = ctx?.activeTeam ?? null;
|
|
100
|
-
setCtx((c) => (c ? { ...c, activeTeam: id } : { activeTeam: id, pinnedProducts: pins
|
|
102
|
+
setCtx((c) => (c ? { ...c, activeTeam: id } : { activeTeam: id, pinnedProducts: pins, theme: "system" }));
|
|
101
103
|
void client.setContext({ activeTeam: id }).catch((err) => {
|
|
102
104
|
setCtx((c) => (c ? { ...c, activeTeam: prev } : c));
|
|
103
105
|
onError?.(err);
|
|
@@ -147,6 +149,12 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
147
149
|
return "/";
|
|
148
150
|
return team ? `${origin}/${team}` : origin;
|
|
149
151
|
}, [homeOrigin, products, activeTeam]);
|
|
152
|
+
const enableHref = useCallback((productKey, teamSlug) => {
|
|
153
|
+
const team = teamSlug ?? activeTeam?.slug;
|
|
154
|
+
const origin = homeOrigin ?? products.find((p) => p.key === "home")?.origin ?? "";
|
|
155
|
+
const base = team ? `${origin}/${team}` : origin || "/";
|
|
156
|
+
return `${base}?enable=${encodeURIComponent(productKey)}`;
|
|
157
|
+
}, [homeOrigin, products, activeTeam]);
|
|
150
158
|
const value = useMemo(() => me
|
|
151
159
|
? {
|
|
152
160
|
product,
|
|
@@ -162,11 +170,12 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
|
|
|
162
170
|
togglePin,
|
|
163
171
|
enableProduct,
|
|
164
172
|
productHref,
|
|
173
|
+
enableHref,
|
|
165
174
|
homeHref,
|
|
166
175
|
search: (q) => (client.search ? client.search(q, activeTeam?.id ?? null) : Promise.resolve([])),
|
|
167
176
|
refresh,
|
|
168
177
|
}
|
|
169
|
-
: null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, enableProduct, productHref, homeHref, refresh, client]);
|
|
178
|
+
: null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, enableProduct, productHref, enableHref, homeHref, refresh, client]);
|
|
170
179
|
if (!value)
|
|
171
180
|
return _jsx(Ctx.Provider, { value: null, children: children });
|
|
172
181
|
return _jsx(Ctx.Provider, { value: value, children: children });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"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"}
|
package/dist/ScopeRail.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare const RailButton: import("styled-components/dist/types").IStyledC
|
|
|
3
3
|
}, {
|
|
4
4
|
$on?: boolean | undefined;
|
|
5
5
|
$accent?: string | undefined;
|
|
6
|
+
$off?: boolean | undefined;
|
|
6
7
|
}>> & string;
|
|
7
8
|
export declare function ScopeRail({ onOpenLauncher, onOpenAccount }: {
|
|
8
9
|
onOpenLauncher: () => void;
|
package/dist/ScopeRail.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScopeRail.d.ts","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"AAyCA,eAAO,MAAM,UAAU;;;UAAoB,OAAO,GAAG,SAAS;cAAY,MAAM,GAAG,SAAS;WAAS,OAAO,GAAG,SAAS;YAmBvH,CAAC;AAqCF,wBAAgB,SAAS,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE;IAAE,cAAc,EAAE,MAAM,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,CAAA;CAAE,+BAgDrH"}
|
package/dist/ScopeRail.js
CHANGED
|
@@ -31,19 +31,40 @@ const Divider = styled.div `
|
|
|
31
31
|
background: ${v.line2};
|
|
32
32
|
margin: 4px 0;
|
|
33
33
|
`;
|
|
34
|
+
// `$off`: a pinned product the active team has not enabled. Same convention the
|
|
35
|
+
// kit uses everywhere else for a disabled control (Charts' hidden series,
|
|
36
|
+
// Form's disabled toggle) — 0.55 opacity and the faint colour — so it reads as
|
|
37
|
+
// unavailable rather than as a different product.
|
|
34
38
|
export const RailButton = styled.a `
|
|
35
39
|
width: 40px; height: 40px;
|
|
36
40
|
border-radius: 10px;
|
|
37
41
|
display: grid; place-items: center;
|
|
38
|
-
|
|
42
|
+
position: relative;
|
|
43
|
+
color: ${(p) => (p.$off ? v.faint : (p.$accent ?? v.muted))};
|
|
44
|
+
opacity: ${(p) => (p.$off ? 0.55 : 1)};
|
|
39
45
|
background: ${(p) => (p.$on ? v.brand16 : "transparent")};
|
|
40
46
|
box-shadow: ${(p) => (p.$on ? `inset 0 0 0 1px ${v.brand55}` : "none")};
|
|
41
47
|
border: 0;
|
|
42
48
|
cursor: pointer;
|
|
43
49
|
text-decoration: none;
|
|
44
50
|
font-size: 18px;
|
|
45
|
-
transition: background 0.14s ease, color 0.14s ease;
|
|
46
|
-
&:hover {
|
|
51
|
+
transition: background 0.14s ease, color 0.14s ease, opacity 0.14s ease;
|
|
52
|
+
&:hover {
|
|
53
|
+
background: ${(p) => (p.$on ? v.brand16 : v.hover)};
|
|
54
|
+
color: ${(p) => (p.$off ? v.text : (p.$accent ?? v.text))};
|
|
55
|
+
opacity: 1;
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
// A plus, not a warning: the tile is an invitation to turn the product on, and
|
|
59
|
+
// a red dot on half your rail reads as breakage.
|
|
60
|
+
const OffMark = styled.span `
|
|
61
|
+
position: absolute; bottom: -1px; right: -1px;
|
|
62
|
+
width: 13px; height: 13px; border-radius: 999px;
|
|
63
|
+
display: grid; place-items: center;
|
|
64
|
+
font-size: 8px;
|
|
65
|
+
color: ${v.faint};
|
|
66
|
+
background: ${v.sidebar};
|
|
67
|
+
box-shadow: 0 0 0 1px ${v.line2};
|
|
47
68
|
`;
|
|
48
69
|
const Avatar = styled.span `
|
|
49
70
|
width: 30px; height: 30px;
|
|
@@ -68,6 +89,13 @@ export function ScopeRail({ onOpenLauncher, onOpenAccount }) {
|
|
|
68
89
|
const c = useConsole();
|
|
69
90
|
const theme = useTheme();
|
|
70
91
|
const tiles = c.products.filter((p) => c.pinned.includes(p.key) || p.key === c.product).filter((p) => p.key !== "home");
|
|
71
|
-
return (_jsxs(Rail, { "aria-label": "Products", children: [_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" }), _jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) }), _jsx(Divider, {}), tiles.map((p) =>
|
|
92
|
+
return (_jsxs(Rail, { "aria-label": "Products", children: [_jsx(Logo, { href: c.homeHref, "aria-label": "Xeonr Cloud Console", children: "X" }), _jsx(RailButton, { href: c.homeHref, "$on": c.product === "home", "aria-label": "Home", title: "Home", children: _jsx(Icon, { name: "home" }) }), _jsx(Divider, {}), tiles.map((p) => {
|
|
93
|
+
// A pinned product the team has not enabled used to render as fully
|
|
94
|
+
// live and link into a product holding no binding for this team, which
|
|
95
|
+
// is a dead end. Send it to the console home's enable prompt instead.
|
|
96
|
+
const off = p.status === "live" && !p.enabled;
|
|
97
|
+
const teamName = c.activeTeam?.name || c.activeTeam?.slug;
|
|
98
|
+
return (_jsxs(RailButton, { href: off ? c.enableHref(p.key) : c.productHref(p), "$on": p.key === c.product, "$accent": p.colour, "$off": off, "aria-label": off ? `${p.name} — not enabled, enable it` : p.name, title: off ? `${p.name} is not enabled${teamName ? ` for ${teamName}` : ""} — click to enable` : p.name, children: [_jsx(Icon, { name: p.icon }), off ? _jsx(OffMark, { "aria-hidden": "true", children: _jsx(Icon, { name: "add" }) }) : null] }, p.key));
|
|
99
|
+
}), _jsx(RailButton, { as: "button", type: "button", onClick: onOpenLauncher, "aria-label": "All products", title: "All products", children: _jsx(Icon, { name: "launcher" }) }), _jsx(Spacer, {}), _jsx(RailButton, { as: "button", type: "button", onClick: theme.cycle, "aria-label": `Theme: ${theme.pref}`, title: `Theme: ${theme.pref}`, children: _jsx(Icon, { name: theme.pref === "system" ? "system" : theme.resolved === "dark" ? "moon" : "sun" }) }), _jsx(RailButton, { as: "button", type: "button", onClick: onOpenAccount, "aria-label": "Account menu", title: c.me.displayName, children: _jsxs(Avatar, { children: [initials(c.me.displayName), c.invitations.length > 0 ? _jsx(Dot, { "aria-label": `${c.invitations.length} pending invitations` }) : null] }) })] }));
|
|
72
100
|
}
|
|
73
101
|
//# sourceMappingURL=ScopeRail.js.map
|
package/dist/ScopeRail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":";AAAA,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;CACjC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAA;;;gBAGL,CAAC,CAAC,IAAI;WACX,CAAC,CAAC,OAAO;;;;;CAKnB,CAAC;AAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;gBAEV,CAAC,CAAC,KAAK;;CAEtB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ScopeRail.js","sourceRoot":"","sources":["../src/ScopeRail.tsx"],"names":[],"mappings":"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"}
|
package/dist/TeamCard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamCard.d.ts","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TeamCard.d.ts","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"AAuHA,wBAAgB,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,+BAyGlG"}
|
package/dist/TeamCard.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import styled from "styled-components";
|
|
4
4
|
import { Icon, v } from "@xeonr/platform-ui";
|
|
@@ -6,8 +6,15 @@ import { useConsole } from "./ConsoleProvider.js";
|
|
|
6
6
|
import { ShellLink } from "./links.js";
|
|
7
7
|
// The team switcher card at the top of the section sidebar. It belongs to the
|
|
8
8
|
// shell; the sections under it belong to the product. Team management itself
|
|
9
|
-
// lives in the
|
|
9
|
+
// lives in the console home (CP and Functions each built and deleted their
|
|
10
10
|
// own), so the menu links out for that and only *switches* here.
|
|
11
|
+
//
|
|
12
|
+
// The list is in two parts. A team that has not enabled this product cannot be
|
|
13
|
+
// switched into — the product holds no binding for it — but hiding it is worse
|
|
14
|
+
// than showing it: to someone who sees that team in every other console, a
|
|
15
|
+
// switcher that omits it looks broken. So those teams appear under their own
|
|
16
|
+
// heading and lead to the console home's enable prompt, and a team the caller
|
|
17
|
+
// could not enable it for anyway is shown without being offered.
|
|
11
18
|
const Card = styled.button `
|
|
12
19
|
width: 100%;
|
|
13
20
|
text-align: left;
|
|
@@ -86,6 +93,13 @@ const Warn = styled.div `
|
|
|
86
93
|
word-break: break-word;
|
|
87
94
|
`;
|
|
88
95
|
const Empty = styled.div `font-size: 12px; color: ${v.faint}; padding: 8px 10px;`;
|
|
96
|
+
// An unentitled team, and one the caller cannot act on: same 0.55/faint the kit
|
|
97
|
+
// uses for any disabled control.
|
|
98
|
+
const OffItem = styled(Item) `
|
|
99
|
+
opacity: ${(p) => (p.$mute ? 0.55 : 1)};
|
|
100
|
+
cursor: ${(p) => (p.$mute ? "default" : "pointer")};
|
|
101
|
+
&:hover { background: ${(p) => (p.$mute ? "transparent" : v.hover)}; }
|
|
102
|
+
`;
|
|
89
103
|
function initials(name) {
|
|
90
104
|
return name.split(/[\s-]+/).map((s) => s[0] ?? "").join("").slice(0, 2).toUpperCase();
|
|
91
105
|
}
|
|
@@ -112,9 +126,27 @@ export function TeamCard({ productLabel, authOrigin }) {
|
|
|
112
126
|
};
|
|
113
127
|
}, [open]);
|
|
114
128
|
const t = c.activeTeam;
|
|
115
|
-
|
|
129
|
+
// `entitled` is optional: a BFF that predates it, or auth's own portal whose
|
|
130
|
+
// client cannot know, sends nothing — and those lists only ever contained
|
|
131
|
+
// usable teams, so absent means yes.
|
|
132
|
+
const usable = c.teams.filter((team) => team.entitled !== false);
|
|
133
|
+
const offTeams = c.teams.filter((team) => team.entitled === false);
|
|
134
|
+
return (_jsxs("div", { ref: ref, style: { position: "relative" }, children: [_jsxs(Card, { type: "button", "aria-haspopup": "menu", "aria-expanded": open, onClick: () => setOpen((o) => !o), children: [_jsx(Tile, { "$src": t?.avatarUrl, children: t ? initials(t.name || t.slug) : "?" }), _jsxs(Text, { children: [_jsx("b", { children: t ? t.name || t.slug : "Choose a team" }), _jsx("span", { children: t ? `${t.role} · ${productLabel}` : productLabel })] }), _jsx(Chev, { children: _jsx(Icon, { name: "chevron-down", size: 14 }) })] }), open ? (_jsxs(Menu, { role: "menu", children: [_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) => (_jsxs(Item, { role: "menuitemradio", "aria-checked": team.id === t?.id, "$on": team.id === t?.id, onClick: () => {
|
|
116
135
|
setOpen(false);
|
|
117
136
|
c.setTeam(team.id);
|
|
118
|
-
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: team.role })] }, team.id))),
|
|
137
|
+
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: team.role })] }, team.id))), offTeams.length > 0 ? (_jsxs(_Fragment, { children: [_jsx(MenuLabel, { children: "Not enabled here" }), offTeams.map((team) => {
|
|
138
|
+
const mute = team.canEnable === false;
|
|
139
|
+
return (_jsxs(OffItem, { role: "menuitem", "$mute": mute, "aria-disabled": mute, title: mute
|
|
140
|
+
? `${productLabel} is not enabled for this team, and only an owner can enable it`
|
|
141
|
+
: `Enable ${productLabel} for this team`, onClick: () => {
|
|
142
|
+
if (mute)
|
|
143
|
+
return;
|
|
144
|
+
setOpen(false);
|
|
145
|
+
// Enabling lives on the console home, so go there with the
|
|
146
|
+
// product named rather than into a product this team has no
|
|
147
|
+
// binding for.
|
|
148
|
+
window.location.assign(c.enableHref(c.product, team.slug));
|
|
149
|
+
}, children: [_jsx(Tile, { "$src": team.avatarUrl, style: { width: 24, height: 24, fontSize: 10, borderRadius: 7 }, children: initials(team.name || team.slug) }), team.name || team.slug, _jsx("small", { children: mute ? "ask an owner" : "enable" })] }, team.id));
|
|
150
|
+
})] })) : null, _jsx(Hair, {}), t ? (_jsxs(ItemLink, { href: `${c.homeHref}/members`, mark: _jsx(Icon, { name: "external" }), onClick: () => setOpen(false), children: [_jsx(Icon, { name: "members" }), " Members & roles"] })) : null, _jsxs(ItemLink, { href: `${authOrigin}/teams?new=1`, mark: _jsx(Icon, { name: "external" }), onClick: () => setOpen(false), children: [_jsx(Icon, { name: "add" }), " New team"] })] })) : null] }));
|
|
119
151
|
}
|
|
120
152
|
//# sourceMappingURL=TeamCard.js.map
|
package/dist/TeamCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamCard.js","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAa,CAAC;AAExC,8EAA8E;AAC9E,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"TeamCard.js","sourceRoot":"","sources":["../src/TeamCard.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -32,6 +32,14 @@ export interface Team {
|
|
|
32
32
|
role: "owner" | "member";
|
|
33
33
|
/** this product's team-typed application roles for the caller */
|
|
34
34
|
roles: string[];
|
|
35
|
+
/**
|
|
36
|
+
* Whether this team has THIS product enabled. Optional and defaulting to true:
|
|
37
|
+
* an older BFF sends only usable teams, and auth's own portal implements this
|
|
38
|
+
* client against a private RPC that has no entitlement concept at all.
|
|
39
|
+
*/
|
|
40
|
+
entitled?: boolean | undefined;
|
|
41
|
+
/** Whether the caller could enable it for this team themselves. */
|
|
42
|
+
canEnable?: boolean | undefined;
|
|
35
43
|
}
|
|
36
44
|
export interface Me {
|
|
37
45
|
subject: string;
|
|
@@ -55,7 +63,12 @@ export interface Invitation {
|
|
|
55
63
|
/** Server-truth for what travels between consoles (ConsoleService.GetContext). */
|
|
56
64
|
export interface ConsoleContext {
|
|
57
65
|
activeTeam: string | null;
|
|
58
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Null means nobody has chosen yet, so the registry's pinned-by-default set
|
|
68
|
+
* applies. An empty array is a choice — "no pins" — and must not revive the
|
|
69
|
+
* defaults. Older BFFs always send an array; treat that as before.
|
|
70
|
+
*/
|
|
71
|
+
pinnedProducts: string[] | null;
|
|
59
72
|
theme: "system" | "light" | "dark";
|
|
60
73
|
}
|
|
61
74
|
export interface ConsoleClient {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,wGAAwG;AACxG,MAAM,WAAW,OAAO;IACtB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,iEAAiE;IACjE,KAAK,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xeonr/console-shell",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "The Xeonr Cloud Console chrome: product rail, team switcher, section sidebar, top bar, ⌘K and the All-products launcher, plus the console context hooks every product console mounts.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|