@stigmer/react 3.12.9 → 3.14.0-dev.20260910084630

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 (43) hide show
  1. package/cursor-accounts/CursorAccountsConsole.d.ts +3 -2
  2. package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -1
  3. package/cursor-accounts/CursorAccountsConsole.js +3 -2
  4. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  5. package/cursor-accounts/MemberCoverageTable.d.ts +11 -3
  6. package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -1
  7. package/cursor-accounts/MemberCoverageTable.js +70 -42
  8. package/cursor-accounts/MemberCoverageTable.js.map +1 -1
  9. package/cursor-accounts/MemberKeysPanel.d.ts.map +1 -1
  10. package/cursor-accounts/MemberKeysPanel.js +4 -1
  11. package/cursor-accounts/MemberKeysPanel.js.map +1 -1
  12. package/internal/ResizableSplit.d.ts +1 -1
  13. package/package.json +4 -4
  14. package/provider-standing/useProviderStanding.d.ts +1 -1
  15. package/provider-standing/useProviderStanding.js +1 -1
  16. package/sidebar/SettingsSidebar.d.ts.map +1 -1
  17. package/sidebar/SettingsSidebar.js +3 -3
  18. package/sidebar/SettingsSidebar.js.map +1 -1
  19. package/sidebar/WorkspaceSidebar.d.ts +1 -1
  20. package/sidebar/WorkspaceSidebar.d.ts.map +1 -1
  21. package/sidebar/WorkspaceSidebar.js +19 -15
  22. package/sidebar/WorkspaceSidebar.js.map +1 -1
  23. package/sidebar/chrome.d.ts +21 -7
  24. package/sidebar/chrome.d.ts.map +1 -1
  25. package/sidebar/chrome.js +25 -7
  26. package/sidebar/chrome.js.map +1 -1
  27. package/src/cursor-accounts/CursorAccountsConsole.tsx +3 -2
  28. package/src/cursor-accounts/MemberCoverageTable.tsx +222 -200
  29. package/src/cursor-accounts/MemberKeysPanel.tsx +25 -1
  30. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +64 -8
  31. package/src/cursor-accounts/__tests__/MemberCoverageTable.layout.test.tsx +212 -0
  32. package/src/internal/ResizableSplit.tsx +1 -1
  33. package/src/provider-standing/useProviderStanding.ts +1 -1
  34. package/src/sidebar/SettingsSidebar.tsx +11 -5
  35. package/src/sidebar/WorkspaceSidebar.tsx +75 -67
  36. package/src/sidebar/__tests__/SettingsSidebar.test.tsx +6 -2
  37. package/src/sidebar/chrome.tsx +29 -15
  38. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +11 -9
  39. package/src/workflow/__tests__/WorkflowTaskThread.test.tsx +54 -2
  40. package/src/workflow/thread/WorkflowTaskThread.tsx +47 -22
  41. package/styles.css +1 -1
  42. package/workflow/thread/WorkflowTaskThread.js +34 -11
  43. package/workflow/thread/WorkflowTaskThread.js.map +1 -1
@@ -8,7 +8,7 @@ import { recentActivityStatusBadge } from "../activity/entry-status-badge.js";
8
8
  import { UNSTYLED_LIST } from "../internal/element-resets.js";
9
9
  import { ScrollArea } from "../internal/scroll-area.js";
10
10
  import { Tooltip, TooltipProvider, TooltipTrigger, TooltipContent, } from "../internal/tooltip.js";
