@xeonr/console-shell 0.1.7 → 0.2.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.
@@ -20,6 +20,11 @@ export interface ConsoleState {
20
20
  loading: boolean;
21
21
  setTeam(id: string): void;
22
22
  togglePin(key: string): void;
23
+ /**
24
+ * Entitle the active team to a product, then re-read the registry so the
25
+ * caller's tile actually changes. Rejects with auth's own refusal text.
26
+ */
27
+ enableProduct(p: Product): Promise<void>;
23
28
  /** absolute link into another product for the active team */
24
29
  productHref(p: Product, path?: string): string;
25
30
  /** the console home for the active team (homeOrigin, else a "home" registry entry, else "/") */
@@ -36,9 +41,15 @@ export interface ConsoleProviderProps {
36
41
  onTeamChange?: ((team: Team) => void) | undefined;
37
42
  /** the console home origin, for the rail's Home tile */
38
43
  homeOrigin?: string | undefined;
44
+ /**
45
+ * Called when a background write the shell performs on its own (pin, team
46
+ * switch) fails. Without it those failures were fire-and-forget: the optimistic
47
+ * UI stuck and the write silently never happened. Wire it to the host's toast.
48
+ */
49
+ onError?: ((err: unknown) => void) | undefined;
39
50
  children: ReactNode;
40
51
  }
41
- export declare function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, children }: ConsoleProviderProps): import("react").JSX.Element;
52
+ export declare function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, onError, children }: ConsoleProviderProps): import("react").JSX.Element;
42
53
  /** Null while the provider is still loading — the shell renders its skeleton then. */
43
54
  export declare function useConsoleMaybe(): ConsoleState | null;
44
55
  export declare function useConsole(): ConsoleState;
@@ -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,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,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BA6GtH;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,UAAU,IAAI,YAAY,CAIzC"}
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,+BA+K/H;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,wBAAgB,UAAU,IAAI,YAAY,CAIzC"}
@@ -11,21 +11,48 @@ import { useTheme } from "@xeonr/platform-ui";
11
11
  // via `onTeamChange` and navigates itself; the shell never routes for it.
12
12
  export const MAX_PINNED = 6;
13
13
  const Ctx = createContext(null);
14
- export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, children }) {
14
+ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeOrigin, onError, children }) {
15
15
  const [me, setMe] = useState(null);
16
16
  const [ctx, setCtx] = useState(null);
17
17
  const [products, setProducts] = useState([]);
18
18
  const [invitations, setInvitations] = useState([]);
19
19
  const [tick, setTick] = useState(0);
20
20
  const theme = useTheme();
21
+ // Pins are held here rather than derived from `ctx`, because a toggle that
22
+ // only updated `ctx` was dropped outright whenever `ctx` was still null —
23
+ // which is the whole load window.
24
+ //
25
+ // `null` means "not chosen yet, use the registry defaults"; a list means
26
+ // "this is my set", including the empty one. The BFF's wire format cannot
27
+ // yet say "never set" (it normalises nil to []), so unpinning down to zero
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.
30
+ const [pins, setPins] = useState(null);
21
31
  useEffect(() => {
22
32
  let live = true;
23
- void Promise.all([client.me(), client.getContext(), client.listMyInvitations()]).then(([m, c, inv]) => {
33
+ // Settled, not all: `me` is what lifts the shell out of its skeleton, and a
34
+ // single failing /console/context or /console/invitations used to reject the
35
+ // whole Promise.all and leave the console loading forever. Context and
36
+ // invitations are chrome; identity is not.
37
+ void Promise.allSettled([client.me(), client.getContext(), client.listMyInvitations()]).then(([mr, cr, ir]) => {
24
38
  if (!live)
25
39
  return;
40
+ if (mr.status === "rejected") {
41
+ onError?.(mr.reason);
42
+ return;
43
+ }
44
+ const m = mr.value;
45
+ const c = cr.status === "fulfilled" ? cr.value : { activeTeam: null, pinnedProducts: [], theme: "system" };
46
+ if (cr.status === "rejected")
47
+ onError?.(cr.reason);
48
+ const inv = ir.status === "fulfilled" ? ir.value : [];
26
49
  setMe(m);
27
50
  setCtx(c);
28
51
  setInvitations(inv);
52
+ // The BFF answers [] both for "no pins" and for "never set", so treat an
53
+ // empty list from the server as unset and let the defaults apply; every
54
+ // later toggle writes a concrete list and takes over from there.
55
+ setPins((cur) => cur ?? (c.pinnedProducts.length > 0 ? c.pinnedProducts : null));
29
56
  // The server-held theme follows you across hosts; local preference wins
30
57
  // only if it was set explicitly on this host.
31
58
  if (theme.pref === "system" && c.theme !== "system")
@@ -45,32 +72,69 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
45
72
  return me.teams.find((t) => t.id === ctx.activeTeam) ?? null;
46
73
  return me.teams[0] ?? null;
47
74
  }, [me, ctx, teamSlug]);
75
+ // `tick` belongs here: refresh() is what a caller invokes after enabling a
76
+ // product, and without it the registry was never re-read — the tile kept its
77
+ // stale enabled:false and appeared to switch back.
48
78
  useEffect(() => {
49
79
  let live = true;
50
80
  void client.listProducts(activeTeam?.id ?? null).then((ps) => live && setProducts(ps));
51
81
  return () => {
52
82
  live = false;
53
83
  };
54
- }, [client, activeTeam?.id]);
84
+ }, [client, activeTeam?.id, tick]);
55
85
  const pinned = useMemo(() => {
56
- const fromCtx = ctx?.pinnedProducts ?? [];
86
+ if (pins === null)
87
+ return products.filter((p) => p.pinnedByDefault).map((p) => p.key);
88
+ // Filter to products that exist, but only once we HAVE products: doing it
89
+ // against an empty registry wipes the set on the first render pass.
90
+ if (products.length === 0)
91
+ return pins;
57
92
  const known = new Set(products.map((p) => p.key));
58
- const list = fromCtx.filter((k) => known.has(k));
59
- return list.length > 0 ? list : products.filter((p) => p.pinnedByDefault).map((p) => p.key);
60
- }, [ctx, products]);
93
+ return pins.filter((k) => known.has(k));
94
+ }, [pins, products]);
61
95
  const setTeam = useCallback((id) => {
62
96
  const t = me?.teams.find((x) => x.id === id);
63
97
  if (!t)
64
98
  return;
65
- setCtx((c) => (c ? { ...c, activeTeam: id } : c));
66
- void client.setContext({ activeTeam: id });
99
+ const prev = ctx?.activeTeam ?? null;
100
+ setCtx((c) => (c ? { ...c, activeTeam: id } : { activeTeam: id, pinnedProducts: pins ?? [], theme: "system" }));
101
+ void client.setContext({ activeTeam: id }).catch((err) => {
102
+ setCtx((c) => (c ? { ...c, activeTeam: prev } : c));
103
+ onError?.(err);
104
+ });
67
105
  onTeamChange?.(t);
68
- }, [client, me, onTeamChange]);
106
+ }, [client, ctx, me, onTeamChange, onError, pins]);
69
107
  const togglePin = useCallback((key) => {
70
- const next = pinned.includes(key) ? pinned.filter((k) => k !== key) : [...pinned, key].slice(-MAX_PINNED);
71
- setCtx((c) => (c ? { ...c, pinnedProducts: next } : c));
72
- void client.setContext({ pinnedProducts: next });
73
- }, [client, pinned]);
108
+ const current = pinned;
109
+ const dropping = current.includes(key);
110
+ if (!dropping && current.length >= MAX_PINNED) {
111
+ // Previously the button was simply disabled, which reads as a dead
112
+ // control. Say what the limit is instead.
113
+ onError?.(new Error(`The rail holds ${MAX_PINNED} products. Unpin one first.`));
114
+ return;
115
+ }
116
+ const next = dropping ? current.filter((k) => k !== key) : [...current, key];
117
+ setPins(next);
118
+ void client.setContext({ pinnedProducts: next }).catch((err) => {
119
+ setPins(current);
120
+ onError?.(err);
121
+ });
122
+ }, [client, pinned, onError]);
123
+ const enableProduct = useCallback(async (p) => {
124
+ if (!activeTeam)
125
+ throw new Error("Pick a team before enabling a product.");
126
+ if (!client.enableProduct)
127
+ throw new Error("This console cannot enable products.");
128
+ await client.enableProduct(activeTeam.id, p.key);
129
+ // Re-read rather than patching `enabled` locally: auth decides, and a
130
+ // binding can bring default roles with it that only a fresh read shows.
131
+ setTick((n) => n + 1);
132
+ }, [client, activeTeam]);
133
+ // Stable identity on purpose. Inside the value memo this was a fresh function
134
+ // on every data change, so a caller with `useEffect(… , [c.refresh])` looped
135
+ // forever — and now that refresh re-reads the product registry too, each turn
136
+ // of that loop would cost an extra request.
137
+ const refresh = useCallback(() => setTick((n) => n + 1), []);
74
138
  const productHref = useCallback((p, path = "") => {
75
139
  const team = activeTeam?.slug;
76
140
  const base = p.key === "home" ? (homeOrigin ?? p.origin) : p.origin;
@@ -96,12 +160,13 @@ export function ConsoleProvider({ client, product, teamSlug, onTeamChange, homeO
96
160
  loading: false,
97
161
  setTeam,
98
162
  togglePin,
163
+ enableProduct,
99
164
  productHref,
100
165
  homeHref,
101
166
  search: (q) => (client.search ? client.search(q, activeTeam?.id ?? null) : Promise.resolve([])),
102
- refresh: () => setTick((n) => n + 1),
167
+ refresh,
103
168
  }
104
- : null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, productHref, homeHref, client]);
169
+ : null, [me, product, activeTeam, products, pinned, invitations, setTeam, togglePin, enableProduct, productHref, homeHref, refresh, client]);
105
170
  if (!value)
