@invana/ui 0.0.30 → 0.0.32
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 +4515 -2137
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2033 -772
- package/dist/index.d.ts +2033 -772
- package/dist/index.js +4453 -2128
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +4 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import React__default, { Component, ReactNode } from 'react';
|
|
3
|
+
import React__default, { Component, ReactNode, ErrorInfo, ElementType, CSSProperties } from 'react';
|
|
4
4
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
5
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
6
|
import { VariantProps } from 'class-variance-authority';
|
|
@@ -16,6 +16,7 @@ import * as MenubarPrimitive from '@radix-ui/react-menubar';
|
|
|
16
16
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
17
17
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
18
18
|
import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
19
|
+
import { Questionnaire as Questionnaire$1 } from '@shadcn/react/questionnaire';
|
|
19
20
|
import { Separator as Separator$1, Panel, Group } from 'react-resizable-panels';
|
|
20
21
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
21
22
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
@@ -25,24 +26,6 @@ import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
|
25
26
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
26
27
|
import { LucideIcon } from 'lucide-react';
|
|
27
28
|
|
|
28
|
-
/**
|
|
29
|
-
* `clsx` + `tailwind-merge`, and nothing else.
|
|
30
|
-
*
|
|
31
|
-
* This used to be an `extendTailwindMerge` that registered one class group.
|
|
32
|
-
* `text-*` is ambiguous — it is both the font-size scale and the text-colour
|
|
33
|
-
* scale — so tailwind-merge decides which group a class belongs to by matching
|
|
34
|
-
* its value against Tailwind's built-in size names. `meta` was not one of them,
|
|
35
|
-
* so `text-meta` was read as a *colour* and silently dropped whatever colour
|
|
36
|
-
* class came before it:
|
|
37
|
-
*
|
|
38
|
-
* cn("text-[var(--badge-ink)]", "text-meta") → "text-meta" // colour lost
|
|
39
|
-
*
|
|
40
|
-
* The type ladder is now `base · sm · xs` (`@invana/styling`), every one of
|
|
41
|
-
* them a Tailwind built-in, so there is nothing left to register and the
|
|
42
|
-
* footgun is gone with the token that caused it. If a future `--text-*` token
|
|
43
|
-
* invents a name Tailwind does not know, bring the `extend` back in the same
|
|
44
|
-
* breath — it will eat colours at a distance and the cause will not be obvious.
|
|
45
|
-
*/
|
|
46
29
|
declare function cn(...inputs: ClassValue[]): string;
|
|
47
30
|
|
|
48
31
|
declare const Accordion: React$1.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -52,6 +35,7 @@ declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<Accordion
|
|
|
52
35
|
|
|
53
36
|
declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
54
37
|
variant?: "default" | "destructive" | null | undefined;
|
|
38
|
+
tone?: "destructive" | "info" | "success" | "warning" | null | undefined;
|
|
55
39
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
|
|
56
40
|
declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
57
41
|
declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -74,9 +58,31 @@ declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<Ale
|
|
|
74
58
|
declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
75
59
|
declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
76
60
|
|
|
77
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Sizes are the control scale, so an avatar sits in a row of controls at the
|
|
63
|
+
* row's height: `xs` 22 · `sm` 26 · `md` 32 · `lg` 40px at a 13px root. `lg`
|
|
64
|
+
* is the default — the size it always had. Its initials step down with it.
|
|
65
|
+
*/
|
|
66
|
+
declare const avatarVariants: (props?: ({
|
|
67
|
+
size?: "xs" | "sm" | "lg" | "md" | null | undefined;
|
|
68
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
69
|
+
interface AvatarProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
|
|
70
|
+
}
|
|
71
|
+
declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
78
72
|
declare const AvatarImage: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React$1.RefAttributes<HTMLImageElement>, "ref"> & React$1.RefAttributes<HTMLImageElement>>;
|
|
79
73
|
declare const AvatarFallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
74
|
+
interface AvatarGroupProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
75
|
+
/** Show this many and fold the rest into a `+n` avatar. */
|
|
76
|
+
max?: number;
|
|
77
|
+
/** The size of the `+n` avatar — the same as the avatars it follows. */
|
|
78
|
+
size?: AvatarProps["size"];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Avatars overlapping in a row — who is on a run, a thread, a review — each
|
|
82
|
+
* ringed in the background so the overlap reads as edges. Past `max`, the rest
|
|
83
|
+
* are one `+n`.
|
|
84
|
+
*/
|
|
85
|
+
declare const AvatarGroup: React$1.ForwardRefExoticComponent<AvatarGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
80
86
|
|
|
81
87
|
/**
|
|
82
88
|
* `variant` is the treatment, `tone` is the meaning.
|
|
@@ -88,15 +94,15 @@ declare const AvatarFallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimi
|
|
|
88
94
|
* recolours `default`, `outline` and `soft`, and leaves `secondary` and
|
|
89
95
|
* `destructive` alone — those are already a colour decision.
|
|
90
96
|
*
|
|
91
|
-
* No pill. A badge
|
|
92
|
-
* `@invana/styling` › border radius
|
|
93
|
-
* object — a count bubble on a nav item, a state marker —
|
|
94
|
-
* or an explicit `rounded-full`, never a badge variant.
|
|
97
|
+
* No pill. A badge sits at control height beside buttons, so it takes the
|
|
98
|
+
* control radius, `rounded-control` (see `@invana/styling` › border radius).
|
|
99
|
+
* Where round *is* the object — a count bubble on a nav item, a state marker —
|
|
100
|
+
* that is `StatusDot` or an explicit `rounded-full`, never a badge variant.
|
|
95
101
|
*/
|
|
96
102
|
declare const badgeVariants: (props?: ({
|
|
97
103
|
variant?: "default" | "destructive" | "outline" | "secondary" | "soft" | null | undefined;
|
|
98
|
-
tone?: "
|
|
99
|
-
size?: "
|
|
104
|
+
tone?: "destructive" | "info" | "success" | "warning" | "primary" | "muted" | null | undefined;
|
|
105
|
+
size?: "xs" | "sm" | null | undefined;
|
|
100
106
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
101
107
|
interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
102
108
|
}
|
|
@@ -122,7 +128,7 @@ declare const BreadcrumbEllipsis: {
|
|
|
122
128
|
|
|
123
129
|
declare const buttonVariants: (props?: ({
|
|
124
130
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "soft" | null | undefined;
|
|
125
|
-
size?: "default" | "xs" | "sm" | "lg" | "icon-xs" | "icon" | "nav-icon" | null | undefined;
|
|
131
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon" | "nav-icon" | null | undefined;
|
|
126
132
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
127
133
|
interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
128
134
|
asChild?: boolean;
|
|
@@ -302,8 +308,10 @@ declare const itemVariants: (props?: ({
|
|
|
302
308
|
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
303
309
|
size?: "default" | "xs" | "sm" | null | undefined;
|
|
304
310
|
selected?: boolean | null | undefined;
|
|
311
|
+
dim?: boolean | null | undefined;
|
|
312
|
+
struck?: boolean | null | undefined;
|
|
305
313
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
306
|
-
declare function Item({ className, variant, size, selected, asChild, ...props }: React$1.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
|
|
314
|
+
declare function Item({ className, variant, size, selected, dim, struck, asChild, ...props }: React$1.ComponentProps<"div"> & VariantProps<typeof itemVariants> & {
|
|
307
315
|
asChild?: boolean;
|
|
308
316
|
}): React$1.JSX.Element;
|
|
309
317
|
declare const itemMediaVariants: (props?: ({
|
|
@@ -453,6 +461,75 @@ declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive
|
|
|
453
461
|
size?: ProgressSize;
|
|
454
462
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
455
463
|
|
|
464
|
+
type NavProps = Pick<ButtonProps, "size" | "variant">;
|
|
465
|
+
declare function Questionnaire({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Root>): React$1.JSX.Element;
|
|
466
|
+
/**
|
|
467
|
+
* The progress line on its own — a label and a bar filled to `value` (0–1).
|
|
468
|
+
* `QuestionnaireProgress` draws it from the questionnaire's position; a step
|
|
469
|
+
* outside the items, such as a review before submitting, draws it directly.
|
|
470
|
+
*/
|
|
471
|
+
declare function QuestionnaireProgressBar({ label, value, className, ...props }: React$1.ComponentProps<"div"> & {
|
|
472
|
+
label?: React$1.ReactNode;
|
|
473
|
+
value: number;
|
|
474
|
+
}): React$1.JSX.Element;
|
|
475
|
+
/**
|
|
476
|
+
* `1 of 3` and a bar that fills as the steps are answered. Pass children to
|
|
477
|
+
* replace the count's words; the bar stays.
|
|
478
|
+
*/
|
|
479
|
+
declare function QuestionnaireProgress({ className, children, ...props }: Omit<React$1.ComponentProps<typeof Questionnaire$1.Progress>, "render">): React$1.JSX.Element;
|
|
480
|
+
declare function QuestionnaireItem({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Item>): React$1.JSX.Element;
|
|
481
|
+
declare function QuestionnaireTitle({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Title>): React$1.JSX.Element;
|
|
482
|
+
declare function QuestionnaireDescription({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Description>): React$1.JSX.Element;
|
|
483
|
+
declare function QuestionnaireChoices({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Choices>): React$1.JSX.Element;
|
|
484
|
+
interface QuestionnaireChoiceProps extends React$1.ComponentProps<typeof Questionnaire$1.Choice> {
|
|
485
|
+
/**
|
|
486
|
+
* Where the choice comes from, on the right in mono — `142 open POs`,
|
|
487
|
+
* `pnl.total`. What makes an option read as something the data holds.
|
|
488
|
+
*/
|
|
489
|
+
detail?: React$1.ReactNode;
|
|
490
|
+
/**
|
|
491
|
+
* A settled answer: the choice is shown, not offered. Unlike `disabled` it
|
|
492
|
+
* keeps full strength, so the answer still reads.
|
|
493
|
+
*/
|
|
494
|
+
readOnly?: boolean;
|
|
495
|
+
/**
|
|
496
|
+
* A short tag or an icon in a box before the choice — `BV`, a store. What
|
|
497
|
+
* the choice is, read before its name.
|
|
498
|
+
*/
|
|
499
|
+
lead?: React$1.ReactNode;
|
|
500
|
+
/**
|
|
501
|
+
* A figure on the right, in place of `detail` — the value over its unit,
|
|
502
|
+
* `2,480` over `kg/ha`. What the choice would give, read before picking it.
|
|
503
|
+
*/
|
|
504
|
+
figure?: QuestionnaireChoiceFigure;
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* The tones the kit draws specially — **suggestions, not a limit.** Anything
|
|
508
|
+
* else renders in the foreground.
|
|
509
|
+
*/
|
|
510
|
+
type QuestionnaireFigureTone = "success" | "warning" | "error" | (string & {});
|
|
511
|
+
interface QuestionnaireChoiceFigure {
|
|
512
|
+
value: React$1.ReactNode;
|
|
513
|
+
unit?: React$1.ReactNode;
|
|
514
|
+
tone?: QuestionnaireFigureTone;
|
|
515
|
+
}
|
|
516
|
+
declare function QuestionnaireChoice({ children, className, detail, readOnly, disabled, lead, figure, ...props }: QuestionnaireChoiceProps): React$1.JSX.Element;
|
|
517
|
+
/** The choice itself — `Delegation`. Sits above an optional description. */
|
|
518
|
+
declare function QuestionnaireChoiceTitle({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
|
|
519
|
+
/** What the choice means — `Show how work moves to a specialist.` */
|
|
520
|
+
declare function QuestionnaireChoiceDescription({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
|
|
521
|
+
interface QuestionnaireInputProps extends React$1.ComponentProps<typeof Questionnaire$1.Input> {
|
|
522
|
+
/** The unit, on the right in mono — `%`, `kg/ha`. Open vocabulary. */
|
|
523
|
+
unit?: React$1.ReactNode;
|
|
524
|
+
}
|
|
525
|
+
declare function QuestionnaireInput({ className, unit, ...props }: QuestionnaireInputProps): React$1.JSX.Element;
|
|
526
|
+
declare function QuestionnaireError({ className, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Error>): React$1.JSX.Element;
|
|
527
|
+
declare function QuestionnaireActions({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
|
|
528
|
+
declare function QuestionnairePrevious({ children, className, size, variant, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Previous> & NavProps): React$1.JSX.Element;
|
|
529
|
+
declare function QuestionnaireSkip({ children, className, size, variant, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Skip> & NavProps): React$1.JSX.Element;
|
|
530
|
+
declare function QuestionnaireNext({ children, className, size, variant, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Next> & NavProps): React$1.JSX.Element;
|
|
531
|
+
declare function QuestionnaireSubmit({ children, className, size, variant, ...props }: React$1.ComponentProps<typeof Questionnaire$1.Submit> & NavProps): React$1.JSX.Element;
|
|
532
|
+
|
|
456
533
|
declare const ResizablePanelGroup: (props: React.ComponentProps<typeof Group>) => React$1.JSX.Element;
|
|
457
534
|
declare const ResizablePanel: typeof Panel;
|
|
458
535
|
declare const ResizableHandle: ({ withHandle, className, ...props }: React.ComponentProps<typeof Separator$1> & {
|
|
@@ -462,13 +539,74 @@ declare const ResizableHandle: ({ withHandle, className, ...props }: React.Compo
|
|
|
462
539
|
declare const ScrollArea: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
463
540
|
declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
464
541
|
|
|
542
|
+
interface SegmentedOption {
|
|
543
|
+
/** What the caller gets back. */
|
|
544
|
+
value: string;
|
|
545
|
+
label: React$1.ReactNode;
|
|
546
|
+
/** A second line under the label, smaller and muted — `±1.4 pp`. */
|
|
547
|
+
sub?: React$1.ReactNode;
|
|
548
|
+
disabled?: boolean;
|
|
549
|
+
}
|
|
550
|
+
interface SegmentedControlProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
|
|
551
|
+
options: SegmentedOption[];
|
|
552
|
+
/** Controlled. Pass it with {@link onValueChange}; `null` is no pick. */
|
|
553
|
+
value?: string | null;
|
|
554
|
+
/**
|
|
555
|
+
* Uncontrolled starting option. Defaults to the first, because a reading is
|
|
556
|
+
* never off. `null` starts with none picked — a question not yet answered,
|
|
557
|
+
* where picking the first for the reader would answer it for them.
|
|
558
|
+
*/
|
|
559
|
+
defaultValue?: string | null;
|
|
560
|
+
onValueChange?: (value: string) => void;
|
|
561
|
+
/**
|
|
562
|
+
* The control scale: `xs` (22px) inside a row, `sm` (26px) beside a search
|
|
563
|
+
* or filter chips, `md` (32px, the default — as for every control) in a
|
|
564
|
+
* standalone form.
|
|
565
|
+
*/
|
|
566
|
+
size?: "xs" | "sm" | "md";
|
|
567
|
+
/** Fill the width given, each option an equal share of it. */
|
|
568
|
+
stretch?: boolean;
|
|
569
|
+
/**
|
|
570
|
+
* `tint` marks the active option with the primary tint — a reading of the
|
|
571
|
+
* page. `solid` fills it with primary and rules the options apart — an
|
|
572
|
+
* answer to a question, where the pick is the thing being read.
|
|
573
|
+
*/
|
|
574
|
+
variant?: "tint" | "solid";
|
|
575
|
+
/**
|
|
576
|
+
* A settled answer: the pick is shown, not offered. Unlike disabling every
|
|
577
|
+
* option it keeps full strength, so the answer still reads.
|
|
578
|
+
*/
|
|
579
|
+
readOnly?: boolean;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* One page, read another way.
|
|
583
|
+
*
|
|
584
|
+
* A run has four readings and a step has three — *In order · Layers · Flow ·
|
|
585
|
+
* Lens*, *Overview · Touched · Log* — and each of them is the **same record**
|
|
586
|
+
* drawn differently. That is what this control says and a tab strip does not:
|
|
587
|
+
* tabs own a panel and imply separate content underneath, so four tabs over one
|
|
588
|
+
* trace read as four pages that happen to share a header. A segmented control
|
|
589
|
+
* sits in the pagehead's action slot, beside the chips that describe the record,
|
|
590
|
+
* and says *this is a switch on what you are already looking at*.
|
|
591
|
+
*
|
|
592
|
+
* It is also not `ToggleGroup`. That is a set of independent toggles which may
|
|
593
|
+
* all be off; a reading is never off, so the control is a radio group and is
|
|
594
|
+
* announced as one. Arrow keys move between options, which is what a reader who
|
|
595
|
+
* never leaves the keyboard expects of a radio group.
|
|
596
|
+
*
|
|
597
|
+
* **The frame is the control.** One border around the whole thing, the active
|
|
598
|
+
* option filled with the primary tint and the rest plain — never a border per
|
|
599
|
+
* option, which draws three controls where there is one.
|
|
600
|
+
*/
|
|
601
|
+
declare const SegmentedControl: React$1.ForwardRefExoticComponent<SegmentedControlProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
602
|
+
|
|
465
603
|
declare const Sheet: React$1.FC<DialogPrimitive.DialogProps>;
|
|
466
604
|
declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
467
605
|
declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
468
606
|
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
469
607
|
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
470
608
|
declare const sheetVariants: (props?: ({
|
|
471
|
-
side?: "
|
|
609
|
+
side?: "bottom" | "left" | "right" | "top" | null | undefined;
|
|
472
610
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
473
611
|
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
474
612
|
}
|
|
@@ -558,6 +696,26 @@ declare const Toaster: ({ ...props }: ToasterProps) => React$1.JSX.Element;
|
|
|
558
696
|
|
|
559
697
|
declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): React$1.JSX.Element;
|
|
560
698
|
|
|
699
|
+
/**
|
|
700
|
+
* Things laid out one after another, a set gap apart: a column (the default)
|
|
701
|
+
* or a row. The layout every screen and story otherwise writes by hand as
|
|
702
|
+
* `flex flex-col gap-4` — so the gaps come from one short scale, in `rem`, and
|
|
703
|
+
* follow the root as the type does.
|
|
704
|
+
*
|
|
705
|
+
* `gap` is the space between, never around: a stack draws no padding, border
|
|
706
|
+
* or background, so it can sit inside anything without changing its frame.
|
|
707
|
+
*/
|
|
708
|
+
declare const stackVariants: (props?: ({
|
|
709
|
+
direction?: "row" | "column" | null | undefined;
|
|
710
|
+
gap?: "none" | "xs" | "sm" | "lg" | "md" | "xl" | null | undefined;
|
|
711
|
+
align?: "end" | "start" | "center" | "stretch" | "baseline" | null | undefined;
|
|
712
|
+
justify?: "end" | "start" | "center" | "between" | null | undefined;
|
|
713
|
+
wrap?: boolean | null | undefined;
|
|
714
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
715
|
+
interface StackProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof stackVariants> {
|
|
716
|
+
}
|
|
717
|
+
declare const Stack: React$1.ForwardRefExoticComponent<StackProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
718
|
+
|
|
561
719
|
/**
|
|
562
720
|
* The state of one thing, as a dot.
|
|
563
721
|
*
|
|
@@ -577,7 +735,7 @@ declare function Spinner({ className, ...props }: React.ComponentProps<"svg">):
|
|
|
577
735
|
* `motion-reduce` variant below honours by design.
|
|
578
736
|
*/
|
|
579
737
|
declare const statusDotVariants: (props?: ({
|
|
580
|
-
tone?: "
|
|
738
|
+
tone?: "info" | "success" | "warning" | "muted" | "error" | "running" | "queued" | null | undefined;
|
|
581
739
|
size?: "xs" | "sm" | "lg" | "md" | null | undefined;
|
|
582
740
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
583
741
|
interface StatusDotProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children">, VariantProps<typeof statusDotVariants> {
|
|
@@ -591,8 +749,51 @@ interface StatusDotProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "
|
|
|
591
749
|
}
|
|
592
750
|
declare const StatusDot: React$1.ForwardRefExoticComponent<StatusDotProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
593
751
|
|
|
752
|
+
declare const statusIconVariants: (props?: ({
|
|
753
|
+
state?: "alert" | "success" | "error" | "waiting" | "running" | "queued" | "question" | "cancelled" | null | undefined;
|
|
754
|
+
size?: "sm" | "md" | null | undefined;
|
|
755
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
756
|
+
type StatusIconState = "success" | "error" | "running" | "queued" | "waiting" | "question" | "alert" | "cancelled";
|
|
757
|
+
interface StatusIconProps extends Omit<React$1.SVGAttributes<SVGSVGElement>, "children">, VariantProps<typeof statusIconVariants> {
|
|
758
|
+
state: StatusIconState;
|
|
759
|
+
/**
|
|
760
|
+
* What this state is called — the accessible name and the tooltip.
|
|
761
|
+
*
|
|
762
|
+
* Pass it whenever the glyph stands alone, which is the reason to use one.
|
|
763
|
+
*/
|
|
764
|
+
label?: string;
|
|
765
|
+
}
|
|
766
|
+
declare const StatusIcon: React$1.ForwardRefExoticComponent<StatusIconProps & React$1.RefAttributes<SVGSVGElement>>;
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* How much room a row gets. The type size never moves — a row is the root size
|
|
770
|
+
* at every density — only the height and the cell padding do.
|
|
771
|
+
*
|
|
772
|
+
* - `compact` — the control scale's `sm`, 26px: a journal, a trace, a
|
|
773
|
+
* step's output, a log.
|
|
774
|
+
* - `default` — `md`, 32px: a list in an application.
|
|
775
|
+
* - `comfortable` — `lg`, 40px: a table standing alone on a page, a settings
|
|
776
|
+
* list.
|
|
777
|
+
*
|
|
778
|
+
* The px are at a 13px root. Every density is a ratio of the root, like the
|
|
779
|
+
* type, so a site that sets a 16px root gets proportionally roomier rows.
|
|
780
|
+
*/
|
|
781
|
+
type TableDensity = "compact" | "default" | "comfortable";
|
|
594
782
|
declare const Table: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableElement> & {
|
|
595
|
-
density?:
|
|
783
|
+
density?: TableDensity;
|
|
784
|
+
/**
|
|
785
|
+
* No box, and nothing wasted on its outside: only the rules between rows
|
|
786
|
+
* are drawn, and the first and last columns sit flush with the text around
|
|
787
|
+
* the table. For a table inside a card, a panel or an answer, whose edge
|
|
788
|
+
* already frames it — a second border a few pixels in reads as a box
|
|
789
|
+
* inside a box.
|
|
790
|
+
*/
|
|
791
|
+
seamless?: boolean;
|
|
792
|
+
/**
|
|
793
|
+
* Draw the box. Off for a wrapper that draws the box itself, as `DataTable`
|
|
794
|
+
* does. `seamless` draws no box either way.
|
|
795
|
+
*/
|
|
796
|
+
bordered?: boolean;
|
|
596
797
|
} & React$1.RefAttributes<HTMLTableElement>>;
|
|
597
798
|
declare const TableHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
598
799
|
declare const TableBody: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLTableSectionElement> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
@@ -639,6 +840,38 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
|
|
|
639
840
|
size?: "default" | "sm" | "lg" | null | undefined;
|
|
640
841
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
641
842
|
|
|
843
|
+
/**
|
|
844
|
+
* Why a band is not drawn — **and these are three different facts.**
|
|
845
|
+
*
|
|
846
|
+
* - `unrecorded` — nobody wrote this document. A step in flight has no
|
|
847
|
+
* `result.json` because the interpreter writes it when the row settles.
|
|
848
|
+
* - `purged` — it was written, and retention removed it. The counts and the
|
|
849
|
+
* outcome stay; the input, the output and the log do not.
|
|
850
|
+
* - `declared-none` — the step declares no such output at all: a `notify` step
|
|
851
|
+
* returns nothing, and a read under `read_only: true` writes nothing.
|
|
852
|
+
*
|
|
853
|
+
* Collapsing them into one *empty* is the thing this component exists to stop.
|
|
854
|
+
* An empty table claims a step returned an empty result; *purged* claims it
|
|
855
|
+
* returned nothing. Both are lies about a different record.
|
|
856
|
+
*/
|
|
857
|
+
type AbsenceReason = "unrecorded" | "purged" | "declared-none";
|
|
858
|
+
interface AbsenceNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
859
|
+
reason: AbsenceReason;
|
|
860
|
+
/** Overrides the word. The engine's own term is better where there is one — `read_only: true`. */
|
|
861
|
+
label?: React$1.ReactNode;
|
|
862
|
+
/** Why, in the record's terms. One or two sentences, and it is not optional in spirit. */
|
|
863
|
+
children?: React$1.ReactNode;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* A band with nothing in it, saying which kind of nothing.
|
|
867
|
+
*
|
|
868
|
+
* It is not `EmptyState`: that invites an action — *load a dataset*, *ask a
|
|
869
|
+
* question* — and there is no action here. A step that recorded nothing is a
|
|
870
|
+
* finished fact about a finished record, and the only thing owed to the reader
|
|
871
|
+
* is which fact it is.
|
|
872
|
+
*/
|
|
873
|
+
declare const AbsenceNote: React$1.ForwardRefExoticComponent<AbsenceNoteProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
874
|
+
|
|
642
875
|
/**
|
|
643
876
|
* How this address stood in the run, or in the rule being read.
|
|
644
877
|
*
|
|
@@ -722,6 +955,168 @@ interface AgentChipProps extends React$1.HTMLAttributes<HTMLSpanElement>, Varian
|
|
|
722
955
|
*/
|
|
723
956
|
declare const AgentChip: React$1.ForwardRefExoticComponent<AgentChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
724
957
|
|
|
958
|
+
/** One published model, and what this session may do with it. */
|
|
959
|
+
interface DataReachModel {
|
|
960
|
+
id: string;
|
|
961
|
+
/** `Accounts`, `Funding rounds`. */
|
|
962
|
+
name: string;
|
|
963
|
+
/**
|
|
964
|
+
* Records this session can see, after its slice — not the model's size.
|
|
965
|
+
* `null` or left out while the count is on its way.
|
|
966
|
+
*/
|
|
967
|
+
records?: number | null;
|
|
968
|
+
/**
|
|
969
|
+
* What it may do — `["read"]`, `["read", "write"]` — or `"denied"`. An open
|
|
970
|
+
* vocabulary: a product that adds `export` passes it and it is written out.
|
|
971
|
+
*/
|
|
972
|
+
access: string[] | "denied";
|
|
973
|
+
/** What the session's view of it is narrowed to — `time 2019 → now · axis announced_at`. */
|
|
974
|
+
slice?: React$1.ReactNode;
|
|
975
|
+
}
|
|
976
|
+
/** What a session can reach, summed: the models it may read and the records in them. */
|
|
977
|
+
declare function summarizeReach(models: DataReachModel[]): {
|
|
978
|
+
readable: number;
|
|
979
|
+
total: number;
|
|
980
|
+
records: number;
|
|
981
|
+
counting: boolean;
|
|
982
|
+
};
|
|
983
|
+
/** `1.2M`, `84K` — how a record count is written where room is short. */
|
|
984
|
+
declare const formatRecords: (n: number) => string;
|
|
985
|
+
interface DataReachProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
986
|
+
models: DataReachModel[];
|
|
987
|
+
/**
|
|
988
|
+
* Ask for the denied models. Shown only when some are denied; it receives
|
|
989
|
+
* their ids. What a request does is the host's.
|
|
990
|
+
*/
|
|
991
|
+
onRequestAccess?: (models: string[]) => void;
|
|
992
|
+
}
|
|
993
|
+
/**
|
|
994
|
+
* The data a session can reach: every published model, the records it can see
|
|
995
|
+
* in each, what it may do with them, and what its view is narrowed to.
|
|
996
|
+
*
|
|
997
|
+
* **Denied models are listed, muted, never left out.** What a session cannot
|
|
998
|
+
* see is what a bigger question would need, and a list of only what is open
|
|
999
|
+
* would make the agent look more capable than it is. A count still on its way
|
|
1000
|
+
* says so (`counting…`) rather than drawing a zero.
|
|
1001
|
+
*
|
|
1002
|
+
* Counts are what *this session* sees after its slice — a model's full size
|
|
1003
|
+
* would overstate what the agent can answer from.
|
|
1004
|
+
*/
|
|
1005
|
+
declare const DataReach: React$1.ForwardRefExoticComponent<DataReachProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1006
|
+
|
|
1007
|
+
/**
|
|
1008
|
+
* What of the Graph's data may accompany a call across the boundary.
|
|
1009
|
+
*
|
|
1010
|
+
* A **closed** set, because an open one is a list nobody can audit: a reader
|
|
1011
|
+
* has to know that what is not named cannot be sent, and that only holds if the
|
|
1012
|
+
* vocabulary is fixed.
|
|
1013
|
+
*/
|
|
1014
|
+
type EgressClass = "type_names" | "property_names" | "the_question" | "property_values" | "record_ids" | "aggregates" | "everything";
|
|
1015
|
+
interface EgressListProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1016
|
+
/** The destination this governs — `llm/anthropic-prod/claude-opus-5`. */
|
|
1017
|
+
to: string;
|
|
1018
|
+
/** What may be sent. **Empty is the default and means nothing may.** */
|
|
1019
|
+
classes?: EgressClass[];
|
|
1020
|
+
/**
|
|
1021
|
+
* What was actually withheld on a real crossing. Absent reads as a **rule**
|
|
1022
|
+
* at rest; present reads as an **event** — see the note below.
|
|
1023
|
+
*/
|
|
1024
|
+
cut?: EgressClass[];
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Per destination: what may be sent, and what was cut.
|
|
1028
|
+
*
|
|
1029
|
+
* **Egress is declared per destination, on the rule that matched it.** A
|
|
1030
|
+
* run-wide setting would have to be the strictest of its destinations, which is
|
|
1031
|
+
* the least useful one — so this component is always about *one* address, and a
|
|
1032
|
+
* surface showing several renders several.
|
|
1033
|
+
*
|
|
1034
|
+
* **Reading a thing and sending it are different permissions.** A query may
|
|
1035
|
+
* filter on `Deal.revenue` while the value never enters a prompt — used to
|
|
1036
|
+
* **compute**, not to **reason**. That is the distinction this list exists to
|
|
1037
|
+
* make visible, and it is why `property_values` being absent is worth as much
|
|
1038
|
+
* screen as the classes that are present.
|
|
1039
|
+
*
|
|
1040
|
+
* **`cut` is what makes it evidence rather than configuration.** The same
|
|
1041
|
+
* component states the bound before a run and what the bound actually withheld
|
|
1042
|
+
* after one; without `cut`, a reader cannot tell a rule that did work from a
|
|
1043
|
+
* rule that never bit.
|
|
1044
|
+
*
|
|
1045
|
+
* An empty `classes` is drawn in words, because the lens default is `[]` and a
|
|
1046
|
+
* blank row would read as *not configured* rather than *nothing may leave*.
|
|
1047
|
+
*/
|
|
1048
|
+
declare const EgressList: React$1.ForwardRefExoticComponent<EgressListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1049
|
+
|
|
1050
|
+
interface AgentHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
1051
|
+
/** What the session is — its name, or a switcher that lists the others. */
|
|
1052
|
+
title: React$1.ReactNode;
|
|
1053
|
+
/** Who is answering — `Analyst`, `v2`, `sonnet-5.5`. */
|
|
1054
|
+
agent?: {
|
|
1055
|
+
name: string;
|
|
1056
|
+
version?: string;
|
|
1057
|
+
model?: string;
|
|
1058
|
+
};
|
|
1059
|
+
/** Where the session is — `running…`, `needs input (1)`, `idle`. `short` is said under 420px. */
|
|
1060
|
+
status?: {
|
|
1061
|
+
tone: NonNullable<StatusDotProps["tone"]>;
|
|
1062
|
+
label: string;
|
|
1063
|
+
short?: string;
|
|
1064
|
+
};
|
|
1065
|
+
/** At the end of the first line — a menu of the session's actions, a close. */
|
|
1066
|
+
actions?: React$1.ReactNode;
|
|
1067
|
+
/** The data the session can reach: the whole world it opened on, or an access group's share. */
|
|
1068
|
+
access?: {
|
|
1069
|
+
kind: "world" | "group";
|
|
1070
|
+
label: string;
|
|
1071
|
+
models?: DataReachModel[];
|
|
1072
|
+
};
|
|
1073
|
+
/** The lens the session reads through — `Funding watch`. */
|
|
1074
|
+
lens?: string;
|
|
1075
|
+
/** Tokens spent of the session's budget. Tokens, never money. */
|
|
1076
|
+
budget?: {
|
|
1077
|
+
used: number;
|
|
1078
|
+
limit: number;
|
|
1079
|
+
};
|
|
1080
|
+
/** The rules it runs under: the strictest as the badge, every one in its popover. */
|
|
1081
|
+
governance?: {
|
|
1082
|
+
summary: string;
|
|
1083
|
+
rules?: {
|
|
1084
|
+
label: string;
|
|
1085
|
+
value: string;
|
|
1086
|
+
}[];
|
|
1087
|
+
egress?: {
|
|
1088
|
+
to: string;
|
|
1089
|
+
classes?: EgressClass[];
|
|
1090
|
+
}[];
|
|
1091
|
+
};
|
|
1092
|
+
/** The marks before the access, the lens and the governance badge. The kit ships no icons. */
|
|
1093
|
+
icons?: {
|
|
1094
|
+
world?: React$1.ReactNode;
|
|
1095
|
+
group?: React$1.ReactNode;
|
|
1096
|
+
lens?: React$1.ReactNode;
|
|
1097
|
+
governance?: React$1.ReactNode;
|
|
1098
|
+
};
|
|
1099
|
+
/** Ask for the denied models — their ids. Shown in the data reach when some are denied. */
|
|
1100
|
+
onRequestAccess?: (models: string[]) => void;
|
|
1101
|
+
/** The host's settings, at a section — `data`, `governance`. Shown as a link in each popover. */
|
|
1102
|
+
onOpenSettings?: (section: "data" | "governance") => void;
|
|
1103
|
+
}
|
|
1104
|
+
/**
|
|
1105
|
+
* The header of an agent's session: who is answering and where it stands,
|
|
1106
|
+
* then what it can reach and the rules it runs under.
|
|
1107
|
+
*
|
|
1108
|
+
* Line one is the session, the agent and its status, and the host's actions.
|
|
1109
|
+
* Line two — drawn when any of it is given — is the data reach (opens every
|
|
1110
|
+
* model, the records this session sees in each, and what it may do), the
|
|
1111
|
+
* lens, the token budget and the governance badge (opens the rules and what
|
|
1112
|
+
* may leave, per destination). Under 420px of its own width the second line
|
|
1113
|
+
* keeps its marks and counts and drops the words.
|
|
1114
|
+
*
|
|
1115
|
+
* Plain props, no conversation: pass it as a `ChatSession`'s `header`, or
|
|
1116
|
+
* over a run view or a board that shows the same session.
|
|
1117
|
+
*/
|
|
1118
|
+
declare const AgentHeader: React$1.ForwardRefExoticComponent<AgentHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1119
|
+
|
|
725
1120
|
declare const stateVariants: (props?: ({
|
|
726
1121
|
tone?: "active" | "error" | "running" | "draft" | "review" | null | undefined;
|
|
727
1122
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -734,7 +1129,7 @@ interface AppStatusBarProps extends React$1.HTMLAttributes<HTMLDivElement>, Vari
|
|
|
734
1129
|
end?: React$1.ReactNode;
|
|
735
1130
|
}
|
|
736
1131
|
/**
|
|
737
|
-
* The
|
|
1132
|
+
* The `sm` line at the bottom of the window — a control's height.
|
|
738
1133
|
*
|
|
739
1134
|
* It describes the **session**, not the screen: what is loaded, what state it
|
|
740
1135
|
* is in, which build is running. That is why it barely changes as you navigate
|
|
@@ -748,106 +1143,70 @@ interface AppStatusBarProps extends React$1.HTMLAttributes<HTMLDivElement>, Vari
|
|
|
748
1143
|
*/
|
|
749
1144
|
declare const AppStatusBar: React$1.ForwardRefExoticComponent<AppStatusBarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
750
1145
|
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
* sizes, and how much a 330px drawer can carry. This component satisfies the
|
|
758
|
-
* dataviz rules and the validated palette, but the *form inventory* has not been
|
|
759
|
-
* agreed — treat the API as unsettled until a board screen uses it in anger.
|
|
760
|
-
*/
|
|
761
|
-
|
|
762
|
-
interface BarDatum {
|
|
763
|
-
label: React$1.ReactNode;
|
|
764
|
-
value: number;
|
|
1146
|
+
interface Artifact {
|
|
1147
|
+
/** The file's name as the step wrote it — `rows-1284.csv`. */
|
|
1148
|
+
name: React$1.ReactNode;
|
|
1149
|
+
/** What produced it — `interpreter`, `export`, `rejects`, `input`. */
|
|
1150
|
+
kind?: React$1.ReactNode;
|
|
1151
|
+
size?: React$1.ReactNode;
|
|
765
1152
|
/**
|
|
766
|
-
*
|
|
767
|
-
*
|
|
768
|
-
* a theme — so it matches that entity everywhere else it appears.
|
|
1153
|
+
* **The address.** The same bytes produced twice are one artifact, so the
|
|
1154
|
+
* digest — eight characters, mono — is what a reader quotes, not the name.
|
|
769
1155
|
*/
|
|
770
|
-
|
|
771
|
-
/**
|
|
772
|
-
|
|
1156
|
+
digest?: React$1.ReactNode;
|
|
1157
|
+
/** When it landed, on the run's own clock — `+76.8s`. */
|
|
1158
|
+
written?: React$1.ReactNode;
|
|
1159
|
+
/**
|
|
1160
|
+
* Retention has taken the bytes. The row stays and is struck: *this file
|
|
1161
|
+
* existed and is gone* is a different fact from *no file was written*.
|
|
1162
|
+
*/
|
|
1163
|
+
gone?: boolean;
|
|
1164
|
+
/** A glyph before the name, in `list` — the file's type. Passed in: the kit ships no icon set. */
|
|
1165
|
+
icon?: React$1.ReactNode;
|
|
773
1166
|
}
|
|
774
|
-
interface
|
|
775
|
-
|
|
776
|
-
/**
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
1167
|
+
interface ArtifactTableProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1168
|
+
files: Artifact[];
|
|
1169
|
+
/**
|
|
1170
|
+
* `table` (default) — the step's full record: header, kind, written, and an
|
|
1171
|
+
* Open / Download per row. `list` — name, size and digest in bare rows, for
|
|
1172
|
+
* the files an answer hands over, where the header and buttons would
|
|
1173
|
+
* outweigh two or three names.
|
|
1174
|
+
*/
|
|
1175
|
+
variant?: "table" | "list";
|
|
1176
|
+
onOpen?: (file: Artifact, index: number) => void;
|
|
1177
|
+
onDownload?: (file: Artifact, index: number) => void;
|
|
1178
|
+
/** Anything else a row offers. Replaces the two defaults when given. */
|
|
1179
|
+
renderActions?: (file: Artifact, index: number) => React$1.ReactNode;
|
|
784
1180
|
}
|
|
785
1181
|
/**
|
|
786
|
-
*
|
|
1182
|
+
* The files a step left behind.
|
|
787
1183
|
*
|
|
788
|
-
*
|
|
789
|
-
*
|
|
790
|
-
*
|
|
1184
|
+
* A file is the one thing a step produces that outlives the reading of it, and
|
|
1185
|
+
* it is **addressed by digest** — which is why the digest is drawn beside the
|
|
1186
|
+
* name rather than hidden behind a tooltip: a file that outlives its run is
|
|
1187
|
+
* still reachable, and two runs that produced the same bytes produced one
|
|
1188
|
+
* artifact.
|
|
791
1189
|
*
|
|
792
|
-
*
|
|
793
|
-
*
|
|
794
|
-
* contrast obligation on the data palette — identity and value are never
|
|
795
|
-
* carried by hue alone.
|
|
796
|
-
*/
|
|
797
|
-
declare const BarChartH: React$1.ForwardRefExoticComponent<BarChartHProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
798
|
-
|
|
799
|
-
/**
|
|
800
|
-
* TODO — provisional. Built ahead of its design review.
|
|
1190
|
+
* Rejected records are a file like any other. That is what makes `18 rejected`
|
|
1191
|
+
* something a person can open instead of a dead count.
|
|
801
1192
|
*
|
|
802
|
-
*
|
|
803
|
-
*
|
|
804
|
-
*
|
|
805
|
-
* sizes, and how much a 330px drawer can carry. This component satisfies the
|
|
806
|
-
* dataviz rules and the validated palette, but the *form inventory* has not been
|
|
807
|
-
* agreed — treat the API as unsettled until a board screen uses it in anger.
|
|
1193
|
+
* **A step that left nothing draws no table.** Absence is the caller's to
|
|
1194
|
+
* render — see `AbsenceNote` — because an empty table here would claim the step
|
|
1195
|
+
* wrote an empty file.
|
|
808
1196
|
*/
|
|
809
|
-
|
|
810
|
-
interface
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
display?: React$1.ReactNode;
|
|
817
|
-
}
|
|
818
|
-
interface BarChartVProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
819
|
-
data: ColumnDatum[];
|
|
820
|
-
/** Fixes the scale. Defaults to the largest value present. */
|
|
821
|
-
max?: number;
|
|
822
|
-
/** Values to draw a hairline at — `[50, 75, 100]`. */
|
|
823
|
-
gridlines?: number[];
|
|
824
|
-
height?: number;
|
|
825
|
-
color?: string;
|
|
826
|
-
/** Colour for the column the story is about. Defaults to `color`. */
|
|
827
|
-
highlightColor?: string;
|
|
828
|
-
/** Which column carries the emphasis — usually the most recent. */
|
|
829
|
-
highlightIndex?: number;
|
|
830
|
-
/**
|
|
831
|
-
* Which columns get a value on the cap.
|
|
832
|
-
*
|
|
833
|
-
* `last` by default. A number on every column stops being a label and becomes
|
|
834
|
-
* texture; the gridlines carry the rest.
|
|
835
|
-
*/
|
|
836
|
-
labelMode?: "last" | "all" | "none";
|
|
837
|
-
caption?: React$1.ReactNode;
|
|
1197
|
+
declare const ArtifactTable: React$1.ForwardRefExoticComponent<ArtifactTableProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1198
|
+
interface ArtifactCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1199
|
+
file: Artifact;
|
|
1200
|
+
/** The line under the name — `48 KB · kept for 7 days`, `412 rows · missing store code`. */
|
|
1201
|
+
note?: React$1.ReactNode;
|
|
1202
|
+
/** At the right — a `Download` button, or a tag saying what the file is. */
|
|
1203
|
+
aside?: React$1.ReactNode;
|
|
838
1204
|
}
|
|
839
1205
|
/**
|
|
840
|
-
* One
|
|
841
|
-
*
|
|
842
|
-
* Vertical because the x-axis is time and time reads left to right. Columns are
|
|
843
|
-
* capped at 24px and separated by real gaps, so the band's leftover is air
|
|
844
|
-
* rather than a fatter bar.
|
|
845
|
-
*
|
|
846
|
-
* `labelMode` defaults to `last`: the current period is the one being asked
|
|
847
|
-
* about, and the gridlines carry the others. One series, so no legend —
|
|
848
|
-
* `caption` says what is plotted.
|
|
1206
|
+
* One file, as the whole of what an answer hands over: its type, its name,
|
|
1207
|
+
* what it holds and what to do with it. Several files are an `ArtifactTable`.
|
|
849
1208
|
*/
|
|
850
|
-
declare const
|
|
1209
|
+
declare const ArtifactCard: React$1.ForwardRefExoticComponent<ArtifactCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
851
1210
|
|
|
852
1211
|
/**
|
|
853
1212
|
* The capabilities Invana ships today — **suggestions, not a limit.**
|
|
@@ -938,6 +1297,11 @@ interface CannotAnswerCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
938
1297
|
remedy?: React$1.ReactNode;
|
|
939
1298
|
/** Overrides the label. Defaults to `cannot answer`. */
|
|
940
1299
|
label?: React$1.ReactNode;
|
|
1300
|
+
/**
|
|
1301
|
+
* `info` for an answer given in part: the card says which part the data
|
|
1302
|
+
* does not hold, above the answer that covers the rest.
|
|
1303
|
+
*/
|
|
1304
|
+
tone?: "default" | "info";
|
|
941
1305
|
}
|
|
942
1306
|
/**
|
|
943
1307
|
* The graph does not hold what was asked.
|
|
@@ -963,7 +1327,7 @@ declare const CannotAnswerCard: React$1.ForwardRefExoticComponent<CannotAnswerCa
|
|
|
963
1327
|
*
|
|
964
1328
|
* `agent` is the **spine**: the runtime itself, which does the participating
|
|
965
1329
|
* rather than being a participant, and is never governed. Nothing in this file
|
|
966
|
-
* knows that —
|
|
1330
|
+
* knows that — the surface that draws the layers says so.
|
|
967
1331
|
*/
|
|
968
1332
|
type KnownLayer = "graph_data" | "llm" | "third_party" | "cache" | "human" | "agent";
|
|
969
1333
|
/**
|
|
@@ -1065,7 +1429,7 @@ interface LayerChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "
|
|
|
1065
1429
|
/**
|
|
1066
1430
|
* One class of participant, as a swatch and a name.
|
|
1067
1431
|
*
|
|
1068
|
-
* It heads a `LayerSection`,
|
|
1432
|
+
* It heads a `LayerSection`, names a layer's row in a run's `Gantt`, and counts a layer in
|
|
1069
1433
|
* the Worlds drawer — everywhere a reader has to know *what kind of thing this
|
|
1070
1434
|
* is* before reading which one.
|
|
1071
1435
|
*
|
|
@@ -1171,6 +1535,8 @@ interface CastTableProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
|
|
|
1171
1535
|
*/
|
|
1172
1536
|
resolved?: CastResolution[];
|
|
1173
1537
|
readOnly?: boolean;
|
|
1538
|
+
/** Passed to the table: no box, outer columns flush — for a cast inside a panel. */
|
|
1539
|
+
seamless?: boolean;
|
|
1174
1540
|
}
|
|
1175
1541
|
/**
|
|
1176
1542
|
* `role → resolves to → why this one`, four fixed rows.
|
|
@@ -1193,6 +1559,30 @@ interface CastTableProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
|
|
|
1193
1559
|
*/
|
|
1194
1560
|
declare const CastTable: React$1.ForwardRefExoticComponent<CastTableProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1195
1561
|
|
|
1562
|
+
interface CaveatNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1563
|
+
/** The kind of caveat, one word — `indicative`, `association`, `simulation`. */
|
|
1564
|
+
label: React$1.ReactNode;
|
|
1565
|
+
/** What was excluded, imputed or assumed, and how far to trust the figure. */
|
|
1566
|
+
children?: React$1.ReactNode;
|
|
1567
|
+
/**
|
|
1568
|
+
* `warning` (the default) qualifies the figure. `info` says what was filled
|
|
1569
|
+
* in rather than measured; `destructive` says the data itself is wrong or late.
|
|
1570
|
+
*/
|
|
1571
|
+
tone?: "warning" | "info" | "destructive";
|
|
1572
|
+
/** A link after the text, to what the caveat is about — `Show the 4 stores`. */
|
|
1573
|
+
action?: React$1.ReactNode;
|
|
1574
|
+
onAction?: () => void;
|
|
1575
|
+
}
|
|
1576
|
+
/**
|
|
1577
|
+
* How far to trust the figure above it.
|
|
1578
|
+
*
|
|
1579
|
+
* What was excluded, imputed or assumed, said beside the answer rather than
|
|
1580
|
+
* in a footnote, and labelled with its kind so a reader scanning several
|
|
1581
|
+
* answers can tell an association from a simulation at a glance. Tinted, not
|
|
1582
|
+
* bordered: it qualifies the answer, it is not an error.
|
|
1583
|
+
*/
|
|
1584
|
+
declare const CaveatNote: React$1.ForwardRefExoticComponent<CaveatNoteProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1585
|
+
|
|
1196
1586
|
interface ChatSessionProps {
|
|
1197
1587
|
/** The message list — typically `<ChatSessionMessage />` nodes. */
|
|
1198
1588
|
children?: React$1.ReactNode;
|
|
@@ -1221,6 +1611,8 @@ interface ChatSessionProps {
|
|
|
1221
1611
|
* ResizeObserver watches the message column), but only while the user is already
|
|
1222
1612
|
* near the bottom — scroll up to read history and the view stays put. Layout and
|
|
1223
1613
|
* scroll behaviour only; it owns no session state.
|
|
1614
|
+
*
|
|
1615
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1224
1616
|
*/
|
|
1225
1617
|
declare function ChatSession({ children, footer, emptyState, autoScrollKey, followThreshold, className, bodyClassName, }: ChatSessionProps): React$1.JSX.Element;
|
|
1226
1618
|
|
|
@@ -1258,6 +1650,8 @@ interface ChatSessionMessageProps {
|
|
|
1258
1650
|
*
|
|
1259
1651
|
* Presentational only — no data fetching or state — so it composes over any
|
|
1260
1652
|
* backend.
|
|
1653
|
+
*
|
|
1654
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1261
1655
|
*/
|
|
1262
1656
|
declare function ChatSessionMessage({ role, children, status, icon, meta, actions, footer, className, }: ChatSessionMessageProps): React$1.JSX.Element;
|
|
1263
1657
|
|
|
@@ -1293,6 +1687,8 @@ interface ChatSessionMessageOptionsProps {
|
|
|
1293
1687
|
*
|
|
1294
1688
|
* Purely presentational and icon-agnostic: you supply the icons and handlers, so
|
|
1295
1689
|
* it slots into any backend.
|
|
1690
|
+
*
|
|
1691
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1296
1692
|
*/
|
|
1297
1693
|
declare function ChatSessionMessageOptions({ actions, className, }: ChatSessionMessageOptionsProps): React$1.JSX.Element;
|
|
1298
1694
|
|
|
@@ -1333,6 +1729,8 @@ interface ChatSessionComposerProps {
|
|
|
1333
1729
|
* Deliberately dependency-free — no query-language editor or provider selects
|
|
1334
1730
|
* are baked in. Drop your own controls into `toolbarStart` / `toolbarEnd` (and
|
|
1335
1731
|
* a QL editor into a custom layout if you need one).
|
|
1732
|
+
*
|
|
1733
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1336
1734
|
*/
|
|
1337
1735
|
declare function ChatSessionComposer({ value, onChange, onSend, onStop, isRunning, disabled, placeholder, toolbarStart, toolbarEnd, attachments, sendIcon, stopIcon, sendDisabled, className, textareaClassName, }: ChatSessionComposerProps): React$1.JSX.Element;
|
|
1338
1736
|
|
|
@@ -1341,6 +1739,8 @@ declare function ChatSessionComposer({ value, onChange, onSend, onStop, isRunnin
|
|
|
1341
1739
|
* status dot, prompt caret, spinner — occupies this fixed-width column so all
|
|
1342
1740
|
* body text starts on one left edge ({@link ChatSessionPromptRow},
|
|
1343
1741
|
* {@link ChatSessionProgressLine} and this row all use it).
|
|
1742
|
+
*
|
|
1743
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1344
1744
|
*/
|
|
1345
1745
|
declare const chatSessionGutterClass = "w-3.5 shrink-0 flex justify-center";
|
|
1346
1746
|
/**
|
|
@@ -1372,6 +1772,8 @@ interface ChatSessionActivityRowProps {
|
|
|
1372
1772
|
* `actions` for the re-run / view-query / copy / vote toolbar.
|
|
1373
1773
|
*
|
|
1374
1774
|
* Presentational only — no data fetching or state.
|
|
1775
|
+
*
|
|
1776
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1375
1777
|
*/
|
|
1376
1778
|
declare function ChatSessionActivityRow({ status, marker, children, actions, meta, footer, className, }: ChatSessionActivityRowProps): React$1.JSX.Element;
|
|
1377
1779
|
interface ChatSessionActivitySubLineProps {
|
|
@@ -1384,6 +1786,8 @@ interface ChatSessionActivitySubLineProps {
|
|
|
1384
1786
|
* An indented detail line under an activity row — "└ Backgrounded agent
|
|
1385
1787
|
* (↓ to manage)", an interruption note, a one-line result. Render inside the
|
|
1386
1788
|
* row's `footer` (or directly after the body in `children`).
|
|
1789
|
+
*
|
|
1790
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1387
1791
|
*/
|
|
1388
1792
|
declare function ChatSessionActivitySubLine({ elbow, children, className, }: ChatSessionActivitySubLineProps): React$1.JSX.Element;
|
|
1389
1793
|
|
|
@@ -1404,6 +1808,8 @@ interface ChatSessionPromptRowProps {
|
|
|
1404
1808
|
* Full bleed assumes the default `ChatSession` body padding (`p-3`) — the
|
|
1405
1809
|
* negative margins here cancel it. If you override `bodyClassName` with a
|
|
1406
1810
|
* different horizontal padding, pass matching `-mx-*`/`px-*` via `className`.
|
|
1811
|
+
*
|
|
1812
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1407
1813
|
*/
|
|
1408
1814
|
declare function ChatSessionPromptRow({ children, caret, meta, className, }: ChatSessionPromptRowProps): React$1.JSX.Element;
|
|
1409
1815
|
|
|
@@ -1420,6 +1826,8 @@ interface ChatSessionProgressLineProps {
|
|
|
1420
1826
|
* A transient "work in flight" line in the transcript — spinner in the shared
|
|
1421
1827
|
* gutter, label, and an optional right-aligned elapsed readout. Replace it with
|
|
1422
1828
|
* a settled {@link ChatSessionActivityRow} when the run finishes.
|
|
1829
|
+
*
|
|
1830
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1423
1831
|
*/
|
|
1424
1832
|
declare function ChatSessionProgressLine({ children, spinner, elapsed, className, }: ChatSessionProgressLineProps): React$1.JSX.Element;
|
|
1425
1833
|
|
|
@@ -1435,6 +1843,13 @@ interface ChatSessionDisclosureProps {
|
|
|
1435
1843
|
/** Uncontrolled initial state. Defaults to closed. */
|
|
1436
1844
|
defaultOpen?: boolean;
|
|
1437
1845
|
onOpenChange?: (open: boolean) => void;
|
|
1846
|
+
/**
|
|
1847
|
+
* `card` (default) is a bordered block under an activity row. `inline` is a
|
|
1848
|
+
* bare line inside an answer — `▸ method` with its meta at the right in mono —
|
|
1849
|
+
* that opens onto a preformatted code block when its content is text, or onto
|
|
1850
|
+
* the content as given — code, the facts under it, a list of steps — when not.
|
|
1851
|
+
*/
|
|
1852
|
+
variant?: "card" | "inline";
|
|
1438
1853
|
/** Custom chevron node; the default "▸" rotates when open. */
|
|
1439
1854
|
chevron?: React$1.ReactNode;
|
|
1440
1855
|
className?: string;
|
|
@@ -1448,8 +1863,30 @@ interface ChatSessionDisclosureProps {
|
|
|
1448
1863
|
* `overflow-x-auto` body, matching the transcript's nested-detail grammar.
|
|
1449
1864
|
*
|
|
1450
1865
|
* Controlled (`open` + `onOpenChange`) or uncontrolled (`defaultOpen`).
|
|
1866
|
+
*
|
|
1867
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1868
|
+
*/
|
|
1869
|
+
declare function ChatSessionDisclosure({ label, meta, children, open, defaultOpen, onOpenChange, variant, chevron, className, contentClassName, }: ChatSessionDisclosureProps): React$1.JSX.Element;
|
|
1870
|
+
/**
|
|
1871
|
+
* The code an inline disclosure opens onto, when it opens onto more than code:
|
|
1872
|
+
* a query, a formula, a model. `<strong>` inside marks its keywords.
|
|
1873
|
+
*
|
|
1874
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1875
|
+
*/
|
|
1876
|
+
declare function ChatSessionDisclosureCode({ className, ...props }: React$1.HTMLAttributes<HTMLPreElement>): React$1.JSX.Element;
|
|
1877
|
+
interface ChatSessionDisclosureStepsProps extends React$1.OlHTMLAttributes<HTMLOListElement> {
|
|
1878
|
+
/** Each step in the order it ran, with its count or time at the right. */
|
|
1879
|
+
steps: {
|
|
1880
|
+
label: React$1.ReactNode;
|
|
1881
|
+
detail?: React$1.ReactNode;
|
|
1882
|
+
}[];
|
|
1883
|
+
}
|
|
1884
|
+
/**
|
|
1885
|
+
* A method of several steps, numbered in the order they ran.
|
|
1886
|
+
*
|
|
1887
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1451
1888
|
*/
|
|
1452
|
-
declare function
|
|
1889
|
+
declare function ChatSessionDisclosureSteps({ steps, className, ...props }: ChatSessionDisclosureStepsProps): React$1.JSX.Element;
|
|
1453
1890
|
|
|
1454
1891
|
/**
|
|
1455
1892
|
* Lifecycle of a background task / session. Mapped to the status tokens from
|
|
@@ -1475,7 +1912,9 @@ interface ChatSessionTaskRowProps {
|
|
|
1475
1912
|
/**
|
|
1476
1913
|
* One background task / agent / session: status dot, bold name, truncating
|
|
1477
1914
|
* description, right-aligned meta. Used both in the pinned strip under a
|
|
1478
|
-
* transcript and in the grouped task
|
|
1915
|
+
* transcript and in the grouped task board ({@link ChatSessionTaskGroup}).
|
|
1916
|
+
*
|
|
1917
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1479
1918
|
*/
|
|
1480
1919
|
declare function ChatSessionTaskRow({ status, indicator, name, description, meta, onClick, className, }: ChatSessionTaskRowProps): React$1.JSX.Element;
|
|
1481
1920
|
interface ChatSessionTaskGroupProps {
|
|
@@ -1487,7 +1926,9 @@ interface ChatSessionTaskGroupProps {
|
|
|
1487
1926
|
}
|
|
1488
1927
|
/**
|
|
1489
1928
|
* A titled section of task rows — the "Needs input" / "Completed" groups of a
|
|
1490
|
-
* session
|
|
1929
|
+
* session board.
|
|
1930
|
+
*
|
|
1931
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1491
1932
|
*/
|
|
1492
1933
|
declare function ChatSessionTaskGroup({ heading, children, className, }: ChatSessionTaskGroupProps): React$1.JSX.Element;
|
|
1493
1934
|
|
|
@@ -1502,6 +1943,8 @@ interface ChatSessionStatusBarProps {
|
|
|
1502
1943
|
* The slim bar under a chat session's composer — mode indicator, view
|
|
1503
1944
|
* switches, agent counts, keyboard hints. Two slots, muted by default; put
|
|
1504
1945
|
* interactive elements (buttons, toggles) straight into the slots.
|
|
1946
|
+
*
|
|
1947
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1505
1948
|
*/
|
|
1506
1949
|
declare function ChatSessionStatusBar({ start, end, className, }: ChatSessionStatusBarProps): React$1.JSX.Element;
|
|
1507
1950
|
|
|
@@ -1525,19 +1968,46 @@ interface ChatSessionContextChipProps extends React$1.HTMLAttributes<HTMLDivElem
|
|
|
1525
1968
|
*
|
|
1526
1969
|
* It states the binding in words. A highlight on the canvas alone would leave
|
|
1527
1970
|
* the reader guessing what scope their question has.
|
|
1971
|
+
*
|
|
1972
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1528
1973
|
*/
|
|
1529
1974
|
declare function ChatSessionContextChip({ icon, onDismiss, dismissLabel, className, children, ...props }: ChatSessionContextChipProps): React$1.JSX.Element;
|
|
1530
1975
|
|
|
1976
|
+
/**
|
|
1977
|
+
* The cursor at the end of text that is still being written. A block, not a
|
|
1978
|
+
* bar: it reads as the place the next word lands.
|
|
1979
|
+
*
|
|
1980
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1981
|
+
*/
|
|
1982
|
+
declare function ChatSessionCaret({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
|
|
1983
|
+
|
|
1531
1984
|
interface CitationRowProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>, "children"> {
|
|
1532
1985
|
/** What kind of record this is — `Article`, `Bar`, `Event`. */
|
|
1533
|
-
kind
|
|
1986
|
+
kind?: React$1.ReactNode;
|
|
1987
|
+
/**
|
|
1988
|
+
* The number an answer cites it by — `1` renders as `[1]`. Numbered rows are
|
|
1989
|
+
* how an answer's markers are resolved, so the number leads the row.
|
|
1990
|
+
*/
|
|
1991
|
+
marker?: React$1.ReactNode;
|
|
1534
1992
|
/** The record itself, in the words it was stored with. */
|
|
1535
1993
|
children?: React$1.ReactNode;
|
|
1536
1994
|
/** Where it came from — the dataset, the publisher, the timestamp. */
|
|
1537
1995
|
source?: React$1.ReactNode;
|
|
1996
|
+
/** How many records it contributed — `3,406`, `5 days`. Mono, at the right. */
|
|
1997
|
+
count?: React$1.ReactNode;
|
|
1998
|
+
/** A second line under the record — what kind of source it is and how fresh: `table · loaded 28 Sep`. */
|
|
1999
|
+
detail?: React$1.ReactNode;
|
|
2000
|
+
/** The row the reader is on — the one a lit marker in the prose points to. */
|
|
2001
|
+
active?: boolean;
|
|
1538
2002
|
}
|
|
1539
2003
|
interface CitationListProps extends React$1.HTMLAttributes<HTMLUListElement> {
|
|
1540
2004
|
children?: React$1.ReactNode;
|
|
2005
|
+
/**
|
|
2006
|
+
* A line under the sources. `warning` when it says the answer rests on no
|
|
2007
|
+
* records — which is said out loud, never left for the zeros to imply.
|
|
2008
|
+
*/
|
|
2009
|
+
note?: React$1.ReactNode;
|
|
2010
|
+
noteTone?: "muted" | "warning";
|
|
1541
2011
|
}
|
|
1542
2012
|
/**
|
|
1543
2013
|
* The records an answer rests on.
|
|
@@ -1593,21 +2063,56 @@ interface ClarifyOption {
|
|
|
1593
2063
|
detail?: React$1.ReactNode;
|
|
1594
2064
|
disabled?: boolean;
|
|
1595
2065
|
}
|
|
2066
|
+
/**
|
|
2067
|
+
* Where the ask is in its life. `pending` waits on the reader; the rest are
|
|
2068
|
+
* settled and read-only. Open: a surface may name its own.
|
|
2069
|
+
*/
|
|
2070
|
+
type ClarifyState = "pending" | "answered" | "skipped" | "superseded" | "expired" | (string & {});
|
|
1596
2071
|
interface ClarifyCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
2072
|
+
/** @default "pending" */
|
|
2073
|
+
state?: ClarifyState;
|
|
2074
|
+
/** The header's word while the ask waits — `confirm` for a yes-or-no. @default "question" */
|
|
2075
|
+
kind?: React$1.ReactNode;
|
|
1597
2076
|
/** Which step asked — `understand`. */
|
|
1598
2077
|
step?: React$1.ReactNode;
|
|
1599
2078
|
/** How long it has been waiting — `parked 14 min`. */
|
|
1600
2079
|
waiting?: React$1.ReactNode;
|
|
2080
|
+
/** When it settled — `just now`, `2 min ago`. At the header's right, after `waiting`. */
|
|
2081
|
+
time?: React$1.ReactNode;
|
|
1601
2082
|
/** The question. One sentence. */
|
|
1602
|
-
question
|
|
1603
|
-
|
|
2083
|
+
question?: React$1.ReactNode;
|
|
2084
|
+
/** The choices, as one Questionnaire item. Ignored when `children` is given. */
|
|
2085
|
+
options?: ClarifyOption[];
|
|
1604
2086
|
value?: string;
|
|
1605
2087
|
onSelect?: (value: string) => void;
|
|
1606
|
-
/**
|
|
1607
|
-
|
|
1608
|
-
|
|
2088
|
+
/**
|
|
2089
|
+
* Any other control, in place of `options` — a `Questionnaire` of several
|
|
2090
|
+
* steps, a form, a summary of the answers.
|
|
2091
|
+
*/
|
|
2092
|
+
children?: React$1.ReactNode;
|
|
2093
|
+
/** Why these options and not others, or where a default came from. */
|
|
1609
2094
|
footnote?: React$1.ReactNode;
|
|
2095
|
+
/** The confirm control. */
|
|
2096
|
+
actions?: React$1.ReactNode;
|
|
2097
|
+
/** Which edge the actions sit on. @default "start" */
|
|
2098
|
+
actionsAlign?: "start" | "end";
|
|
2099
|
+
}
|
|
2100
|
+
interface ClarifyFootnoteProps extends React$1.HTMLAttributes<HTMLParagraphElement> {
|
|
2101
|
+
children?: React$1.ReactNode;
|
|
1610
2102
|
}
|
|
2103
|
+
/** The line under an ask: why these options, or where a default came from. *
|
|
2104
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
2105
|
+
*/
|
|
2106
|
+
declare const ClarifyFootnote: React$1.ForwardRefExoticComponent<ClarifyFootnoteProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
2107
|
+
interface ClarifyActionsProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2108
|
+
/** Which edge the actions sit on. @default "start" */
|
|
2109
|
+
align?: "start" | "end";
|
|
2110
|
+
children?: React$1.ReactNode;
|
|
2111
|
+
}
|
|
2112
|
+
/** The row of controls that answers, skips or changes an ask. *
|
|
2113
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
2114
|
+
*/
|
|
2115
|
+
declare const ClarifyActions: React$1.ForwardRefExoticComponent<ClarifyActionsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1611
2116
|
/**
|
|
1612
2117
|
* The run stopped and asked, rather than guessing.
|
|
1613
2118
|
*
|
|
@@ -1620,6 +2125,14 @@ interface ClarifyCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
1620
2125
|
* holds, which is why `detail` exists and why `footnote` is worth saying out
|
|
1621
2126
|
* loud. A card that offered invented options would undo the grounding the rest
|
|
1622
2127
|
* of the system is built on.
|
|
2128
|
+
*
|
|
2129
|
+
* **One card through the ask's whole life.** `pending` offers the choice; once
|
|
2130
|
+
* `answered`, `skipped`, `superseded` or `expired` the header says so and the
|
|
2131
|
+
* body is read-only. The body is `options` for a choice, or any control passed
|
|
2132
|
+
* as `children` — a `Questionnaire` of several steps (with its progress and
|
|
2133
|
+
* Skip / Next), a form, or the answers of a finished multi-step ask.
|
|
2134
|
+
*
|
|
2135
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1623
2136
|
*/
|
|
1624
2137
|
declare const ClarifyCard: React$1.ForwardRefExoticComponent<ClarifyCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1625
2138
|
|
|
@@ -1638,7 +2151,8 @@ interface ContextBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1638
2151
|
hint?: React$1.ReactNode;
|
|
1639
2152
|
}
|
|
1640
2153
|
/**
|
|
1641
|
-
* The
|
|
2154
|
+
* The `sm` bar between a panel and the status bar — a control's height, so
|
|
2155
|
+
* it lines up with the controls it sits beside.
|
|
1642
2156
|
*
|
|
1643
2157
|
* It answers "where am I, and what is true right now" — the view switch, the
|
|
1644
2158
|
* counts that matter for the work in front of you, and the shortcut that
|
|
@@ -1702,100 +2216,19 @@ interface DiffListProps extends React$1.HTMLAttributes<HTMLUListElement> {
|
|
|
1702
2216
|
declare const DiffList: React$1.ForwardRefExoticComponent<DiffListProps & React$1.RefAttributes<HTMLUListElement>>;
|
|
1703
2217
|
declare const DiffRow: React$1.ForwardRefExoticComponent<DiffRowProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
1704
2218
|
|
|
1705
|
-
/**
|
|
1706
|
-
* TODO — provisional. Built ahead of its design review.
|
|
1707
|
-
*
|
|
1708
|
-
* The chart set was deliberately deferred while the rest of the kit was built,
|
|
1709
|
-
* because charts are the one group with a real design question in them rather
|
|
1710
|
-
* than a markup question: which forms this product actually needs, at what
|
|
1711
|
-
* sizes, and how much a 330px drawer can carry. This component satisfies the
|
|
1712
|
-
* dataviz rules and the validated palette, but the *form inventory* has not been
|
|
1713
|
-
* agreed — treat the API as unsettled until a board screen uses it in anger.
|
|
1714
|
-
*/
|
|
1715
|
-
|
|
1716
|
-
interface DivergingDatum {
|
|
1717
|
-
label: React$1.ReactNode;
|
|
1718
|
-
/** Signed. The sign is the whole point of this chart. */
|
|
1719
|
-
value: number;
|
|
1720
|
-
display?: React$1.ReactNode;
|
|
1721
|
-
}
|
|
1722
|
-
interface DivergingBarProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1723
|
-
data: DivergingDatum[];
|
|
1724
|
-
/** Fixes the scale on both sides. Defaults to the largest magnitude present. */
|
|
1725
|
-
max?: number;
|
|
1726
|
-
labelWidth?: number;
|
|
1727
|
-
/** Above the midpoint. Defaults to `--color-success`. */
|
|
1728
|
-
positiveColor?: string;
|
|
1729
|
-
/** Below it. Defaults to `--color-destructive`. */
|
|
1730
|
-
negativeColor?: string;
|
|
1731
|
-
caption?: React$1.ReactNode;
|
|
1732
|
-
}
|
|
1733
|
-
/**
|
|
1734
|
-
* Polarity — how far either side of zero.
|
|
1735
|
-
*
|
|
1736
|
-
* A net learning weight, a delta against a baseline, a sentiment score. The
|
|
1737
|
-
* midpoint is a real zero line, drawn in the neutral border colour, and both
|
|
1738
|
-
* sides share one scale so a `−9` is visibly longer than a `+6`.
|
|
1739
|
-
*
|
|
1740
|
-
* The poles use the **status** colours rather than data-palette hues, because
|
|
1741
|
-
* this chart's two directions are good and bad, not two categories. That is the
|
|
1742
|
-
* one place status colour belongs on a chart — it is encoding valence, not
|
|
1743
|
-
* identity, so it is never "series 1 and series 2". Every bar is directly
|
|
1744
|
-
* labelled, so the sign is readable without seeing colour at all.
|
|
1745
|
-
*/
|
|
1746
|
-
declare const DivergingBar: React$1.ForwardRefExoticComponent<DivergingBarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1747
|
-
|
|
1748
|
-
/**
|
|
1749
|
-
* What of the Graph's data may accompany a call across the boundary.
|
|
1750
|
-
*
|
|
1751
|
-
* A **closed** set, because an open one is a list nobody can audit: a reader
|
|
1752
|
-
* has to know that what is not named cannot be sent, and that only holds if the
|
|
1753
|
-
* vocabulary is fixed.
|
|
1754
|
-
*/
|
|
1755
|
-
type EgressClass = "type_names" | "property_names" | "the_question" | "property_values" | "record_ids" | "aggregates" | "everything";
|
|
1756
|
-
interface EgressListProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1757
|
-
/** The destination this governs — `llm/anthropic-prod/claude-opus-5`. */
|
|
1758
|
-
to: string;
|
|
1759
|
-
/** What may be sent. **Empty is the default and means nothing may.** */
|
|
1760
|
-
classes?: EgressClass[];
|
|
1761
|
-
/**
|
|
1762
|
-
* What was actually withheld on a real crossing. Absent reads as a **rule**
|
|
1763
|
-
* at rest; present reads as an **event** — see the note below.
|
|
1764
|
-
*/
|
|
1765
|
-
cut?: EgressClass[];
|
|
1766
|
-
}
|
|
1767
|
-
/**
|
|
1768
|
-
* Per destination: what may be sent, and what was cut.
|
|
1769
|
-
*
|
|
1770
|
-
* **Egress is declared per destination, on the rule that matched it.** A
|
|
1771
|
-
* run-wide setting would have to be the strictest of its destinations, which is
|
|
1772
|
-
* the least useful one — so this component is always about *one* address, and a
|
|
1773
|
-
* surface showing several renders several.
|
|
1774
|
-
*
|
|
1775
|
-
* **Reading a thing and sending it are different permissions.** A query may
|
|
1776
|
-
* filter on `Deal.revenue` while the value never enters a prompt — used to
|
|
1777
|
-
* **compute**, not to **reason**. That is the distinction this list exists to
|
|
1778
|
-
* make visible, and it is why `property_values` being absent is worth as much
|
|
1779
|
-
* screen as the classes that are present.
|
|
1780
|
-
*
|
|
1781
|
-
* **`cut` is what makes it evidence rather than configuration.** The same
|
|
1782
|
-
* component states the bound before a run and what the bound actually withheld
|
|
1783
|
-
* after one; without `cut`, a reader cannot tell a rule that did work from a
|
|
1784
|
-
* rule that never bit.
|
|
1785
|
-
*
|
|
1786
|
-
* An empty `classes` is drawn in words, because the lens default is `[]` and a
|
|
1787
|
-
* blank row would read as *not configured* rather than *nothing may leave*.
|
|
1788
|
-
*/
|
|
1789
|
-
declare const EgressList: React$1.ForwardRefExoticComponent<EgressListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1790
|
-
|
|
1791
2219
|
/**
|
|
1792
2220
|
* How an answer's records are rendered. A kind is a *body inside* the emission
|
|
1793
2221
|
* card, never a block of its own (DS9) — so this names the body, it does not
|
|
1794
2222
|
* pick a different container.
|
|
2223
|
+
*
|
|
2224
|
+
* Open: the names below are the common ones, and an assistant answer labels
|
|
2225
|
+
* its card in the grammar's own words — `ranked`, `scenario`, `model check`.
|
|
1795
2226
|
*/
|
|
1796
|
-
type EmissionKind = "metric" | "table" | "chart" | "subgraph" | "prose" | "empty" | "html";
|
|
1797
|
-
interface EmissionHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2227
|
+
type EmissionKind = "metric" | "table" | "chart" | "subgraph" | "prose" | "empty" | "html" | (string & {});
|
|
2228
|
+
interface EmissionHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
1798
2229
|
kind: EmissionKind;
|
|
2230
|
+
/** What the card shows, in words — `Apex Components, weekly lead time`. */
|
|
2231
|
+
title?: React$1.ReactNode;
|
|
1799
2232
|
/** The projection template that rendered it — `table-compact@3`. Shown in mono. */
|
|
1800
2233
|
template?: React$1.ReactNode;
|
|
1801
2234
|
/**
|
|
@@ -1812,6 +2245,7 @@ interface EmissionHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1812
2245
|
actions?: React$1.ReactNode;
|
|
1813
2246
|
}
|
|
1814
2247
|
interface EmissionCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title">, Omit<EmissionHeaderProps, keyof React$1.HTMLAttributes<HTMLDivElement>> {
|
|
2248
|
+
title?: React$1.ReactNode;
|
|
1815
2249
|
/** Set false to render the body alone, where a surface supplies its own header. */
|
|
1816
2250
|
showHeader?: boolean;
|
|
1817
2251
|
children?: React$1.ReactNode;
|
|
@@ -1823,6 +2257,8 @@ interface EmissionCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
1823
2257
|
* result, a scheduled answer (DS7). It is exported on its own so a surface that
|
|
1824
2258
|
* already owns its container can still show the same header rather than
|
|
1825
2259
|
* inventing a second one that drifts.
|
|
2260
|
+
*
|
|
2261
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1826
2262
|
*/
|
|
1827
2263
|
declare const EmissionHeader: React$1.ForwardRefExoticComponent<EmissionHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1828
2264
|
/**
|
|
@@ -1837,11 +2273,21 @@ declare const EmissionHeader: React$1.ForwardRefExoticComponent<EmissionHeaderPr
|
|
|
1837
2273
|
* object (DS6). It does not know what an Observation is, and it does not fetch,
|
|
1838
2274
|
* re-render or re-query anything; switching templates is the caller's job,
|
|
1839
2275
|
* handed in through `actions`.
|
|
2276
|
+
*
|
|
2277
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1840
2278
|
*/
|
|
1841
2279
|
declare const EmissionCard: React$1.ForwardRefExoticComponent<EmissionCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2280
|
+
/**
|
|
2281
|
+
* The card's body: its blocks in one padded column, each a step apart.
|
|
2282
|
+
*
|
|
2283
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
2284
|
+
*/
|
|
2285
|
+
declare const EmissionBody: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1842
2286
|
/**
|
|
1843
2287
|
* The `prose` body's citation marker — the superscript that ties a clause to
|
|
1844
|
-
* the records behind it.
|
|
2288
|
+
* the records behind it. Set `data-active` while its source is the one in view.
|
|
2289
|
+
*
|
|
2290
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
1845
2291
|
*/
|
|
1846
2292
|
declare const CitationMarker: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLElement> & React$1.RefAttributes<HTMLElement>>;
|
|
1847
2293
|
|
|
@@ -1875,21 +2321,81 @@ declare const EmptyState: React$1.ForwardRefExoticComponent<EmptyStateProps & Re
|
|
|
1875
2321
|
/** One not-yet-available surface, and the condition that opens it. */
|
|
1876
2322
|
declare const EmptyStateLock: React$1.ForwardRefExoticComponent<EmptyStateLockProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1877
2323
|
|
|
1878
|
-
|
|
2324
|
+
interface ErrorBoundaryProps {
|
|
1879
2325
|
children: ReactNode;
|
|
1880
|
-
|
|
2326
|
+
/**
|
|
2327
|
+
* Called once for each error the boundary catches, with React's component
|
|
2328
|
+
* stack — where an app reports the error (a log, a counter). The boundary
|
|
2329
|
+
* still shows its fallback; this only observes.
|
|
2330
|
+
*/
|
|
2331
|
+
onError?: (error: Error, info: ErrorInfo) => void;
|
|
2332
|
+
/** What to show instead of the children once they have thrown. Defaults to a short notice. */
|
|
2333
|
+
fallback?: ReactNode;
|
|
2334
|
+
}
|
|
2335
|
+
/**
|
|
2336
|
+
* Catches a render error in its children and shows a fallback in their place,
|
|
2337
|
+
* so one broken region does not blank the whole screen.
|
|
2338
|
+
*
|
|
2339
|
+
* Usage:
|
|
2340
|
+
*
|
|
2341
|
+
* ```tsx
|
|
2342
|
+
* <ErrorBoundary onError={(error) => report(error)}>
|
|
2343
|
+
* <Region />
|
|
2344
|
+
* </ErrorBoundary>
|
|
2345
|
+
* ```
|
|
2346
|
+
*
|
|
2347
|
+
* `onError` is how an app learns what broke; without it the error goes to the
|
|
2348
|
+
* console only.
|
|
2349
|
+
*/
|
|
2350
|
+
declare class ErrorBoundary extends Component<ErrorBoundaryProps, {
|
|
1881
2351
|
hasError: boolean;
|
|
1882
2352
|
}> {
|
|
1883
|
-
constructor(props:
|
|
1884
|
-
|
|
1885
|
-
});
|
|
1886
|
-
static getDerivedStateFromError(_: Error): {
|
|
2353
|
+
constructor(props: ErrorBoundaryProps);
|
|
2354
|
+
static getDerivedStateFromError(): {
|
|
1887
2355
|
hasError: boolean;
|
|
1888
2356
|
};
|
|
1889
|
-
componentDidCatch(error: Error, errorInfo:
|
|
2357
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
1890
2358
|
render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | React$1.JSX.Element | null | undefined;
|
|
1891
2359
|
}
|
|
1892
2360
|
|
|
2361
|
+
interface ExchangeOption {
|
|
2362
|
+
label: React$1.ReactNode;
|
|
2363
|
+
/** The one that was taken. */
|
|
2364
|
+
chosen?: boolean;
|
|
2365
|
+
}
|
|
2366
|
+
interface ExchangeRecordProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
2367
|
+
/** Who asked — `the agent asks`. */
|
|
2368
|
+
asker?: React$1.ReactNode;
|
|
2369
|
+
question: React$1.ReactNode;
|
|
2370
|
+
/** Why it had to ask — `parse_intent found two readings and was told not to guess`. */
|
|
2371
|
+
why?: React$1.ReactNode;
|
|
2372
|
+
/** What it offered. Every option, with the taken one marked. */
|
|
2373
|
+
options?: ExchangeOption[];
|
|
2374
|
+
/** Who answered — `ravi answers`. */
|
|
2375
|
+
answerer?: React$1.ReactNode;
|
|
2376
|
+
answer?: React$1.ReactNode;
|
|
2377
|
+
/** What the answer cost and what happened next — `after 41.2s · the run resumed on round 2`. */
|
|
2378
|
+
answerNote?: React$1.ReactNode;
|
|
2379
|
+
}
|
|
2380
|
+
/**
|
|
2381
|
+
* A question a run asked a person, after it was answered.
|
|
2382
|
+
*
|
|
2383
|
+
* `ClarifyCard` is the **live** ask — it has controls, and the run is waiting on
|
|
2384
|
+
* them. This is the same exchange once it is a record: the question, every
|
|
2385
|
+
* option it offered with the one taken marked, who answered and how long the
|
|
2386
|
+
* run stood still. Nothing here is pickable, because the choice was made and a
|
|
2387
|
+
* trace is never rewritten.
|
|
2388
|
+
*
|
|
2389
|
+
* **The options that were not taken stay.** *It chose by promise date* is a
|
|
2390
|
+
* different fact from *it was offered two readings and chose by promise date* —
|
|
2391
|
+
* the second is the one that explains the round that follows.
|
|
2392
|
+
*
|
|
2393
|
+
* The rails mark the **act**, not the participant: asking is an interruption,
|
|
2394
|
+
* answering is what let the run continue. Which colour means `human` is a
|
|
2395
|
+
* palette decision and belongs to the layer components.
|
|
2396
|
+
*/
|
|
2397
|
+
declare const ExchangeRecord: React$1.ForwardRefExoticComponent<ExchangeRecordProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2398
|
+
|
|
1893
2399
|
interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1894
2400
|
/**
|
|
1895
2401
|
* Right-aligned trailing text — a count, a position, a state. Kept separate
|
|
@@ -1925,6 +2431,18 @@ interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1925
2431
|
*/
|
|
1926
2432
|
declare const Eyebrow: React$1.ForwardRefExoticComponent<EyebrowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1927
2433
|
|
|
2434
|
+
interface ExpandToggleProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
|
|
2435
|
+
open: boolean;
|
|
2436
|
+
/** What opens — `fetch_filings` — read as `Open fetch_filings` / `Close fetch_filings`. */
|
|
2437
|
+
label?: string;
|
|
2438
|
+
}
|
|
2439
|
+
declare function Spacer({ className }: {
|
|
2440
|
+
className?: string;
|
|
2441
|
+
}): React$1.JSX.Element;
|
|
2442
|
+
declare const ExpandToggle: React$1.ForwardRefExoticComponent<ExpandToggleProps & React$1.RefAttributes<HTMLButtonElement>> & {
|
|
2443
|
+
Spacer: typeof Spacer;
|
|
2444
|
+
};
|
|
2445
|
+
|
|
1928
2446
|
interface FilterBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1929
2447
|
/** The filter controls. `FilterChip`s, a `SearchInput`, a toggle. */
|
|
1930
2448
|
children?: React$1.ReactNode;
|
|
@@ -1935,6 +2453,12 @@ interface FilterBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1935
2453
|
* filters ask, so it belongs on the same line as them and nowhere else.
|
|
1936
2454
|
*/
|
|
1937
2455
|
summary?: React$1.ReactNode;
|
|
2456
|
+
/**
|
|
2457
|
+
* No rule under it and no padding at its ends: whatever holds it is the
|
|
2458
|
+
* frame — a table's border under it, the table's edges either side. Off by
|
|
2459
|
+
* default, so a bar over a bare list keeps the rule that divides the two.
|
|
2460
|
+
*/
|
|
2461
|
+
seamless?: boolean;
|
|
1938
2462
|
}
|
|
1939
2463
|
interface FilterChipProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "value"> {
|
|
1940
2464
|
/** The dimension — `status`, `kind`, `agent`, `age`. */
|
|
@@ -1943,6 +2467,18 @@ interface FilterChipProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonEl
|
|
|
1943
2467
|
value?: React$1.ReactNode;
|
|
1944
2468
|
/** Marks the chip as narrowing the list, so an active filter is visible while scrolling. */
|
|
1945
2469
|
active?: boolean;
|
|
2470
|
+
/**
|
|
2471
|
+
* Clear this one filter, without opening its menu.
|
|
2472
|
+
*
|
|
2473
|
+
* Only for a chip that **is** set: an unset chip has nothing to clear, and an
|
|
2474
|
+
* × on it would offer to undo something nobody did. With it, the chip is a
|
|
2475
|
+
* pair of controls rather than one — the label opens the picker, the × drops
|
|
2476
|
+
* the value — so both are reachable by keyboard and the × carries its own
|
|
2477
|
+
* name.
|
|
2478
|
+
*/
|
|
2479
|
+
onRemove?: () => void;
|
|
2480
|
+
/** What the × is called, for a screen reader. Defaults to `Clear <label>`. */
|
|
2481
|
+
removeLabel?: string;
|
|
1946
2482
|
}
|
|
1947
2483
|
/**
|
|
1948
2484
|
* The row above a list that narrows it.
|
|
@@ -1957,62 +2493,102 @@ declare const FilterBar: React$1.ForwardRefExoticComponent<FilterBarProps & Reac
|
|
|
1957
2493
|
/**
|
|
1958
2494
|
* One dimension, as a chip that opens a menu.
|
|
1959
2495
|
*
|
|
1960
|
-
* The caret is drawn rather than iconised so the chip
|
|
1961
|
-
* one token — `status ▾` — instead of a control with an icon glued to it.
|
|
2496
|
+
* The caret is drawn rather than iconised so the chip reads as
|
|
2497
|
+
* one token — `status ▾` — instead of a control with an icon glued to it. It is
|
|
2498
|
+
* a `sm` button: the control scale's 26px, the height of the `sm` search
|
|
2499
|
+
* beside it.
|
|
1962
2500
|
*/
|
|
1963
2501
|
declare const FilterChip: React$1.ForwardRefExoticComponent<FilterChipProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2502
|
+
/** One choice in a {@link MultiFilterChip}: its value, or a value with a label. */
|
|
2503
|
+
type FilterChipOption = string | {
|
|
2504
|
+
value: string;
|
|
2505
|
+
label?: React$1.ReactNode;
|
|
2506
|
+
};
|
|
2507
|
+
interface MultiFilterChipProps {
|
|
2508
|
+
/** The dimension — `kind`, `agent`, `status`. */
|
|
2509
|
+
label: React$1.ReactNode;
|
|
2510
|
+
options: FilterChipOption[];
|
|
2511
|
+
/** What it is narrowed to. Empty means "not filtered". */
|
|
2512
|
+
value: string[];
|
|
2513
|
+
onChange: (next: string[]) => void;
|
|
2514
|
+
/**
|
|
2515
|
+
* Many at once (the default) — a row matches any of them — or one, where
|
|
2516
|
+
* picking a choice replaces the last and picking it again clears it.
|
|
2517
|
+
*/
|
|
2518
|
+
multiple?: boolean;
|
|
2519
|
+
}
|
|
2520
|
+
/**
|
|
2521
|
+
* A `FilterChip` with its menu: the choices for one dimension, checked as
|
|
2522
|
+
* they narrow the list. The chip reads what it is set to — the value, or
|
|
2523
|
+
* `3 selected` — and, once set, carries the × that clears it.
|
|
2524
|
+
*/
|
|
2525
|
+
declare function MultiFilterChip({ label, options, value, onChange, multiple, }: MultiFilterChipProps): React$1.JSX.Element;
|
|
1964
2526
|
|
|
2527
|
+
interface FloatingPanelProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
2528
|
+
/** What the panel is — `Activity`, `Logs`. */
|
|
2529
|
+
title: React$1.ReactNode;
|
|
2530
|
+
/** Beside the title — a `live` dot, a count, a view switch. */
|
|
2531
|
+
aside?: React$1.ReactNode;
|
|
2532
|
+
/** Folded to its bar: the body is hidden and `summary` takes the title's room. */
|
|
2533
|
+
collapsed?: boolean;
|
|
2534
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
2535
|
+
/** What a folded panel still says — `● 3 · 4 layers`. */
|
|
2536
|
+
summary?: React$1.ReactNode;
|
|
2537
|
+
/** Shows a close control at the end of the bar. */
|
|
2538
|
+
onClose?: () => void;
|
|
2539
|
+
/** Under the body, above the edge — a total, a link out. */
|
|
2540
|
+
footer?: React$1.ReactNode;
|
|
2541
|
+
children?: React$1.ReactNode;
|
|
2542
|
+
bodyClassName?: string;
|
|
2543
|
+
}
|
|
1965
2544
|
/**
|
|
1966
|
-
*
|
|
2545
|
+
* A panel that floats over the work — the run's activity, its log — rather
|
|
2546
|
+
* than taking a split of it.
|
|
2547
|
+
*
|
|
2548
|
+
* It stays open over the work, so it is drawn as a card that is lifted — the
|
|
2549
|
+
* card ground, a border and a shadow — and not as a popover, which is the
|
|
2550
|
+
* ground of what opens and closes in a moment. Its bar is chrome, as every
|
|
2551
|
+
* panel's header is.
|
|
2552
|
+
*
|
|
2553
|
+
* It sits **on** a canvas, so it can be folded to its bar and closed: a panel
|
|
2554
|
+
* that could only be moved out of the way by resizing the work would be a
|
|
2555
|
+
* split, and a split is `AppLayoutV2`'s. Folded, it keeps one line of what it
|
|
2556
|
+
* would say, so folding it never hides that something is happening.
|
|
1967
2557
|
*
|
|
1968
|
-
*
|
|
1969
|
-
*
|
|
1970
|
-
* than a markup question: which forms this product actually needs, at what
|
|
1971
|
-
* sizes, and how much a 330px drawer can carry. This component satisfies the
|
|
1972
|
-
* dataviz rules and the validated palette, but the *form inventory* has not been
|
|
1973
|
-
* agreed — treat the API as unsettled until a board screen uses it in anger.
|
|
2558
|
+
* Content-height up to its parent, then its body scrolls: two of these stacked
|
|
2559
|
+
* in a column share the height between them.
|
|
1974
2560
|
*/
|
|
2561
|
+
declare const FloatingPanel: React$1.ForwardRefExoticComponent<FloatingPanelProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1975
2562
|
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
/**
|
|
1990
|
-
|
|
1991
|
-
}
|
|
1992
|
-
interface HeatStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
1993
|
-
cells: HeatCell[];
|
|
1994
|
-
states: HeatState[];
|
|
1995
|
-
/** Axis ticks under the strip — `[{at: 0, label: '09'}, …]`. */
|
|
1996
|
-
ticks?: {
|
|
1997
|
-
at: number;
|
|
1998
|
-
label: React$1.ReactNode;
|
|
1999
|
-
}[];
|
|
2000
|
-
cellSize?: number;
|
|
2563
|
+
/**
|
|
2564
|
+
* The kinds of run Invana opens today — **suggestions, not a limit.**
|
|
2565
|
+
*
|
|
2566
|
+
* A product that grows a `simulate` kind passes `"simulate"` and the chip draws
|
|
2567
|
+
* it. The journal is one list with one filter over it ([SR7]), so the kind is a
|
|
2568
|
+
* *column value*, never a panel of its own — and a component that refused an
|
|
2569
|
+
* unknown value would make the kit a release blocker for every new one.
|
|
2570
|
+
*/
|
|
2571
|
+
type KnownRunKind = "ask" | "import" | "bulk" | "stitch" | "enrich" | "schedule";
|
|
2572
|
+
/** What a run is, as an identifier — any string at all. See {@link KnownRunKind}. */
|
|
2573
|
+
type RunKind = KnownRunKind | (string & {});
|
|
2574
|
+
interface KindChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
2575
|
+
kind: RunKind;
|
|
2576
|
+
/** Not in play — a kind the current filter excludes. */
|
|
2577
|
+
dim?: boolean;
|
|
2001
2578
|
}
|
|
2002
2579
|
/**
|
|
2003
|
-
*
|
|
2580
|
+
* What kind of run this row is: `ask` · `import` · `bulk` · `stitch` · `enrich`.
|
|
2004
2581
|
*
|
|
2005
|
-
* A
|
|
2006
|
-
*
|
|
2007
|
-
*
|
|
2582
|
+
* **Neutral on purpose.** A kind is not a status and not a layer: it says which
|
|
2583
|
+
* shape of work opened the run, and every kind is equally ordinary. Painting
|
|
2584
|
+
* them would put five more hues on a row that already carries a status dot and
|
|
2585
|
+
* a layer, and would invite a reader to think `import` is worse than `ask`.
|
|
2008
2586
|
*
|
|
2009
|
-
*
|
|
2010
|
-
*
|
|
2011
|
-
*
|
|
2012
|
-
* cell also names its state in the hover title, which is what a screen reader
|
|
2013
|
-
* and a keyboard user get.
|
|
2587
|
+
* Mono, because the value is the engine's own (`kind in (import, bulk)` is a
|
|
2588
|
+
* filter a person types), and small, because it sits inside a row that is
|
|
2589
|
+
* already carrying an address and a summary.
|
|
2014
2590
|
*/
|
|
2015
|
-
declare const
|
|
2591
|
+
declare const KindChip: React$1.ForwardRefExoticComponent<KindChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
2016
2592
|
|
|
2017
2593
|
interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "title"> {
|
|
2018
2594
|
layer: Layer;
|
|
@@ -2059,272 +2635,17 @@ interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
2059
2635
|
*/
|
|
2060
2636
|
declare const LayerSection: React$1.ForwardRefExoticComponent<LayerSectionProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2061
2637
|
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
*/
|
|
2072
|
-
|
|
2073
|
-
/**
|
|
2074
|
-
* What an item is doing — **suggestions, not a limit.** A run that grows a
|
|
2075
|
-
* `deferred` or a `retried` passes it and the bar draws: the neutral edge, and
|
|
2076
|
-
* the state's own name under the label. Only the states above carry special
|
|
2077
|
-
* drawing, because only they have a meaning defined here to draw.
|
|
2078
|
-
*/
|
|
2079
|
-
type LayerItemState = KnownLayerItemState | (string & {});
|
|
2080
|
-
/** The run half of {@link LayerItemState}, as the ledger's `direction` column. */
|
|
2081
|
-
type TouchDirection = Exclude<KnownLayerItemState, "declared"> | (string & {});
|
|
2082
|
-
/**
|
|
2083
|
-
* One participant under a band — the row a task actually lands on.
|
|
2084
|
-
*
|
|
2085
|
-
* A band says *llm*; a part says **which** llm, or which role a caller may
|
|
2086
|
-
* re-cast: `role: decide`, `model/Orders@v2`, `third_party/app/email`. Reading
|
|
2087
|
-
* a plan is reading its parts, because that is the list a world is checked
|
|
2088
|
-
* against.
|
|
2089
|
-
*/
|
|
2090
|
-
interface LayerPart {
|
|
2091
|
-
id: string;
|
|
2092
|
-
/** The participant address, or the role — `model/Orders@v2`, `role: decide`. */
|
|
2093
|
-
label: string;
|
|
2094
|
-
/** What the caller still owes, or what the crossing is — `egress: the note`. */
|
|
2095
|
-
note?: string;
|
|
2096
|
-
}
|
|
2097
|
-
interface LayerBand {
|
|
2098
|
-
layer: Layer;
|
|
2099
|
-
/** Overrides the layer's own name. */
|
|
2100
|
-
label?: React$1.ReactNode;
|
|
2101
|
-
/** Right of the name — `declared · 1`, `nothing declared`, `2 roles`. */
|
|
2102
|
-
note?: string;
|
|
2103
|
-
/** The participants under it, each its own row. */
|
|
2104
|
-
parts?: LayerPart[];
|
|
2105
|
-
/**
|
|
2106
|
-
* This band is the **spine** — the runtime's own dispatches, which the other
|
|
2107
|
-
* bands are timed against and which is never governed. Its wire runs the
|
|
2108
|
-
* whole axis and it is never drawn as unspent.
|
|
2109
|
-
*
|
|
2110
|
-
* The band says so rather than the component recognising a layer by name:
|
|
2111
|
-
* `agent` is Invana's spine, but the layer vocabulary is a product's to grow
|
|
2112
|
-
* and a strip that hard-coded one of its values would be a strip that had to
|
|
2113
|
-
* be edited before anyone could rename it.
|
|
2114
|
-
*/
|
|
2115
|
-
spine?: boolean;
|
|
2116
|
-
}
|
|
2117
|
-
/**
|
|
2118
|
-
* One task, where it sits and how long it takes.
|
|
2119
|
-
*
|
|
2120
|
-
* `start` and `end` are in the axis's own unit — a step ordinal under `seq`, a
|
|
2121
|
-
* millisecond under `elapsed`. A task with no `end` is an instant and is drawn
|
|
2122
|
-
* at the minimum width.
|
|
2123
|
-
*/
|
|
2124
|
-
interface LayerItem {
|
|
2125
|
-
id: string;
|
|
2126
|
-
/** The task. This is the only place a task name is written. */
|
|
2127
|
-
label: string;
|
|
2128
|
-
layer: Layer;
|
|
2129
|
-
/** The {@link LayerPart} it lands on. Omitted, it sits on the band itself. */
|
|
2130
|
-
part?: string;
|
|
2131
|
-
start: number;
|
|
2132
|
-
end?: number;
|
|
2133
|
-
state?: LayerItemState;
|
|
2134
|
-
/** Under the name — `decide`, `${supplier_id}`, `form: human`. */
|
|
2135
|
-
note?: string;
|
|
2136
|
-
/** The rule that refused it, when one did. */
|
|
2137
|
-
ruleMatched?: string;
|
|
2138
|
-
}
|
|
2139
|
-
/** A bounded repetition over a stretch of the axis — `loop · max 3`. */
|
|
2140
|
-
interface LayerBracket {
|
|
2141
|
-
id: string;
|
|
2142
|
-
start: number;
|
|
2143
|
-
end: number;
|
|
2144
|
-
label: string;
|
|
2145
|
-
}
|
|
2146
|
-
/**
|
|
2147
|
-
* A **seam** — a moment on the axis where everything stops at once.
|
|
2148
|
-
*
|
|
2149
|
-
* A gate belongs to no band. It is not dispatched, it holds no slot and it has
|
|
2150
|
-
* no participant, so it cannot be a bar: it is a condition on the way into a
|
|
2151
|
-
* step, and it stops every layer together. That makes it a **position on the
|
|
2152
|
-
* axis**, drawn as a rule the bands are crossed by — which is also the only
|
|
2153
|
-
* drawing left once task names stop being the axis, because there are no
|
|
2154
|
-
* columns for it to sit between.
|
|
2155
|
-
*
|
|
2156
|
-
* **Which side of the line the label sits on is the price of saying no.**
|
|
2157
|
-
* `before` means nothing has been spent yet; `after` means the work up to here
|
|
2158
|
-
* is already paid for. A reader gets what declining costs from where the mark
|
|
2159
|
-
* sits, before reading a word of it.
|
|
2160
|
-
*/
|
|
2161
|
-
interface LayerSeam {
|
|
2162
|
-
id: string;
|
|
2163
|
-
/**
|
|
2164
|
-
* Where it sits, in the axis's own unit. **Omitted, it has no position** —
|
|
2165
|
-
* it can be raised at any dispatch, and it is drawn across the whole axis
|
|
2166
|
-
* rather than at a point. Placing such a gate on one moment would be a guess.
|
|
2167
|
-
*/
|
|
2168
|
-
at?: number;
|
|
2169
|
-
/** What it is — `approval · before dispatch`, `verdict · after the pass`. */
|
|
2170
|
-
label: string;
|
|
2171
|
-
/** Which side of the line the cost falls on. Defaults to `before`. */
|
|
2172
|
-
edge?: "before" | "after";
|
|
2173
|
-
/**
|
|
2174
|
-
* It is not on the plan: it resolves at dispatch, so the same plan is gated
|
|
2175
|
-
* for one caller and not another. Drawn dashed — *this may appear*.
|
|
2176
|
-
*/
|
|
2177
|
-
conditional?: boolean;
|
|
2178
|
-
/** Under the label — `nothing spent · finance-approvers · 4h`. */
|
|
2179
|
-
note?: string;
|
|
2180
|
-
}
|
|
2181
|
-
/** What the axis counts. */
|
|
2182
|
-
type LayerScale = "seq" | "elapsed";
|
|
2183
|
-
interface LayerStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
|
|
2184
|
-
bands: LayerBand[];
|
|
2185
|
-
items: LayerItem[];
|
|
2186
|
-
/**
|
|
2187
|
-
* `seq` is a plan's time — what happens before what, one unit per step.
|
|
2188
|
-
* `elapsed` is a run's, in milliseconds from the run opening.
|
|
2189
|
-
*/
|
|
2190
|
-
scale?: LayerScale;
|
|
2191
|
-
/** The axis extent. Defaults to the items' own. */
|
|
2192
|
-
domain?: [number, number];
|
|
2193
|
-
/** Tick positions in axis units. Defaults to integers (`seq`) or five (`elapsed`). */
|
|
2194
|
-
ticks?: number[];
|
|
2195
|
-
formatTick?: (value: number) => string;
|
|
2196
|
-
brackets?: LayerBracket[];
|
|
2197
|
-
/**
|
|
2198
|
-
* The gates — the moments the whole drawing stops at. They get a row of their
|
|
2199
|
-
* own above the bands *and* a rule down the track, because a gate has to read
|
|
2200
|
-
* both as a thing with a name and as something every band is stopped by.
|
|
2201
|
-
*/
|
|
2202
|
-
seams?: LayerSeam[];
|
|
2203
|
-
onSelectItem?: (itemId: string) => void;
|
|
2204
|
-
selectedItem?: string;
|
|
2205
|
-
/**
|
|
2206
|
-
* The bands whose participants are folded away, uncontrolled. Their tasks do
|
|
2207
|
-
* not disappear with them: they drop onto the band's own line, which is the
|
|
2208
|
-
* whole point of shutting one.
|
|
2209
|
-
*/
|
|
2210
|
-
defaultCollapsed?: Layer[];
|
|
2211
|
-
/** The same, controlled. Pass it with `onCollapsedChange`. */
|
|
2212
|
-
collapsed?: Layer[];
|
|
2213
|
-
onCollapsedChange?: (layers: Layer[]) => void;
|
|
2214
|
-
/**
|
|
2215
|
-
* Offer the disclosures at all. Off, the bands render as given and a caller
|
|
2216
|
-
* that wants an overview passes the bands it wants shut in `collapsed`.
|
|
2217
|
-
*/
|
|
2218
|
-
collapsible?: boolean;
|
|
2219
|
-
/**
|
|
2220
|
-
* A hover card on each task, saying what the bar cannot fit: the participant
|
|
2221
|
-
* it spends, when it runs and for how long, and the rule that refused it. On
|
|
2222
|
-
* by default; off falls back to the native `title`.
|
|
2223
|
-
*/
|
|
2224
|
-
hoverDetail?: boolean;
|
|
2225
|
-
/** What that card says, when the default is not what this surface owes. */
|
|
2226
|
-
itemDetail?: (item: LayerItem) => React$1.ReactNode;
|
|
2227
|
-
/**
|
|
2228
|
-
* Keep the band labels in place while time scrolls. On by default: a run with
|
|
2229
|
-
* forty steps scrolls, and a band you cannot name is a row of marks.
|
|
2230
|
-
*/
|
|
2231
|
-
frozenLabels?: boolean;
|
|
2232
|
-
/**
|
|
2233
|
-
* The label column, in `rem`. The default fits a layer name at the root size
|
|
2234
|
-
* beside its note — `human` and `3 rounds · 6m 01s` on one line.
|
|
2235
|
-
*/
|
|
2236
|
-
labelWidth?: number;
|
|
2237
|
-
/** The narrowest the track is drawn before it scrolls, in `rem`. */
|
|
2238
|
-
minTrackWidth?: number;
|
|
2239
|
-
/**
|
|
2240
|
-
* The narrowest one tick may be squeezed to, in `rem`. Past that the strip
|
|
2241
|
-
* scrolls rather than shrinking: a bar too narrow to carry its task's name
|
|
2242
|
-
* has stopped being a drawing of that task.
|
|
2243
|
-
*/
|
|
2244
|
-
minSlotWidth?: number;
|
|
2245
|
-
/**
|
|
2246
|
-
* What the layers are painted with. The same map reaches the band chips and
|
|
2247
|
-
* the bars, so a strip never disagrees with its own labels; a layer left out
|
|
2248
|
-
* draws in the neutral.
|
|
2249
|
-
*/
|
|
2250
|
-
palette?: LayerPalette;
|
|
2251
|
-
}
|
|
2252
|
-
/** An unknown state is still a state: it says its own name. */
|
|
2253
|
-
declare const stateLabel: (state: LayerItemState) => string;
|
|
2254
|
-
/**
|
|
2255
|
-
* A plan or a run as layer bands over a time axis — a gantt, not a matrix.
|
|
2256
|
-
*
|
|
2257
|
-
* **Time is the x axis, in whichever tense the drawing is in.** A plan's time
|
|
2258
|
-
* is its order (`seq` — what happens before what); a run's is the wall clock
|
|
2259
|
-
* (`elapsed`). Task names are not an axis: a task is a bar, written once where
|
|
2260
|
-
* it sits, so a reader answers *what does this engage, and for how long* by
|
|
2261
|
-
* scanning across, and *what spends this participant* by scanning down.
|
|
2262
|
-
*
|
|
2263
|
-
* **A band opens into its participants.** `llm` is a band; `role: decide` and
|
|
2264
|
-
* `role: extract` are the rows under it, and the task sits on the row it
|
|
2265
|
-
* actually spends. The band alone cannot say which model a step will reach, and
|
|
2266
|
-
* that is the list a world is checked against.
|
|
2267
|
-
*
|
|
2268
|
-
* **A band folds its participants away without losing its tasks.** Shut, the
|
|
2269
|
-
* rows go and every task the layer spends drops onto the band's own line —
|
|
2270
|
-
* which is the overview: six lines, every task placed in time, *what was this
|
|
2271
|
-
* layer busy with* answered without reading twelve rows. Open, the same tasks
|
|
2272
|
-
* sit on the participant that spends them. `collapse all` in the header does it
|
|
2273
|
-
* to every band that has participants to fold, and nothing is hidden either
|
|
2274
|
-
* way: folding moves a task up a row, it never drops it.
|
|
2275
|
-
*
|
|
2276
|
-
* **A bar says what it is; hovering it says what it cannot fit.** The card
|
|
2277
|
-
* carries the participant the row truncates or folding took away, when the task
|
|
2278
|
-
* runs and for how long, and the rule that refused it — so a bar can stay a bar
|
|
2279
|
-
* rather than growing a second line for every fact somebody might want.
|
|
2280
|
-
*
|
|
2281
|
-
* **Refusals are struck in place, not removed.** A refused engagement keeps its
|
|
2282
|
-
* bar and takes a struck label, because the gap it would otherwise leave is
|
|
2283
|
-
* indistinguishable from a stretch of time that never reached for that layer.
|
|
2284
|
-
*
|
|
2285
|
-
* **A row nothing spent is drawn muted, never dropped.** A band no task
|
|
2286
|
-
* touched takes the muted ground **across its whole width** — label column and
|
|
2287
|
-
* track together — and so does a participant row under an open band:
|
|
2288
|
-
* `role: extract` declared and never reached reads as *this run did not get
|
|
2289
|
-
* that far*, not as an ordinary empty row. A dropped row would say nothing at
|
|
2290
|
-
* all, and *this plan never reaches for a cache* is a finding.
|
|
2291
|
-
*
|
|
2292
|
-
* The ground is the carrier, not the type colour. A row is unspent because it
|
|
2293
|
-
* is *empty*, and an empty row has no text to mute past its own name — greying
|
|
2294
|
-
* the chip while the row keeps the card ground says *this label is quiet* when
|
|
2295
|
-
* the fact is *nothing spends this layer*.
|
|
2296
|
-
*
|
|
2297
|
-
* **A bar wears its layer, and its state is the edge.** The hue tints the bar's
|
|
2298
|
-
* ground and border and runs down its rail; dashed says the task never ran, and
|
|
2299
|
-
* the destructive token says a rule refused it — the one fact that outranks
|
|
2300
|
-
* whose bar it is. The label itself stays on a text token: the data palette is
|
|
2301
|
-
* a surface palette here, which keeps `cache` as legible as `human`.
|
|
2302
|
-
*
|
|
2303
|
-
* **Refused is not unspent.** A row whose only task was refused keeps its full
|
|
2304
|
-
* weight: being stopped from reaching a participant and never reaching for one
|
|
2305
|
-
* are the two facts this drawing exists to separate.
|
|
2306
|
-
*
|
|
2307
|
-
* **A gate is a seam, not a row.** Nothing is dispatched at a gate, so it has
|
|
2308
|
-
* no participant and cannot be a bar; it stops every band at once, so it is a
|
|
2309
|
-
* position on the axis and the bands are crossed by it. Which side of the line
|
|
2310
|
-
* its label hangs on is what saying no costs — `before` and nothing is spent,
|
|
2311
|
-
* `after` and the pass is already paid for. A gate that can be raised at any
|
|
2312
|
-
* dispatch has no position and draws across the whole axis instead.
|
|
2313
|
-
*
|
|
2314
|
-
* **The spine band is always drawn**, with its wire running the whole axis: the
|
|
2315
|
-
* runtime's own dispatches are what the other bands are timed against, and it
|
|
2316
|
-
* is never governed. A band declares itself the spine with `spine` — the strip
|
|
2317
|
-
* recognises no layer by name. A spine that has dispatched nothing recedes like
|
|
2318
|
-
* any other empty row: the wire still says *this is the clock*, and the muted
|
|
2319
|
-
* ground says *it has not run yet*, which are two different facts.
|
|
2320
|
-
*
|
|
2321
|
-
* DOM over a fixed track, not canvas: it binds to no canvas store, it lives in
|
|
2322
|
-
* `mainSection` where no canvas exists, and frozen row labels plus text
|
|
2323
|
-
* selection are free here and expensive there.
|
|
2324
|
-
*/
|
|
2325
|
-
declare const LayerStrip: React$1.ForwardRefExoticComponent<LayerStripProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2326
|
-
|
|
2327
|
-
type LegendSwatchKind = "dot" | "line" | "dashed" | "arrow" | "ring";
|
|
2638
|
+
type LegendSwatchKind = "dot"
|
|
2639
|
+
/** A filled square — a column or a bar. */
|
|
2640
|
+
| "box"
|
|
2641
|
+
/** A dashed square outline — a plan or a target a column stands inside. */
|
|
2642
|
+
| "outline" | "line" | "dashed" | "arrow" | "ring"
|
|
2643
|
+
/** The rail down a row — how a trace says which layer a step spent. */
|
|
2644
|
+
| "stripe"
|
|
2645
|
+
/** A box around what it holds — a bounded repetition, drawn by containment. */
|
|
2646
|
+
| "bracket"
|
|
2647
|
+
/** A line the drawing is crossed by, with the mark that names it — a gate. */
|
|
2648
|
+
| "rule";
|
|
2328
2649
|
interface LegendItemProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "color"> {
|
|
2329
2650
|
/**
|
|
2330
2651
|
* What the mark looks like on the canvas. A legend that draws a dot for
|
|
@@ -2360,35 +2681,135 @@ interface LegendProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2360
2681
|
declare const Legend: React$1.ForwardRefExoticComponent<LegendProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2361
2682
|
declare const LegendItem: React$1.ForwardRefExoticComponent<LegendItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2362
2683
|
|
|
2363
|
-
|
|
2684
|
+
type TerminalLineKind = "prompt" | "output" | "comment";
|
|
2685
|
+
/**
|
|
2686
|
+
* The severity a **log** line was emitted at, as the runtime recorded it.
|
|
2687
|
+
*
|
|
2688
|
+
* Distinct from `kind`, which says what part of a *transcript* a line is — a
|
|
2689
|
+
* command you typed, what it printed, a comment. A run's log has no prompts and
|
|
2690
|
+
* no comments; every line is output, and what varies is how loud it is.
|
|
2691
|
+
*/
|
|
2692
|
+
type KnownTerminalLevel = "info" | "warn" | "error" | "debug";
|
|
2693
|
+
/**
|
|
2694
|
+
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
2695
|
+
* else renders with the neutral token and its own name.
|
|
2696
|
+
*/
|
|
2697
|
+
type TerminalLevel = KnownTerminalLevel | (string & {});
|
|
2698
|
+
interface TerminalLineProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
2699
|
+
kind?: TerminalLineKind;
|
|
2700
|
+
/**
|
|
2701
|
+
* How loud this line is. Tints **one** cell — the one named by
|
|
2702
|
+
* `levelColumn` — and nothing else.
|
|
2703
|
+
*
|
|
2704
|
+
* Only the level word is coloured, never the message: a wall of amber
|
|
2705
|
+
* sentences is unreadable, and what a reader scans is the column, not the
|
|
2706
|
+
* prose. Setting this also drops the `kind` marker — a log line is not a
|
|
2707
|
+
* transcript line and does not want a `→` in front of it.
|
|
2708
|
+
*
|
|
2709
|
+
* The level **word** stays in `columns`. Colour is never the carrier.
|
|
2710
|
+
*/
|
|
2711
|
+
level?: TerminalLevel;
|
|
2364
2712
|
/**
|
|
2365
|
-
*
|
|
2366
|
-
* `
|
|
2713
|
+
* Which cell of `columns` holds the level word. Defaults to `1`, because a
|
|
2714
|
+
* log line reads `time · LEVEL · source · message` and the timestamp comes
|
|
2715
|
+
* first in every log anyone has ever read.
|
|
2367
2716
|
*/
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2717
|
+
levelColumn?: number;
|
|
2718
|
+
/**
|
|
2719
|
+
* Columns, for the step-shaped output a run prints — name, detail, timing,
|
|
2720
|
+
* result. Given as cells so they align down the transcript instead of each
|
|
2721
|
+
* line padding itself with spaces.
|
|
2722
|
+
*/
|
|
2723
|
+
columns?: React$1.ReactNode[];
|
|
2724
|
+
children?: React$1.ReactNode;
|
|
2725
|
+
}
|
|
2726
|
+
interface TerminalProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2727
|
+
children?: React$1.ReactNode;
|
|
2728
|
+
/** Shows a blinking block at the end. */
|
|
2729
|
+
cursor?: boolean;
|
|
2730
|
+
/**
|
|
2731
|
+
* `grid-template-columns` for every columned line in this transcript.
|
|
2732
|
+
*
|
|
2733
|
+
* Set once here rather than per line, because the point of columns is that
|
|
2734
|
+
* they line up *down* the transcript — a width chosen per row aligns nothing.
|
|
2735
|
+
*/
|
|
2736
|
+
columnTemplate?: string;
|
|
2737
|
+
}
|
|
2738
|
+
/**
|
|
2739
|
+
* A shell transcript, as a first-class surface.
|
|
2740
|
+
*
|
|
2741
|
+
* Some of this product's work happens outside Studio — imports run from the
|
|
2742
|
+
* CLI, a scheduler calls the Python API — and the hand-off has to be shown
|
|
2743
|
+
* honestly rather than redrawn as a wizard. So this renders what the terminal
|
|
2744
|
+
* actually printed.
|
|
2745
|
+
*
|
|
2746
|
+
* It is presentational: a record of a run that already happened, not a live
|
|
2747
|
+
* console. There is no input here, and it does not scroll itself.
|
|
2748
|
+
*/
|
|
2749
|
+
declare const Terminal: React$1.ForwardRefExoticComponent<TerminalProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2750
|
+
declare const TerminalLine: React$1.ForwardRefExoticComponent<TerminalLineProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2751
|
+
|
|
2752
|
+
/** One line of a run's log, as the runtime emitted it. */
|
|
2753
|
+
interface LogLine {
|
|
2754
|
+
id?: string;
|
|
2755
|
+
/** When, already worded — `10:42:01`. */
|
|
2756
|
+
at: string;
|
|
2757
|
+
level: TerminalLevel;
|
|
2758
|
+
/** What emitted it — `graph.query`, `egress`. */
|
|
2759
|
+
source?: string;
|
|
2760
|
+
message: string;
|
|
2761
|
+
}
|
|
2762
|
+
/** How loud a line must be to show: everything, warnings and up, errors only. */
|
|
2763
|
+
type LogFloor = "all" | "warn" | "error";
|
|
2764
|
+
interface LogCardProps extends Omit<FloatingPanelProps, "title" | "children" | "summary" | "aside"> {
|
|
2765
|
+
/** @default "Logs" */
|
|
2766
|
+
title?: React$1.ReactNode;
|
|
2767
|
+
/** Every line so far, oldest first. New lines are appended as they arrive. */
|
|
2768
|
+
lines: LogLine[];
|
|
2769
|
+
/** Lines are still arriving. */
|
|
2770
|
+
live?: boolean;
|
|
2771
|
+
/** Only lines from this source — a call opened in the activity panel. Controlled with `onSourceChange`. */
|
|
2772
|
+
source?: string | null;
|
|
2773
|
+
onSourceChange?: (source: string | null) => void;
|
|
2774
|
+
}
|
|
2775
|
+
/**
|
|
2776
|
+
* The run's log, as it is written — in a panel that floats over the work.
|
|
2777
|
+
*
|
|
2778
|
+
* The raw record behind the activity panel: every line the runtime emitted,
|
|
2779
|
+
* its level the one coloured word ({@link TerminalLine}). It follows new lines
|
|
2780
|
+
* while live; **pausing freezes what is shown**, so a line can be read while
|
|
2781
|
+
* the run keeps writing, and resuming catches up. Filter by how loud a line
|
|
2782
|
+
* is, by words, or by the source a call wrote it from.
|
|
2783
|
+
*/
|
|
2784
|
+
declare const LogCard: React$1.ForwardRefExoticComponent<LogCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2785
|
+
|
|
2786
|
+
/** What the mark means, as a tone. The same seven `StatusDot` uses, less the dot. */
|
|
2787
|
+
type MarkTone = "muted" | "info" | "success" | "warning" | "destructive";
|
|
2788
|
+
interface MarkChipProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
2789
|
+
tone?: MarkTone;
|
|
2790
|
+
/** `↺ 2 of 3`, `⏸ 1 of 3`, `live`, `↳ delegates`. */
|
|
2791
|
+
children?: React$1.ReactNode;
|
|
2374
2792
|
}
|
|
2375
2793
|
/**
|
|
2376
|
-
*
|
|
2377
|
-
*
|
|
2794
|
+
* What happened to this row that its own columns cannot say.
|
|
2795
|
+
*
|
|
2796
|
+
* A run's trace row already carries a name, a description, a layer, a role and
|
|
2797
|
+
* a duration. What it does *not* carry is the exception: this step took two
|
|
2798
|
+
* attempts, this one is painting right now, this one asked a person, this one
|
|
2799
|
+
* delegated a run of its own. Those are marks — they appear on a handful of
|
|
2800
|
+
* rows and they are the rows a reader is looking for.
|
|
2378
2801
|
*
|
|
2379
|
-
* **
|
|
2380
|
-
*
|
|
2381
|
-
*
|
|
2382
|
-
*
|
|
2383
|
-
* view, which is the exact opposite of what is true. `Everything` is also still
|
|
2384
|
-
* inside the guardrails, which is why a guardrail is not a lens you pick.
|
|
2802
|
+
* **Outlined, never filled.** A filled chip competes with the row's own name at
|
|
2803
|
+
* the same size; an outline reads as an annotation on the name, which is what it
|
|
2804
|
+
* is. Mono, because most marks are counts against a bound (`2 of 3`) and the
|
|
2805
|
+
* bound is the engine's number.
|
|
2385
2806
|
*
|
|
2386
|
-
*
|
|
2387
|
-
*
|
|
2388
|
-
*
|
|
2389
|
-
*
|
|
2807
|
+
* Distinct from `BoundChip`, and the distinction is the point: a bound is what a
|
|
2808
|
+
* callable **may** spend, declared before anything ran. A mark is what a run
|
|
2809
|
+
* **did** — it exists only in the record, and it is usually the reason a reader
|
|
2810
|
+
* opened the trace at all.
|
|
2390
2811
|
*/
|
|
2391
|
-
declare const
|
|
2812
|
+
declare const MarkChip: React$1.ForwardRefExoticComponent<MarkChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
2392
2813
|
|
|
2393
2814
|
interface MatchCandidate {
|
|
2394
2815
|
address: string;
|
|
@@ -2442,6 +2863,11 @@ interface MenuItem {
|
|
|
2442
2863
|
onClick?: () => void;
|
|
2443
2864
|
children?: MenuItem[];
|
|
2444
2865
|
}
|
|
2866
|
+
/**
|
|
2867
|
+
* A row of a menu; with `children`, a submenu that opens beside it. The submenu
|
|
2868
|
+
* opens on hover and on focus, and from the keyboard: → or Enter opens it on its
|
|
2869
|
+
* first row, ← or Escape closes it back to its row.
|
|
2870
|
+
*/
|
|
2445
2871
|
declare const MenuItem: React$1.FC<MenuItemProps>;
|
|
2446
2872
|
|
|
2447
2873
|
/**
|
|
@@ -2451,7 +2877,7 @@ declare const MenuItem: React$1.FC<MenuItemProps>;
|
|
|
2451
2877
|
* Omit it for an ordinary measurement. A grid where every tile is coloured
|
|
2452
2878
|
* carries no signal, and a number that is merely large is not a warning.
|
|
2453
2879
|
*/
|
|
2454
|
-
type KnownMetricTone = "running" | "success" | "warning" | "error" | "info";
|
|
2880
|
+
type KnownMetricTone = "running" | "success" | "warning" | "error" | "info" | "muted";
|
|
2455
2881
|
/**
|
|
2456
2882
|
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
2457
2883
|
* else renders with the neutral token and its own name.
|
|
@@ -2466,6 +2892,11 @@ interface MetricTileProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2466
2892
|
caption?: React$1.ReactNode;
|
|
2467
2893
|
/** Tints the value. See {@link MetricTone} — most tiles should not set it. */
|
|
2468
2894
|
tone?: MetricTone;
|
|
2895
|
+
/**
|
|
2896
|
+
* Tints the caption instead — for a caption that is a change, `▲ 8 d vs
|
|
2897
|
+
* normal`, where the direction is the signal and the value is a plain figure.
|
|
2898
|
+
*/
|
|
2899
|
+
captionTone?: MetricTone;
|
|
2469
2900
|
/**
|
|
2470
2901
|
* How much of a known ceiling has been spent, `0`–`1`, as a 4px bar under the
|
|
2471
2902
|
* caption. Takes `tone`'s colour when one is set.
|
|
@@ -2476,6 +2907,36 @@ interface MetricTileProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2476
2907
|
* a deadline that does not exist.
|
|
2477
2908
|
*/
|
|
2478
2909
|
meter?: number;
|
|
2910
|
+
/**
|
|
2911
|
+
* The figure against a target, as a bar under it: `fill` is how far the
|
|
2912
|
+
* figure has come and `mark` where the target sits, both `0`–`1` of the
|
|
2913
|
+
* scale. `labels` writes the scale's start, the target and its end under it.
|
|
2914
|
+
*
|
|
2915
|
+
* Unlike `meter`, the target is a line the figure is read against, not a
|
|
2916
|
+
* ceiling it spends — the fill may pass it.
|
|
2917
|
+
*/
|
|
2918
|
+
gauge?: {
|
|
2919
|
+
fill: number;
|
|
2920
|
+
mark: number;
|
|
2921
|
+
labels?: [React$1.ReactNode, React$1.ReactNode, React$1.ReactNode];
|
|
2922
|
+
};
|
|
2923
|
+
/**
|
|
2924
|
+
* Set on the warning ground: the one tile in a band that needs a second look
|
|
2925
|
+
* — a figure resting on too few records. Say why in a line under the band.
|
|
2926
|
+
*/
|
|
2927
|
+
flagged?: boolean;
|
|
2928
|
+
/** Beside the figure, at the right, bottom-aligned — a sparkline of its recent run. */
|
|
2929
|
+
aside?: React$1.ReactNode;
|
|
2930
|
+
/**
|
|
2931
|
+
* `tile` is one of several, boxed, in a strip. `hero` is the one figure an
|
|
2932
|
+
* answer turns on — the adjusted odds ratio, net revenue retention — set
|
|
2933
|
+
* large on the surface it sits in: no box, the label in sentence case over
|
|
2934
|
+
* it, the caption in mono under it, so it reads as a result, not a gauge.
|
|
2935
|
+
* `figure` is one of a band of figures inside an answer — boxed like a tile
|
|
2936
|
+
* but set like a small hero: the label in sentence case, the value in a
|
|
2937
|
+
* larger sans, the caption in mono.
|
|
2938
|
+
*/
|
|
2939
|
+
variant?: "tile" | "hero" | "figure";
|
|
2479
2940
|
/** A sparkline, or anything else that sits under the value. */
|
|
2480
2941
|
children?: React$1.ReactNode;
|
|
2481
2942
|
}
|
|
@@ -2487,10 +2948,28 @@ interface MetricGridProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2487
2948
|
*
|
|
2488
2949
|
* It is a prop because a tile strip is usually one band of something larger,
|
|
2489
2950
|
* and a grid that keeps its own tighter rhythm makes the whole surface read
|
|
2490
|
-
* as two grids. A
|
|
2951
|
+
* as two grids. A board passes its own gap; a standalone strip keeps the
|
|
2491
2952
|
* default.
|
|
2492
2953
|
*/
|
|
2493
2954
|
gap?: number;
|
|
2955
|
+
/**
|
|
2956
|
+
* One strip, the tiles divided by rules instead of spaced apart — for a
|
|
2957
|
+
* band of figures that belong to one answer and read left to right. `gap`
|
|
2958
|
+
* is ignored.
|
|
2959
|
+
*/
|
|
2960
|
+
joined?: boolean;
|
|
2961
|
+
/**
|
|
2962
|
+
* With `joined`: no box around the strip, and nothing wasted on its outside
|
|
2963
|
+
* — only the rules between tiles are drawn, and the outer tiles sit flush
|
|
2964
|
+
* with the text around the grid, as a seamless table's outer columns do.
|
|
2965
|
+
* For a strip inside a card or an answer, whose edge already frames it.
|
|
2966
|
+
*/
|
|
2967
|
+
seamless?: boolean;
|
|
2968
|
+
/**
|
|
2969
|
+
* A fixed number of columns instead of fitting to the width — for a band
|
|
2970
|
+
* whose shape is part of what it says: three across, two by two.
|
|
2971
|
+
*/
|
|
2972
|
+
columns?: number;
|
|
2494
2973
|
children?: React$1.ReactNode;
|
|
2495
2974
|
}
|
|
2496
2975
|
/**
|
|
@@ -2530,6 +3009,12 @@ interface NavMenuItem {
|
|
|
2530
3009
|
/** Draw a separator immediately above this row. */
|
|
2531
3010
|
separatorBefore?: boolean;
|
|
2532
3011
|
onSelect?: () => void;
|
|
3012
|
+
/**
|
|
3013
|
+
* A submenu: the row opens these beside it (hover, → or Enter; ← or Escape
|
|
3014
|
+
* closes it). Its own `onSelect` is not called — the rows inside are the
|
|
3015
|
+
* choices.
|
|
3016
|
+
*/
|
|
3017
|
+
children?: NavMenuItem[];
|
|
2533
3018
|
}
|
|
2534
3019
|
/**
|
|
2535
3020
|
* NavItemConfig - Shared configuration for a single navigation item, used by
|
|
@@ -2592,6 +3077,12 @@ interface NavItemConfig {
|
|
|
2592
3077
|
* is why a tab strip could not be built on nav items before.
|
|
2593
3078
|
*/
|
|
2594
3079
|
menuTrigger?: "item" | "caret";
|
|
3080
|
+
/**
|
|
3081
|
+
* Draws an inline `×` inside the item — a tab that is closed rather than
|
|
3082
|
+
* managed. The body still selects; only the `×` closes. Like the caret, it
|
|
3083
|
+
* makes the item host a button, so the item itself renders as a `<div>`.
|
|
3084
|
+
*/
|
|
3085
|
+
onClose?: () => void;
|
|
2595
3086
|
/**
|
|
2596
3087
|
* A count pinned to the item's top-right — unread reviews, waiting questions.
|
|
2597
3088
|
*
|
|
@@ -2608,11 +3099,11 @@ interface NavItemConfig {
|
|
|
2608
3099
|
/**
|
|
2609
3100
|
* The visual treatments a strip of nav items can wear.
|
|
2610
3101
|
*
|
|
2611
|
-
* One table, because the kit
|
|
2612
|
-
*
|
|
2613
|
-
*
|
|
2614
|
-
*
|
|
2615
|
-
*
|
|
3102
|
+
* One table, because the kit used to draw these by hand in separate
|
|
3103
|
+
* components. `nav` is what nav items have always looked like; `underline` and
|
|
3104
|
+
* `folder` are the two tab strips — a panel's views (`TabbedPanel`) and a
|
|
3105
|
+
* workbook's pages (`Workbook`) — and `folder-bottom` is the workbook's strip
|
|
3106
|
+
* under its pages.
|
|
2616
3107
|
*/
|
|
2617
3108
|
declare const VARIANT: {
|
|
2618
3109
|
/** The capsule: a filled, ringed chip. Toolbars, rails, header actions. */
|
|
@@ -2642,6 +3133,14 @@ declare const VARIANT: {
|
|
|
2642
3133
|
readonly active: "mb-[-1px] rounded-t-md border border-b-0 border-primary text-primary";
|
|
2643
3134
|
readonly strip: "items-stretch";
|
|
2644
3135
|
};
|
|
3136
|
+
/** The folder tab turned over, for a strip under its pages: open at the top, rounded below. */
|
|
3137
|
+
readonly "folder-bottom": {
|
|
3138
|
+
readonly item: "h-full rounded-none px-3 py-2 gap-1.5";
|
|
3139
|
+
readonly hover: "hover:text-foreground";
|
|
3140
|
+
readonly open: "data-[state=open]:text-foreground";
|
|
3141
|
+
readonly active: "mt-[-1px] rounded-b-md border border-t-0 border-primary text-primary";
|
|
3142
|
+
readonly strip: "items-stretch";
|
|
3143
|
+
};
|
|
2645
3144
|
};
|
|
2646
3145
|
type NavItemsVariant = keyof typeof VARIANT;
|
|
2647
3146
|
interface NavItemsProps {
|
|
@@ -2904,8 +3403,12 @@ interface NestedMenuProps {
|
|
|
2904
3403
|
declare const NestedMenu: React__default.FC<NestedMenuProps>;
|
|
2905
3404
|
|
|
2906
3405
|
interface PanelBoxProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
2907
|
-
/**
|
|
2908
|
-
|
|
3406
|
+
/**
|
|
3407
|
+
* What this band is — `Input · what opened this run`, `result.json`, `Log`.
|
|
3408
|
+
* Without one there is no label bar: the box still frames its content, which
|
|
3409
|
+
* is how a band of figures sits on a board as it sits in an answer card.
|
|
3410
|
+
*/
|
|
3411
|
+
title?: React$1.ReactNode;
|
|
2909
3412
|
/**
|
|
2910
3413
|
* The fact on the right of the header — `214 lines · tailing`, `rendered from
|
|
2911
3414
|
* result.json`, a `<Badge>`, a count.
|
|
@@ -2924,9 +3427,10 @@ interface PanelBoxProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "ti
|
|
|
2924
3427
|
bodyClassName?: string;
|
|
2925
3428
|
}
|
|
2926
3429
|
/**
|
|
2927
|
-
* One band of a
|
|
3430
|
+
* One band of a board: a bordered box, with a label bar over it when it
|
|
3431
|
+
* has a `title`.
|
|
2928
3432
|
*
|
|
2929
|
-
* A
|
|
3433
|
+
* A board is a scrolling column of these — tiles, then the flow, then
|
|
2930
3434
|
* Input beside `result.json`, then the Log. Each box is **content-height and
|
|
2931
3435
|
* owns no scroller**: the column scrolls, so a band that scrolled itself would
|
|
2932
3436
|
* hide its own content behind a second bar.
|
|
@@ -2949,6 +3453,11 @@ interface PanelContentProps {
|
|
|
2949
3453
|
title?: React__default.ReactNode;
|
|
2950
3454
|
/** Header title as plain text, rendered in the default panel header style. */
|
|
2951
3455
|
titleText?: string;
|
|
3456
|
+
/**
|
|
3457
|
+
* How many things the panel holds — `4`, `12 changed` — beside the title,
|
|
3458
|
+
* muted. A fact about the panel, so always shown, unlike its actions.
|
|
3459
|
+
*/
|
|
3460
|
+
count?: React__default.ReactNode;
|
|
2952
3461
|
children?: React__default.ReactNode;
|
|
2953
3462
|
/** Classes for the outer card. */
|
|
2954
3463
|
className?: string;
|
|
@@ -2989,7 +3498,7 @@ interface PanelContentProps {
|
|
|
2989
3498
|
*/
|
|
2990
3499
|
actionsOnHover?: boolean;
|
|
2991
3500
|
}
|
|
2992
|
-
declare function PanelContent({ title, titleText, children, className, headerClassName, bodyClassName, footerContent, footerClassName, headerActions, actionsOnHover, }: PanelContentProps): React__default.JSX.Element;
|
|
3501
|
+
declare function PanelContent({ title, titleText, count, children, className, headerClassName, bodyClassName, footerContent, footerClassName, headerActions, actionsOnHover, }: PanelContentProps): React__default.JSX.Element;
|
|
2993
3502
|
|
|
2994
3503
|
interface PanelStackSection {
|
|
2995
3504
|
/** Unique identifier for the section within the stack. */
|
|
@@ -3006,6 +3515,12 @@ interface PanelStackSection {
|
|
|
3006
3515
|
content: React$1.ReactNode;
|
|
3007
3516
|
/** Optional leading icon component, shown before the title. */
|
|
3008
3517
|
icon?: React$1.ElementType;
|
|
3518
|
+
/**
|
|
3519
|
+
* How many things the section holds — `4`, `12 changed` — beside the title,
|
|
3520
|
+
* muted. A fact, not an action: always shown, even while the actions wait
|
|
3521
|
+
* for hover, and while the section is collapsed.
|
|
3522
|
+
*/
|
|
3523
|
+
count?: React$1.ReactNode;
|
|
3009
3524
|
/**
|
|
3010
3525
|
* Actions on the right of the title bar, as `NavHorizontal` items — the same
|
|
3011
3526
|
* list `PanelContent` and `TabbedPanel` take, so a header is described once
|
|
@@ -3027,7 +3542,7 @@ interface PanelStackSection {
|
|
|
3027
3542
|
/**
|
|
3028
3543
|
* Keep `headerActions` hidden until the header is hovered or focused (or a
|
|
3029
3544
|
* menu inside them is open) — VS Code's quiet view header. Defaults to
|
|
3030
|
-
* `true`.
|
|
3545
|
+
* `true`. A count that must always read is `count`.
|
|
3031
3546
|
*/
|
|
3032
3547
|
actionsOnHover?: boolean;
|
|
3033
3548
|
/** Start the section collapsed (header only). Defaults to `false`. */
|
|
@@ -3125,12 +3640,65 @@ interface PanelStackProps {
|
|
|
3125
3640
|
*/
|
|
3126
3641
|
declare function PanelStack({ sections, stackRef, onCollapsedChange, headerHeight, withHandle, className, headerClassName, bodyClassName, }: PanelStackProps): React$1.JSX.Element;
|
|
3127
3642
|
|
|
3643
|
+
/**
|
|
3644
|
+
* What a run did with a participant it was allowed — **suggestions, not a
|
|
3645
|
+
* limit.** A product with a seventh verdict passes it and the row draws it in
|
|
3646
|
+
* the neutral.
|
|
3647
|
+
*/
|
|
3648
|
+
type KnownParticipantVerdict = "touched" | "never touched" | "refused" | "miss" | "denied";
|
|
3649
|
+
type ParticipantVerdict = KnownParticipantVerdict | (string & {});
|
|
3650
|
+
interface ParticipantRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3651
|
+
/** The participant, as the world addresses it — `model/Routes@v4`. */
|
|
3652
|
+
address: string;
|
|
3653
|
+
verdict: ParticipantVerdict;
|
|
3654
|
+
/** What happened — `1,284 rows · step 7`, `allowed, and nothing asked for it`. */
|
|
3655
|
+
note?: React$1.ReactNode;
|
|
3656
|
+
/**
|
|
3657
|
+
* The tone the verdict is read in. Defaults: `touched` succeeds, `refused`
|
|
3658
|
+
* and `denied` are destructive, everything else is muted — *allowed and never
|
|
3659
|
+
* reached for* is not a failure, it is an invitation to narrow.
|
|
3660
|
+
*/
|
|
3661
|
+
tone?: "success" | "muted" | "warning" | "destructive";
|
|
3662
|
+
/**
|
|
3663
|
+
* How the **address** is drawn. Derived from the verdict — `refused` strikes
|
|
3664
|
+
* it in place, `never touched` mutes it — and overridable for a vocabulary
|
|
3665
|
+
* the kit has not seen.
|
|
3666
|
+
*
|
|
3667
|
+
* Striking is `AddressChip`'s job and not this row's: the address is struck
|
|
3668
|
+
* everywhere a refusal is shown, and two components deciding that
|
|
3669
|
+
* independently is how one surface comes to strike and another to hide.
|
|
3670
|
+
*/
|
|
3671
|
+
addressTone?: AddressTone;
|
|
3672
|
+
}
|
|
3673
|
+
/**
|
|
3674
|
+
* One participant a run could have spent, and what it actually did with it.
|
|
3675
|
+
*
|
|
3676
|
+
* The Lens reading of a run is a list of these under their layers: every
|
|
3677
|
+
* address the world allowed, each marked `touched` · `never touched` ·
|
|
3678
|
+
* `refused`. **Nothing is filtered out**, because the list is not an inventory
|
|
3679
|
+
* of what ran — it is the gap between *declared* and *did*, and each kind of
|
|
3680
|
+
* gap names a different act. Three allowed and never touched is an invitation
|
|
3681
|
+
* to narrow the world; a refusal is an invitation to widen it, or to accept
|
|
3682
|
+
* that the graph cannot answer inside it.
|
|
3683
|
+
*
|
|
3684
|
+
* It is not `RuleRow`: a rule is a sentence about what *may* happen, written
|
|
3685
|
+
* before anything ran. This is a fact about one execution.
|
|
3686
|
+
*/
|
|
3687
|
+
declare const ParticipantRow: React$1.ForwardRefExoticComponent<ParticipantRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3688
|
+
|
|
3128
3689
|
interface PropertyListProps extends React$1.HTMLAttributes<HTMLDListElement> {
|
|
3129
3690
|
/**
|
|
3130
3691
|
* Width of the label column. One value for the whole list, so every value
|
|
3131
3692
|
* starts on the same x — the reason to use this rather than a row of flexes.
|
|
3693
|
+
* `"auto"` sizes the column to the widest label, for a short list of known
|
|
3694
|
+
* labels such as the answers to an ask.
|
|
3132
3695
|
*/
|
|
3133
|
-
labelWidth?: number | string;
|
|
3696
|
+
labelWidth?: number | "auto" | (string & {});
|
|
3697
|
+
/**
|
|
3698
|
+
* `summary` sets the rows tight — a settled answer read at a glance, such as
|
|
3699
|
+
* the values an ask was answered with, or a proposal's terms.
|
|
3700
|
+
*/
|
|
3701
|
+
variant?: "default" | "summary";
|
|
3134
3702
|
children?: React$1.ReactNode;
|
|
3135
3703
|
}
|
|
3136
3704
|
interface PropertyRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
@@ -3154,14 +3722,26 @@ declare const PropertyList: React$1.ForwardRefExoticComponent<PropertyListProps
|
|
|
3154
3722
|
declare const PropertyRow: React$1.ForwardRefExoticComponent<PropertyRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3155
3723
|
|
|
3156
3724
|
interface ProposalCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
3157
|
-
/** What is being proposed — `Draft pattern`. */
|
|
3158
|
-
title
|
|
3725
|
+
/** What is being proposed — `Draft pattern`. Left out when the frame around the card already says it. */
|
|
3726
|
+
title?: React$1.ReactNode;
|
|
3159
3727
|
/** Where it came from — `from the agent's result`. */
|
|
3160
3728
|
source?: React$1.ReactNode;
|
|
3161
3729
|
/** The draft itself. A `PropertyList`, usually. */
|
|
3162
3730
|
children?: React$1.ReactNode;
|
|
3731
|
+
/**
|
|
3732
|
+
* The draft without its muted box — for a card whose frame is already its
|
|
3733
|
+
* own, such as a proposal under an answer, where a box inside it is a box
|
|
3734
|
+
* inside a box.
|
|
3735
|
+
*/
|
|
3736
|
+
flush?: boolean;
|
|
3163
3737
|
/** What the proposal rests on — the instances, as a table or list. */
|
|
3164
3738
|
evidence?: React$1.ReactNode;
|
|
3739
|
+
/**
|
|
3740
|
+
* The evidence without its box — for evidence that is a `seamless` table or
|
|
3741
|
+
* grid, drawing only the rules between its rows, whose edge the card's own
|
|
3742
|
+
* frame already is.
|
|
3743
|
+
*/
|
|
3744
|
+
seamless?: boolean;
|
|
3165
3745
|
/** A heading for the evidence — `The six instances`. */
|
|
3166
3746
|
evidenceTitle?: React$1.ReactNode;
|
|
3167
3747
|
/** Scope of the evidence — `30 days`. */
|
|
@@ -3170,6 +3750,8 @@ interface ProposalCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
3170
3750
|
consequence?: React$1.ReactNode;
|
|
3171
3751
|
/** Author / reject / reassign. */
|
|
3172
3752
|
actions?: React$1.ReactNode;
|
|
3753
|
+
/** Written: what was made — `Alert created` — stamped above the draft. */
|
|
3754
|
+
done?: React$1.ReactNode;
|
|
3173
3755
|
}
|
|
3174
3756
|
/**
|
|
3175
3757
|
* An agent proposes; a person publishes.
|
|
@@ -3248,15 +3830,22 @@ interface RecordHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
3248
3830
|
chips?: React$1.ReactNode;
|
|
3249
3831
|
/** What you can do to it — prev/next, a view switch, buttons, a `…` menu. */
|
|
3250
3832
|
actions?: React$1.ReactNode;
|
|
3833
|
+
/**
|
|
3834
|
+
* The bar's height, on the control scale — a bar is as tall as a control of
|
|
3835
|
+
* its size. `lg` (40px at a 13px root) tops a page or a board; `md`
|
|
3836
|
+
* (32px) tops a panel or a drawer, level with a `PanelBox` header. Either
|
|
3837
|
+
* holds `sm` chips and buttons.
|
|
3838
|
+
*/
|
|
3839
|
+
size?: "md" | "lg";
|
|
3251
3840
|
}
|
|
3252
3841
|
/**
|
|
3253
3842
|
* Which record you are looking at, across the top of the surface showing it.
|
|
3254
3843
|
*
|
|
3255
|
-
* A run
|
|
3844
|
+
* A run board, a step board, a plan, a draft — every one of them opens
|
|
3256
3845
|
* with this line, so a reader who followed a link knows what they are reading
|
|
3257
3846
|
* before they read any of it.
|
|
3258
3847
|
*
|
|
3259
|
-
* It is **not** a `ContextBar`. That is
|
|
3848
|
+
* It is **not** a `ContextBar`. That is the `sm` bar under a panel and describes the
|
|
3260
3849
|
* *view* — counts, a keyboard hint, a tab-shaped switch. This is above the
|
|
3261
3850
|
* content and names the *record*, which is why the crumbs are mono: they are
|
|
3262
3851
|
* identifiers, not prose.
|
|
@@ -3267,6 +3856,60 @@ interface RecordHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
3267
3856
|
*/
|
|
3268
3857
|
declare const RecordHeader: React$1.ForwardRefExoticComponent<RecordHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3269
3858
|
|
|
3859
|
+
interface RecordPagerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3860
|
+
/** Where the reader is — `step 7 of 9`. */
|
|
3861
|
+
position?: React$1.ReactNode;
|
|
3862
|
+
onPrevious?: () => void;
|
|
3863
|
+
onNext?: () => void;
|
|
3864
|
+
/** What the two controls are called. The defaults name the *record*, not the direction. */
|
|
3865
|
+
previousLabel?: string;
|
|
3866
|
+
nextLabel?: string;
|
|
3867
|
+
}
|
|
3868
|
+
/**
|
|
3869
|
+
* The record before this one, and the one after.
|
|
3870
|
+
*
|
|
3871
|
+
* A step opened from a run's trace is one of nine, and the reader almost always
|
|
3872
|
+
* wants the next one — so walking the run costs two keystrokes rather than a
|
|
3873
|
+
* return to the list and a second drill-in.
|
|
3874
|
+
*
|
|
3875
|
+
* **Both controls carry a name.** An icon-only button with no accessible name
|
|
3876
|
+
* is a control a screen reader announces as "button", which is the one thing a
|
|
3877
|
+
* pager must not be; `previousLabel` and `nextLabel` name the record, so it
|
|
3878
|
+
* reads *previous step* rather than *left*.
|
|
3879
|
+
*
|
|
3880
|
+
* At either end the control is **disabled, not hidden**: a pager that loses a
|
|
3881
|
+
* button at the edges moves the other one under the reader's cursor.
|
|
3882
|
+
*/
|
|
3883
|
+
declare const RecordPager: React$1.ForwardRefExoticComponent<RecordPagerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3884
|
+
|
|
3885
|
+
interface RefusalCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3886
|
+
/**
|
|
3887
|
+
* Which bound refused it, as a short label — `refused · the agent's
|
|
3888
|
+
* guardrail`. The bound is the point: it says whom to ask.
|
|
3889
|
+
*/
|
|
3890
|
+
label?: React$1.ReactNode;
|
|
3891
|
+
/**
|
|
3892
|
+
* What was refused and why, in one or two sentences — *This ask was not run.
|
|
3893
|
+
* In Everything, decide is cast to … and … does not allow it.*
|
|
3894
|
+
*/
|
|
3895
|
+
children?: React$1.ReactNode;
|
|
3896
|
+
/** The way round it — another world, another agent, a person to ask. */
|
|
3897
|
+
remedy?: React$1.ReactNode;
|
|
3898
|
+
}
|
|
3899
|
+
/**
|
|
3900
|
+
* A bound refused the work **before it ran**.
|
|
3901
|
+
*
|
|
3902
|
+
* Not a cannot-answer and not a failure, and its own component for the same
|
|
3903
|
+
* reason those are (DS8): nothing was read, so there is nothing the graph does
|
|
3904
|
+
* not hold; nothing broke, so there is no fault to diagnose. A rule said no,
|
|
3905
|
+
* and the card names the rule's side so the reader knows whose rule to change.
|
|
3906
|
+
*
|
|
3907
|
+
* Tinted with the destructive token, because the reader has to act before
|
|
3908
|
+
* anything happens — but no citation strip and no retry, since running it again
|
|
3909
|
+
* under the same bounds would be refused again.
|
|
3910
|
+
*/
|
|
3911
|
+
declare const RefusalCard: React$1.ForwardRefExoticComponent<RefusalCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3912
|
+
|
|
3270
3913
|
interface RepairNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3271
3914
|
/** What was wrong — `unknown property Theme.velocity5d`. */
|
|
3272
3915
|
from: React$1.ReactNode;
|
|
@@ -3314,6 +3957,33 @@ interface RichSelectOption {
|
|
|
3314
3957
|
/** Trailing content (e.g. a count or status badge), pushed to the right. */
|
|
3315
3958
|
badge?: React$1.ReactNode;
|
|
3316
3959
|
disabled?: boolean;
|
|
3960
|
+
/**
|
|
3961
|
+
* Why a disabled option cannot be picked, shown under it in the warning
|
|
3962
|
+
* tone. A greyed-out row with no reason is a refusal nobody can act on.
|
|
3963
|
+
*/
|
|
3964
|
+
disabledReason?: React$1.ReactNode;
|
|
3965
|
+
}
|
|
3966
|
+
/**
|
|
3967
|
+
* An on/off setting beside the choice — *Next ask only* on a world picker. It
|
|
3968
|
+
* is not an option: it scopes the choice, so it sits below the options and
|
|
3969
|
+
* toggling it keeps the menu open.
|
|
3970
|
+
*/
|
|
3971
|
+
interface RichSelectToggle {
|
|
3972
|
+
id: string;
|
|
3973
|
+
label: React$1.ReactNode;
|
|
3974
|
+
checked: boolean;
|
|
3975
|
+
onCheckedChange: (checked: boolean) => void;
|
|
3976
|
+
disabled?: boolean;
|
|
3977
|
+
}
|
|
3978
|
+
/**
|
|
3979
|
+
* Something to do rather than something to pick — *Manage worlds…*. It sits
|
|
3980
|
+
* last, below a separator, so it is never mistaken for a value.
|
|
3981
|
+
*/
|
|
3982
|
+
interface RichSelectAction {
|
|
3983
|
+
id: string;
|
|
3984
|
+
label: React$1.ReactNode;
|
|
3985
|
+
icon?: React$1.ElementType;
|
|
3986
|
+
onSelect: () => void;
|
|
3317
3987
|
}
|
|
3318
3988
|
interface RichSelectProps {
|
|
3319
3989
|
options: RichSelectOption[];
|
|
@@ -3343,6 +4013,25 @@ interface RichSelectProps {
|
|
|
3343
4013
|
side?: "top" | "right" | "bottom" | "left";
|
|
3344
4014
|
/** Gap in px between the trigger and the menu. Default `4`. */
|
|
3345
4015
|
sideOffset?: number;
|
|
4016
|
+
/**
|
|
4017
|
+
* `field` (default) is an outlined control for a form. `inline` is the
|
|
4018
|
+
* borderless, compact trigger a toolbar uses — every control in a chat
|
|
4019
|
+
* composer is one, so the ask kind and the world read as one row.
|
|
4020
|
+
*/
|
|
4021
|
+
appearance?: "field" | "inline";
|
|
4022
|
+
/** Glyph before the selected value on the trigger — a globe for a world. */
|
|
4023
|
+
triggerIcon?: React$1.ElementType;
|
|
4024
|
+
/** A short tag after the value on the trigger — `next ask only`. */
|
|
4025
|
+
triggerTag?: React$1.ReactNode;
|
|
4026
|
+
/** Settings that scope the choice; rendered below the options. */
|
|
4027
|
+
toggles?: RichSelectToggle[];
|
|
4028
|
+
/** Acts, not values; rendered last. */
|
|
4029
|
+
actions?: RichSelectAction[];
|
|
4030
|
+
/**
|
|
4031
|
+
* The trigger's accessible name — *Ask kind*, *World*. An inline trigger
|
|
4032
|
+
* shows only the current value, which names the choice made, not the control.
|
|
4033
|
+
*/
|
|
4034
|
+
triggerAriaLabel?: string;
|
|
3346
4035
|
/** Trigger tooltip content; omit to disable the tooltip. */
|
|
3347
4036
|
tooltip?: React$1.ReactNode;
|
|
3348
4037
|
/** Side the trigger tooltip is placed on. Default `'top'`. */
|
|
@@ -3360,8 +4049,13 @@ interface RichSelectProps {
|
|
|
3360
4049
|
* rich content (`label`, `description`, `icon`, `badge`) and both the rows and
|
|
3361
4050
|
* the trigger are fully customizable via `renderOption` / `renderValue`.
|
|
3362
4051
|
* Supports single (radio) and multi (checkbox) selection via `multiple`.
|
|
4052
|
+
*
|
|
4053
|
+
* Beyond the choice it can carry **toggles** that scope it and **actions**
|
|
4054
|
+
* below it, and an `inline` trigger for toolbars — which is what lets every
|
|
4055
|
+
* control in a chat composer (ask kind, query language, world, timeout) be the
|
|
4056
|
+
* same component rather than a `Select` beside a hand-rolled menu.
|
|
3363
4057
|
*/
|
|
3364
|
-
declare function RichSelect({ options, value, onChange, multiple, label, placeholder, renderOption, renderValue, align, side, sideOffset, tooltip, tooltipSide, disabled, triggerClassName, contentClassName, className, }: RichSelectProps): React$1.JSX.Element;
|
|
4058
|
+
declare function RichSelect({ options, value, onChange, multiple, label, placeholder, renderOption, renderValue, align, side, sideOffset, tooltip, tooltipSide, disabled, appearance, triggerIcon: TriggerIcon, triggerTag, triggerAriaLabel, toggles, actions, triggerClassName, contentClassName, className, }: RichSelectProps): React$1.JSX.Element;
|
|
3365
4059
|
|
|
3366
4060
|
/** A slice along the axes the matched model **declared**. */
|
|
3367
4061
|
interface RuleSelect {
|
|
@@ -3493,19 +4187,191 @@ interface RuleRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "chi
|
|
|
3493
4187
|
declare const RuleRow: React$1.ForwardRefExoticComponent<RuleRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3494
4188
|
|
|
3495
4189
|
/**
|
|
3496
|
-
*
|
|
3497
|
-
*
|
|
4190
|
+
* How a run or a step ended, as the engine writes it — **suggestions, not a
|
|
4191
|
+
* limit.** An unknown status still renders: it says its own name, in the
|
|
4192
|
+
* neutral.
|
|
4193
|
+
*/
|
|
4194
|
+
type KnownRunStatus = "queued" | "running" | "succeeded" | "failed" | "cancelled" | "cannot_answer" | "awaiting_approval" | "awaiting_input" | "partial" | "skipped" | "held" | "purged";
|
|
4195
|
+
type RunStatus = KnownRunStatus | (string & {});
|
|
4196
|
+
/**
|
|
4197
|
+
* Which tone each status is read in.
|
|
4198
|
+
*
|
|
4199
|
+
* The kit owns this map where it does **not** own a layer's or a bound's
|
|
4200
|
+
* colour, and the difference is real: a layer is a product's vocabulary, while
|
|
4201
|
+
* *finished · finished but look at it · failed · not started* is the same small
|
|
4202
|
+
* set of states every surface in the system already draws with `StatusDot`. Two
|
|
4203
|
+
* maps for one idea is how a journal row and its own pagehead come to disagree.
|
|
4204
|
+
*
|
|
4205
|
+
* **`succeeded` and `cannot_answer` are deliberately different tones.** The
|
|
4206
|
+
* machinery succeeded; the reading is that the graph cannot answer inside this
|
|
4207
|
+
* world. A run that says both in one green word would be hiding the only fact
|
|
4208
|
+
* the reader needs ([SR53]).
|
|
4209
|
+
*/
|
|
4210
|
+
declare const TONE: Record<string, StatusDotProps["tone"]>;
|
|
4211
|
+
interface RunStatusTextProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
4212
|
+
status: RunStatus;
|
|
4213
|
+
/** Overrides the tone {@link RunStatus} resolves to. */
|
|
4214
|
+
tone?: StatusDotProps["tone"];
|
|
4215
|
+
/** Draw the dot before the word. Off in a table cell, on in a row. */
|
|
4216
|
+
dot?: boolean;
|
|
4217
|
+
/** What to call it, when the engine's own word is not what this surface says. */
|
|
4218
|
+
label?: React$1.ReactNode;
|
|
4219
|
+
}
|
|
4220
|
+
/**
|
|
4221
|
+
* A run's outcome, in its tone and in the engine's own word.
|
|
4222
|
+
*
|
|
4223
|
+
* `succeeded` · `running` · `cannot_answer` · `awaiting_approval` — written as
|
|
4224
|
+
* the record writes them, underscores and all, because these are the values a
|
|
4225
|
+
* reader filters on and quotes into a support thread. Prettifying them here
|
|
4226
|
+
* would mean the word on screen is not the word in the API.
|
|
4227
|
+
*
|
|
4228
|
+
* The word is always present, so colour is never the only carrier of the state.
|
|
4229
|
+
*/
|
|
4230
|
+
declare const RunStatusText: React$1.ForwardRefExoticComponent<RunStatusTextProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
4231
|
+
/**
|
|
4232
|
+
* Which glyph each status is drawn with, where the word is not beside it.
|
|
4233
|
+
*
|
|
4234
|
+
* The shape is the point: every state a reader acts on differently gets its own
|
|
4235
|
+
* — done, broken, moving, not started, **waiting on you**, could not answer,
|
|
4236
|
+
* answered in part, stopped. An unknown status reads as not started.
|
|
4237
|
+
*/
|
|
4238
|
+
declare const ICON: Record<string, StatusIconState>;
|
|
4239
|
+
|
|
4240
|
+
interface RunRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onSelect"> {
|
|
4241
|
+
status: RunStatus;
|
|
4242
|
+
/** Overrides the glyph the status resolves to — `partial` on a run that succeeded. */
|
|
4243
|
+
state?: StatusIconState;
|
|
4244
|
+
kind?: RunKind;
|
|
4245
|
+
/**
|
|
4246
|
+
* What it was about, in the words it was opened with — the question as typed,
|
|
4247
|
+
* the query text, the dataset loaded. **Line one**, because it is what a
|
|
4248
|
+
* reader scans the journal for.
|
|
4249
|
+
*/
|
|
4250
|
+
title: React$1.ReactNode;
|
|
4251
|
+
/** The title is a query, not a sentence — drawn mono. */
|
|
4252
|
+
titleMono?: boolean;
|
|
4253
|
+
/**
|
|
4254
|
+
* The run's address — the last eight characters of its uuid, mono.
|
|
4255
|
+
*
|
|
4256
|
+
* **First on line two.** A row a reader cannot quote into a log line, a
|
|
4257
|
+
* support thread or `GET …/runs/{id}` has made them drill in to find out what
|
|
4258
|
+
* they are looking at.
|
|
4259
|
+
*/
|
|
4260
|
+
address?: React$1.ReactNode;
|
|
4261
|
+
/** After the address — `nl-query@5 · 2m 51s · 21.4k · 9/9 · 4 mins ago`. */
|
|
4262
|
+
meta?: React$1.ReactNode;
|
|
4263
|
+
/** Hard right — a badge, a count, an outcome. */
|
|
4264
|
+
aside?: React$1.ReactNode;
|
|
4265
|
+
/** A child run sits under the step that spawned it, indented — never a sibling. */
|
|
4266
|
+
depth?: number;
|
|
4267
|
+
selected?: boolean;
|
|
4268
|
+
onSelect?: () => void;
|
|
4269
|
+
}
|
|
4270
|
+
/**
|
|
4271
|
+
* One run in the journal.
|
|
4272
|
+
*
|
|
4273
|
+
* Every execution in a Graph is one of these — a question answered, a dataset
|
|
4274
|
+
* loaded, a stitch committed, an enrichment gated on a person — because they
|
|
4275
|
+
* are one record walked by one interpreter. **There is no row type per kind**
|
|
4276
|
+
* and no panel per kind: the kind is a chip and a filter value, which is what
|
|
4277
|
+
* keeps one journal from becoming four lists that drift apart.
|
|
4278
|
+
*
|
|
4279
|
+
* Line one is what it was about; line two is the id, then what it spent. The
|
|
4280
|
+
* status is a glyph in the leading slot and **not a word** — the shape carries
|
|
4281
|
+
* it, so the badge's column goes back to the prompt.
|
|
4282
|
+
*
|
|
4283
|
+
* With `onSelect` the whole row is one button, so the accessible name is the
|
|
4284
|
+
* whole row — the id, the kind and the summary in one string, which is exactly
|
|
4285
|
+
* what a reader driving this from the keyboard needs to hear.
|
|
4286
|
+
*/
|
|
4287
|
+
declare const RunRow: React$1.ForwardRefExoticComponent<RunRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4288
|
+
|
|
4289
|
+
interface ScopeLineChoice {
|
|
4290
|
+
value: string;
|
|
4291
|
+
label: React$1.ReactNode;
|
|
4292
|
+
/** At the right of the choice, in mono — `188`, `2 of 3`. */
|
|
4293
|
+
detail?: React$1.ReactNode;
|
|
4294
|
+
}
|
|
4295
|
+
/** A part with more to say than its text. */
|
|
4296
|
+
interface ScopeLinePart {
|
|
4297
|
+
text: React$1.ReactNode;
|
|
4298
|
+
/**
|
|
4299
|
+
* `changed` — this part differs from the question it was carried from;
|
|
4300
|
+
* `stale` — the data behind it is late.
|
|
4301
|
+
*/
|
|
4302
|
+
mark?: "changed" | "stale";
|
|
4303
|
+
/** What the part can be changed to. Opening the part lists them under the line. */
|
|
4304
|
+
choices?: ScopeLineChoice[];
|
|
4305
|
+
}
|
|
4306
|
+
interface ScopeLineProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
4307
|
+
/** What the figure covers, in order — period, comparison, filters, population, freshness. */
|
|
4308
|
+
parts: (React$1.ReactNode | ScopeLinePart)[];
|
|
4309
|
+
/**
|
|
4310
|
+
* Makes the text parts editable in place: click one, type, `Enter` to send
|
|
4311
|
+
* the new value, `Escape` or leaving it to keep the old one. Called only
|
|
4312
|
+
* when the value changed.
|
|
4313
|
+
*/
|
|
4314
|
+
onPartChange?: (index: number, value: string) => void;
|
|
4315
|
+
/**
|
|
4316
|
+
* Parts that stay as stated even when the rest can be edited — the data's
|
|
4317
|
+
* freshness is a fact about the load, not a choice of the analyst's.
|
|
4318
|
+
*/
|
|
4319
|
+
fixedParts?: number[];
|
|
4320
|
+
/** The part whose choices are showing. Controlled; see `defaultOpenPart`. */
|
|
4321
|
+
openPart?: number | null;
|
|
4322
|
+
/** The part whose choices show at first, uncontrolled. */
|
|
4323
|
+
defaultOpenPart?: number;
|
|
4324
|
+
onOpenPartChange?: (index: number | null) => void;
|
|
4325
|
+
/** A line under the scope — `Click any part to change it and re-run`. */
|
|
4326
|
+
note?: React$1.ReactNode;
|
|
4327
|
+
/** `warning` when the note is about late data. */
|
|
4328
|
+
noteTone?: "muted" | "warning";
|
|
4329
|
+
/**
|
|
4330
|
+
* No box, and nothing wasted on its outside: only the rules between parts
|
|
4331
|
+
* are drawn, and the first part sits flush with the text around the strip.
|
|
4332
|
+
* For a scope inside a card or an answer, whose edge already frames it.
|
|
4333
|
+
*/
|
|
4334
|
+
seamless?: boolean;
|
|
4335
|
+
}
|
|
4336
|
+
/**
|
|
4337
|
+
* What an answer covers, stated in one strip: `Q3 2026 · vs Q2 · Stores,
|
|
4338
|
+
* Online · 214 stores · as of 06:00`.
|
|
4339
|
+
*
|
|
4340
|
+
* Every analytic answer carries one, above its figures, so a number is never
|
|
4341
|
+
* read without the period and population it was computed over. The parts are
|
|
4342
|
+
* exactly as applied — the filters the query ran with, not the ones asked for.
|
|
4343
|
+
*
|
|
4344
|
+
* With `onPartChange` the scope is also where it is changed: a part is edited
|
|
4345
|
+
* where it is read, rather than by asking the question again.
|
|
4346
|
+
*/
|
|
4347
|
+
declare const ScopeLine: React$1.ForwardRefExoticComponent<ScopeLineProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4348
|
+
|
|
4349
|
+
/**
|
|
4350
|
+
* The control scale: `sm` (26px) is the application field — a search box
|
|
4351
|
+
* docked in a panel header or a table toolbar; `default` (32px) a standalone
|
|
4352
|
+
* form; `lg` (40px) a page. Size is height only: every size reads at the root,
|
|
4353
|
+
* the size of the rows being searched.
|
|
3498
4354
|
*
|
|
3499
4355
|
* Named `inputSize` for the same reason `Input` is: `size` is already an
|
|
3500
4356
|
* `<input>` attribute meaning "how many characters wide".
|
|
3501
4357
|
*/
|
|
3502
|
-
type SearchInputSize = 'default' | '
|
|
4358
|
+
type SearchInputSize = 'sm' | 'default' | 'lg';
|
|
3503
4359
|
interface SearchInputProps extends Omit<React__default.ComponentProps<'input'>, 'value' | 'onChange' | 'size' | 'type'> {
|
|
4360
|
+
/** Sits on the box around the field — its width, its place in a row. */
|
|
3504
4361
|
className?: string;
|
|
3505
4362
|
value: string;
|
|
3506
4363
|
/** Receives the raw string, not the event — a search box has one value. */
|
|
3507
4364
|
onChange: (value: string) => void;
|
|
3508
4365
|
inputSize?: SearchInputSize;
|
|
4366
|
+
/**
|
|
4367
|
+
* A clear button at the end of the field while it holds text, and Escape
|
|
4368
|
+
* clears it too; both send `onChange("")`. On by default.
|
|
4369
|
+
*/
|
|
4370
|
+
clearable?: boolean;
|
|
4371
|
+
/** The clear button's glyph — yours, at 14px. Default: a plain cross. */
|
|
4372
|
+
clearIcon?: React__default.ReactNode;
|
|
4373
|
+
/** The clear button's accessible name. */
|
|
4374
|
+
clearLabel?: string;
|
|
3509
4375
|
}
|
|
3510
4376
|
declare const SearchInput: React__default.FC<SearchInputProps>;
|
|
3511
4377
|
|
|
@@ -3532,47 +4398,12 @@ interface SectionHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>
|
|
|
3532
4398
|
*
|
|
3533
4399
|
* A panel is a stack of these: Node types, Edge types, Relationships, Selected,
|
|
3534
4400
|
* Anchors, Recent plans. It is 35px because that is what reads as a heading
|
|
3535
|
-
* against 30px rows without becoming a second toolbar.
|
|
3536
|
-
*
|
|
3537
|
-
* Not a `<Card>` header — a section is a band inside a scrolling panel, not a
|
|
3538
|
-
* container, so it carries a rule rather than a border box.
|
|
3539
|
-
*/
|
|
3540
|
-
declare const SectionHeader: React$1.ForwardRefExoticComponent<SectionHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3541
|
-
|
|
3542
|
-
/**
|
|
3543
|
-
* TODO — provisional. Built ahead of its design review.
|
|
3544
|
-
*
|
|
3545
|
-
* The chart set was deliberately deferred while the rest of the kit was built,
|
|
3546
|
-
* because charts are the one group with a real design question in them rather
|
|
3547
|
-
* than a markup question: which forms this product actually needs, at what
|
|
3548
|
-
* sizes, and how much a 330px drawer can carry. This component satisfies the
|
|
3549
|
-
* dataviz rules and the validated palette, but the *form inventory* has not been
|
|
3550
|
-
* agreed — treat the API as unsettled until a board screen uses it in anger.
|
|
3551
|
-
*/
|
|
3552
|
-
|
|
3553
|
-
interface SparklineProps extends Omit<React$1.SVGAttributes<SVGSVGElement>, "children" | "values"> {
|
|
3554
|
-
values: number[];
|
|
3555
|
-
width?: number;
|
|
3556
|
-
height?: number;
|
|
3557
|
-
color?: string;
|
|
3558
|
-
/** Washes the area under the line at 10%. Off by default at this size. */
|
|
3559
|
-
area?: boolean;
|
|
3560
|
-
/** A filled dot on the last point, ringed in the surface colour. */
|
|
3561
|
-
endMarker?: boolean;
|
|
3562
|
-
/** What the line is, for assistive tech. The surface around it usually says. */
|
|
3563
|
-
label?: string;
|
|
3564
|
-
}
|
|
3565
|
-
/**
|
|
3566
|
-
* The shape of a series, small enough to sit inside a row.
|
|
3567
|
-
*
|
|
3568
|
-
* No axis, no gridlines, no labels — a sparkline answers "which way, and how
|
|
3569
|
-
* steadily", and the number it accompanies answers "how much". If a reader
|
|
3570
|
-
* needs to read a value off it, it wanted to be a chart.
|
|
4401
|
+
* against 30px rows without becoming a second toolbar.
|
|
3571
4402
|
*
|
|
3572
|
-
*
|
|
3573
|
-
*
|
|
4403
|
+
* Not a `<Card>` header — a section is a band inside a scrolling panel, not a
|
|
4404
|
+
* container, so it carries a rule rather than a border box.
|
|
3574
4405
|
*/
|
|
3575
|
-
declare const
|
|
4406
|
+
declare const SectionHeader: React$1.ForwardRefExoticComponent<SectionHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3576
4407
|
|
|
3577
4408
|
interface TabConfig {
|
|
3578
4409
|
/** Unique identifier for the tab */
|
|
@@ -3590,6 +4421,8 @@ interface TabConfig {
|
|
|
3590
4421
|
content: React__default.ReactNode;
|
|
3591
4422
|
/** Whether this tab should be disabled */
|
|
3592
4423
|
disabled?: boolean;
|
|
4424
|
+
/** Draw a close button on the tab; pressing it calls the panel's `onTabClose`. */
|
|
4425
|
+
closable?: boolean;
|
|
3593
4426
|
}
|
|
3594
4427
|
interface TabbedPanelProps {
|
|
3595
4428
|
/** Array of tab configurations */
|
|
@@ -3600,6 +4433,11 @@ interface TabbedPanelProps {
|
|
|
3600
4433
|
activeTab?: string;
|
|
3601
4434
|
/** Callback when tab changes */
|
|
3602
4435
|
onTabChange?: (value: string) => void;
|
|
4436
|
+
/**
|
|
4437
|
+
* A `closable` tab's close was pressed, by its value. The tabs are yours, so
|
|
4438
|
+
* closing is too: drop it from `tabs`, and move `activeTab` if it was open.
|
|
4439
|
+
*/
|
|
4440
|
+
onTabClose?: (value: string) => void;
|
|
3603
4441
|
/**
|
|
3604
4442
|
* Actions on the right of the tab bar, as `NavHorizontal` items. A panel
|
|
3605
4443
|
* header has one action area — the right — so this is the item list itself
|
|
@@ -3616,6 +4454,16 @@ interface TabbedPanelProps {
|
|
|
3616
4454
|
* ```
|
|
3617
4455
|
*/
|
|
3618
4456
|
headerActions?: NavHorizontalItem[];
|
|
4457
|
+
/**
|
|
4458
|
+
* A control on the right of the tab strip, before `headerActions`, that
|
|
4459
|
+
* applies to **every** tab: a time window, a version. Not a place for a
|
|
4460
|
+
* tab's own controls — those belong in that tab's body.
|
|
4461
|
+
*
|
|
4462
|
+
* ```tsx
|
|
4463
|
+
* headerContent={<ToggleGroup type="single" size="sm">…</ToggleGroup>}
|
|
4464
|
+
* ```
|
|
4465
|
+
*/
|
|
4466
|
+
headerContent?: React__default.ReactNode;
|
|
3619
4467
|
/**
|
|
3620
4468
|
* Fold the tabs that do not fit the header into a `…` dropdown at the end of
|
|
3621
4469
|
* the strip, instead of letting the strip set the panel's minimum width.
|
|
@@ -3653,7 +4501,7 @@ interface TabbedPanelProps {
|
|
|
3653
4501
|
footerContent?: React__default.ReactNode;
|
|
3654
4502
|
}
|
|
3655
4503
|
/**
|
|
3656
|
-
* TabbedPanel — a panel whose views sit behind one
|
|
4504
|
+
* TabbedPanel — a panel whose views sit behind one `md` tab strip.
|
|
3657
4505
|
*
|
|
3658
4506
|
* The strip is a `NavItems` tab list (`variant="underline"`), not a Radix
|
|
3659
4507
|
* `Tabs`: the same component draws this kit's nav rails and its workbook tabs,
|
|
@@ -3663,47 +4511,129 @@ interface TabbedPanelProps {
|
|
|
3663
4511
|
* `TabsContent`, and a panel that tears its canvas down on every tab switch is
|
|
3664
4512
|
* not a panel anyone wants.
|
|
3665
4513
|
*/
|
|
3666
|
-
declare function TabbedPanel({ tabs, defaultTab, activeTab, onTabChange, headerActions, overflow, overflowLabel, keepMounted, className, headerClassName, bodyClassName, footerClassName, footerContent, }: TabbedPanelProps): React__default.JSX.Element;
|
|
4514
|
+
declare function TabbedPanel({ tabs, defaultTab, activeTab, onTabChange, onTabClose, headerActions, headerContent, overflow, overflowLabel, keepMounted, className, headerClassName, bodyClassName, footerClassName, footerContent, }: TabbedPanelProps): React__default.JSX.Element;
|
|
4515
|
+
|
|
4516
|
+
/**
|
|
4517
|
+
* Which rows of a tree are open, by key — `true` for every one. The same shape
|
|
4518
|
+
* as a `DataTable`'s `expanded`, so a page holding both passes one value.
|
|
4519
|
+
*/
|
|
4520
|
+
type ExpandedKeys = true | Record<string, boolean>;
|
|
4521
|
+
interface UseExpandedKeysOptions {
|
|
4522
|
+
/** Controlled. Pair it with `onExpandedChange`. */
|
|
4523
|
+
expanded?: ExpandedKeys;
|
|
4524
|
+
/** Uncontrolled: what is open at first. Closed by default. */
|
|
4525
|
+
defaultExpanded?: ExpandedKeys;
|
|
4526
|
+
onExpandedChange?: (expanded: ExpandedKeys) => void;
|
|
4527
|
+
/** Every key that can open, so closing one row of `true` keeps the rest open. */
|
|
4528
|
+
keys: string[];
|
|
4529
|
+
}
|
|
4530
|
+
/**
|
|
4531
|
+
* Open and close the rows of a tree, controlled or not. What a chart drawn as
|
|
4532
|
+
* rows uses to nest — a Gantt's subtasks, a heat strip's children — so each
|
|
4533
|
+
* opens the same way and reports the same value.
|
|
4534
|
+
*/
|
|
4535
|
+
declare function useExpandedKeys({ expanded, defaultExpanded, onExpandedChange, keys, }: UseExpandedKeysOptions): {
|
|
4536
|
+
isOpen: (key: string) => boolean;
|
|
4537
|
+
toggle: (key: string) => void;
|
|
4538
|
+
};
|
|
3667
4539
|
|
|
3668
4540
|
/**
|
|
3669
|
-
* What a
|
|
4541
|
+
* What a bar did with its slice of the clock.
|
|
3670
4542
|
*
|
|
3671
4543
|
* These are the engine's own step statuses (`StepStatus`, plus `skipped` for a
|
|
3672
4544
|
* branch that never ran), not a second vocabulary: a Gantt row and a log line
|
|
3673
|
-
* are the same
|
|
4545
|
+
* are the same work seen twice, so they say the same word for the same state.
|
|
4546
|
+
* `refused` is what a rule stopped — reached for and not allowed — which is a
|
|
4547
|
+
* different fact from `skipped`, and both are drawn.
|
|
3674
4548
|
*/
|
|
3675
|
-
type
|
|
4549
|
+
type GanttStatus = "succeeded" | "running" | "failed" | "needs_input" | "stopped" | "skipped" | "queued" | "refused";
|
|
3676
4550
|
/** A `Date`, an ISO string, or epoch milliseconds — whatever the JSON carried. */
|
|
3677
|
-
type
|
|
4551
|
+
type GanttInstant = string | number | Date;
|
|
3678
4552
|
/**
|
|
3679
|
-
* One bar. A
|
|
3680
|
-
* failed
|
|
4553
|
+
* One bar on the clock. A row's own bar is one of these, so is each earlier
|
|
4554
|
+
* attempt — the failed one sitting to the left of the one that stuck — and so
|
|
4555
|
+
* is each of the row's `bars`.
|
|
3681
4556
|
*/
|
|
3682
|
-
interface
|
|
4557
|
+
interface GanttBar {
|
|
3683
4558
|
/** Offset from the run's zero. Use this, or `startedAt` with `origin`. */
|
|
3684
4559
|
startMs?: number;
|
|
3685
4560
|
durationMs?: number;
|
|
3686
|
-
startedAt?:
|
|
3687
|
-
finishedAt?:
|
|
3688
|
-
status?:
|
|
4561
|
+
startedAt?: GanttInstant;
|
|
4562
|
+
finishedAt?: GanttInstant;
|
|
4563
|
+
status?: GanttStatus;
|
|
3689
4564
|
/** Overrides the hover text, which otherwise reads `key · status · duration`. */
|
|
3690
4565
|
title?: string;
|
|
4566
|
+
/**
|
|
4567
|
+
* Names the bar, so it can be picked on its own — `fetch_source#1`. Only a
|
|
4568
|
+
* bar in a row's `bars` has one; the row's own bar is picked with the row.
|
|
4569
|
+
*/
|
|
4570
|
+
key?: string;
|
|
4571
|
+
/**
|
|
4572
|
+
* Written in the bar — the task a slot held, the participant a layer reached.
|
|
4573
|
+
* A row with a labelled bar grows to the `xs` control height to carry it, and
|
|
4574
|
+
* the bar draws as a card with its fill as a rail, so the text stays legible
|
|
4575
|
+
* on any status or palette colour.
|
|
4576
|
+
*/
|
|
4577
|
+
label?: React$1.ReactNode;
|
|
4578
|
+
/**
|
|
4579
|
+
* Which entry of `palette` paints it, in place of its status fill — a layer,
|
|
4580
|
+
* a lane, an agent. A group the palette does not name keeps the status fill,
|
|
4581
|
+
* and a `failed` or `refused` bar is always drawn as one.
|
|
4582
|
+
*/
|
|
4583
|
+
group?: string;
|
|
4584
|
+
/**
|
|
4585
|
+
* `solid` (the default) is spent time. `outline` is time held but not spent
|
|
4586
|
+
* — queued, waiting on a gate; `dashed` is time that may be spent — declared,
|
|
4587
|
+
* not yet dispatched.
|
|
4588
|
+
*/
|
|
4589
|
+
variant?: "solid" | "outline" | "dashed";
|
|
4590
|
+
/**
|
|
4591
|
+
* A second line under the label — `1,204 of 1,251`, `503`. A row with one
|
|
4592
|
+
* grows to the `md` control height to carry both lines.
|
|
4593
|
+
*/
|
|
4594
|
+
note?: React$1.ReactNode;
|
|
4595
|
+
/** A small mark at the bar's end — a `Badge`, an icon, a count. Drawn with a label. */
|
|
4596
|
+
chip?: React$1.ReactNode;
|
|
4597
|
+
/**
|
|
4598
|
+
* What this bar did, for its own hover card — the same fields a row's card
|
|
4599
|
+
* reads. A row with a bar that has one opens no card of its own: its bars
|
|
4600
|
+
* do, so the reader gets the bar under the cursor rather than the row.
|
|
4601
|
+
*/
|
|
4602
|
+
summary?: React$1.ReactNode;
|
|
4603
|
+
result?: React$1.ReactNode | Record<string, unknown>;
|
|
4604
|
+
error?: {
|
|
4605
|
+
code?: React$1.ReactNode;
|
|
4606
|
+
message?: React$1.ReactNode;
|
|
4607
|
+
detail?: React$1.ReactNode;
|
|
4608
|
+
};
|
|
4609
|
+
log?: React$1.ReactNode;
|
|
3691
4610
|
}
|
|
3692
|
-
|
|
3693
|
-
|
|
4611
|
+
/**
|
|
4612
|
+
* One row: a task on a run's clock, a worker slot, a layer, a participant —
|
|
4613
|
+
* whatever the surface groups time by. It carries its own bar, earlier
|
|
4614
|
+
* attempts, many `bars` of its own, and the `rows` it opens into.
|
|
4615
|
+
*/
|
|
4616
|
+
interface GanttRow extends GanttBar {
|
|
4617
|
+
/** What the log lines call it — `task_key`, `slot-1`, `ingest`. Also the row's label. */
|
|
3694
4618
|
key: string;
|
|
3695
4619
|
/** Shown instead of `key`, when the row wants a human name. */
|
|
3696
4620
|
label?: React$1.ReactNode;
|
|
3697
4621
|
/** Earlier attempts, oldest first. A failed one draws in `destructive`. */
|
|
3698
|
-
attempts?:
|
|
3699
|
-
/**
|
|
4622
|
+
attempts?: GanttBar[];
|
|
4623
|
+
/**
|
|
4624
|
+
* Many bars on one row, each a thing of its own rather than a retry — what a
|
|
4625
|
+
* worker slot held in order, what a layer was reached for. Drawn with the
|
|
4626
|
+
* row's own bar, if it has one; give each a `label` to say what it was.
|
|
4627
|
+
*/
|
|
4628
|
+
bars?: GanttBar[];
|
|
4629
|
+
/** Overrides the right-hand duration cell. `—` when the row never ran. */
|
|
3700
4630
|
duration?: React$1.ReactNode;
|
|
3701
|
-
/** One line — what
|
|
4631
|
+
/** One line — what it said. The card's last line. */
|
|
3702
4632
|
log?: React$1.ReactNode;
|
|
3703
4633
|
/** A sentence under the card's header, when the row wants one. */
|
|
3704
4634
|
summary?: React$1.ReactNode;
|
|
3705
4635
|
/**
|
|
3706
|
-
* What
|
|
4636
|
+
* What it produced — its `result.json`, or any part of it.
|
|
3707
4637
|
*
|
|
3708
4638
|
* An object renders as label/value pairs, with nested values as JSON; a node
|
|
3709
4639
|
* renders as given, which is the hook for a kind-specific card (a table
|
|
@@ -3718,12 +4648,44 @@ interface TaskGanttTask extends TaskGanttSegment {
|
|
|
3718
4648
|
};
|
|
3719
4649
|
/** Replaces this row's card body entirely. */
|
|
3720
4650
|
detail?: React$1.ReactNode;
|
|
4651
|
+
/**
|
|
4652
|
+
* The rows this one opens into — the tasks it split into, the participants
|
|
4653
|
+
* of a layer — drawn under it, indented, when it is open. A row with no
|
|
4654
|
+
* timing of its own draws the stretch its rows cover.
|
|
4655
|
+
*/
|
|
4656
|
+
rows?: GanttRow[];
|
|
4657
|
+
}
|
|
4658
|
+
/**
|
|
4659
|
+
* A bounded repetition — a loop's rounds — drawn as a bracket over the rows
|
|
4660
|
+
* it holds, with its label on a line of its own above them.
|
|
4661
|
+
*/
|
|
4662
|
+
interface GanttBracket {
|
|
4663
|
+
/** The first row it holds, by `key`. */
|
|
4664
|
+
from: string;
|
|
4665
|
+
/** The last row it holds, by `key`. Rows are matched in order, first hit. */
|
|
4666
|
+
to: string;
|
|
4667
|
+
/** `↻ 2 of 3 rounds — understood on round 2`. */
|
|
4668
|
+
label: React$1.ReactNode;
|
|
4669
|
+
}
|
|
4670
|
+
/**
|
|
4671
|
+
* A gate — a moment the run held and spent nothing — drawn as a rule across
|
|
4672
|
+
* the stretch of the clock it held, between the rows it lies between.
|
|
4673
|
+
*/
|
|
4674
|
+
interface GanttSeam extends Pick<GanttBar, "startMs" | "durationMs" | "startedAt" | "finishedAt"> {
|
|
4675
|
+
/** The row it follows, by `key`. */
|
|
4676
|
+
after: string;
|
|
4677
|
+
/** The label column's word — `approval`. */
|
|
4678
|
+
label: React$1.ReactNode;
|
|
4679
|
+
/** What it was and how it resolved, written on the rule — `approved by ravi`. */
|
|
4680
|
+
note?: React$1.ReactNode;
|
|
4681
|
+
/** Overrides the right-hand cell, which otherwise reads the time it held. */
|
|
4682
|
+
duration?: React$1.ReactNode;
|
|
3721
4683
|
}
|
|
3722
|
-
interface
|
|
3723
|
-
/** One entry per
|
|
3724
|
-
|
|
3725
|
-
/** The
|
|
3726
|
-
origin?:
|
|
4684
|
+
interface GanttProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
4685
|
+
/** One entry per row, in order — a run's tasks, its slots, its layers. */
|
|
4686
|
+
rows: GanttRow[];
|
|
4687
|
+
/** The clock's zero, when bars carry timestamps. Defaults to the earliest one. */
|
|
4688
|
+
origin?: GanttInstant;
|
|
3727
4689
|
/** The clock's ceiling. Defaults to the last end, or `nowMs` if that is later. */
|
|
3728
4690
|
spanMs?: number;
|
|
3729
4691
|
/** Draws the *now* line. Set it while the run is in flight; omit it after. */
|
|
@@ -3734,10 +4696,32 @@ interface TaskGanttProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "o
|
|
|
3734
4696
|
ticks?: number;
|
|
3735
4697
|
formatTick?: (ms: number) => string;
|
|
3736
4698
|
formatDuration?: (ms: number) => string;
|
|
3737
|
-
/**
|
|
4699
|
+
/**
|
|
4700
|
+
* The key column, in px. Omit it and the column takes its longest label,
|
|
4701
|
+
* up to 40% of the width — the surface decides the width, never the chart.
|
|
4702
|
+
*/
|
|
3738
4703
|
labelWidth?: number;
|
|
3739
4704
|
/**
|
|
3740
|
-
*
|
|
4705
|
+
* The right-hand duration column, in px. Omit it and it takes its widest
|
|
4706
|
+
* cell; set it on charts stacked over one clock so their tracks end together.
|
|
4707
|
+
*/
|
|
4708
|
+
durationWidth?: number;
|
|
4709
|
+
/** Loops, bracketed over their rounds. */
|
|
4710
|
+
brackets?: GanttBracket[];
|
|
4711
|
+
/** Gates, ruled across the time they held. */
|
|
4712
|
+
seams?: GanttSeam[];
|
|
4713
|
+
/**
|
|
4714
|
+
* What each bar `group` is painted with — `{ ingest: "bg-data-1" }`. The
|
|
4715
|
+
* kit ships no hues: a group nobody painted keeps its status fill.
|
|
4716
|
+
*/
|
|
4717
|
+
palette?: Record<string, string>;
|
|
4718
|
+
/**
|
|
4719
|
+
* The inside of a bar, for every bar in `bars` — a chip, an icon, a count. Return
|
|
4720
|
+
* `null` for a bar that should stay a plain fill. Wins over `label`.
|
|
4721
|
+
*/
|
|
4722
|
+
renderBar?: (bar: GanttBar, row: GanttRow) => React$1.ReactNode;
|
|
4723
|
+
/**
|
|
4724
|
+
* `compact` in a drawer, `comfortable` on a board. It moves the bar's
|
|
3741
4725
|
* height, not the type scale — one component, three surfaces (SR14).
|
|
3742
4726
|
*/
|
|
3743
4727
|
density?: "compact" | "comfortable";
|
|
@@ -3752,18 +4736,33 @@ interface TaskGanttProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "o
|
|
|
3752
4736
|
* Replaces the default card body, for every row. Return `null` for a row that
|
|
3753
4737
|
* should not open one.
|
|
3754
4738
|
*/
|
|
3755
|
-
renderDetail?: (
|
|
4739
|
+
renderDetail?: (row: GanttRow) => React$1.ReactNode;
|
|
3756
4740
|
/** Where the card sits, how fast it opens, and how wide it is. */
|
|
3757
|
-
detailProps?:
|
|
3758
|
-
/** The
|
|
4741
|
+
detailProps?: GanttDetailProps;
|
|
4742
|
+
/** The row or bar picked — what the log is currently filtered to (SR15). */
|
|
3759
4743
|
selectedKey?: string | null;
|
|
3760
4744
|
/** Makes the rows pickable. Picking one is what filters the log. */
|
|
3761
|
-
|
|
4745
|
+
onSelectRow?: (key: string) => void;
|
|
4746
|
+
/**
|
|
4747
|
+
* Makes each keyed bar pickable on its own — the task a layer was reached
|
|
4748
|
+
* for, rather than the layer. A row whose bars are keyed is then
|
|
4749
|
+
* picked by its bars, not as a whole, so a bar is never a button inside a
|
|
4750
|
+
* button. `selectedKey` lights a bar with that key as it lights a row.
|
|
4751
|
+
*/
|
|
4752
|
+
onSelectBar?: (barKey: string, rowKey: string) => void;
|
|
4753
|
+
/** Which rows with `rows` are open, by key — `true` for all. Controlled. */
|
|
4754
|
+
expanded?: ExpandedKeys;
|
|
4755
|
+
/** Which are open at first, uncontrolled. Closed by default. */
|
|
4756
|
+
defaultExpanded?: ExpandedKeys;
|
|
4757
|
+
/** A row opened or closed: every open key, as a `DataTable`'s `expanded` reads. */
|
|
4758
|
+
onExpandedChange?: (expanded: ExpandedKeys) => void;
|
|
3762
4759
|
}
|
|
3763
|
-
|
|
3764
|
-
|
|
4760
|
+
/**
|
|
4761
|
+
* Where the card opens. With neither `side` nor `align` it opens beside the
|
|
4762
|
+
* cursor, under the row; set either and it is placed against the row instead.
|
|
4763
|
+
*/
|
|
4764
|
+
interface GanttDetailProps {
|
|
3765
4765
|
side?: "top" | "right" | "bottom" | "left";
|
|
3766
|
-
/** @default "start" */
|
|
3767
4766
|
align?: "start" | "center" | "end";
|
|
3768
4767
|
sideOffset?: number;
|
|
3769
4768
|
/** @default 200 */
|
|
@@ -3774,14 +4773,14 @@ interface TaskGanttDetailProps {
|
|
|
3774
4773
|
width?: number | string;
|
|
3775
4774
|
className?: string;
|
|
3776
4775
|
}
|
|
3777
|
-
interface
|
|
3778
|
-
|
|
3779
|
-
/** Elapsed so far, for a
|
|
4776
|
+
interface GanttDetailCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4777
|
+
row: GanttRow;
|
|
4778
|
+
/** Elapsed so far, for a row still running — it has no `durationMs` yet. */
|
|
3780
4779
|
elapsedMs?: number;
|
|
3781
4780
|
formatDuration?: (ms: number) => string;
|
|
3782
4781
|
}
|
|
3783
4782
|
/**
|
|
3784
|
-
* What one
|
|
4783
|
+
* What one row — or one bar — did, as a card.
|
|
3785
4784
|
*
|
|
3786
4785
|
* The body of the hover card, and exported so a surface can compose its own
|
|
3787
4786
|
* around the same header — `renderDetail` returning this with a kind-specific
|
|
@@ -3791,25 +4790,30 @@ interface TaskGanttDetailCardProps extends Omit<React$1.HTMLAttributes<HTMLDivEl
|
|
|
3791
4790
|
* Order is fixed and is the order a reader asks in: what state, how long, what
|
|
3792
4791
|
* went wrong, what came out, what it said last.
|
|
3793
4792
|
*/
|
|
3794
|
-
declare const
|
|
4793
|
+
declare const GanttDetailCard: React$1.ForwardRefExoticComponent<GanttDetailCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3795
4794
|
/**
|
|
3796
|
-
* Where the time went —
|
|
4795
|
+
* Where the time went — rows of bars on one clock.
|
|
3797
4796
|
*
|
|
3798
|
-
*
|
|
3799
|
-
*
|
|
3800
|
-
*
|
|
3801
|
-
* glance (SR14).
|
|
4797
|
+
* A row is whatever a surface groups time by. Read by **task**, it answers the
|
|
4798
|
+
* question a run detail is opened with: a bar placed by start and sized by
|
|
4799
|
+
* duration puts the slow task, the retry and the branch that never ran in one
|
|
4800
|
+
* glance (SR14). Read by **layer**, the same drawing answers what the run
|
|
4801
|
+
* reached and what it was stopped from reaching: a row per layer opens into its
|
|
4802
|
+
* participants, and each holds the `bars` of the tasks that reached it, painted
|
|
4803
|
+
* by `palette` — `refused` where a rule said no, `dashed` where it was declared
|
|
4804
|
+
* and never dispatched. Read by **slot**, each row is a worker and its bars are
|
|
4805
|
+
* what it ran, in order.
|
|
3802
4806
|
*
|
|
3803
|
-
*
|
|
3804
|
-
*
|
|
3805
|
-
*
|
|
3806
|
-
*
|
|
4807
|
+
* A row opens into its `rows`, indented under it, and a parent with no timing
|
|
4808
|
+
* of its own draws the stretch they cover as a thin rule — so a closed plan
|
|
4809
|
+
* still says how long it took. The clock is milliseconds by default; a plan
|
|
4810
|
+
* read in order passes step numbers and a `formatTick` that names them.
|
|
3807
4811
|
*
|
|
3808
|
-
* Colour never carries state alone: every row names its duration,
|
|
3809
|
-
*
|
|
3810
|
-
*
|
|
4812
|
+
* Colour never carries state alone: every row names its duration, a bar titles
|
|
4813
|
+
* itself with its status, a row that never ran is an *outline* rather than a
|
|
4814
|
+
* paler fill, and a refused bar's name is struck through.
|
|
3811
4815
|
*/
|
|
3812
|
-
declare const
|
|
4816
|
+
declare const Gantt: React$1.ForwardRefExoticComponent<GanttProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3813
4817
|
|
|
3814
4818
|
interface TaskNodeTag {
|
|
3815
4819
|
/** `3 lanes`, `attempt 2`, `map_over: datasets`. */
|
|
@@ -3839,6 +4843,15 @@ interface TaskNodeProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "ch
|
|
|
3839
4843
|
* (`p50 3.4s · 14/14`). One rendering, three readings.
|
|
3840
4844
|
*/
|
|
3841
4845
|
meta?: React$1.ReactNode;
|
|
4846
|
+
/**
|
|
4847
|
+
* The drawing is a **record**, not a draft: a picked node gets the ring and
|
|
4848
|
+
* **no handles**.
|
|
4849
|
+
*
|
|
4850
|
+
* Handles are an offer to move something. A run paints status onto the plan
|
|
4851
|
+
* it ran and nothing on it is editable, so a handle there is a control that
|
|
4852
|
+
* does nothing — the one thing worse on a trace than a missing affordance.
|
|
4853
|
+
*/
|
|
4854
|
+
readOnly?: boolean;
|
|
3842
4855
|
/** Picked — draws the ring and four corner handles. */
|
|
3843
4856
|
selected?: boolean;
|
|
3844
4857
|
/** Needs an approval before it writes. Rings it in `warning`. */
|
|
@@ -3897,76 +4910,10 @@ interface TemplatePickerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement
|
|
|
3897
4910
|
* again**. That is why unavailable options are listed rather than hidden — the
|
|
3898
4911
|
* reason a template does not fit ("needs a time column") is information about
|
|
3899
4912
|
* the data, and hiding it would leave the reader wondering what else exists.
|
|
3900
|
-
*/
|
|
3901
|
-
declare const TemplatePicker: React$1.ForwardRefExoticComponent<TemplatePickerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3902
|
-
|
|
3903
|
-
type TerminalLineKind = "prompt" | "output" | "comment";
|
|
3904
|
-
/**
|
|
3905
|
-
* The severity a **log** line was emitted at, as the runtime recorded it.
|
|
3906
|
-
*
|
|
3907
|
-
* Distinct from `kind`, which says what part of a *transcript* a line is — a
|
|
3908
|
-
* command you typed, what it printed, a comment. A run's log has no prompts and
|
|
3909
|
-
* no comments; every line is output, and what varies is how loud it is.
|
|
3910
|
-
*/
|
|
3911
|
-
type KnownTerminalLevel = "info" | "warn" | "error" | "debug";
|
|
3912
|
-
/**
|
|
3913
|
-
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
3914
|
-
* else renders with the neutral token and its own name.
|
|
3915
|
-
*/
|
|
3916
|
-
type TerminalLevel = KnownTerminalLevel | (string & {});
|
|
3917
|
-
interface TerminalLineProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3918
|
-
kind?: TerminalLineKind;
|
|
3919
|
-
/**
|
|
3920
|
-
* How loud this line is. Tints **one** cell — the one named by
|
|
3921
|
-
* `levelColumn` — and nothing else.
|
|
3922
|
-
*
|
|
3923
|
-
* Only the level word is coloured, never the message: a wall of amber
|
|
3924
|
-
* sentences is unreadable, and what a reader scans is the column, not the
|
|
3925
|
-
* prose. Setting this also drops the `kind` marker — a log line is not a
|
|
3926
|
-
* transcript line and does not want a `→` in front of it.
|
|
3927
|
-
*
|
|
3928
|
-
* The level **word** stays in `columns`. Colour is never the carrier.
|
|
3929
|
-
*/
|
|
3930
|
-
level?: TerminalLevel;
|
|
3931
|
-
/**
|
|
3932
|
-
* Which cell of `columns` holds the level word. Defaults to `1`, because a
|
|
3933
|
-
* log line reads `time · LEVEL · source · message` and the timestamp comes
|
|
3934
|
-
* first in every log anyone has ever read.
|
|
3935
|
-
*/
|
|
3936
|
-
levelColumn?: number;
|
|
3937
|
-
/**
|
|
3938
|
-
* Columns, for the step-shaped output a run prints — name, detail, timing,
|
|
3939
|
-
* result. Given as cells so they align down the transcript instead of each
|
|
3940
|
-
* line padding itself with spaces.
|
|
3941
|
-
*/
|
|
3942
|
-
columns?: React$1.ReactNode[];
|
|
3943
|
-
children?: React$1.ReactNode;
|
|
3944
|
-
}
|
|
3945
|
-
interface TerminalProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3946
|
-
children?: React$1.ReactNode;
|
|
3947
|
-
/** Shows a blinking block at the end. */
|
|
3948
|
-
cursor?: boolean;
|
|
3949
|
-
/**
|
|
3950
|
-
* `grid-template-columns` for every columned line in this transcript.
|
|
3951
|
-
*
|
|
3952
|
-
* Set once here rather than per line, because the point of columns is that
|
|
3953
|
-
* they line up *down* the transcript — a width chosen per row aligns nothing.
|
|
3954
|
-
*/
|
|
3955
|
-
columnTemplate?: string;
|
|
3956
|
-
}
|
|
3957
|
-
/**
|
|
3958
|
-
* A shell transcript, as a first-class surface.
|
|
3959
|
-
*
|
|
3960
|
-
* Some of this product's work happens outside Studio — imports run from the
|
|
3961
|
-
* CLI, a scheduler calls the Python API — and the hand-off has to be shown
|
|
3962
|
-
* honestly rather than redrawn as a wizard. So this renders what the terminal
|
|
3963
|
-
* actually printed.
|
|
3964
4913
|
*
|
|
3965
|
-
*
|
|
3966
|
-
* console. There is no input here, and it does not scroll itself.
|
|
4914
|
+
* @deprecated Import from `@invana/assistant`. This export leaves `@invana/ui` in the next release.
|
|
3967
4915
|
*/
|
|
3968
|
-
declare const
|
|
3969
|
-
declare const TerminalLine: React$1.ForwardRefExoticComponent<TerminalLineProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4916
|
+
declare const TemplatePicker: React$1.ForwardRefExoticComponent<TemplatePickerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3970
4917
|
|
|
3971
4918
|
/**
|
|
3972
4919
|
* How the list arranges one entry.
|
|
@@ -3978,8 +4925,12 @@ declare const TerminalLine: React$1.ForwardRefExoticComponent<TerminalLineProps
|
|
|
3978
4925
|
* `rail` — `when` sits above the title and a line threads the markers. For a
|
|
3979
4926
|
* narrow card or sidebar, where a 72px column would eat a third of the width
|
|
3980
4927
|
* and titles wrap anyway; the rail supplies the alignment the column was.
|
|
4928
|
+
*
|
|
4929
|
+
* `compact` — `when`, the marker and the text on one line, no rules. For a few
|
|
4930
|
+
* dated events inside an answer, `wk 8 · Yantian port congestion notice`,
|
|
4931
|
+
* where rules between two lines would outweigh the lines.
|
|
3981
4932
|
*/
|
|
3982
|
-
type TimelineVariant = "columns" | "rail";
|
|
4933
|
+
type TimelineVariant = "columns" | "rail" | "compact";
|
|
3983
4934
|
interface TimelineEntryProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>, "title"> {
|
|
3984
4935
|
/** When — `Fri 5 Sep`, `09:47`, `Sun`. */
|
|
3985
4936
|
when: React$1.ReactNode;
|
|
@@ -3987,6 +4938,21 @@ interface TimelineEntryProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>,
|
|
|
3987
4938
|
title?: React$1.ReactNode;
|
|
3988
4939
|
/** A marker in the rail — a `StatusDot`, usually. */
|
|
3989
4940
|
marker?: React$1.ReactNode;
|
|
4941
|
+
/**
|
|
4942
|
+
* Calls the entry out on a tinted ground — the anomaly the events around it
|
|
4943
|
+
* explain. `compact` only.
|
|
4944
|
+
*/
|
|
4945
|
+
highlight?: "error" | "warning" | "success" | "info";
|
|
4946
|
+
/**
|
|
4947
|
+
* The events this one breaks into — `TimelineEntry`s drawn under it, in the
|
|
4948
|
+
* list's variant, when it is open. A chevron beside the entry opens it.
|
|
4949
|
+
*/
|
|
4950
|
+
nested?: React$1.ReactNode;
|
|
4951
|
+
/** Controlled. Pair it with `onOpenChange`. */
|
|
4952
|
+
open?: boolean;
|
|
4953
|
+
/** Uncontrolled: open at first. Closed by default. */
|
|
4954
|
+
defaultOpen?: boolean;
|
|
4955
|
+
onOpenChange?: (open: boolean) => void;
|
|
3990
4956
|
children?: React$1.ReactNode;
|
|
3991
4957
|
}
|
|
3992
4958
|
interface TimelineListProps extends React$1.HTMLAttributes<HTMLOListElement> {
|
|
@@ -4004,7 +4970,9 @@ interface TimelineFooterProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
|
4004
4970
|
* because the order carries meaning — these are events in sequence, not a set.
|
|
4005
4971
|
*
|
|
4006
4972
|
* Both variants take the same entries; only the arrangement differs. See
|
|
4007
|
-
* `TimelineVariant` for which one a surface wants.
|
|
4973
|
+
* `TimelineVariant` for which one a surface wants. An entry that breaks into
|
|
4974
|
+
* smaller events carries them as `nested` entries, drawn under it, in the
|
|
4975
|
+
* same variant, once it is opened.
|
|
4008
4976
|
*/
|
|
4009
4977
|
declare const TimelineList: React$1.ForwardRefExoticComponent<TimelineListProps & React$1.RefAttributes<HTMLOListElement>>;
|
|
4010
4978
|
declare const TimelineEntry: React$1.ForwardRefExoticComponent<TimelineEntryProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
@@ -4018,8 +4986,80 @@ declare const TimelineEntry: React$1.ForwardRefExoticComponent<TimelineEntryProp
|
|
|
4018
4986
|
* `columns` has no rail to run on, so the footer is a plain last row there.
|
|
4019
4987
|
*/
|
|
4020
4988
|
declare const TimelineFooter: React$1.ForwardRefExoticComponent<TimelineFooterProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
4989
|
+
interface TimelineSectionProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
4990
|
+
children?: React$1.ReactNode;
|
|
4991
|
+
}
|
|
4992
|
+
/**
|
|
4993
|
+
* A label over a run of entries — `Before`, `Spike`, `After` — for events read
|
|
4994
|
+
* around one moment rather than as one sequence.
|
|
4995
|
+
*/
|
|
4996
|
+
declare const TimelineSection: React$1.ForwardRefExoticComponent<TimelineSectionProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
4997
|
+
|
|
4998
|
+
/** One control of a toolbar: a word, or an icon named by its tooltip. */
|
|
4999
|
+
interface ToolbarAction {
|
|
5000
|
+
id: string;
|
|
5001
|
+
/** The word, or — with an `icon` — the tooltip and accessible name. */
|
|
5002
|
+
label: string;
|
|
5003
|
+
/** Draws the control as an icon; the caller's, at 16px. */
|
|
5004
|
+
icon?: React$1.ReactNode;
|
|
5005
|
+
/** A toggle that is on — `Lock` while the canvas is locked. */
|
|
5006
|
+
pressed?: boolean;
|
|
5007
|
+
disabled?: boolean;
|
|
5008
|
+
}
|
|
5009
|
+
/** A rule between groups of controls. */
|
|
5010
|
+
interface ToolbarSeparator {
|
|
5011
|
+
separator: true;
|
|
5012
|
+
}
|
|
5013
|
+
type ToolbarItem = ToolbarAction | ToolbarSeparator;
|
|
5014
|
+
interface ToolbarProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
5015
|
+
items: ToolbarItem[];
|
|
5016
|
+
/** A control was pressed, by its `id`. */
|
|
5017
|
+
onAction?: (id: string) => void;
|
|
5018
|
+
}
|
|
5019
|
+
/**
|
|
5020
|
+
* A row of controls over a canvas or a panel — icon toggles named by their
|
|
5021
|
+
* tooltips, words, and rules between groups — on the control scale a step
|
|
5022
|
+
* below its bar (`sm`). What each control does is the caller's: it says which
|
|
5023
|
+
* was pressed.
|
|
5024
|
+
*/
|
|
5025
|
+
declare const Toolbar: React$1.ForwardRefExoticComponent<ToolbarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4021
5026
|
|
|
4022
|
-
|
|
5027
|
+
interface TouchItem {
|
|
5028
|
+
layer: Layer;
|
|
5029
|
+
/** What it amounts to — `3 calls`, `1,284 rows`, `miss`, `asked + approved`. */
|
|
5030
|
+
note?: React$1.ReactNode;
|
|
5031
|
+
/** What to call it, when {@link layerLabel} is not what this surface says. */
|
|
5032
|
+
label?: React$1.ReactNode;
|
|
5033
|
+
/** A guardrail said no. Struck in place, never dropped. */
|
|
5034
|
+
refused?: boolean;
|
|
5035
|
+
/** Allowed, and nothing reached for it. Present, and visibly not in play. */
|
|
5036
|
+
dim?: boolean;
|
|
5037
|
+
}
|
|
5038
|
+
interface TouchStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
5039
|
+
items: TouchItem[];
|
|
5040
|
+
palette?: LayerPalette;
|
|
5041
|
+
/**
|
|
5042
|
+
* `row` (default) is one cell per layer on one line, above a trace. `column`
|
|
5043
|
+
* is one line per layer, the note right-aligned — how a 420px panel reads the
|
|
5044
|
+
* same summary, where six cells on a line would truncate every note.
|
|
5045
|
+
*/
|
|
5046
|
+
orientation?: "row" | "column";
|
|
5047
|
+
}
|
|
5048
|
+
/**
|
|
5049
|
+
* What a run touched at all — one cell per layer, on one line.
|
|
5050
|
+
*
|
|
5051
|
+
* This is a **summary**, and the whole reason it is a strip and not an axis.
|
|
5052
|
+
* *What did this touch* is answered once for the whole run, so it costs one
|
|
5053
|
+
* line above the list; drawn as a band per layer down a trace it would be a
|
|
5054
|
+
* matrix one sixth full, because a step spends exactly one layer.
|
|
5055
|
+
*
|
|
5056
|
+
* **Refused is struck in place and never touched is dimmed, and neither is
|
|
5057
|
+
* hidden.** The gap between what a world allowed and what the run reached for
|
|
5058
|
+
* is the finding: three layers allowed and never touched is an invitation to
|
|
5059
|
+
* narrow, and a refusal is an invitation to widen or to accept that the graph
|
|
5060
|
+
* cannot answer. A strip that showed only what was spent could say neither.
|
|
5061
|
+
*/
|
|
5062
|
+
declare const TouchStrip: React$1.ForwardRefExoticComponent<TouchStripProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4023
5063
|
|
|
4024
5064
|
/**
|
|
4025
5065
|
* A single clickable/displayed reference shown in a step's
|
|
@@ -4124,6 +5164,122 @@ interface TourProps {
|
|
|
4124
5164
|
*/
|
|
4125
5165
|
declare function Tour({ controller, steps, onExit, onComplete, badgeLabel, prevLabel, nextLabel, finishLabel, exitLabel, showExit, showCounter, showProgressBar, position, className, }: TourProps): React$1.JSX.Element | null;
|
|
4126
5166
|
|
|
5167
|
+
interface TraceListProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
5168
|
+
/**
|
|
5169
|
+
* `default` is the run view: stripe, sequence, layer, duration. `progress` is
|
|
5170
|
+
* the trace a running answer streams — a dot per step (filled when done,
|
|
5171
|
+
* pulsing while it runs, hollow while it waits), the step in plain text, and
|
|
5172
|
+
* its timing or count at the right in mono.
|
|
5173
|
+
*/
|
|
5174
|
+
variant?: "default" | "progress";
|
|
5175
|
+
children?: React$1.ReactNode;
|
|
5176
|
+
}
|
|
5177
|
+
/**
|
|
5178
|
+
* A run, in the order it happened.
|
|
5179
|
+
*
|
|
5180
|
+
* The default reading of a trace, because *what happened, and then what* is the
|
|
5181
|
+
* cheapest honest answer to a reader opening a run. Its rows are
|
|
5182
|
+
* {@link TraceStep}s; a bounded repetition **contains** its rounds
|
|
5183
|
+
* ({@link TraceLoop}) and a gate lies **between** rows ({@link TraceGate}).
|
|
5184
|
+
*
|
|
5185
|
+
* Nothing here is an axis. The layer a step spent is a column on its row, so a
|
|
5186
|
+
* list nests for free and a second round is simply another row inside the box
|
|
5187
|
+
* that holds it. The clock reading of the same trace is `Gantt`, by task or by layer.
|
|
5188
|
+
*/
|
|
5189
|
+
declare const TraceList: React$1.ForwardRefExoticComponent<TraceListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
5190
|
+
interface TraceStepProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSelect" | "role"> {
|
|
5191
|
+
/** Where it sits in the run — the sequence number. */
|
|
5192
|
+
seq?: React$1.ReactNode;
|
|
5193
|
+
/** The step's key — `execute_query`. Mono, because it is the plan's own word. */
|
|
5194
|
+
name: React$1.ReactNode;
|
|
5195
|
+
/** One line: what it did, in the graph's terms. */
|
|
5196
|
+
description?: React$1.ReactNode;
|
|
5197
|
+
/** The participant class it spent. A step spends exactly one. */
|
|
5198
|
+
layer?: Layer;
|
|
5199
|
+
/** What it spent it on — `extract`, `decide`, `read_only`, `schema`. */
|
|
5200
|
+
role?: React$1.ReactNode;
|
|
5201
|
+
/** How long it took, or `—` when it never ran. */
|
|
5202
|
+
duration?: React$1.ReactNode;
|
|
5203
|
+
/** Under the duration — `ok`, `round 2`, `1,284 rows`, `skipped`. */
|
|
5204
|
+
note?: React$1.ReactNode;
|
|
5205
|
+
/** The exception this row carries — a `MarkChip`. */
|
|
5206
|
+
mark?: React$1.ReactNode;
|
|
5207
|
+
palette?: LayerPalette;
|
|
5208
|
+
/** A delegated run's steps sit under the step that spawned them. */
|
|
5209
|
+
depth?: number;
|
|
5210
|
+
/** Dispatched to nobody: queued, held, or never reached. Present, not in play. */
|
|
5211
|
+
dim?: boolean;
|
|
5212
|
+
/** It ran and it failed, or it was refused. The name is struck, in the destructive tone. */
|
|
5213
|
+
struck?: boolean;
|
|
5214
|
+
selected?: boolean;
|
|
5215
|
+
onSelect?: () => void;
|
|
5216
|
+
/**
|
|
5217
|
+
* Where the step is, in a `progress` list: `done`, `running`, `pending`,
|
|
5218
|
+
* `failed`, `waiting` on the reader, `retrying` after a failed attempt, or
|
|
5219
|
+
* `stopped` by the reader. Defaults to `done`. The run view says the same
|
|
5220
|
+
* with `dim` and `struck`.
|
|
5221
|
+
*/
|
|
5222
|
+
status?: "done" | "running" | "pending" | "failed" | "waiting" | "retrying" | "stopped";
|
|
5223
|
+
/** Why a failed step failed, on a line under it in a `progress` list. */
|
|
5224
|
+
error?: React$1.ReactNode;
|
|
5225
|
+
}
|
|
5226
|
+
/**
|
|
5227
|
+
* One event of a run: a step, and everything that is true of it.
|
|
5228
|
+
*
|
|
5229
|
+
* **The stripe is the layer.** A step touches exactly one participant class, so
|
|
5230
|
+
* the layer is a 3px rail down the row rather than a column of its own — which
|
|
5231
|
+
* leaves the row's width for the two things a reader is actually scanning, the
|
|
5232
|
+
* step's key and what it did.
|
|
5233
|
+
*
|
|
5234
|
+
* A row keeps its place in every state. A step that is painting right now, one
|
|
5235
|
+
* that was skipped because the step above it failed, one that was refused: all
|
|
5236
|
+
* three stay where they sit in the order, dimmed or struck. A list that dropped
|
|
5237
|
+
* them would be a list that cannot say *nothing below the failure was
|
|
5238
|
+
* dispatched*.
|
|
5239
|
+
*/
|
|
5240
|
+
declare const TraceStep: React$1.ForwardRefExoticComponent<TraceStepProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
5241
|
+
interface TraceLoopProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
5242
|
+
/** What bounded it — `↻ 2 of 3 rounds — understood on round 2`. */
|
|
5243
|
+
label: React$1.ReactNode;
|
|
5244
|
+
/** Hard right — `3 events · 42.8s`. */
|
|
5245
|
+
summary?: React$1.ReactNode;
|
|
5246
|
+
/** The rail and wash it is drawn in. Defaults to the warning token. */
|
|
5247
|
+
tone?: "warning" | "info" | "muted";
|
|
5248
|
+
children?: React$1.ReactNode;
|
|
5249
|
+
}
|
|
5250
|
+
/**
|
|
5251
|
+
* A bounded repetition, drawn by containment.
|
|
5252
|
+
*
|
|
5253
|
+
* The rounds are **inside** it, so a second round is one more row in the box
|
|
5254
|
+
* and a list nests for free. Drawing a loop as a marker beside its rows would
|
|
5255
|
+
* make a reader reconstruct which rows it held; drawing it as a bracket down the
|
|
5256
|
+
* side is the clock reading's job, where the axis is time and rows are bands.
|
|
5257
|
+
*/
|
|
5258
|
+
declare const TraceLoop: React$1.ForwardRefExoticComponent<TraceLoopProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
5259
|
+
interface TraceGateProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
5260
|
+
/** What it is — `approval — approved by ravi`. */
|
|
5261
|
+
label: React$1.ReactNode;
|
|
5262
|
+
/** What it cost — `waited 2m 04s · nothing was spent while it waited`. */
|
|
5263
|
+
note?: React$1.ReactNode;
|
|
5264
|
+
/** Defaults to the destructive token, which is what a stop is drawn in. */
|
|
5265
|
+
tone?: "destructive" | "warning" | "muted";
|
|
5266
|
+
/**
|
|
5267
|
+
* Which side of the line the cost falls on. `before` — nothing has been spent
|
|
5268
|
+
* yet; `after` — the work up to here is already paid for.
|
|
5269
|
+
*/
|
|
5270
|
+
edge?: "before" | "after";
|
|
5271
|
+
}
|
|
5272
|
+
/**
|
|
5273
|
+
* A gate — a rule across the list, never a row in it.
|
|
5274
|
+
*
|
|
5275
|
+
* It is dispatched by nobody, holds no slot and spends no participant, so it is
|
|
5276
|
+
* not a step: it is a **condition on the way into one**. Drawn as a full-width
|
|
5277
|
+
* rule with its chip hung off the side the cost falls on, *above this, nothing
|
|
5278
|
+
* has been spent* becomes something the drawing says rather than something a
|
|
5279
|
+
* legend has to claim.
|
|
5280
|
+
*/
|
|
5281
|
+
declare const TraceGate: React$1.ForwardRefExoticComponent<TraceGateProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
5282
|
+
|
|
4127
5283
|
interface TreeViewProps {
|
|
4128
5284
|
style?: React$1.CSSProperties;
|
|
4129
5285
|
className?: string;
|
|
@@ -4155,64 +5311,169 @@ interface UnderDevelopmentProps extends VariantProps<typeof underDevelopmentVari
|
|
|
4155
5311
|
}
|
|
4156
5312
|
declare function UnderDevelopment({ title, description, iconSize, size, className, }: UnderDevelopmentProps): React$1.JSX.Element;
|
|
4157
5313
|
|
|
4158
|
-
|
|
5314
|
+
/** One page in the strip — its tab label plus the content shown when active. */
|
|
5315
|
+
interface WorkbookPage {
|
|
5316
|
+
/** Stable identity — the key for mounting and the value passed to callbacks. */
|
|
5317
|
+
id: string;
|
|
5318
|
+
/** Tab label. */
|
|
5319
|
+
title: string;
|
|
5320
|
+
/** What renders in the body when this page is active (or, with
|
|
5321
|
+
* `keepMounted`, stays mounted-but-hidden while another page is active). */
|
|
5322
|
+
content: ReactNode;
|
|
5323
|
+
/** Optional leading icon in the tab. */
|
|
5324
|
+
icon?: ElementType;
|
|
5325
|
+
/** Disable selecting this tab. */
|
|
5326
|
+
disabled?: boolean;
|
|
5327
|
+
/** Extra classes for *this* tab button (win over the built-ins via
|
|
5328
|
+
* tailwind-merge) — e.g. a per-page accent. */
|
|
5329
|
+
tabClassName?: string;
|
|
5330
|
+
/** Inline styles for *this* tab button — e.g. a custom brand colour. */
|
|
5331
|
+
tabStyle?: CSSProperties;
|
|
5332
|
+
/** Draw an inline `×` on this tab (active or not) that calls the view's
|
|
5333
|
+
* `onClose`, in place of the caret menu — for a page with nothing to manage
|
|
5334
|
+
* but its own closing. Needs `onClose`. */
|
|
5335
|
+
closable?: boolean;
|
|
5336
|
+
}
|
|
5337
|
+
/**
|
|
5338
|
+
* One entry in the active tab's actions dropdown. The consumer supplies the list
|
|
5339
|
+
* (`pageMenuItems`); each item's `onSelect` is invoked with the id of the page
|
|
5340
|
+
* whose menu is open. This is how a host declares what a page can do — rename,
|
|
5341
|
+
* duplicate, remove, export, … — without the view knowing any of those verbs.
|
|
5342
|
+
*/
|
|
5343
|
+
interface WorkbookPageMenuItem {
|
|
5344
|
+
/** Stable key for the row. */
|
|
5345
|
+
id: string;
|
|
5346
|
+
/** Row label. */
|
|
5347
|
+
label: string;
|
|
5348
|
+
/** Optional leading icon. */
|
|
5349
|
+
icon?: ElementType;
|
|
5350
|
+
/** Invoked with the active page's id when the row is chosen. */
|
|
5351
|
+
onSelect: (pageId: string) => void;
|
|
5352
|
+
/** Render with destructive (danger) styling — e.g. "Remove". */
|
|
5353
|
+
destructive?: boolean;
|
|
5354
|
+
/** Disable the row — a boolean, or a predicate on the page id (e.g. disable
|
|
5355
|
+
* "Remove" on the last remaining page). */
|
|
5356
|
+
disabled?: boolean | ((pageId: string) => boolean);
|
|
5357
|
+
/** Draw a separator immediately *before* this row (to group actions). */
|
|
5358
|
+
separatorBefore?: boolean;
|
|
5359
|
+
}
|
|
5360
|
+
/**
|
|
5361
|
+
* An extra icon button for the header's right-pinned control cluster (next to the
|
|
5362
|
+
* pager / `+`) — e.g. settings, about, help. Strip-level, not per-page: its
|
|
5363
|
+
* `onSelect` takes no page id. The consumer supplies the list via `headerActions`.
|
|
5364
|
+
*/
|
|
5365
|
+
interface WorkbookAction {
|
|
5366
|
+
/** Stable key for the button. */
|
|
5367
|
+
id: string;
|
|
5368
|
+
/** Accessible label / tooltip. */
|
|
5369
|
+
label: string;
|
|
5370
|
+
/** Icon component. */
|
|
5371
|
+
icon: ElementType;
|
|
5372
|
+
/** Click handler. */
|
|
5373
|
+
onClick: () => void;
|
|
5374
|
+
/** Optional disabled state. */
|
|
5375
|
+
disabled?: boolean;
|
|
4159
5376
|
}
|
|
5377
|
+
interface WorkbookProps {
|
|
5378
|
+
/** The pages, in tab order. */
|
|
5379
|
+
pages: WorkbookPage[];
|
|
5380
|
+
/** Id of the active page. */
|
|
5381
|
+
activeId: string;
|
|
5382
|
+
/** Select a page (tab click). */
|
|
5383
|
+
onSelect: (id: string) => void;
|
|
5384
|
+
/** Show a `+` (in the pager cluster) that requests a new page. Omit to hide it. */
|
|
5385
|
+
onAdd?: () => void;
|
|
5386
|
+
/** Which edge of the body the tab strip sits on — `'top'` (default) or
|
|
5387
|
+
* `'bottom'`, the spreadsheet look, with each tab open at its top. */
|
|
5388
|
+
tabPosition?: 'top' | 'bottom';
|
|
5389
|
+
/** Which end of the strip the pager cluster (prev / next / `+`) docks at —
|
|
5390
|
+
* `'start'` (left of the tabs) or `'end'` (right of the tabs). Default `'end'`. */
|
|
5391
|
+
pagerPosition?: 'start' | 'end';
|
|
5392
|
+
/** Extra icon buttons pinned to the far right of the strip (right of the pager)
|
|
5393
|
+
* — e.g. settings, about. Optional. */
|
|
5394
|
+
headerActions?: WorkbookAction[];
|
|
5395
|
+
/** Actions offered on the **active** tab via a caret dropdown. Omit (or pass an
|
|
5396
|
+
* empty list) to hide the caret entirely. */
|
|
5397
|
+
pageMenuItems?: WorkbookPageMenuItem[];
|
|
5398
|
+
/** Close a page — invoked by the `×` on a `closable` page. */
|
|
5399
|
+
onClose?: (id: string) => void;
|
|
5400
|
+
/** Tooltip / aria label for the add button. */
|
|
5401
|
+
addLabel?: string;
|
|
5402
|
+
/** Fold tabs that don't fit into a `…` menu at the end of the strip, instead of
|
|
5403
|
+
* scrolling the strip horizontally. Default `true` — the pager still steps
|
|
5404
|
+
* through every page, folded or not. */
|
|
5405
|
+
overflow?: boolean;
|
|
5406
|
+
/** Accessible label / tooltip for the overflow (`…`) trigger. */
|
|
5407
|
+
overflowLabel?: string;
|
|
5408
|
+
/** Keep every page mounted and hide the inactive ones (default `true`), so a
|
|
5409
|
+
* page's state survives tab switches — a canvas's camera and layout, a
|
|
5410
|
+
* board's scroll and fetched data. Set `false` to mount only the active page. */
|
|
5411
|
+
keepMounted?: boolean;
|
|
5412
|
+
/** Extra classes on the root column. */
|
|
5413
|
+
className?: string;
|
|
5414
|
+
/** Extra classes on the header (tab strip). */
|
|
5415
|
+
headerClassName?: string;
|
|
5416
|
+
/** Extra classes on the body. */
|
|
5417
|
+
bodyClassName?: string;
|
|
5418
|
+
/** Extra classes applied to *every* tab button (win over the built-ins via
|
|
5419
|
+
* tailwind-merge). Per-page `WorkbookPage.tabClassName` layers on top of this. */
|
|
5420
|
+
tabClassName?: string;
|
|
5421
|
+
/** Extra classes applied to the **active** tab only — override the default
|
|
5422
|
+
* folder-tab look (e.g. a different accent colour). */
|
|
5423
|
+
activeTabClassName?: string;
|
|
5424
|
+
}
|
|
5425
|
+
/**
|
|
5426
|
+
* A folder-tab strip over independent pages. The active tab carries a
|
|
5427
|
+
* caret dropdown of consumer-supplied {@link WorkbookPageMenuItem}s (rename /
|
|
5428
|
+
* duplicate / remove / …). Presentational and engine-agnostic — the consumer owns
|
|
5429
|
+
* the page list + active id and applies the reported intents. See the module
|
|
5430
|
+
* header for `keepMounted` and strip-renderer notes.
|
|
5431
|
+
*/
|
|
5432
|
+
declare function Workbook({ pages, activeId, onSelect, onAdd, tabPosition, pagerPosition, headerActions, pageMenuItems, onClose, addLabel, overflow, overflowLabel, keepMounted, className, headerClassName, bodyClassName, tabClassName, activeTabClassName, }: WorkbookProps): React$1.JSX.Element;
|
|
5433
|
+
|
|
5434
|
+
type TypographyPreProps = React$1.HTMLAttributes<HTMLPreElement>;
|
|
4160
5435
|
declare const TypographyPre: React$1.ForwardRefExoticComponent<TypographyPreProps & React$1.RefAttributes<HTMLPreElement>>;
|
|
4161
5436
|
|
|
4162
|
-
|
|
4163
|
-
}
|
|
5437
|
+
type TypographyListProps = React$1.HTMLAttributes<HTMLUListElement>;
|
|
4164
5438
|
declare const TypographyList: React$1.ForwardRefExoticComponent<TypographyListProps & React$1.RefAttributes<HTMLUListElement>>;
|
|
4165
5439
|
|
|
4166
|
-
|
|
4167
|
-
}
|
|
5440
|
+
type TypographyMutedProps = React$1.HTMLAttributes<HTMLParagraphElement>;
|
|
4168
5441
|
declare const TypographyMuted: React$1.ForwardRefExoticComponent<TypographyMutedProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
4169
5442
|
|
|
4170
|
-
|
|
4171
|
-
}
|
|
5443
|
+
type TypographySmallProps = React$1.HTMLAttributes<HTMLElement>;
|
|
4172
5444
|
declare const TypographySmall: React$1.ForwardRefExoticComponent<TypographySmallProps & React$1.RefAttributes<HTMLElement>>;
|
|
4173
5445
|
|
|
4174
|
-
|
|
4175
|
-
}
|
|
5446
|
+
type TypographyLargeProps = React$1.HTMLAttributes<HTMLDivElement>;
|
|
4176
5447
|
declare const TypographyLarge: React$1.ForwardRefExoticComponent<TypographyLargeProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4177
5448
|
|
|
4178
|
-
|
|
4179
|
-
}
|
|
5449
|
+
type TypographyLeadProps = React$1.HTMLAttributes<HTMLParagraphElement>;
|
|
4180
5450
|
declare const TypographyLead: React$1.ForwardRefExoticComponent<TypographyLeadProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
4181
5451
|
|
|
4182
|
-
|
|
4183
|
-
}
|
|
5452
|
+
type TypographyInlineCodeProps = React$1.HTMLAttributes<HTMLElement>;
|
|
4184
5453
|
declare const TypographyInlineCode: React$1.ForwardRefExoticComponent<TypographyInlineCodeProps & React$1.RefAttributes<HTMLElement>>;
|
|
4185
5454
|
|
|
4186
|
-
|
|
4187
|
-
}
|
|
5455
|
+
type TypographyBlockquoteProps = React$1.BlockquoteHTMLAttributes<HTMLQuoteElement>;
|
|
4188
5456
|
declare const TypographyBlockquote: React$1.ForwardRefExoticComponent<TypographyBlockquoteProps & React$1.RefAttributes<HTMLQuoteElement>>;
|
|
4189
5457
|
|
|
4190
|
-
|
|
4191
|
-
}
|
|
5458
|
+
type TypographyPProps = React$1.HTMLAttributes<HTMLParagraphElement>;
|
|
4192
5459
|
declare const TypographyP: React$1.ForwardRefExoticComponent<TypographyPProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
4193
5460
|
|
|
4194
|
-
|
|
4195
|
-
}
|
|
5461
|
+
type TypographyH6Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4196
5462
|
declare const TypographyH6: React$1.ForwardRefExoticComponent<TypographyH6Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4197
5463
|
|
|
4198
|
-
|
|
4199
|
-
}
|
|
5464
|
+
type TypographyH5Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4200
5465
|
declare const TypographyH5: React$1.ForwardRefExoticComponent<TypographyH5Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4201
5466
|
|
|
4202
|
-
|
|
4203
|
-
}
|
|
5467
|
+
type TypographyH4Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4204
5468
|
declare const TypographyH4: React$1.ForwardRefExoticComponent<TypographyH4Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4205
5469
|
|
|
4206
|
-
|
|
4207
|
-
}
|
|
5470
|
+
type TypographyH3Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4208
5471
|
declare const TypographyH3: React$1.ForwardRefExoticComponent<TypographyH3Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4209
5472
|
|
|
4210
|
-
|
|
4211
|
-
}
|
|
5473
|
+
type TypographyH2Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4212
5474
|
declare const TypographyH2: React$1.ForwardRefExoticComponent<TypographyH2Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4213
5475
|
|
|
4214
|
-
|
|
4215
|
-
}
|
|
5476
|
+
type TypographyH1Props = React$1.HTMLAttributes<HTMLHeadingElement>;
|
|
4216
5477
|
declare const TypographyH1: React$1.ForwardRefExoticComponent<TypographyH1Props & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
4217
5478
|
|
|
4218
5479
|
declare const Typography: {
|
|
@@ -4305,4 +5566,4 @@ interface UseOverflowItemsResult {
|
|
|
4305
5566
|
*/
|
|
4306
5567
|
declare function useOverflowItems({ count, enabled, pinnedIndex, reserve, }: UseOverflowItemsOptions): UseOverflowItemsResult;
|
|
4307
5568
|
|
|
4308
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressChip, type AddressChipProps, type AddressTone, 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, type Bound, BoundChip, type BoundChipProps, type BoundPalette, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CAST_ROLES, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CastResolution, type CastRole, type CastSource, CastTable, type CastTableProps, 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, type DeclaredAxes, 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, type EgressClass, EgressList, type EgressListProps, 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, type KnownAddressTone, type KnownBound, type KnownDiffOp, type KnownLayer, type KnownLayerItemState, type KnownMetricTone, type KnownTerminalLevel, type Layer, type LayerBand, type LayerBracket, LayerChip, type LayerChipProps, type LayerItem, type LayerItemState, type LayerPaint, type LayerPalette, type LayerPart, type LayerScale, type LayerSeam, LayerSection, type LayerSectionProps, LayerStrip, type LayerStripProps, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, LensChip, type LensChipProps, LensRow, type LensRowProps, type LensUsage, Link, type LinkProps, type MatchCandidate, MatchPreview, type MatchPreviewProps, 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, type MetricTone, type Narrowing, 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, PanelBox, type PanelBoxProps, PanelContent, type PanelContentProps, PanelStack, type PanelStackHandle, type PanelStackProps, type PanelStackSection, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, RatingControl, type RatingControlProps, RecordHeader, type RecordHeaderProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, type RuleEgress, type RuleProperties, RuleRow, type RuleRowProps, type RuleSelect, 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, type SliceLine, SliceSummary, type SliceSummaryProps, 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, TaskNode, type TaskNodeProps, type TaskNodeTag, type TemplateOption, TemplatePicker, type TemplatePickerProps, Terminal, type TerminalLevel, 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, type TouchDirection, 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, describeSlice, stateLabel as layerItemLabel, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, split as splitAddress, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
|
|
5569
|
+
export { AbsenceNote, type AbsenceNoteProps, type AbsenceReason, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressChip, type AddressChipProps, type AddressTone, AgentChip, type AgentChipProps, AgentHeader, type AgentHeaderProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, type AppStatusBarProps, type Artifact, ArtifactCard, type ArtifactCardProps, ArtifactTable, type ArtifactTableProps, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupProps, AvatarImage, type AvatarProps, Badge, type BadgeProps, type BaseNavProps, type Bound, BoundChip, type BoundChipProps, type BoundPalette, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CAST_ROLES, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CastResolution, type CastRole, type CastSource, CastTable, type CastTableProps, CaveatNote, type CaveatNoteProps, ChatSession, ChatSessionActivityRow, type ChatSessionActivityRowProps, type ChatSessionActivityStatus, ChatSessionActivitySubLine, type ChatSessionActivitySubLineProps, ChatSessionCaret, ChatSessionComposer, type ChatSessionComposerProps, ChatSessionContextChip, type ChatSessionContextChipProps, ChatSessionDisclosure, ChatSessionDisclosureCode, type ChatSessionDisclosureProps, ChatSessionDisclosureSteps, type ChatSessionDisclosureStepsProps, 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, ClarifyActions, type ClarifyActionsProps, ClarifyCard, type ClarifyCardProps, ClarifyFootnote, type ClarifyFootnoteProps, type ClarifyOption, type ClarifyState, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, type ContextBarProps, DataReach, type DataReachModel, type DataReachProps, type DeclaredAxes, DiagnosisCard, type DiagnosisCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, type DiffListProps, type DiffOp, DiffRow, type DiffRowProps, DotRating, type DotRatingProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type EgressClass, EgressList, type EgressListProps, EmissionBody, EmissionCard, type EmissionCardProps, EmissionHeader, type EmissionHeaderProps, type EmissionKind, EmptyState, EmptyStateLock, type EmptyStateLockProps, type EmptyStateProps, ErrorBoundary, type ErrorBoundaryProps, type ExchangeOption, ExchangeRecord, type ExchangeRecordProps, ExpandToggle, type ExpandToggleProps, type ExpandedKeys, Eyebrow, type EyebrowProps, FilterBar, type FilterBarProps, FilterChip, type FilterChipOption, type FilterChipProps, FloatingPanel, type FloatingPanelProps, Gantt, type GanttBar, type GanttBracket, GanttDetailCard, type GanttDetailCardProps, type GanttDetailProps, type GanttInstant, type GanttProps, type GanttRow, type GanttSeam, type GanttStatus, HoverCard, HoverCardContent, HoverCardTrigger, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KindChip, type KindChipProps, type KnownAddressTone, type KnownBound, type KnownDiffOp, type KnownLayer, type KnownMetricTone, type KnownParticipantVerdict, type KnownRunKind, type KnownRunStatus, type KnownTerminalLevel, type Layer, LayerChip, type LayerChipProps, type LayerPaint, type LayerPalette, LayerSection, type LayerSectionProps, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, LensRow, type LensRowProps, type LensUsage, Link, type LinkProps, LogCard, type LogCardProps, type LogFloor, type LogLine, MarkChip, type MarkChipProps, type MarkTone, type MatchCandidate, MatchPreview, type MatchPreviewProps, 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, type MetricTone, MultiFilterChip, type MultiFilterChipProps, type Narrowing, 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, PanelBox, type PanelBoxProps, PanelContent, type PanelContentProps, PanelStack, type PanelStackHandle, type PanelStackProps, type PanelStackSection, ParticipantRow, type ParticipantRowProps, type ParticipantVerdict, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, type QuestionnaireChoiceFigure, type QuestionnaireChoiceProps, QuestionnaireChoiceTitle, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, type QuestionnaireFigureTone, QuestionnaireInput, type QuestionnaireInputProps, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireProgressBar, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle, RatingControl, type RatingControlProps, RecordHeader, type RecordHeaderProps, RecordPager, type RecordPagerProps, RefusalCard, type RefusalCardProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectAction, type RichSelectOption, type RichSelectProps, type RichSelectToggle, type RuleEgress, type RuleProperties, RuleRow, type RuleRowProps, type RuleSelect, type RunKind, RunRow, type RunRowProps, type RunStatus, RunStatusText, type RunStatusTextProps, ScopeLine, type ScopeLineChoice, type ScopeLinePart, type ScopeLineProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchInputSize, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, 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, type SliceLine, SliceSummary, type SliceSummaryProps, Spinner, Stack, type StackProps, StatusDot, type StatusDotProps, StatusIcon, type StatusIconProps, type StatusIconState, type TabConfig, TabbedPanel, type TabbedPanelProps, Table, TableBody, TableCaption, TableCell, type TableDensity, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskNode, type TaskNodeProps, type TaskNodeTag, type TemplateOption, TemplatePicker, type TemplatePickerProps, Terminal, type TerminalLevel, TerminalLine, type TerminalLineKind, type TerminalLineProps, type TerminalProps, TimelineEntry, type TimelineEntryProps, TimelineFooter, type TimelineFooterProps, TimelineList, type TimelineListProps, TimelineSection, type TimelineSectionProps, type TimelineVariant, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarAction, type ToolbarItem, type ToolbarProps, type ToolbarSeparator, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TouchItem, TouchStrip, type TouchStripProps, Tour, type TourController, type TourProps, type TourReference, type TourStep, TraceGate, type TraceGateProps, TraceList, type TraceListProps, TraceLoop, type TraceLoopProps, TraceStep, type TraceStepProps, 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 UseExpandedKeysOptions, type UseOverflowItemsOptions, type UseOverflowItemsResult, type UseTourOptions, type Verdict, Workbook, type WorkbookAction, type WorkbookPage, type WorkbookPageMenuItem, type WorkbookProps, agentChipVariants, avatarVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, describeSlice, formatRecords, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, ICON as runStatusIcons, TONE as runStatusTones, split as splitAddress, stackVariants, statusDotVariants, statusIconVariants, summarizeReach, toggleVariants, useExpandedKeys, useOverflowItems, useSidebar, useTour };
|