@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.cjs +876 -93
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +478 -12
- package/dist/index.d.ts +478 -12
- package/dist/index.js +871 -94
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
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?:
|
|
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?:
|
|
1705
|
+
orientation?: "horizontal" | "vertical";
|
|
1620
1706
|
/** Default tooltip side when an item doesn't specify one. */
|
|
1621
|
-
tooltipSide?:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
2381
|
-
* for
|
|
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
|
-
|
|
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 };
|