106
171
  return _jsx(Ctx.Provider, { value: null, children: children });
107
172
  return _jsx(Ctx.Provider, { value: value, children: children });
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleProvider.js","sourceRoot":"","sources":["../src/ConsoleProvider.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleShell.d.ts","sourceRoot":"","sources":["../src/ConsoleShell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAsD1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,gGAAgG;IAChG,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,UAAoC,EACpC,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,GACT,EAAE,iBAAiB,+BAmEnB"}
1
+ {"version":3,"file":"ConsoleShell.d.ts","sourceRoot":"","sources":["../src/ConsoleShell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAuD1C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,gGAAgG;IAChG,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,UAAoC,EACpC,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,OAAO,EAAE,aAAa,EACtB,QAAQ,GACT,EAAE,iBAAiB,+BA0EnB"}
@@ -9,6 +9,7 @@ import { TopBar } from "./TopBar.js";
9
9
  import { CommandPalette } from "./CommandPalette.js";
10
10
  import { Launcher } from "./Launcher.js";
11
11
  import { AccountMenu } from "./AccountMenu.js";
12
+ import { CrumbProvider } from "./crumb.js";
12
13
  // The whole integration contract for a product console:
13
14
  //
14
15
  // <ConsoleProvider client={…} product="functions" teamSlug={slug} onTeamChange={…}>
@@ -75,7 +76,10 @@ export function ConsoleShell({ productLabel, base, sections, crumbs, searchPlace
75
76
  return (_jsxs(_Fragment, { children: [_jsx(Stripe, {}), _jsxs(SkeletonFrame, { "aria-busy": "true", "aria-label": "Loading console", children: [_jsx("div", {}), _jsxs("div", { children: [_jsx(Skeleton, { "$h": "56px", "$r": "12px" }), Array.from({ length: 6 }).map((_, i) => _jsx(Skeleton, { "$h": "34px", "$r": "8px" }, i))] }), _jsxs("div", { children: [_jsx(Skeleton, { "$h": "28px", "$w": "260px" }), _jsx(Skeleton, { "$h": "160px", "$r": "14px" }), _jsx(Skeleton, { "$h": "320px", "$r": "14px" })] })] })] }));
76
77
  }
77
78
  const teamCrumb = c.activeTeam ? [{ label: c.activeTeam.name || c.activeTeam.slug }] : [];
78
- const allCrumbs = [...teamCrumb, { label: productLabel, href: base }, ...(crumbs ?? [])];
79
- return (_jsxs(_Fragment, { children: [_jsx(Stripe, {}), _jsxs(Frame, { children: [_jsx(ScopeRail, { onOpenLauncher: () => setLauncher(true), onOpenAccount: () => setAccount((a) => !a) }), _jsx(SectionSidebar, { open: side, base: base, groups: sections, productLabel: productLabel, authOrigin: authOrigin, docsHref: docsHref, onNavigate: () => setSide(false) }), side ? _jsx(MobileScrim, { onClick: () => setSide(false) }) : null, _jsxs(Main, { children: [_jsx(TopBar, { crumbs: allCrumbs, searchPlaceholder: searchPlaceholder ?? `Search ${productLabel.toLowerCase()}, teams, products…`, onBurger: () => setSide((s) => !s), onSearch: () => setPalette(true), notifications: c.invitations.length, onNotifications: () => setAccount(true) }), _jsx(Page, { "$wide": wide, children: children })] })] }), palette ? _jsx(CommandPalette, { onClose: () => setPalette(false), base: base, groups: sections, productLabel: productLabel }) : null, launcher ? _jsx(Launcher, { onClose: () => setLauncher(false), authOrigin: authOrigin, onEnable: onEnableProduct }) : null, account ? _jsx(AccountMenu, { onClose: closeAccount, authOrigin: authOrigin, config: accountConfig }) : null] }));
79
+ const layoutCrumbs = [...teamCrumb, { label: productLabel, href: base }, ...(crumbs ?? [])];
80
+ return (_jsx(CrumbProvider, { children: (published) => {
81
+ const allCrumbs = [...layoutCrumbs, ...published];
82
+ return (_jsxs(_Fragment, { children: [_jsx(Stripe, {}), _jsxs(Frame, { children: [_jsx(ScopeRail, { onOpenLauncher: () => setLauncher(true), onOpenAccount: () => setAccount((a) => !a) }), _jsx(SectionSidebar, { open: side, base: base, groups: sections, productLabel: productLabel, authOrigin: authOrigin, docsHref: docsHref, onNavigate: () => setSide(false) }), side ? _jsx(MobileScrim, { onClick: () => setSide(false) }) : null, _jsxs(Main, { children: [_jsx(TopBar, { crumbs: allCrumbs, searchPlaceholder: searchPlaceholder ?? `Search ${productLabel.toLowerCase()}, teams, products…`, onBurger: () => setSide((s) => !s), onSearch: () => setPalette(true), notifications: c.invitations.length, onNotifications: () => setAccount(true) }), _jsx(Page, { "$wide": wide, children: children })] })] }), palette ? _jsx(CommandPalette, { onClose: () => setPalette(false), base: base, groups: sections, productLabel: productLabel }) : null, launcher ? _jsx(Launcher, { onClose: () => setLauncher(false), authOrigin: authOrigin, onEnable: onEnableProduct }) : null, account ? _jsx(AccountMenu, { onClose: closeAccount, authOrigin: authOrigin, config: accountConfig }) : null] }));
83
+ } }));
80
84
  }
81
85
  //# sourceMappingURL=ConsoleShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleShell.js","sourceRoot":"","sources":["../src/ConsoleShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsoleShell.js","sourceRoot":"","sources":["../src/ConsoleShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Launcher.d.ts","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,YAAY,CAAC;AA6G3D,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BAiFrJ"}
1
+ {"version":3,"file":"Launcher.d.ts","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,YAAY,CAAC;AAsH3D,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BA8GrJ"}
package/dist/Launcher.js CHANGED
@@ -81,6 +81,14 @@ const Text = styled.div `
81
81
  span { font-size: 12px; color: ${v.muted}; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
82
82
  a { color: inherit; text-decoration: none; }
83
83
  `;
84
+ // Auth's own refusal, verbatim: it says which gate failed, which is the only
85
+ // useful thing to show someone whose Enable did not work.
86
+ const Fail = styled.span `
87
+ font-size: 11px;
88
+ color: ${v.danger};
89
+ max-width: 220px;
90
+ text-align: right;
91
+ `;
84
92
  const Foot = styled.div `
85
93
  display: flex; align-items: center; gap: 12px;
86
94
  padding: 12px 20px;
@@ -100,6 +108,28 @@ function hostOf(origin) {
100
108
  export function Launcher({ onClose, authOrigin, onEnable }) {
101
109
  const c = useConsole();
102
110
  const [q, setQ] = useState("");
111
+ const [enabling, setEnabling] = useState(null);
112
+ const [failed, setFailed] = useState({});
113
+ // Enable used to be `onEnable?.(p)` — an optional host callback that no
114
+ // console ever passed, so the button fired nothing at all. The shell owns it
115
+ // now; a host may still override.
116
+ const enable = async (p) => {
117
+ if (onEnable) {
118
+ onEnable(p);
119
+ return;
120
+ }
121
+ setEnabling(p.key);
122
+ setFailed((f) => { const { [p.key]: _drop, ...rest } = f; return rest; });
123
+ try {
124
+ await c.enableProduct(p);
125
+ }
126
+ catch (err) {
127
+ setFailed((f) => ({ ...f, [p.key]: err instanceof Error ? err.message : `Could not enable ${p.name}` }));
128
+ }
129
+ finally {
130
+ setEnabling(null);
131
+ }
132
+ };
103
133
  const groups = useMemo(() => {
104
134
  const needle = q.trim().toLowerCase();
105
135
  const list = c.products
@@ -112,7 +142,10 @@ export function Launcher({ onClose, authOrigin, onEnable }) {
112
142
  const pinned = c.pinned.includes(p.key);
113
143
  const full = !pinned && c.pinned.length >= MAX_PINNED;
114
144
  const href = c.productHref(p);
115
- return (_jsxs(Row, { "$dim": p.status === "coming_soon", children: [_jsx(Tile, { href: p.status === "live" && p.enabled ? href : undefined, "$c": p.colour, "aria-label": p.name, children: _jsx(Icon, { name: p.icon }) }), _jsxs(Text, { children: [_jsxs("b", { children: [p.status === "live" && p.enabled ? _jsx("a", { href: href, children: p.name }) : p.name, _jsx("code", { children: hostOf(p.origin) })] }), _jsx("span", { children: p.blurb })] }), p.status === "coming_soon" ? (_jsx(StatusPill, { "$tone": "info", children: "Coming soon" })) : p.enabled ? (_jsx(StatusPill, { "$tone": "ok", children: "Enabled" })) : p.canEnable ? (_jsx(AppButton, { size: "xs", onClick: () => onEnable?.(p), children: "Enable" })) : (_jsx(StatusPill, { "$tone": "mut", children: "Not enabled" })), _jsx(IconButton, { type: "button", "aria-label": pinned ? `Unpin ${p.name} from the rail` : `Pin ${p.name} to the rail`, "aria-pressed": pinned, title: full ? `Rail is full (${MAX_PINNED}). Unpin something first.` : undefined, disabled: full || p.status !== "live", onClick: () => c.togglePin(p.key), style: { color: pinned ? v.brand : v.faint }, children: _jsx(Icon, { name: pinned ? "check" : "pin" }) })] }, p.key));
145
+ return (_jsxs(Row, { "$dim": p.status === "coming_soon", children: [_jsx(Tile, { href: p.status === "live" && p.enabled ? href : undefined, "$c": p.colour, "aria-label": p.name, children: _jsx(Icon, { name: p.icon }) }), _jsxs(Text, { children: [_jsxs("b", { children: [p.status === "live" && p.enabled ? _jsx("a", { href: href, children: p.name }) : p.name, _jsx("code", { children: hostOf(p.origin) })] }), _jsx("span", { children: p.blurb })] }), p.status === "coming_soon" ? (_jsx(StatusPill, { "$tone": "info", children: "Coming soon" })) : p.enabled ? (_jsx(StatusPill, { "$tone": "ok", children: "Enabled" })) : p.canEnable ? (_jsxs("span", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "flex-end" }, children: [_jsx(AppButton, { size: "xs", loading: enabling === p.key, onClick: () => void enable(p), children: enabling === p.key ? "Enabling…" : "Enable" }), failed[p.key] ? _jsx(Fail, { children: failed[p.key] }) : null] })) : (
146
+ // Say why rather than only that it is off: only an owner can entitle a
147
+ // team, and some products are not self-serve at all.
148
+ _jsx(StatusPill, { "$tone": "mut", title: "Only a team owner can enable this, and only for a self-serve product", children: "Not enabled" })), _jsx(IconButton, { type: "button", "aria-label": pinned ? `Unpin ${p.name} from the rail` : `Pin ${p.name} to the rail`, "aria-pressed": pinned, title: full ? `The rail holds ${MAX_PINNED} products. Unpin one first.` : undefined, disabled: p.status !== "live", onClick: () => c.togglePin(p.key), style: { color: pinned ? v.brand : v.faint, opacity: full ? 0.55 : 1 }, children: _jsx(Icon, { name: pinned ? "check" : "pin" }) })] }, p.key));
116
149
  };
117
150
  return (_jsx(Scrim, { onMouseDown: (e) => e.target === e.currentTarget && onClose(), children: _jsxs(Dialog, { role: "dialog", "aria-modal": "true", "aria-label": "All products", children: [_jsx(Stripe, {}), _jsxs(Head, { children: [_jsxs("div", { children: [_jsx("h2", { children: "All products" }), _jsxs("p", { children: ["What ", _jsx("b", { children: c.activeTeam?.name ?? c.activeTeam?.slug ?? "this team" }), " can use. Pin up to ", MAX_PINNED, " to the rail; the rest live here and in \u2318K."] })] }), _jsxs("div", { style: { marginLeft: "auto", display: "flex", gap: 8, alignItems: "center" }, children: [_jsx(Filter, { value: q, onChange: (e) => setQ(e.target.value), placeholder: "Filter products", "aria-label": "Filter products", autoFocus: true }), _jsx(IconButton, { type: "button", "aria-label": "Close", onClick: onClose, children: _jsx(Icon, { name: "close" }) })] })] }), _jsxs(Body, { children: [_jsx(Col, { children: groups.slice(0, half).map((g) => _jsxs(Group, { children: [_jsx(GroupLabel, { children: g.cat }), g.items.map(row)] }, g.cat)) }), _jsx(Col, { children: groups.slice(half).map((g) => _jsxs(Group, { children: [_jsx(GroupLabel, { children: g.cat }), g.items.map(row)] }, g.cat)) })] }), _jsxs(Foot, { children: [_jsx("span", { children: "New products appear here automatically once registered in Auth as a console product and bound to a team." }), c.me.isOrgAdmin ? (_jsxs("a", { href: `${authOrigin}/applications`, children: ["Manage the catalogue ", _jsx(Icon, { name: "external" })] })) : null] })] }) }));
118
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Launcher.js","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Launcher.js","sourceRoot":"","sources":["../src/Launcher.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvG,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,SAAa,EAAE,IAAI,GAAE,wBAA6B,GAAG,aAAa,CA0BvG;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CAC1D;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,SAAM,GAAG,aAAa,CAkChF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvG,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,SAAa,EAAE,IAAI,GAAE,wBAA6B,GAAG,aAAa,CAiDvG;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CAC1D;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,SAAM,GAAG,aAAa,CAuChF"}
package/dist/client.js CHANGED
@@ -23,6 +23,29 @@ export function httpConsoleClient(base = "/console", opts = {}) {
23
23
  getContext: () => call("/context"),
24
24
  setContext: (patch) => call("/context", { method: "PATCH", body: JSON.stringify(patch) }),
25
25
  listMyInvitations: () => call("/invitations"),
26
+ // Not `call`: this answers 204 with no body, and its failure body is auth's
27
+ // own message ("that product is not self-serve", "you do not own this
28
+ // team"), which the caller shows rather than a status code.
29
+ enableProduct: async (team, product) => {
30
+ const res = await fetch(`${base}/products/enable`, {
31
+ method: "POST",
32
+ credentials: "same-origin",
33
+ headers: { "content-type": "application/json" },
34
+ body: JSON.stringify({ team, product }),
35
+ });
36
+ if (res.status === 401) {
37
+ if (opts.onUnauthenticated) {
38
+ opts.onUnauthenticated("/products/enable");
39
+ return;
40
+ }
41
+ window.location.assign(`/auth/login?next=${encodeURIComponent(window.location.pathname + window.location.search)}`);
42
+ return new Promise(() => { });
43
+ }
44
+ if (!res.ok) {
45
+ const text = (await res.text().catch(() => "")).trim();
46
+ throw new Error(text || `Could not enable ${product} (${res.status})`);
47
+ }
48
+ },
26
49
  search: (query, team) => call(`/search?q=${encodeURIComponent(query)}${team ? `&team=${encodeURIComponent(team)}` : ""}`),
27
50
  };
28
51
  }
@@ -63,6 +86,12 @@ export function mockConsoleClient(fx, delayMs = 120) {
63
86
  return wait(next);
64
87
  },
65
88
  listMyInvitations: () => wait(fx.invitations ?? []),
89
+ enableProduct: async (_team, product) => {
90
+ const p = fx.products.find((x) => x.key === product);
91
+ if (p)
92
+ p.enabled = true;
93
+ await wait(undefined);
94
+ },
66
95
  search: (q) => wait(fx.search ? fx.search(q) : []),
67
96
  };
68
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from "react";
2
+ import type { Crumb } from "./TopBar.tsx";
3
+ /**
4
+ * Publish the trailing breadcrumb for the current screen. Safe to call outside
5
+ * a ConsoleShell (it does nothing), so a screen can be rendered in isolation —
6
+ * a test, a storybook — without a provider.
7
+ */
8
+ export declare function useCrumb(label: ReactNode | undefined, href?: string | undefined): void;
9
+ /** Wraps the shell's children; `published` is what the screens have set. */
10
+ export declare function CrumbProvider({ children }: {
11
+ children: (published: Crumb[]) => ReactNode;
12
+ }): import("react").JSX.Element;
13
+ //# sourceMappingURL=crumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crumb.d.ts","sourceRoot":"","sources":["../src/crumb.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAuB1C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUtF;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,SAAS,CAAA;CAAE,+BA4B1F"}
package/dist/crumb.js ADDED
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useEffect, useId, useMemo, useState } from "react";
3
+ const SinkContext = createContext(null);
4
+ /**
5
+ * Publish the trailing breadcrumb for the current screen. Safe to call outside
6
+ * a ConsoleShell (it does nothing), so a screen can be rendered in isolation —
7
+ * a test, a storybook — without a provider.
8
+ */
9
+ export function useCrumb(label, href) {
10
+ const sink = useContext(SinkContext);
11
+ const id = useId();
12
+ useEffect(() => {
13
+ if (!sink)
14
+ return;
15
+ sink.set(id, label === undefined || label === null || label === ""
16
+ ? undefined
17
+ : { label: label, ...(href !== undefined ? { href } : {}) });
18
+ return () => sink.clear(id);
19
+ }, [sink, id, label, href]);
20
+ }
21
+ /** Wraps the shell's children; `published` is what the screens have set. */
22
+ export function CrumbProvider({ children }) {
23
+ const [map, setMap] = useState({});
24
+ // Insertion order is mount order, which for nested routes is outermost
25
+ // first — a layout's crumb before the screen's, which is the reading order.
26
+ const [order, setOrder] = useState([]);
27
+ const sink = useMemo(() => ({
28
+ set: (id, crumb) => {
29
+ setMap((m) => (m[id] === crumb ? m : { ...m, [id]: crumb }));
30
+ setOrder((o) => (o.includes(id) ? o : [...o, id]));
31
+ },
32
+ clear: (id) => {
33
+ setMap((m) => {
34
+ if (!(id in m))
35
+ return m;
36
+ const next = { ...m };
37
+ delete next[id];
38
+ return next;
39
+ });
40
+ setOrder((o) => (o.includes(id) ? o.filter((x) => x !== id) : o));
41
+ },
42
+ }), []);
43
+ const published = useMemo(() => order.map((id) => map[id]).filter((c) => !!c), [order, map]);
44
+ return _jsx(SinkContext.Provider, { value: sink, children: children(published) });
45
+ }
46
+ //# sourceMappingURL=crumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crumb.js","sourceRoot":"","sources":["../src/crumb.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,5 +5,6 @@ export { ShellLink, isSameOrigin } from "./links.tsx";
5
5
  export type { AccountMenuConfig, ConsoleAccount } from "./AccountMenu.tsx";
6
6
  export { sectionFor, type NavGroup, type NavItem } from "./nav.ts";
7
7
  export type { Crumb } from "./TopBar.tsx";
8
+ export { useCrumb } from "./crumb.tsx";
8
9
  export type * from "./types.ts";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/I,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACnE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,mBAAmB,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/I,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AACnE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,mBAAmB,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -4,4 +4,5 @@ export { ConsoleShell } from "./ConsoleShell.js";
4
4
  export { httpConsoleClient, mockConsoleClient } from "./client.js";
5
5
  export { ShellLink, isSameOrigin } from "./links.js";
6
6
  export { sectionFor } from "./nav.js";
7
+ export { useCrumb } from "./crumb.js";
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAgD,MAAM,sBAAuB,CAAC;AAC/I,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoD,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAa,CAAC;AAEtD,OAAO,EAAE,UAAU,EAA+B,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAgD,MAAM,sBAAuB,CAAC;AAC/I,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoD,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAa,CAAC;AAEtD,OAAO,EAAE,UAAU,EAA+B,MAAM,UAAU,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAa,CAAC"}
package/dist/types.d.ts CHANGED
@@ -64,6 +64,17 @@ export interface ConsoleClient {
64
64
  getContext(): Promise<ConsoleContext>;
65
65
  setContext(patch: Partial<ConsoleContext>): Promise<ConsoleContext>;
66
66
  listMyInvitations(): Promise<Invitation[]>;
67
+ /**
68
+ * Entitle a team to a product. The BFF endpoint is mounted by every console,
69
+ * so this belongs to the shell rather than each host wiring its own — which
70
+ * is how the launcher's Enable button came to fire nothing at all.
71
+ * Rejects with auth's own refusal text, which says WHICH gate failed.
72
+ *
73
+ * Optional, because not every client is a BFF: auth's own portal implements
74
+ * this interface directly against the private TeamsService, and has no such
75
+ * endpoint. The shell refuses rather than pretending when it is absent.
76
+ */
77
+ enableProduct?(team: string, product: string): Promise<void>;
67
78
  /** federated ⌘K, tier 2 — optional until products expose /console/search */
68
79
  search?(query: string, team: string | null): Promise<SearchResult[]>;
69
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.1.7",
3
+ "version": "0.2.0",
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",
@@ -19,7 +19,7 @@
19
19
  "react-dom": "^19.0.0",
20
20
  "react-router-dom": "^7.0.0",
21
21
  "styled-components": "^6.0.0",
22
- "@xeonr/platform-ui": "^0.3.13"
22
+ "@xeonr/platform-ui": "^0.3.16"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/react": "^19.1.0",
@@ -29,7 +29,7 @@
29
29
  "react-router-dom": "^7.8.0",
30
30
  "styled-components": "^6.1.19",
31
31
  "typescript": "^5.9.2",
32
- "@xeonr/platform-ui": "0.3.13"
32
+ "@xeonr/platform-ui": "0.3.16"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsc -p tsconfig.build.json",