@invana/ui 0.0.23 → 0.0.25

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/index.d.cts CHANGED
@@ -1106,6 +1106,30 @@ interface CitationListProps extends React$1.HTMLAttributes<HTMLUListElement> {
1106
1106
  declare const CitationList: React$1.ForwardRefExoticComponent<CitationListProps & React$1.RefAttributes<HTMLUListElement>>;
1107
1107
  declare const CitationRow: React$1.ForwardRefExoticComponent<CitationRowProps & React$1.RefAttributes<HTMLLIElement>>;
1108
1108
 
1109
+ interface ClampedTextProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
1110
+ /** How many lines survive before the fold. Three is the panel default. */
1111
+ lines?: number;
1112
+ moreLabel?: string;
1113
+ lessLabel?: string;
1114
+ children?: React$1.ReactNode;
1115
+ }
1116
+ /**
1117
+ * Prose that shows its first few lines and offers the rest.
1118
+ *
1119
+ * A project's purpose, an agent's instructions, a dataset's note: text whose
1120
+ * *first sentence* is what a panel is for, and whose full length would push the
1121
+ * list under it off the screen. It clamps to `lines`, and reveals the rest in
1122
+ * place — never in a tooltip or a dialog, because the reader is already looking
1123
+ * at the right place.
1124
+ *
1125
+ * **The toggle only exists when there is something behind it.** The clamp is
1126
+ * measured, not guessed from a character count: a three-line paragraph in a
1127
+ * wide panel is one line in a wider one, and a `Show more` that reveals nothing
1128
+ * teaches the reader to stop pressing it. Re-measured on resize for the same
1129
+ * reason.
1130
+ */
1131
+ declare const ClampedText: React$1.ForwardRefExoticComponent<ClampedTextProps & React$1.RefAttributes<HTMLDivElement>>;
1132
+
1109
1133
  interface ClarifyOption {
1110
1134
  /** Stable id handed back to `onSelect`. */
1111
1135
  value: string;
@@ -1568,7 +1592,8 @@ interface NavMenuItem {
1568
1592
  * is set), a `<button>` (when `onClick` is set), or a static `<div>`.
1569
1593
  */
1570
1594
  interface NavItemConfig {
1571
- /** Optional unique key for React rendering */
1595
+ /** Optional unique key for React rendering, and the item's identity for
1596
+ * `activeKey`. Falls back to `name`. */
1572
1597
  key?: string;
1573
1598
  /** Display name shown in tooltip */
1574
1599
  name: string;
@@ -1584,22 +1609,44 @@ interface NavItemConfig {
1584
1609
  activeClass?: string;
1585
1610
  /** CSS classes for the icon */
1586
1611
  iconClassName?: string;
1612
+ /** Classes for the label span alone — a truncation cap, usually
1613
+ * (`max-w-[16ch] truncate`). */
1614
+ labelClassName?: string;
1587
1615
  /** Stroke width for the icon (default: 2) */
1588
1616
  iconStroke?: number;
1589
1617
  /** Tooltip position */
1590
- tooltipSide?: 'top' | 'right' | 'bottom' | 'left';
1618
+ tooltipSide?: "top" | "right" | "bottom" | "left";
1591
1619
  /** Show a separator line after this item */
1592
1620
  showSeperator?: boolean;
1593
1621
  /** Lucide icon component. Optional — items may be label-only (e.g. status-bar text). */
1594
1622
  icon?: React__default.ElementType | LucideIcon;
1595
1623
  /** Custom tooltip content (overrides name) */
1596
1624
  tooltip?: React__default.ReactNode;
1625
+ /** Greys the item out and drops every interaction on it. */
1626
+ disabled?: boolean;
1627
+ /**
1628
+ * Inline style passthrough — for a per-item value the theme cannot express,
1629
+ * such as a colour carried by the data (a page's own accent). Everything
1630
+ * static belongs in `className`.
1631
+ */
1632
+ style?: React__default.CSSProperties;
1597
1633
  /**
1598
1634
  * Rows of a dropdown opened by this item. With `menuItems` the item is a
1599
1635
  * menu trigger — it needs no `onClick`, and stays highlighted while its menu
1600
1636
  * is open. Ignored when `href` is set.
1601
1637
  */
1602
1638
  menuItems?: NavMenuItem[];
1639
+ /**
1640
+ * Where `menuItems` hangs off.
1641
+ *
1642
+ * `'item'` (the default) — the whole item is the trigger. Clicking anywhere
1643
+ * on it opens the menu.
1644
+ *
1645
+ * `'caret'` — a chevron button *inside* the item: the body still selects,
1646
+ * and only the caret opens the menu. That is what a page tab needs, and it
1647
+ * is why a tab strip could not be built on nav items before.
1648
+ */
1649
+ menuTrigger?: "item" | "caret";
1603
1650
  /**
1604
1651
  * A count pinned to the item's top-right — unread reviews, waiting questions.
1605
1652
  *
@@ -1613,19 +1660,107 @@ interface NavItemConfig {
1613
1660
  */
1614
1661
  badge?: React__default.ReactNode;
1615
1662
  }
1663
+ /**
1664
+ * The visual treatments a strip of nav items can wear.
1665
+ *
1666
+ * One table, because the kit draws all three and used to draw two of them by
1667
+ * hand in separate components. `nav` is what nav items have always looked
1668
+ * like; `underline` and `folder` are the two tab strips — a panel's views and
1669
+ * a workbook's pages — lifted out of `TabbedPanel` and
1670
+ * `CanvasPagesViewPanel` unchanged, so migrating those renders identically.
1671
+ */
1672
+ declare const VARIANT: {
1673
+ /** The capsule: a filled, ringed chip. Toolbars, rails, header actions. */
1674
+ readonly nav: {
1675
+ readonly item: "rounded-control ring-1 ring-transparent";
1676
+ readonly hover: "hover:bg-primary/10 hover:text-primary hover:ring-primary/25";
1677
+ readonly open: "data-[state=open]:bg-primary/15 data-[state=open]:text-primary data-[state=open]:ring-primary/25";
1678
+ readonly active: "bg-primary/15 text-primary ring-primary/25";
1679
+ readonly strip: "";
1680
+ };
1681
+ /** The panel tab: accented fill with a rule under it, merging into the body. */
1682
+ readonly underline: {
1683
+ readonly item: "h-full rounded-none px-3 py-2";
1684
+ readonly hover: "hover:text-foreground";
1685
+ readonly open: "data-[state=open]:text-foreground";
1686
+ readonly active: "bg-primary/10 text-primary border-b-2 border-primary mb-[-1px]";
1687
+ readonly strip: "items-stretch";
1688
+ };
1689
+ /**
1690
+ * The workbook tab: boxed on top / left / right with an *open bottom*, so it
1691
+ * punches through the strip's own rule — the classic folder-tab notch.
1692
+ */
1693
+ readonly folder: {
1694
+ readonly item: "h-full rounded-none px-3 py-2 gap-1.5";
1695
+ readonly hover: "hover:text-foreground";
1696
+ readonly open: "data-[state=open]:text-foreground";
1697
+ readonly active: "mb-[-1px] rounded-t-md border border-b-0 border-primary text-primary";
1698
+ readonly strip: "items-stretch";
1699
+ };
1700
+ };
1701
+ type NavItemsVariant = keyof typeof VARIANT;
1616
1702
  interface NavItemsProps {
1617
1703
  items: NavItemConfig[];
1618
1704
  /** Layout orientation — drives default icon size, padding, tooltip side and separator. */
1619
- orientation?: 'horizontal' | 'vertical';
1705
+ orientation?: "horizontal" | "vertical";
1620
1706
  /** Default tooltip side when an item doesn't specify one. */
1621
- tooltipSide?: 'top' | 'right' | 'bottom' | 'left';
1707
+ tooltipSide?: "top" | "right" | "bottom" | "left";
1622
1708
  /** Default icon classes when an item doesn't specify `iconClassName`. */
1623
1709
  iconClassName?: string;
1710
+ /** Visual treatment — see {@link VARIANT}. Defaults to `nav`. */
1711
+ variant?: NavItemsVariant;
1712
+ /**
1713
+ * The selected item's key (`item.key ?? item.name`).
1714
+ *
1715
+ * Passing it makes the strip **controlled**: the internal highlight is
1716
+ * bypassed entirely and the caller owns which item is lit. Omit it and the
1717
+ * strip keeps its own state exactly as it always has.
1718
+ */
1719
+ activeKey?: string;
1720
+ /** Fires with the item's key whenever selection changes, controlled or not. */
1721
+ onActiveChange?: (key: string) => void;
1722
+ /**
1723
+ * `'tabs'` announces the strip as a tab list and gives it tab keyboard
1724
+ * behaviour: `role="tablist"` on the container, `role="tab"` +
1725
+ * `aria-selected` per item, ONE tab stop for the whole strip (roving
1726
+ * tabindex), and ← → ↑ ↓ Home End moving between items with selection
1727
+ * following focus — the same model Radix's tabs use.
1728
+ *
1729
+ * `'none'` (the default) leaves items as the plain buttons and links they
1730
+ * have always been.
1731
+ */
1732
+ selectionMode?: "none" | "tabs";
1733
+ /** Item key → the `id` of the panel it controls, for `aria-controls`. */
1734
+ panelId?: (key: string) => string;
1735
+ /**
1736
+ * Fold the items that do not fit into a `…` dropdown at the end of the strip.
1737
+ *
1738
+ * **Off by default.** A strip only becomes responsive because its owner asked
1739
+ * it to — a toolbar that would rather scroll, or one whose items must all
1740
+ * stay visible, is unaffected by this existing.
1741
+ *
1742
+ * Requires the strip to have a bounded width to measure against: put
1743
+ * `min-w-0` on it (or on its flex parent) or it will report that everything
1744
+ * fits, forever. Ignored on a vertical strip, which grows downward.
1745
+ */
1746
+ overflow?: boolean;
1747
+ /** Accessible name and tooltip for the overflow trigger. */
1748
+ overflowLabel?: string;
1749
+ /** Classes for the strip container. Only rendered when the strip needs one —
1750
+ * see the note on the return value in {@link NavItems}. */
1751
+ className?: string;
1624
1752
  }
1625
1753
  /**
1626
1754
  * NavItems - Shared renderer for navigation items. Renders href / onClick /
1627
1755
  * static items with identical styling so all three share the same padding,
1628
1756
  * primary hover + active highlight, and icon size.
1757
+ *
1758
+ * **What it returns.** With neither `selectionMode` nor `overflow` set it
1759
+ * returns a bare fragment, exactly as it always has, and the caller's own
1760
+ * wrapper lays the items out — every existing consumer is untouched. Ask for
1761
+ * either and it renders its own container, because both need one: a tab list
1762
+ * needs an element to carry `role="tablist"` and the keyboard handler, and
1763
+ * overflow needs an element whose width is the budget.
1629
1764
  */
1630
1765
  declare const NavItems: React__default.FC<NavItemsProps>;
1631
1766
  interface NavSection {
@@ -1634,7 +1769,7 @@ interface NavSection {
1634
1769
  }
1635
1770
  interface BaseNavProps {
1636
1771
  className?: string;
1637
- orientation: 'horizontal' | 'vertical';
1772
+ orientation: "horizontal" | "vertical";
1638
1773
  sections: {
1639
1774
  start?: NavSection;
1640
1775
  center?: NavSection;
@@ -1669,7 +1804,12 @@ declare const NavBase: React__default.FC<BaseNavProps>;
1669
1804
  * ```
1670
1805
  */
1671
1806
  type NavHorizontalItem = NavItemConfig;
1672
- interface NavHorizontalItemsProps {
1807
+ /**
1808
+ * Everything `NavItems` takes except the orientation, which this component
1809
+ * fixes. Forwarding the whole surface is what lets a header opt into
1810
+ * `overflow`, `variant` or tab semantics without reaching past the wrapper.
1811
+ */
1812
+ interface NavHorizontalItemsProps extends Omit<NavItemsProps, 'orientation' | 'items'> {
1673
1813
  items: NavHorizontalItem[];
1674
1814
  }
1675
1815
  declare const NavHorizontalItems: React__default.FC<NavHorizontalItemsProps>;
@@ -1750,7 +1890,13 @@ declare const NavHorizontal: React__default.FC<NavHorizontalProps>;
1750
1890
  * ```
1751
1891
  */
1752
1892
  type NavVerticalItem = NavItemConfig;
1753
- interface NavVerticalItemsProps {
1893
+ /**
1894
+ * Everything `NavItems` takes except the orientation, which this component
1895
+ * fixes — so a rail can opt into `variant`, controlled selection or tab
1896
+ * semantics without reaching past the wrapper. (`overflow` is ignored on a
1897
+ * vertical strip: it grows downward, where there is always room.)
1898
+ */
1899
+ interface NavVerticalItemsProps extends Omit<NavItemsProps, 'orientation' | 'items'> {
1754
1900
  items: NavVerticalItem[];
1755
1901
  }
1756
1902
  declare const NavVerticalItems: React__default.FC<NavVerticalItemsProps>;
@@ -2170,6 +2316,41 @@ interface SearchInputProps extends Omit<React__default.ComponentProps<'input'>,
2170
2316
  }
2171
2317
  declare const SearchInput: React__default.FC<SearchInputProps>;
2172
2318
 
2319
+ interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
2320
+ /**
2321
+ * Right-aligned trailing text — a count, a position, a state. Kept separate
2322
+ * from `children` so the label stays left and the fact stays right without
2323
+ * every call site building its own flex row.
2324
+ */
2325
+ aside?: React$1.ReactNode;
2326
+ /**
2327
+ * `muted` (default) for a label being scanned past, `foreground` when it
2328
+ * titles a card that has no other heading, `accent` when it names something
2329
+ * the reader is being taught.
2330
+ */
2331
+ tone?: "muted" | "foreground" | "accent";
2332
+ children?: React$1.ReactNode;
2333
+ }
2334
+ /**
2335
+ * The smallest heading in the system: a label over the thing it names.
2336
+ *
2337
+ * `WHY IT MATTERS`, `1 · CONNECTED`, `OPTIONAL`, `REFERENCED COMPONENTS`. It
2338
+ * titles a band of content without the weight — or the 35px and the rule — of
2339
+ * a {@link SectionHeader}, so several can sit in one scrolling column and still
2340
+ * read as subordinate to the panel's own title.
2341
+ *
2342
+ * Uppercase at `text-meta` with tracking, because at this size caps are what
2343
+ * separate a label from the sentence under it; lowercase at 11px reads as body
2344
+ * copy set small. That is also why it is a component rather than four utility
2345
+ * classes: the treatment was being retyped, and a label that drifts a weight or
2346
+ * a tracking step in one panel stops reading as the same kind of thing.
2347
+ *
2348
+ * `tone="accent"` is for a label that names something the reader is being
2349
+ * *taught* rather than something they are scanning — a callout's kind, a
2350
+ * concept's name. Use it rarely; muted is the default for a reason.
2351
+ */
2352
+ declare const Eyebrow: React$1.ForwardRefExoticComponent<EyebrowProps & React$1.RefAttributes<HTMLDivElement>>;
2353
+
2173
2354
  interface SectionHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
2174
2355
  /** Sits before the title. A 14px lucide icon, usually. */
2175
2356
  icon?: React$1.ReactNode;
@@ -2240,6 +2421,11 @@ interface TabConfig {
2240
2421
  value: string;
2241
2422
  /** Label text or custom React node to display in the tab */
2242
2423
  label: string | React__default.ReactNode;
2424
+ /**
2425
+ * Plain-text name for the tab's tooltip and its accessible name. Only needed
2426
+ * when `label` is a node rather than a string — the value is used otherwise.
2427
+ */
2428
+ name?: string;
2243
2429
  /** Optional icon component to show before the label */
2244
2430
  icon?: React__default.ElementType;
2245
2431
  /** Content to display when this tab is active */
@@ -2272,6 +2458,31 @@ interface TabbedPanelProps {
2272
2458
  * ```
2273
2459
  */
2274
2460
  headerActions?: NavHorizontalItem[];
2461
+ /**
2462
+ * Fold the tabs that do not fit the header into a `…` dropdown at the end of
2463
+ * the strip, instead of letting the strip set the panel's minimum width.
2464
+ *
2465
+ * **Off by default**, so an existing panel renders exactly as it did. Turn it
2466
+ * on for a panel whose width the user controls — a resizable inspector, a
2467
+ * side panel — or any strip carrying more than a handful of tabs. The active
2468
+ * tab never folds, and arrowing onto a folded one brings it back.
2469
+ *
2470
+ * ```tsx
2471
+ * <TabbedPanel overflow tabs={nineOfThem} />
2472
+ * ```
2473
+ */
2474
+ overflow?: boolean;
2475
+ /** Accessible name for the overflow trigger. */
2476
+ overflowLabel?: string;
2477
+ /**
2478
+ * Keep every tab's content mounted and hide the inactive ones, instead of
2479
+ * mounting only the active tab.
2480
+ *
2481
+ * Off by default. Turn it on when a panel's tabs hold state worth keeping —
2482
+ * a scroll position, a half-typed edit, a live canvas — and pay for it in
2483
+ * the work every hidden tab keeps doing.
2484
+ */
2485
+ keepMounted?: boolean;
2275
2486
  /** Additional CSS classes for the container */
2276
2487
  className?: string;
2277
2488
  /** Additional CSS classes for the header */
@@ -2283,7 +2494,164 @@ interface TabbedPanelProps {
2283
2494
  /** Optional footer content */
2284
2495
  footerContent?: React__default.ReactNode;
2285
2496
  }
2286
- declare function TabbedPanel({ tabs, defaultTab, activeTab, onTabChange, headerActions, className, headerClassName, bodyClassName, footerClassName, footerContent, }: TabbedPanelProps): React__default.JSX.Element;
2497
+ /**
2498
+ * TabbedPanel — a panel whose views sit behind one 30px tab strip.
2499
+ *
2500
+ * The strip is a `NavItems` tab list (`variant="underline"`), not a Radix
2501
+ * `Tabs`: the same component draws this kit's nav rails and its workbook tabs,
2502
+ * so tab keyboard behaviour, the `…` overflow and the three visual treatments
2503
+ * are written once. Switching content here is a plain `active === value`,
2504
+ * which is what makes `keepMounted` possible — Radix unmounts an inactive
2505
+ * `TabsContent`, and a panel that tears its canvas down on every tab switch is
2506
+ * not a panel anyone wants.
2507
+ */
2508
+ declare function TabbedPanel({ tabs, defaultTab, activeTab, onTabChange, headerActions, overflow, overflowLabel, keepMounted, className, headerClassName, bodyClassName, footerClassName, footerContent, }: TabbedPanelProps): React__default.JSX.Element;
2509
+
2510
+ /**
2511
+ * What a task did with its slice of the run's clock.
2512
+ *
2513
+ * These are the engine's own step statuses (`StepStatus`, plus `skipped` for a
2514
+ * branch that never ran), not a second vocabulary: a Gantt row and a log line
2515
+ * are the same task seen twice, so they say the same word for the same state.
2516
+ */
2517
+ type TaskGanttStatus = "succeeded" | "running" | "failed" | "needs_input" | "stopped" | "skipped" | "queued";
2518
+ /** A `Date`, an ISO string, or epoch milliseconds — whatever the JSON carried. */
2519
+ type TaskGanttInstant = string | number | Date;
2520
+ /**
2521
+ * One bar. A task is usually one of these; a retried task is two or more, the
2522
+ * failed attempt sitting to the left of the one that stuck.
2523
+ */
2524
+ interface TaskGanttSegment {
2525
+ /** Offset from the run's zero. Use this, or `startedAt` with `origin`. */
2526
+ startMs?: number;
2527
+ durationMs?: number;
2528
+ startedAt?: TaskGanttInstant;
2529
+ finishedAt?: TaskGanttInstant;
2530
+ status?: TaskGanttStatus;
2531
+ /** Overrides the hover text, which otherwise reads `key · status · duration`. */
2532
+ title?: string;
2533
+ }
2534
+ interface TaskGanttTask extends TaskGanttSegment {
2535
+ /** `task_key` — what the log lines call this task. Also the row's label. */
2536
+ key: string;
2537
+ /** Shown instead of `key`, when the row wants a human name. */
2538
+ label?: React$1.ReactNode;
2539
+ /** Earlier attempts, oldest first. A failed one draws in `destructive`. */
2540
+ attempts?: TaskGanttSegment[];
2541
+ /** Overrides the right-hand duration cell. `—` when the task never ran. */
2542
+ duration?: React$1.ReactNode;
2543
+ /** One line — what the task said. The card's last line. */
2544
+ log?: React$1.ReactNode;
2545
+ /** A sentence under the card's header, when the row wants one. */
2546
+ summary?: React$1.ReactNode;
2547
+ /**
2548
+ * What the task produced — its `result.json`, or any part of it.
2549
+ *
2550
+ * An object renders as label/value pairs, with nested values as JSON; a node
2551
+ * renders as given, which is the hook for a kind-specific card (a table
2552
+ * preview, a subgraph thumb) without replacing the whole body.
2553
+ */
2554
+ result?: React$1.ReactNode | Record<string, unknown>;
2555
+ /** Why it failed. Drawn in `destructive`, above the result. */
2556
+ error?: {
2557
+ code?: React$1.ReactNode;
2558
+ message?: React$1.ReactNode;
2559
+ detail?: React$1.ReactNode;
2560
+ };
2561
+ /** Replaces this row's card body entirely. */
2562
+ detail?: React$1.ReactNode;
2563
+ }
2564
+ interface TaskGanttProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSelect"> {
2565
+ /** One entry per task, in plan order — the run's `steps`, grouped by task. */
2566
+ tasks: TaskGanttTask[];
2567
+ /** The run's zero, when tasks carry timestamps. Defaults to the earliest one. */
2568
+ origin?: TaskGanttInstant;
2569
+ /** The clock's ceiling. Defaults to the last end, or `nowMs` if that is later. */
2570
+ spanMs?: number;
2571
+ /** Draws the *now* line. Set it while the run is in flight; omit it after. */
2572
+ nowMs?: number;
2573
+ /** Marks the last axis label `8s+` — the run has not decided its own length yet. */
2574
+ openEnded?: boolean;
2575
+ /** Intervals on the axis. Five labels by default. */
2576
+ ticks?: number;
2577
+ formatTick?: (ms: number) => string;
2578
+ formatDuration?: (ms: number) => string;
2579
+ /** The key column, in px. 112 in the drawer, wider on a dashboard. */
2580
+ labelWidth?: number;
2581
+ /**
2582
+ * `compact` in a drawer, `comfortable` on a dashboard. It moves the bar's
2583
+ * height, not the type scale — one component, three surfaces (SR14).
2584
+ */
2585
+ density?: "compact" | "comfortable";
2586
+ /**
2587
+ * The card on hover. On by default; a row with nothing to say shows none.
2588
+ *
2589
+ * Supplementary by design — the same facts are in the log band and in
2590
+ * `result.json`, because a hover card is not reachable by touch.
2591
+ */
2592
+ showDetail?: boolean;
2593
+ /**
2594
+ * Replaces the default card body, for every row. Return `null` for a row that
2595
+ * should not open one.
2596
+ */
2597
+ renderDetail?: (task: TaskGanttTask) => React$1.ReactNode;
2598
+ /** Where the card sits, how fast it opens, and how wide it is. */
2599
+ detailProps?: TaskGanttDetailProps;
2600
+ /** The task the log is currently filtered to (SR15). */
2601
+ selectedKey?: string | null;
2602
+ /** Makes the rows pickable. Picking one is what filters the log. */
2603
+ onSelectTask?: (key: string) => void;
2604
+ }
2605
+ interface TaskGanttDetailProps {
2606
+ /** @default "right" */
2607
+ side?: "top" | "right" | "bottom" | "left";
2608
+ /** @default "start" */
2609
+ align?: "start" | "center" | "end";
2610
+ sideOffset?: number;
2611
+ /** @default 200 */
2612
+ openDelay?: number;
2613
+ /** @default 80 */
2614
+ closeDelay?: number;
2615
+ /** The card's width. A `result.json` wants more than the 256px default. */
2616
+ width?: number | string;
2617
+ className?: string;
2618
+ }
2619
+ interface TaskGanttDetailCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
2620
+ task: TaskGanttTask;
2621
+ /** Elapsed so far, for a task still running — it has no `durationMs` yet. */
2622
+ elapsedMs?: number;
2623
+ formatDuration?: (ms: number) => string;
2624
+ }
2625
+ /**
2626
+ * What one task did, as a card.
2627
+ *
2628
+ * The body of the hover card, and exported so a surface can compose its own
2629
+ * around the same header — `renderDetail` returning this with a kind-specific
2630
+ * block under it is the intended way to specialise, rather than redrawing the
2631
+ * header and drifting the status vocabulary.
2632
+ *
2633
+ * Order is fixed and is the order a reader asks in: what state, how long, what
2634
+ * went wrong, what came out, what it said last.
2635
+ */
2636
+ declare const TaskGanttDetailCard: React$1.ForwardRefExoticComponent<TaskGanttDetailCardProps & React$1.RefAttributes<HTMLDivElement>>;
2637
+ /**
2638
+ * Where the time went — one row per task, on the run's own clock.
2639
+ *
2640
+ * Duration is the question a run detail is opened with, and a step list with a
2641
+ * duration column answers it one row at a time. A bar placed by start and sized
2642
+ * by duration puts the slow task, the retry and the branch that never ran in one
2643
+ * glance (SR14).
2644
+ *
2645
+ * It is one component across three surfaces — the Runs drawer (compact, with a
2646
+ * line of log per row), the run dashboard (full width, logs off) and the
2647
+ * document rendering — so `density` and `showLogs` are props, not three
2648
+ * drawings.
2649
+ *
2650
+ * Colour never carries state alone: every row names its duration, the bar
2651
+ * titles itself with its status, and a task that never ran is an *outline*
2652
+ * rather than a paler fill.
2653
+ */
2654
+ declare const TaskGantt: React$1.ForwardRefExoticComponent<TaskGanttProps & React$1.RefAttributes<HTMLDivElement>>;
2287
2655
 
2288
2656
  interface TemplateOption {
2289
2657
  /** The projection template — `table-compact@3`. */
@@ -2359,6 +2727,18 @@ interface TerminalProps extends React$1.HTMLAttributes<HTMLDivElement> {
2359
2727
  declare const Terminal: React$1.ForwardRefExoticComponent<TerminalProps & React$1.RefAttributes<HTMLDivElement>>;
2360
2728
  declare const TerminalLine: React$1.ForwardRefExoticComponent<TerminalLineProps & React$1.RefAttributes<HTMLDivElement>>;
2361
2729
 
2730
+ /**
2731
+ * How the list arranges one entry.
2732
+ *
2733
+ * `columns` — `when` is a fixed left column, entries divided by a rule. The
2734
+ * dense-log shape: `when` is short and uniform (`Fri 08:00`) and a reader
2735
+ * scanning for "what changed on Friday" reads down one edge. Needs the width.
2736
+ *
2737
+ * `rail` — `when` sits above the title and a line threads the markers. For a
2738
+ * narrow card or sidebar, where a 72px column would eat a third of the width
2739
+ * and titles wrap anyway; the rail supplies the alignment the column was.
2740
+ */
2741
+ type TimelineVariant = "columns" | "rail";
2362
2742
  interface TimelineEntryProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>, "title"> {
2363
2743
  /** When — `Fri 5 Sep`, `09:47`, `Sun`. */
2364
2744
  when: React$1.ReactNode;
@@ -2369,6 +2749,11 @@ interface TimelineEntryProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>,
2369
2749
  children?: React$1.ReactNode;
2370
2750
  }
2371
2751
  interface TimelineListProps extends React$1.HTMLAttributes<HTMLOListElement> {
2752
+ /** @default "columns" */
2753
+ variant?: TimelineVariant;
2754
+ children?: React$1.ReactNode;
2755
+ }
2756
+ interface TimelineFooterProps extends React$1.HTMLAttributes<HTMLLIElement> {
2372
2757
  children?: React$1.ReactNode;
2373
2758
  }
2374
2759
  /**
@@ -2377,12 +2762,21 @@ interface TimelineListProps extends React$1.HTMLAttributes<HTMLOListElement> {
2377
2762
  * A task's history, a session's past rounds, a schedule's firings. An `<ol>`
2378
2763
  * because the order carries meaning — these are events in sequence, not a set.
2379
2764
  *
2380
- * `when` is a column rather than a line above the entry, so a reader scanning
2381
- * for "what changed on Friday" reads down one edge instead of hunting through
2382
- * prose.
2765
+ * Both variants take the same entries; only the arrangement differs. See
2766
+ * `TimelineVariant` for which one a surface wants.
2383
2767
  */
2384
2768
  declare const TimelineList: React$1.ForwardRefExoticComponent<TimelineListProps & React$1.RefAttributes<HTMLOListElement>>;
2385
2769
  declare const TimelineEntry: React$1.ForwardRefExoticComponent<TimelineEntryProps & React$1.RefAttributes<HTMLLIElement>>;
2770
+ /**
2771
+ * What to do next, at the end of the rail — `View changelog →`, `See all runs`.
2772
+ *
2773
+ * The rail runs into it, which is what says the list continues rather than
2774
+ * stops. `role="presentation"` because a footer is not one of the events: it
2775
+ * drops the `<li>` from the list's count while its content stays readable.
2776
+ *
2777
+ * `columns` has no rail to run on, so the footer is a plain last row there.
2778
+ */
2779
+ declare const TimelineFooter: React$1.ForwardRefExoticComponent<TimelineFooterProps & React$1.RefAttributes<HTMLLIElement>>;
2386
2780
 
2387
2781
  declare const Toolbar: React__default.FC;
2388
2782
 
@@ -2598,4 +2992,76 @@ declare const Typography: {
2598
2992
  Pre: React$1.ForwardRefExoticComponent<TypographyPreProps & React$1.RefAttributes<HTMLPreElement>>;
2599
2993
  };
2600
2994
 
2601
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentChip, type AgentChipProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, type AppStatusBarProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChartH, type BarChartHProps, BarChartV, type BarChartVProps, type BarDatum, type BaseNavProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChatSession, ChatSessionActivityRow, type ChatSessionActivityRowProps, type ChatSessionActivityStatus, ChatSessionActivitySubLine, type ChatSessionActivitySubLineProps, ChatSessionComposer, type ChatSessionComposerProps, ChatSessionContextChip, type ChatSessionContextChipProps, ChatSessionDisclosure, type ChatSessionDisclosureProps, ChatSessionMessage, type ChatSessionMessageAction, ChatSessionMessageOptions, type ChatSessionMessageOptionsProps, type ChatSessionMessageProps, type ChatSessionMessageRole, type ChatSessionMessageStatus, ChatSessionProgressLine, type ChatSessionProgressLineProps, ChatSessionPromptRow, type ChatSessionPromptRowProps, type ChatSessionProps, ChatSessionStatusBar, type ChatSessionStatusBarProps, ChatSessionTaskGroup, type ChatSessionTaskGroupProps, ChatSessionTaskRow, type ChatSessionTaskRowProps, type ChatSessionTaskStatus, CitationList, type CitationListProps, CitationMarker, CitationRow, type CitationRowProps, ClarifyCard, type ClarifyCardProps, type ClarifyOption, type ColumnDatum, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, type ContextBarProps, DiagnosisCard, type DiagnosisCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, type DiffListProps, type DiffOp, DiffRow, type DiffRowProps, DivergingBar, type DivergingBarProps, type DivergingDatum, DotRating, type DotRatingProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmissionCard, type EmissionCardProps, EmissionHeader, type EmissionHeaderProps, type EmissionKind, EmptyState, EmptyStateLock, type EmptyStateLockProps, type EmptyStateProps, ErrorBoundary, FilterBar, type FilterBarProps, FilterChip, type FilterChipProps, type HeatCell, type HeatState, HeatStrip, type HeatStripProps, HoverCard, HoverCardContent, HoverCardTrigger, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, MenuItem, type MenuItemProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, type MetricGridProps, MetricTile, type MetricTileProps, NavBase, NavHorizontal, type NavHorizontalItem, NavHorizontalItems, type NavHorizontalItemsProps, type NavHorizontalProps, type NavItemConfig, NavItems, type NavItemsProps, type NavMenuItem, type NavSection, NavVertical, type NavVerticalItem, NavVerticalItems, type NavVerticalItemsProps, type NavVerticalProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, type NestedMenuProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelContent, type PanelContentProps, PanelStack, type PanelStackProps, type PanelStackSection, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, RatingControl, type RatingControlProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchInputSize, SectionHeader, type SectionHeaderProps, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Sparkline, type SparklineProps, Spinner, StatusDot, type StatusDotProps, type TabConfig, TabbedPanel, type TabbedPanelProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, type TemplateOption, TemplatePicker, type TemplatePickerProps, Terminal, TerminalLine, type TerminalLineKind, type TerminalLineProps, type TerminalProps, TimelineEntry, type TimelineEntryProps, TimelineList, type TimelineListProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, type TourController, type TourProps, type TourReference, type TourStep, TreeItem, TreeView, type TreeViewProps, Typography, TypographyBlockquote, type TypographyBlockquoteProps, TypographyH1, type TypographyH1Props, TypographyH2, type TypographyH2Props, TypographyH3, type TypographyH3Props, TypographyH4, type TypographyH4Props, TypographyH5, type TypographyH5Props, TypographyH6, type TypographyH6Props, TypographyInlineCode, type TypographyInlineCodeProps, TypographyLarge, type TypographyLargeProps, TypographyLead, type TypographyLeadProps, TypographyList, type TypographyListProps, TypographyMuted, type TypographyMutedProps, TypographyP, type TypographyPProps, TypographyPre, type TypographyPreProps, TypographySmall, type TypographySmallProps, UnderDevelopment, type UnderDevelopmentProps, type UseTourOptions, type Verdict, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useSidebar, useTour };
2995
+ interface UseOverflowItemsOptions {
2996
+ /** How many items the strip renders. */
2997
+ count: number;
2998
+ /**
2999
+ * Off when false: nothing is measured, nothing folds, and the hook costs a
3000
+ * consumer nothing but a ref it can ignore. This is what keeps `overflow` an
3001
+ * opt-in on every component that wires the hook up.
3002
+ */
3003
+ enabled?: boolean;
3004
+ /**
3005
+ * An index that must never fold — the selected tab. A strip whose active
3006
+ * item has folded reads as having no selection at all, and arrowing onto a
3007
+ * folded tab is what brings it back (the new active index is pinned, so the
3008
+ * next fit keeps it).
3009
+ */
3010
+ pinnedIndex?: number;
3011
+ /**
3012
+ * Width to keep free for the overflow trigger, in px. Only charged when
3013
+ * something actually folds — see `fit`.
3014
+ */
3015
+ reserve?: number;
3016
+ }
3017
+ interface UseOverflowItemsResult {
3018
+ /** Attach to the element whose width is the budget. */
3019
+ containerRef: React$1.RefCallback<HTMLElement>;
3020
+ /** Attach to item `index`. Stable per index, so items don't re-attach. */
3021
+ itemRef: (index: number) => React$1.RefCallback<HTMLElement>;
3022
+ /** Indices that do not fit, ascending. Identity is stable while unchanged. */
3023
+ hiddenIndices: readonly number[];
3024
+ /** `true` when item `index` should not be rendered on the strip. */
3025
+ isHidden: (index: number) => boolean;
3026
+ }
3027
+ /**
3028
+ * Measure a horizontal strip and report which of its items do not fit.
3029
+ *
3030
+ * The hook owns **only the arithmetic**. It renders nothing, knows nothing
3031
+ * about tabs, nav items or menus, and takes no opinion on what a consumer does
3032
+ * with the overflow — `NavItems` folds it into a `…` dropdown, but a
3033
+ * breadcrumb could collapse it to an ellipsis and a toolbar could drop it
3034
+ * entirely. That is the whole reason it is a hook and not a prop on one
3035
+ * component: the three strips in this kit render through three different
3036
+ * components and share no markup.
3037
+ *
3038
+ * **How it measures.** An item that has been folded has no box to measure, so
3039
+ * the hook caches each item's natural width the last time it was on the strip
3040
+ * and plans with that. The first render therefore lays every item out — that
3041
+ * pass is what fills the cache — and the fold is applied in a layout effect,
3042
+ * before the browser paints, so there is no flash of an overflowing strip.
3043
+ *
3044
+ * **How it avoids looping.** Folding changes the DOM, which fires the observers
3045
+ * again; the result only reaches React when the index list actually differs,
3046
+ * and widths are cached only from items that are currently laid out (a
3047
+ * `display:none` item reports `0`, which would otherwise poison the cache).
3048
+ *
3049
+ * @example
3050
+ * ```tsx
3051
+ * const { containerRef, itemRef, hiddenIndices, isHidden } = useOverflowItems({
3052
+ * count: items.length,
3053
+ * enabled: overflow,
3054
+ * pinnedIndex: items.findIndex((i) => i.key === activeKey),
3055
+ * });
3056
+ *
3057
+ * <div ref={containerRef} className="flex min-w-0 flex-1 items-center gap-1">
3058
+ * {items.map((item, i) =>
3059
+ * isHidden(i) ? null : <button key={item.key} ref={itemRef(i)}>{item.label}</button>
3060
+ * )}
3061
+ * {hiddenIndices.length > 0 && <OverflowMenu items={hiddenIndices.map((i) => items[i])} />}
3062
+ * </div>
3063
+ * ```
3064
+ */
3065
+ declare function useOverflowItems({ count, enabled, pinnedIndex, reserve, }: UseOverflowItemsOptions): UseOverflowItemsResult;
3066
+
3067
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentChip, type AgentChipProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, type AppStatusBarProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChartH, type BarChartHProps, BarChartV, type BarChartVProps, type BarDatum, type BaseNavProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChatSession, ChatSessionActivityRow, type ChatSessionActivityRowProps, type ChatSessionActivityStatus, ChatSessionActivitySubLine, type ChatSessionActivitySubLineProps, ChatSessionComposer, type ChatSessionComposerProps, ChatSessionContextChip, type ChatSessionContextChipProps, ChatSessionDisclosure, type ChatSessionDisclosureProps, ChatSessionMessage, type ChatSessionMessageAction, ChatSessionMessageOptions, type ChatSessionMessageOptionsProps, type ChatSessionMessageProps, type ChatSessionMessageRole, type ChatSessionMessageStatus, ChatSessionProgressLine, type ChatSessionProgressLineProps, ChatSessionPromptRow, type ChatSessionPromptRowProps, type ChatSessionProps, ChatSessionStatusBar, type ChatSessionStatusBarProps, ChatSessionTaskGroup, type ChatSessionTaskGroupProps, ChatSessionTaskRow, type ChatSessionTaskRowProps, type ChatSessionTaskStatus, CitationList, type CitationListProps, CitationMarker, CitationRow, type CitationRowProps, ClampedText, type ClampedTextProps, ClarifyCard, type ClarifyCardProps, type ClarifyOption, type ColumnDatum, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, type ContextBarProps, DiagnosisCard, type DiagnosisCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, type DiffListProps, type DiffOp, DiffRow, type DiffRowProps, DivergingBar, type DivergingBarProps, type DivergingDatum, DotRating, type DotRatingProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmissionCard, type EmissionCardProps, EmissionHeader, type EmissionHeaderProps, type EmissionKind, EmptyState, EmptyStateLock, type EmptyStateLockProps, type EmptyStateProps, ErrorBoundary, Eyebrow, type EyebrowProps, FilterBar, type FilterBarProps, FilterChip, type FilterChipProps, type HeatCell, type HeatState, HeatStrip, type HeatStripProps, HoverCard, HoverCardContent, HoverCardTrigger, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, MenuItem, type MenuItemProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, type MetricGridProps, MetricTile, type MetricTileProps, NavBase, NavHorizontal, type NavHorizontalItem, NavHorizontalItems, type NavHorizontalItemsProps, type NavHorizontalProps, type NavItemConfig, NavItems, type NavItemsProps, type NavItemsVariant, type NavMenuItem, type NavSection, NavVertical, type NavVerticalItem, NavVerticalItems, type NavVerticalItemsProps, type NavVerticalProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, type NestedMenuProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelContent, type PanelContentProps, PanelStack, type PanelStackProps, type PanelStackSection, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, RatingControl, type RatingControlProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchInputSize, SectionHeader, type SectionHeaderProps, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Sparkline, type SparklineProps, Spinner, StatusDot, type StatusDotProps, type TabConfig, TabbedPanel, type TabbedPanelProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, type TaskGanttDetailCardProps, type TaskGanttDetailProps, type TaskGanttInstant, type TaskGanttProps, type TaskGanttSegment, type TaskGanttStatus, type TaskGanttTask, type TemplateOption, TemplatePicker, type TemplatePickerProps, Terminal, TerminalLine, type TerminalLineKind, type TerminalLineProps, type TerminalProps, TimelineEntry, type TimelineEntryProps, TimelineFooter, type TimelineFooterProps, TimelineList, type TimelineListProps, type TimelineVariant, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, type TourController, type TourProps, type TourReference, type TourStep, TreeItem, TreeView, type TreeViewProps, Typography, TypographyBlockquote, type TypographyBlockquoteProps, TypographyH1, type TypographyH1Props, TypographyH2, type TypographyH2Props, TypographyH3, type TypographyH3Props, TypographyH4, type TypographyH4Props, TypographyH5, type TypographyH5Props, TypographyH6, type TypographyH6Props, TypographyInlineCode, type TypographyInlineCodeProps, TypographyLarge, type TypographyLargeProps, TypographyLead, type TypographyLeadProps, TypographyList, type TypographyListProps, TypographyMuted, type TypographyMutedProps, TypographyP, type TypographyPProps, TypographyPre, type TypographyPreProps, TypographySmall, type TypographySmallProps, UnderDevelopment, type UnderDevelopmentProps, type UseOverflowItemsOptions, type UseOverflowItemsResult, type UseTourOptions, type Verdict, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };