export { B as Button, a as ButtonProps, b as buttonVariants } from './button-CMQuQEW_.js'; import * as React$1 from 'react'; import { ReactNode } from 'react'; import * as react_jsx_runtime from 'react/jsx-runtime'; import * as DialogPrimitive from '@radix-ui/react-dialog'; import * as class_variance_authority_types from 'class-variance-authority/types'; import { VariantProps } from 'class-variance-authority'; import * as AvatarPrimitive from '@radix-ui/react-avatar'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; import * as SelectPrimitive from '@radix-ui/react-select'; import * as TabsPrimitive from '@radix-ui/react-tabs'; import * as ProgressPrimitive from '@radix-ui/react-progress'; import * as SwitchPrimitives from '@radix-ui/react-switch'; import * as LabelPrimitive from '@radix-ui/react-label'; export { Logo, LogoProps, TangleKnot } from '@tangle-network/brand'; export { A as ArtifactPane, a as ArtifactPaneProps } from './artifact-pane-DpuWcAiF.js'; export { C as CodeBlock, a as CodeBlockProps, b as CopyButton } from './code-block-0kSpWMnf.js'; declare const Card: React$1.ForwardRefExoticComponent & { variant?: "default" | "glass" | "sandbox" | "elevated"; hover?: boolean; } & React$1.RefAttributes>; declare const CardHeader: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const CardTitle: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const CardDescription: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const CardContent: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const CardFooter: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const Dialog: React$1.FC; declare const DialogTrigger: React$1.ForwardRefExoticComponent>; declare const DialogPortal: React$1.FC; declare const DialogClose: React$1.ForwardRefExoticComponent>; declare const DialogOverlay: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DialogContent: React$1.ForwardRefExoticComponent, "ref"> & { variant?: "default" | "sandbox"; } & React$1.RefAttributes>; declare const DialogHeader: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; declare const DialogFooter: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; declare const DialogTitle: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DialogDescription: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const inputVariants: (props?: ({ variant?: "default" | "sandbox" | "error" | null | undefined; size?: "default" | "sm" | "lg" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; interface InputProps extends Omit, "size">, VariantProps { label?: string; error?: string; hint?: string; } declare const Input: React$1.ForwardRefExoticComponent>; interface TextareaProps extends React$1.TextareaHTMLAttributes { variant?: "default" | "sandbox"; label?: string; error?: string; hint?: string; } declare const Textarea: React$1.ForwardRefExoticComponent>; declare const badgeVariants: (props?: ({ variant?: "default" | "destructive" | "outline" | "secondary" | "sandbox" | "error" | "success" | "warning" | "info" | "running" | "creating" | "stopped" | "warm" | "cold" | "deleted" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; type BadgeVariant = "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "error" | "info" | "sandbox" | "running" | "creating" | "stopped" | "warm" | "cold" | "deleted" | null; interface BadgeProps extends VariantProps { variant?: BadgeVariant; className?: string; children?: React$1.ReactNode; dot?: boolean; onClick?: React$1.MouseEventHandler; style?: React$1.CSSProperties; id?: string; role?: React$1.AriaRole; title?: string; [key: string]: unknown; } declare function Badge({ className, variant, dot, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element; declare const Avatar: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const AvatarImage: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const AvatarFallback: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenu: React$1.FC; declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent>; declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent>; declare const DropdownMenuPortal: React$1.FC; declare const DropdownMenuSub: React$1.FC; declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent>; declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuItem: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent, "ref"> & { inset?: boolean; } & React$1.RefAttributes>; declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const DropdownMenuShortcut: { ({ className, ...props }: React$1.HTMLAttributes): react_jsx_runtime.JSX.Element; displayName: string; }; declare const Select: React$1.FC; declare const SelectGroup: React$1.ForwardRefExoticComponent>; declare const SelectValue: React$1.ForwardRefExoticComponent>; declare const SelectTrigger: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectLabel: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectItem: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const SelectSeparator: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare const Table: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableHeader: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableBody: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableFooter: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableRow: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableHead: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableCell: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const TableCaption: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; declare const Tabs: React$1.ForwardRefExoticComponent>; declare const TabsList: React$1.ForwardRefExoticComponent, "ref"> & { variant?: "default" | "pills" | "underline"; } & React$1.RefAttributes>; declare const TabsTrigger: React$1.ForwardRefExoticComponent, "ref"> & { variant?: "default" | "pills" | "underline"; } & React$1.RefAttributes>; declare const TabsContent: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; /** * Visually lightweight segmented control for single-value selection. * * Uses role="radiogroup" / role="radio" because this is a value-selector * with no associated panels — not a tab interface. Arrow keys navigate * between options (with wrapping), Home/End jump to first/last. * * **Accessibility:** Provide either `aria-label` or `aria-labelledby` — the * ARIA spec requires every radiogroup to have an accessible name. A dev-mode * console warning fires when both are omitted. * * Design rules baked into the default variant: * - Only the SELECTED segment shows a surface colour + accent text. * - Unselected segments have NO background — they're plain-text labels * that darken on hover. This keeps the selected segment as the * single visual anchor instead of the whole group competing with * itself. */ interface SegmentedControlOption { value: T; label: React$1.ReactNode; /** Rendered right of the label, typically a count or status pill. */ adornment?: React$1.ReactNode; } interface SegmentedControlProps extends Pick, "id" | "className" | "aria-label" | "aria-labelledby"> { value: T; onValueChange: (value: T) => void; options: SegmentedControlOption[]; /** * Layout: * - "row" — horizontal pill bar (default, fits in a header region) * - "tabs" — horizontal with a bottom border so the selected pill * reads as a classic tab (used on the Team page) */ variant?: "row" | "tabs"; } declare function SegmentedControl({ value, onValueChange, options, variant, className, ...rest }: SegmentedControlProps): react_jsx_runtime.JSX.Element; declare const Progress: React$1.ForwardRefExoticComponent, "ref"> & { variant?: "default" | "sandbox"; showValue?: boolean; } & React$1.RefAttributes>; declare const Switch: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; declare function Skeleton({ className, ...props }: React.HTMLAttributes): react_jsx_runtime.JSX.Element; declare function SkeletonCard({ className }: { className?: string; }): react_jsx_runtime.JSX.Element; declare function SkeletonTable({ rows }: { rows?: number; }): react_jsx_runtime.JSX.Element; interface Toast { id: string; title: string; description?: string; variant?: "default" | "success" | "error" | "warning" | "info"; duration?: number; } interface ToastContainerProps { toasts: Toast[]; onDismiss: (id: string) => void; } declare function ToastContainer({ toasts, onDismiss }: ToastContainerProps): react_jsx_runtime.JSX.Element; type ToastInput = Omit; interface ToastContextValue { toasts: Toast[]; toast: (input: ToastInput) => void; success: (title: string, description?: string) => void; error: (title: string, description?: string) => void; warning: (title: string, description?: string) => void; info: (title: string, description?: string) => void; dismiss: (id: string) => void; } declare function ToastProvider({ children }: { children: React$1.ReactNode; }): react_jsx_runtime.JSX.Element; declare function useToast(): ToastContextValue; declare const Label: React$1.ForwardRefExoticComponent, "ref"> & React$1.RefAttributes>; interface EmptyStateProps extends React$1.HTMLAttributes { icon?: React$1.ReactNode; title: string; description?: string; action?: React$1.ReactNode; } declare const EmptyState: React$1.ForwardRefExoticComponent>; interface StatCardProps extends React$1.HTMLAttributes { variant?: "default" | "sandbox"; title: string; value: string | number; subtitle?: string; icon?: React$1.ReactNode; trend?: { value: number; label?: string; }; } declare const StatCard: React$1.ForwardRefExoticComponent>; interface TerminalDisplayProps extends React$1.HTMLAttributes { variant?: "default" | "sandbox"; title?: string; showHeader?: boolean; autoScroll?: boolean; maxHeight?: string; } declare const TerminalDisplay: React$1.ForwardRefExoticComponent>; interface TerminalLineProps extends React$1.HTMLAttributes { type?: "input" | "output" | "error" | "success" | "info" | "thinking" | "command" | "warning"; prompt?: string; timestamp?: string; } declare const TerminalLine: React$1.ForwardRefExoticComponent>; declare const TerminalCursor: React$1.ForwardRefExoticComponent & React$1.RefAttributes>; interface TerminalInputProps extends Omit, "onSubmit"> { onSubmit?: (value: string) => void; variant?: "default" | "sandbox"; } declare const TerminalInput: React$1.ForwardRefExoticComponent>; interface DropZoneProps { /** Called with dropped files */ onDrop: (files: File[]) => void; /** Accepted file types (e.g. ".pdf,.csv,.xlsx") */ accept?: string; /** Whether drop zone is active */ disabled?: boolean; /** Custom overlay content (replaces default) */ overlay?: ReactNode; /** Overlay title */ title?: string; /** Overlay description */ description?: string; /** Overlay icon (Material Symbols name or ReactNode) */ icon?: string | ReactNode; /** Children wrapped by the drop zone */ children: ReactNode; className?: string; } declare function DropZone({ onDrop, accept, disabled, overlay, title, description, icon, children, className, }: DropZoneProps): react_jsx_runtime.JSX.Element; /** * UploadProgress — file upload status indicators. * * Shows a list of files being uploaded with progress bars, * completion checkmarks, and error states. */ interface UploadFile { id: string; name: string; size: number; status: "pending" | "uploading" | "complete" | "error"; progress?: number; error?: string; } interface UploadProgressProps { files: UploadFile[]; onRemove?: (id: string) => void; onRetry?: (id: string) => void; className?: string; } declare function UploadProgress({ files, onRemove, onRetry, className }: UploadProgressProps): react_jsx_runtime.JSX.Element | null; interface SidebarDropZoneProps { /** Called with dropped files */ onDrop: (files: File[]) => void; /** Accepted file types (e.g. ".pdf,.csv") */ accept?: string; /** Whether drop zone is active */ disabled?: boolean; /** Title shown in the drop zone */ title?: string; /** Description shown below the title */ description?: string; /** Custom icon (replaces default upload icon) */ icon?: ReactNode; /** Always visible (not just on drag). Useful as a persistent upload area. */ persistent?: boolean; className?: string; } declare function SidebarDropZone({ onDrop, accept, disabled, title, description, icon, persistent, className, }: SidebarDropZoneProps): react_jsx_runtime.JSX.Element; interface InlineCodeProps extends React.HTMLAttributes { } declare function InlineCode({ className, children, ...props }: InlineCodeProps): react_jsx_runtime.JSX.Element; type Theme = "light" | "dark" | "system"; declare function useTheme(): { theme: Theme; setTheme: (next: Theme) => void; }; declare function ThemeToggle(): react_jsx_runtime.JSX.Element; /** * The one masthead every console page opens with. * * A page identifies itself in three separate registers, and each gets its own * slot here so they cannot compete for the same one: * * - `title` — what the page IS. The `

`, and the only `

`. * - `description` — one line on what it is for. Prose belongs here, never in * the title slot: a paragraph rendered where a heading goes reads as body * copy to a sighted reader and as nothing at all to a screen reader, which * is how a page ends up with no accessible name. * - `actions` — what the reader can DO from here, right-aligned and wrapping * under the title on a narrow viewport rather than squeezing it. * * `meta` is the fourth register and the one most often missing: the small facts * that qualify everything below (a count, a scope, a window). They sit on their * own line under the title so a reader can tell the difference between "this * page has nothing in it" and "this filter matches nothing". * * `titleId` is exposed so a page can point `aria-labelledby` at the heading * from a region further down without minting a second copy of the string. */ interface PageHeaderProps extends Omit, "title"> { title: React$1.ReactNode; description?: React$1.ReactNode; actions?: React$1.ReactNode; meta?: React$1.ReactNode; titleId?: string; /** Renders the title one step down for a nested/tab surface. */ level?: 1 | 2; } declare const PageHeader: React$1.ForwardRefExoticComponent>; /** * A run/resource state, told three ways at once. * * Status is the one place a console cannot afford to speak in colour alone: a * red dot and a green dot are the same dot to roughly one man in twelve, and * identical in a greyscale print or a screenshot pasted into a ticket. So every * pill carries all three channels — a GLYPH whose silhouette differs per tone, * the tone's COLOUR, and the state's own LABEL as text. * * The glyphs are chosen to survive at 8px and to differ in outline rather than * in fill: a ring reads as "still open", a solid disc as "settled", a slashed * disc as "stopped". Two states never share one silhouette. * * Each tone draws its fill, border and text from ONE matched token triple. * That pairing is the whole point: a status colour is solved against its own * background, and nothing guarantees it against an arbitrary one. A component * that always brings its own background cannot be placed onto a plane that * breaks it. */ type StatusTone = "success" | "warning" | "danger" | "info" | "neutral" | "running"; interface StatusPillProps extends Omit, "children"> { tone: StatusTone; children: React$1.ReactNode; /** * Drops the fill and border, leaving a toned GLYPH beside a label in the * inherited body colour. * * The label deliberately does not keep the tone. Every status text token * clears the 4.5:1 body floor on the page canvas — a gate holds them there — * but in light the margin is thin (4.51:1 for warning, 4.54:1 for success), * and the canvas is only one of the planes a caller can put a pill on. The * glyph keeps the tone instead because a glyph is non-text content against a * 3:1 floor, so the tone still reads with room to spare on any plane. * * For a control that supplies its own surface (a chip, a selected row). */ bare?: boolean; size?: "sm" | "md"; } declare const StatusPill: React$1.ForwardRefExoticComponent>; /** * The headline figures for a console page, as ONE statement rather than four. * * A row of separate stat cards is the default and it is usually wrong here. * Each card is a box that must be tall enough for its longest member, so a row * mixing "$248.55 / Personal wallet" against a bare "0" leaves the short ones * mostly empty; and four bordered boxes read as four unrelated facts when they * are four readings of one account. `MetricStrip` puts them on one plane * divided by hairlines: same information, one object, no holes. * * The divider is a border on the item rather than a `divide-*` utility on the * parent, because these wrap. `divide-x` draws from DOM order and leaves a * stray rule at the start of every wrapped line; a per-item leading border * suppressed at each row start does not. */ interface MetricStripProps extends React$1.HTMLAttributes { children: React$1.ReactNode; } declare const MetricStrip: React$1.ForwardRefExoticComponent>; interface MetricProps extends React$1.HTMLAttributes { label: React$1.ReactNode; value: React$1.ReactNode; /** The qualifying line: which wallet, which window, what the limit is. */ hint?: React$1.ReactNode; /** Raises the value's tone and shows a pill beside the label. A metric is * `attention` only when a person has to DO something — not merely when a * number is zero. */ attention?: { tone: StatusTone; label: string; }; } /** * One reading inside a `MetricStrip`. * * `
` carries the label and `
` the value, so the pair is announced as a * described term rather than as two loose strings — the semantic that makes a * figure legible without the visual grouping. * * The value is `tabular-nums`: these sit in a row and change on a timer, and * proportional digits make the column jitter every time a 1 becomes an 8. */ declare const Metric: React$1.ForwardRefExoticComponent>; /** * The control row above a table or list: search, filters, then the view switch. * * It exists because the alternative keeps producing the same two failures. A * bare flex row gives every control its natural width, so a search field sits * at 1120px on one line and three selects stack full-width beneath it — three * enormous empty bars where a compact bar belongs. And each control brought its * own visual language, so one row carried a native `