11
- import { SidebarChrome, SidebarSeparator, navRowClassName } from "./chrome.js";
11
+ import { SidebarChrome, SidebarSeparator, navRowClassName, sectionLabelClassName, } from "./chrome.js";
12
12
  /**
13
13
  * The console's workspace-zone sidebar: org switcher, primary navigation
14
14
  * (New Session / Dashboard / Conversations / Library), time-bucketed
@@ -22,7 +22,7 @@ import { SidebarChrome, SidebarSeparator, navRowClassName } from "./chrome.js";
22
22
  * from the product because it *is* the product (stigmer/stigmer#317).
23
23
  *
24
24
  * Layout note: the sidebar fills its container's height and defines no
25
- * width — the console's app shell owns the `w-70` (280px) column.
25
+ * width — the console's app shell owns the `w-60` (240px) column.
26
26
  *
27
27
  * @example
28
28
  * ```tsx
@@ -39,20 +39,20 @@ import { SidebarChrome, SidebarSeparator, navRowClassName } from "./chrome.js";
39
39
  export function WorkspaceSidebar({ activeNav = null, renderLink, recentActivity, activeSessionId = null, activeExecutionId = null, renderEntryAccessory, conversationsBadgeCount, footer, isOpen = true, onCollapse, onOrgChanged, now, }) {
40
40
  const { entries, isLoading = false, error = null } = recentActivity;
41
41
  const groups = useMemo(() => groupRecentActivityByTime(entries, now), [entries, now]);
42
- return (_jsxs(SidebarChrome, { ariaLabel: "Main navigation", isOpen: isOpen, onCollapse: onCollapse, onOrgChanged: onOrgChanged, footer: footer, children: [_jsx(PrimaryNavRow, { id: "new-session", href: "/", label: "New Session", icon: Plus, active: activeNav === "new-session", renderLink: renderLink }), _jsx(PrimaryNavRow, { id: "dashboard", href: "/dashboard", label: "Dashboard", icon: LayoutDashboard, active: activeNav === "dashboard", renderLink: renderLink }), _jsx(PrimaryNavRow, { id: "conversations", href: "/conversations", label: "Conversations", icon: MessagesSquare, active: activeNav === "conversations", renderLink: renderLink, accessory: conversationsBadgeCount !== undefined && conversationsBadgeCount > 0 ? (_jsx(WantsHumanBadge, { count: conversationsBadgeCount })) : null }), _jsx(PrimaryNavRow, { id: "library", href: "/library", label: "Library", icon: Library, active: activeNav === "library", renderLink: renderLink }), _jsx(SidebarSeparator, {}), _jsx(ScrollArea, { className: "stg:flex-1", children: _jsxs("div", { className: "stg:p-3", children: [_jsx("p", { className: "stg:text-sidebar-muted-foreground stg:mb-2 stg:px-1 stg:text-[11px] stg:font-semibold stg:tracking-wider stg:uppercase", children: "Recents" }), isLoading ? (_jsx(RecentsSkeletons, {})) : error ? (_jsx(RecentsError, { message: error.message })) : groups.length === 0 ? (_jsx(RecentsEmptyState, {})) : (_jsx(ActivityGroupList, { groups: groups, activeSessionId: activeSessionId, activeExecutionId: activeExecutionId, renderLink: renderLink, renderEntryAccessory: renderEntryAccessory, now: now }))] }) })] }));
42
+ return (_jsxs(SidebarChrome, { ariaLabel: "Main navigation", isOpen: isOpen, onCollapse: onCollapse, onOrgChanged: onOrgChanged, footer: footer, children: [_jsxs("div", { className: "stg:flex stg:flex-none stg:flex-col stg:gap-0.5 stg:px-3 stg:py-1", children: [_jsx(PrimaryNavRow, { id: "new-session", href: "/", label: "New Session", icon: Plus, active: activeNav === "new-session", renderLink: renderLink }), _jsx(PrimaryNavRow, { id: "dashboard", href: "/dashboard", label: "Dashboard", icon: LayoutDashboard, active: activeNav === "dashboard", renderLink: renderLink }), _jsx(PrimaryNavRow, { id: "conversations", href: "/conversations", label: "Conversations", icon: MessagesSquare, active: activeNav === "conversations", renderLink: renderLink, accessory: conversationsBadgeCount !== undefined && conversationsBadgeCount > 0 ? (_jsx(WantsHumanBadge, { count: conversationsBadgeCount })) : null }), _jsx(PrimaryNavRow, { id: "library", href: "/library", label: "Library", icon: Library, active: activeNav === "library", renderLink: renderLink })] }), _jsx(SidebarSeparator, {}), _jsx(ScrollArea, { className: "stg:flex-1", children: _jsxs("div", { className: "stg:p-3", children: [_jsx("p", { className: `${sectionLabelClassName()} stg:mb-2`, children: "Recents" }), isLoading ? (_jsx(RecentsSkeletons, {})) : error ? (_jsx(RecentsError, { message: error.message })) : groups.length === 0 ? (_jsx(RecentsEmptyState, {})) : (_jsx(ActivityGroupList, { groups: groups, activeSessionId: activeSessionId, activeExecutionId: activeExecutionId, renderLink: renderLink, renderEntryAccessory: renderEntryAccessory, now: now }))] }) })] }));
43
43
  }
44
44
  // ---------------------------------------------------------------------------
45
45
  // Internals
46
46
  // ---------------------------------------------------------------------------
47
47
  function PrimaryNavRow({ id, href, label, icon: Icon, active, renderLink, accessory = null, }) {
48
- return (_jsx("div", { className: "stg:flex-none stg:px-3 stg:py-1", children: renderLink({
49
- id,
50
- href,
51
- active,
52
- className: navRowClassName(active),
53
- "aria-current": active ? "page" : undefined,
54
- children: (_jsxs(_Fragment, { children: [_jsx(Icon, { className: "stg:size-4 stg:shrink-0" }), label, accessory] })),
55
- }) }));
48
+ return renderLink({
49
+ id,
50
+ href,
51
+ active,
52
+ className: navRowClassName(active),
53
+ "aria-current": active ? "page" : undefined,
54
+ children: (_jsxs(_Fragment, { children: [_jsx(Icon, { className: "stg:size-4 stg:shrink-0" }), label, accessory] })),
55
+ });
56
56
  }
57
57
  /**
58
58
  * The Conversations row's count pill: how many conversations want a
@@ -67,7 +67,7 @@ function WantsHumanBadge({ count }) {
67
67
  : `${count} conversations need a human` })] }));
68
68
  }
69
69
  function ActivityGroupList({ groups, activeSessionId, activeExecutionId, renderLink, renderEntryAccessory, now, }) {
70
- return (_jsx(TooltipProvider, { children: _jsx("div", { className: "stg:space-y-4", children: groups.map((group) => (_jsxs("div", { children: [_jsx("p", { className: "stg:text-sidebar-muted-foreground stg:mb-1 stg:px-2 stg:text-[10px] stg:font-medium stg:tracking-wider stg:uppercase", children: group.label }), _jsx("ul", { className: `${UNSTYLED_LIST} stg:space-y-0.5`, role: "list", children: group.entries.map((entry) => (_jsx(ActivityEntry, { entry: entry, activeSessionId: activeSessionId, activeExecutionId: activeExecutionId, renderLink: renderLink, renderEntryAccessory: renderEntryAccessory, now: now }, entry.id))) })] }, group.label))) }) }));
70
+ return (_jsx(TooltipProvider, { children: _jsx("div", { className: "stg:space-y-4", children: groups.map((group) => (_jsxs("div", { children: [_jsx("p", { className: "stg:text-sidebar-muted-foreground stg:mb-1 stg:px-2 stg:text-[10px] stg:font-medium stg:tracking-wide stg:uppercase", children: group.label }), _jsx("ul", { className: `${UNSTYLED_LIST} stg:space-y-0.5`, role: "list", children: group.entries.map((entry) => (_jsx(ActivityEntry, { entry: entry, activeSessionId: activeSessionId, activeExecutionId: activeExecutionId, renderLink: renderLink, renderEntryAccessory: renderEntryAccessory, now: now }, entry.id))) })] }, group.label))) }) }));
71
71
  }
72
72
  const ActivityEntry = memo(function ActivityEntry({ entry, activeSessionId, activeExecutionId, renderLink, renderEntryAccessory, now, }) {
73
73
  const isSession = entry.type === "session";
@@ -90,11 +90,15 @@ const ActivityEntry = memo(function ActivityEntry({ entry, activeSessionId, acti
90
90
  });
91
91
  return (_jsx("li", { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { render: row }), _jsx(TooltipContent, { side: "right", sideOffset: 12, children: entry.subject })] }) }));
92
92
  });
93
- /** Recents rows are denser than primary nav: 12px text, top-aligned icon. */
93
+ /**
94
+ * Recents rows are denser than primary nav: 12px text, top-aligned icon.
95
+ * Same state grammar as `navRowClassName` — muted at rest, accent fill
96
+ * when active, constant weight so activation never shifts text width.
97
+ */
94
98
  function cnActivityRow(active) {
95
99
  return active
96
- ? "stg:flex stg:items-start stg:gap-2 stg:rounded-lg stg:px-2 stg:py-1.5 stg:text-xs stg:transition-colors stg:bg-sidebar-accent stg:text-sidebar-accent-foreground stg:font-medium"
97
- : "stg:flex stg:items-start stg:gap-2 stg:rounded-lg stg:px-2 stg:py-1.5 stg:text-xs stg:transition-colors stg:text-sidebar-foreground stg:hover:bg-sidebar-accent stg:hover:text-sidebar-accent-foreground";
100
+ ? "stg:flex stg:items-start stg:gap-2 stg:rounded-md stg:px-2 stg:py-1 stg:text-xs stg:transition-colors stg:bg-sidebar-accent stg:text-sidebar-accent-foreground"
101
+ : "stg:flex stg:items-start stg:gap-2 stg:rounded-md stg:px-2 stg:py-1 stg:text-xs stg:transition-colors stg:text-sidebar-muted-foreground stg:hover:bg-sidebar-accent stg:hover:text-sidebar-accent-foreground";
98
102
  }
99
103
  function RecentsSkeletons() {
100
104
  return (_jsx("div", { className: "stg:space-y-2 stg:px-2", "aria-busy": "true", "aria-label": "Loading sessions", children: Array.from({ length: 5 }, (_, i) => (_jsx("div", { className: "stg:bg-sidebar-muted stg:h-5 stg:animate-pulse stg:rounded", style: { width: `${70 + Math.sin(i * 1.5) * 20}%` } }, i))) }));
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceSidebar.js","sourceRoot":"","sources":["../../src/sidebar/WorkspaceSidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkspaceSidebar.js","sourceRoot":"","sources":["../../src/sidebar/WorkspaceSidebar.tsx"],"names":[],"mappings":"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"}
@@ -35,13 +35,27 @@ export declare function SidebarChrome({ ariaLabel, isOpen, onCollapse, onOrgChan
35
35
  /** Hairline separator between sidebar sections. */
36
36
  export declare function SidebarSeparator(): import("react/jsx-runtime").JSX.Element;
37
37
  /**
38
- * The one nav-row class recipe both sidebars share: 14px medium labels,
39
- * 16px icons (sized by callers), 8px/6px padding, rounded row highlight.
38
+ * The one nav-row class recipe both sidebars share: 13px/16px regular
39
+ * labels, 16px icons (sized by callers), 8px/4px padding 24px rows.
40
+ * The explicit `leading-4` is load-bearing: without it the inherited
41
+ * line-height (~1.5) pads every row to ~28px, and across a full column
42
+ * of rows that difference alone decides whether the sidebar breathes.
43
+ * 24px also stays exactly at the WCAG 2.5.8 minimum pointer-target size.
40
44
  *
41
- * `muted` renders the resting label in the muted sidebar tone used by
42
- * "Back to Sessions", which is an exit, not a destination.
45
+ * Resting rows are muted so the navigation recedes and the content leads;
46
+ * the active row carries the accent fill, hover brightens to the accent
47
+ * foreground. Font weight is constant across states — state is expressed
48
+ * through color and fill only, so activating a row never shifts its text
49
+ * width. The muted-on-sidebar pairing is held to WCAG AA by the theme's
50
+ * contrast contract (sdk/theme/src/contract/pairs.ts) in every preset.
43
51
  */
44
- export declare function navRowClassName(active: boolean, { muted }?: {
45
- muted?: boolean;
46
- }): string;
52
+ export declare function navRowClassName(active: boolean): string;
53
+ /**
54
+ * The section-label recipe both sidebars share (settings group labels,
55
+ * the Recents heading): 11px/16px medium uppercase in the muted sidebar
56
+ * tone. Spacing around a label stays with the caller — it is a layout
57
+ * concern; this recipe owns only the typography, so the two sidebars
58
+ * cannot drift.
59
+ */
60
+ export declare function sectionLabelClassName(): string;
47
61
  //# sourceMappingURL=chrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/sidebar/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAc9F,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,MAAa,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,2CAuCpB;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,4CAM/B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,MAAM,CAUR"}
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/sidebar/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAe9F,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,MAAa,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,2CAuCpB;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,4CAM/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
package/sidebar/chrome.js CHANGED
@@ -19,15 +19,33 @@ export function SidebarSeparator() {
19
19
  return (_jsx("div", { className: "stg:px-3 stg:py-1", children: _jsx("div", { className: "stg:bg-sidebar-border stg:h-px" }) }));
20
20
  }
21
21
  /**
22
- * The one nav-row class recipe both sidebars share: 14px medium labels,
23
- * 16px icons (sized by callers), 8px/6px padding, rounded row highlight.
22
+ * The one nav-row class recipe both sidebars share: 13px/16px regular
23
+ * labels, 16px icons (sized by callers), 8px/4px padding 24px rows.
24
+ * The explicit `leading-4` is load-bearing: without it the inherited
25
+ * line-height (~1.5) pads every row to ~28px, and across a full column
26
+ * of rows that difference alone decides whether the sidebar breathes.
27
+ * 24px also stays exactly at the WCAG 2.5.8 minimum pointer-target size.
24
28
  *
25
- * `muted` renders the resting label in the muted sidebar tone used by
26
- * "Back to Sessions", which is an exit, not a destination.
29
+ * Resting rows are muted so the navigation recedes and the content leads;
30
+ * the active row carries the accent fill, hover brightens to the accent
31
+ * foreground. Font weight is constant across states — state is expressed
32
+ * through color and fill only, so activating a row never shifts its text
33
+ * width. The muted-on-sidebar pairing is held to WCAG AA by the theme's
34
+ * contrast contract (sdk/theme/src/contract/pairs.ts) in every preset.
27
35
  */
28
- export function navRowClassName(active, { muted = false } = {}) {
29
- return cn("stg:flex stg:items-center stg:gap-2 stg:rounded-lg stg:px-2 stg:py-1.5 stg:text-sm stg:font-medium stg:transition-colors", active
36
+ export function navRowClassName(active) {
37
+ return cn("stg:flex stg:items-center stg:gap-2 stg:rounded-md stg:px-2 stg:py-1 stg:text-[13px] stg:leading-4 stg:transition-colors", active
30
38
  ? "stg:bg-sidebar-accent stg:text-sidebar-accent-foreground"
31
- : cn(muted ? "stg:text-sidebar-muted-foreground" : "stg:text-sidebar-foreground", "stg:hover:bg-sidebar-accent stg:hover:text-sidebar-accent-foreground"));
39
+ : "stg:text-sidebar-muted-foreground stg:hover:bg-sidebar-accent stg:hover:text-sidebar-accent-foreground");
40
+ }
41
+ /**
42
+ * The section-label recipe both sidebars share (settings group labels,
43
+ * the Recents heading): 11px/16px medium uppercase in the muted sidebar
44
+ * tone. Spacing around a label stays with the caller — it is a layout
45
+ * concern; this recipe owns only the typography, so the two sidebars
46
+ * cannot drift.
47
+ */
48
+ export function sectionLabelClassName() {
49
+ return "stg:text-sidebar-muted-foreground stg:px-2 stg:text-[11px] stg:leading-4 stg:font-medium stg:tracking-wide stg:uppercase";
32
50
  }
33
51
  //# sourceMappingURL=chrome.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/sidebar/chrome.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAuC7D;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,MAAM,GAAG,IAAI,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,GACW;IACnB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,OAAO,CACL,eACE,EAAE,EAAE,KAAK,gBACG,SAAS,EACrB,SAAS,EAAC,6EAA6E,aAGvF,eAAK,SAAS,EAAC,qEAAqE,aAClF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,mBACJ,MAAM,mBACN,KAAK,gBACT,kBAAkB,EAC7B,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,qFAAqF,EACrF,sEAAsE,EACtE,sFAAsF,EACtF,6FAA6F,CAC9F,YAED,KAAC,SAAS,IAAC,SAAS,EAAC,YAAY,GAAG,GAC7B,EACT,cAAK,SAAS,EAAC,wBAAwB,YACrC,KAAC,WAAW,IAAC,YAAY,EAAE,YAAY,GAAI,GACvC,IACF,EAEL,QAAQ,EAGT,cAAK,SAAS,EAAC,wEAAwE,YACpF,MAAM,GACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,cAAK,SAAS,EAAC,gCAAgC,GAAG,GAC9C,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,EAAE,KAAK,GAAG,KAAK,KAA0B,EAAE;IAE3C,OAAO,EAAE,CACP,0HAA0H,EAC1H,MAAM;QACJ,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,EAAE,CACA,KAAK,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,6BAA6B,EAC3E,sEAAsE,CACvE,CACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/sidebar/chrome.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAwC7D;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,MAAM,GAAG,IAAI,EACb,UAAU,EACV,YAAY,EACZ,MAAM,EACN,QAAQ,GACW;IACnB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,OAAO,CACL,eACE,EAAE,EAAE,KAAK,gBACG,SAAS,EACrB,SAAS,EAAC,6EAA6E,aAGvF,eAAK,SAAS,EAAC,qEAAqE,aAClF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,mBACJ,MAAM,mBACN,KAAK,gBACT,kBAAkB,EAC7B,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,qFAAqF,EACrF,sEAAsE,EACtE,sFAAsF,EACtF,6FAA6F,CAC9F,YAED,KAAC,SAAS,IAAC,SAAS,EAAC,YAAY,GAAG,GAC7B,EACT,cAAK,SAAS,EAAC,wBAAwB,YACrC,KAAC,WAAW,IAAC,YAAY,EAAE,YAAY,GAAI,GACvC,IACF,EAEL,QAAQ,EAGT,cAAK,SAAS,EAAC,wEAAwE,YACpF,MAAM,GACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,cAAK,SAAS,EAAC,gCAAgC,GAAG,GAC9C,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,OAAO,EAAE,CACP,0HAA0H,EAC1H,MAAM;QACJ,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,wGAAwG,CAC7G,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,0HAA0H,CAAC;AACpI,CAAC"}
@@ -44,8 +44,9 @@ type Flow =
44
44
  * categories (on team with key / on team without key / key held but
45
45
  * not on team), each row carrying Cursor's pool-usage percentages
46
46
  * (first-party / API) and cycle spend dollars (included / on-demand).
47
- * Off-team rows offer one-click copy of the account's Cursor team
48
- * invite link when the operator has configured one.
47
+ * The off-team group header offers one-click copy of the account's
48
+ * Cursor team invite link when the operator has configured one (one
49
+ * button for the group — the link is account-level).
49
50
  *
50
51
  * Requires `can_manage_cursor_accounts` on `platform:stigmer` —
51
52
  * non-operators see the designed access notice. Key material never