@invana/ui 0.0.29 → 0.0.31
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/README.md +11 -5
- package/dist/index.cjs +1939 -611
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1086 -75
- package/dist/index.d.ts +1086 -75
- package/dist/index.js +1918 -608
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -25,6 +25,24 @@ import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
|
25
25
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
26
26
|
import { LucideIcon } from 'lucide-react';
|
|
27
27
|
|
|
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
|
+
*/
|
|
28
46
|
declare function cn(...inputs: ClassValue[]): string;
|
|
29
47
|
|
|
30
48
|
declare const Accordion: React$1.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -302,6 +320,63 @@ declare function ItemFooter({ className, ...props }: React$1.ComponentProps<"div
|
|
|
302
320
|
declare function Kbd({ className, ...props }: React.ComponentProps<"kbd">): React$1.JSX.Element;
|
|
303
321
|
declare function KbdGroup({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
|
|
304
322
|
|
|
323
|
+
/**
|
|
324
|
+
* `variant` is how loudly the link asks to be clicked.
|
|
325
|
+
*
|
|
326
|
+
* Three, because three is what the product actually uses and a fourth would be
|
|
327
|
+
* a decision nobody could state:
|
|
328
|
+
*
|
|
329
|
+
* - `default` — a link inside a sentence. Accent-coloured, underlined on hover.
|
|
330
|
+
* The colour is what marks it as a link while reading; the underline confirms
|
|
331
|
+
* it under the cursor.
|
|
332
|
+
* - `underlined` — always underlined, accent-coloured. For a link that has to
|
|
333
|
+
* read as a link **before** the cursor arrives: terms and conditions under a
|
|
334
|
+
* sign-in button, a citation, anything legal or referential.
|
|
335
|
+
* - `quiet` — muted, brightening to the foreground on hover. A footer link, a
|
|
336
|
+
* row that happens to be navigable. It is not shouting, and it is not
|
|
337
|
+
* pretending to be body copy either: the hover is the affordance.
|
|
338
|
+
*
|
|
339
|
+
* Deliberately **not** a `Button` variant. A button performs an act on this
|
|
340
|
+
* page; a link goes somewhere, which is a different promise, a different
|
|
341
|
+
* element and a different set of things a browser will do for you (middle
|
|
342
|
+
* click, copy address, open in a tab). A `<button>` styled as a link takes all
|
|
343
|
+
* of that away, and `Button asChild` around an `<a>` is the escape hatch for
|
|
344
|
+
* the genuinely button-shaped case.
|
|
345
|
+
*
|
|
346
|
+
* No size axis. A link takes the size of the text it sits in — that is what
|
|
347
|
+
* makes it a link *in a sentence* rather than a control dropped into one.
|
|
348
|
+
*/
|
|
349
|
+
declare const linkVariants: (props?: ({
|
|
350
|
+
variant?: "default" | "underlined" | "quiet" | null | undefined;
|
|
351
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
352
|
+
interface LinkProps extends React$1.AnchorHTMLAttributes<HTMLAnchorElement>, VariantProps<typeof linkVariants> {
|
|
353
|
+
/**
|
|
354
|
+
* The destination is outside this app: opens in a new tab, and carries
|
|
355
|
+
* `rel="noreferrer noopener"` so the opened page cannot reach back through
|
|
356
|
+
* `window.opener`.
|
|
357
|
+
*
|
|
358
|
+
* A flag rather than asking every call site to remember `target` and `rel`
|
|
359
|
+
* together — the pair is the thing that is correct, and half of it is a
|
|
360
|
+
* security bug nobody notices.
|
|
361
|
+
*/
|
|
362
|
+
external?: boolean;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* A link. An `<a>` with the kit's colours, and the two behaviours an external
|
|
366
|
+
* one needs.
|
|
367
|
+
*
|
|
368
|
+
* It exists because every surface was writing its own — `text-primary
|
|
369
|
+
* hover:underline` here, `text-muted-foreground hover:underline` there — which
|
|
370
|
+
* is four spellings of one object and a colour that drifts the day the accent
|
|
371
|
+
* moves.
|
|
372
|
+
*
|
|
373
|
+
* Routing is the consumer's: this renders an `<a>`, and a router's own `Link`
|
|
374
|
+
* wraps it (`<RouterLink asChild>`) or takes these classes. The kit does not
|
|
375
|
+
* depend on a router, because a component that did could only ever be used with
|
|
376
|
+
* that one.
|
|
377
|
+
*/
|
|
378
|
+
declare const Link: React$1.ForwardRefExoticComponent<LinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
379
|
+
|
|
305
380
|
declare function MenubarMenu({ ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Menu>): React$1.JSX.Element;
|
|
306
381
|
declare function MenubarGroup({ ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Group>): React$1.JSX.Element;
|
|
307
382
|
declare function MenubarPortal({ ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Portal>): React$1.JSX.Element;
|
|
@@ -387,13 +462,53 @@ declare const ResizableHandle: ({ withHandle, className, ...props }: React.Compo
|
|
|
387
462
|
declare const ScrollArea: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
388
463
|
declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
389
464
|
|
|
465
|
+
interface SegmentedOption {
|
|
466
|
+
/** What the caller gets back. */
|
|
467
|
+
value: string;
|
|
468
|
+
label: React$1.ReactNode;
|
|
469
|
+
disabled?: boolean;
|
|
470
|
+
}
|
|
471
|
+
interface SegmentedControlProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
|
|
472
|
+
options: SegmentedOption[];
|
|
473
|
+
/** Controlled. Pass it with {@link onValueChange}. */
|
|
474
|
+
value?: string;
|
|
475
|
+
/** Uncontrolled starting option. Defaults to the first. */
|
|
476
|
+
defaultValue?: string;
|
|
477
|
+
onValueChange?: (value: string) => void;
|
|
478
|
+
/** `xs` is 22px — a pagehead slot. `sm` is 26px, for a panel header. */
|
|
479
|
+
size?: "xs" | "sm";
|
|
480
|
+
/** Fill the width given, each option an equal share of it. */
|
|
481
|
+
stretch?: boolean;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* One page, read another way.
|
|
485
|
+
*
|
|
486
|
+
* A run has four readings and a step has three — *In order · Layers · Flow ·
|
|
487
|
+
* Lens*, *Overview · Touched · Log* — and each of them is the **same record**
|
|
488
|
+
* drawn differently. That is what this control says and a tab strip does not:
|
|
489
|
+
* tabs own a panel and imply separate content underneath, so four tabs over one
|
|
490
|
+
* trace read as four pages that happen to share a header. A segmented control
|
|
491
|
+
* sits in the pagehead's action slot, beside the chips that describe the record,
|
|
492
|
+
* and says *this is a switch on what you are already looking at*.
|
|
493
|
+
*
|
|
494
|
+
* It is also not `ToggleGroup`. That is a set of independent toggles which may
|
|
495
|
+
* all be off; a reading is never off, so the control is a radio group and is
|
|
496
|
+
* announced as one. Arrow keys move between options, which is what a reader who
|
|
497
|
+
* never leaves the keyboard expects of a radio group.
|
|
498
|
+
*
|
|
499
|
+
* **The frame is the control.** One border around the whole thing, the active
|
|
500
|
+
* option filled with the primary tint and the rest plain — never a border per
|
|
501
|
+
* option, which draws three controls where there is one.
|
|
502
|
+
*/
|
|
503
|
+
declare const SegmentedControl: React$1.ForwardRefExoticComponent<SegmentedControlProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
504
|
+
|
|
390
505
|
declare const Sheet: React$1.FC<DialogPrimitive.DialogProps>;
|
|
391
506
|
declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
392
507
|
declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
393
508
|
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
394
509
|
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
395
510
|
declare const sheetVariants: (props?: ({
|
|
396
|
-
side?: "
|
|
511
|
+
side?: "top" | "right" | "bottom" | "left" | null | undefined;
|
|
397
512
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
398
513
|
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
399
514
|
}
|
|
@@ -564,6 +679,38 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
|
|
|
564
679
|
size?: "default" | "sm" | "lg" | null | undefined;
|
|
565
680
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
566
681
|
|
|
682
|
+
/**
|
|
683
|
+
* Why a band is not drawn — **and these are three different facts.**
|
|
684
|
+
*
|
|
685
|
+
* - `unrecorded` — nobody wrote this document. A step in flight has no
|
|
686
|
+
* `result.json` because the interpreter writes it when the row settles.
|
|
687
|
+
* - `purged` — it was written, and retention removed it. The counts and the
|
|
688
|
+
* outcome stay; the input, the output and the log do not.
|
|
689
|
+
* - `declared-none` — the step declares no such output at all: a `notify` step
|
|
690
|
+
* returns nothing, and a read under `read_only: true` writes nothing.
|
|
691
|
+
*
|
|
692
|
+
* Collapsing them into one *empty* is the thing this component exists to stop.
|
|
693
|
+
* An empty table claims a step returned an empty result; *purged* claims it
|
|
694
|
+
* returned nothing. Both are lies about a different record.
|
|
695
|
+
*/
|
|
696
|
+
type AbsenceReason = "unrecorded" | "purged" | "declared-none";
|
|
697
|
+
interface AbsenceNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
698
|
+
reason: AbsenceReason;
|
|
699
|
+
/** Overrides the word. The engine's own term is better where there is one — `read_only: true`. */
|
|
700
|
+
label?: React$1.ReactNode;
|
|
701
|
+
/** Why, in the record's terms. One or two sentences, and it is not optional in spirit. */
|
|
702
|
+
children?: React$1.ReactNode;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* A band with nothing in it, saying which kind of nothing.
|
|
706
|
+
*
|
|
707
|
+
* It is not `EmptyState`: that invites an action — *load a dataset*, *ask a
|
|
708
|
+
* question* — and there is no action here. A step that recorded nothing is a
|
|
709
|
+
* finished fact about a finished record, and the only thing owed to the reader
|
|
710
|
+
* is which fact it is.
|
|
711
|
+
*/
|
|
712
|
+
declare const AbsenceNote: React$1.ForwardRefExoticComponent<AbsenceNoteProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
713
|
+
|
|
567
714
|
/**
|
|
568
715
|
* How this address stood in the run, or in the rule being read.
|
|
569
716
|
*
|
|
@@ -573,7 +720,12 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
|
|
|
573
720
|
* is an event, and collapsing them loses *the bound was there and nothing ever
|
|
574
721
|
* tested it*.
|
|
575
722
|
*/
|
|
576
|
-
type
|
|
723
|
+
type KnownAddressTone = "allowed" | "denied" | "refused" | "untouched";
|
|
724
|
+
/**
|
|
725
|
+
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
726
|
+
* else renders with the neutral token and its own name.
|
|
727
|
+
*/
|
|
728
|
+
type AddressTone = KnownAddressTone | (string & {});
|
|
577
729
|
/**
|
|
578
730
|
* Split an address so the **participant survives truncation**.
|
|
579
731
|
*
|
|
@@ -668,6 +820,88 @@ interface AppStatusBarProps extends React$1.HTMLAttributes<HTMLDivElement>, Vari
|
|
|
668
820
|
*/
|
|
669
821
|
declare const AppStatusBar: React$1.ForwardRefExoticComponent<AppStatusBarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
670
822
|
|
|
823
|
+
interface Artifact {
|
|
824
|
+
/** The file's name as the step wrote it — `rows-1284.csv`. */
|
|
825
|
+
name: React$1.ReactNode;
|
|
826
|
+
/** What produced it — `interpreter`, `export`, `rejects`, `input`. */
|
|
827
|
+
kind?: React$1.ReactNode;
|
|
828
|
+
size?: React$1.ReactNode;
|
|
829
|
+
/**
|
|
830
|
+
* **The address.** The same bytes produced twice are one artifact, so the
|
|
831
|
+
* digest — eight characters, mono — is what a reader quotes, not the name.
|
|
832
|
+
*/
|
|
833
|
+
digest?: React$1.ReactNode;
|
|
834
|
+
/** When it landed, on the run's own clock — `+76.8s`. */
|
|
835
|
+
written?: React$1.ReactNode;
|
|
836
|
+
/**
|
|
837
|
+
* Retention has taken the bytes. The row stays and is struck: *this file
|
|
838
|
+
* existed and is gone* is a different fact from *no file was written*.
|
|
839
|
+
*/
|
|
840
|
+
gone?: boolean;
|
|
841
|
+
}
|
|
842
|
+
interface ArtifactTableProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
843
|
+
files: Artifact[];
|
|
844
|
+
onOpen?: (file: Artifact, index: number) => void;
|
|
845
|
+
onDownload?: (file: Artifact, index: number) => void;
|
|
846
|
+
/** Anything else a row offers. Replaces the two defaults when given. */
|
|
847
|
+
renderActions?: (file: Artifact, index: number) => React$1.ReactNode;
|
|
848
|
+
}
|
|
849
|
+
/**
|
|
850
|
+
* The files a step left behind.
|
|
851
|
+
*
|
|
852
|
+
* A file is the one thing a step produces that outlives the reading of it, and
|
|
853
|
+
* it is **addressed by digest** — which is why the digest is drawn beside the
|
|
854
|
+
* name rather than hidden behind a tooltip: a file that outlives its run is
|
|
855
|
+
* still reachable, and two runs that produced the same bytes produced one
|
|
856
|
+
* artifact.
|
|
857
|
+
*
|
|
858
|
+
* Rejected records are a file like any other. That is what makes `18 rejected`
|
|
859
|
+
* something a person can open instead of a dead count.
|
|
860
|
+
*
|
|
861
|
+
* **A step that left nothing draws no table.** Absence is the caller's to
|
|
862
|
+
* render — see `AbsenceNote` — because an empty table here would claim the step
|
|
863
|
+
* wrote an empty file.
|
|
864
|
+
*/
|
|
865
|
+
declare const ArtifactTable: React$1.ForwardRefExoticComponent<ArtifactTableProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
866
|
+
|
|
867
|
+
interface AttemptRow {
|
|
868
|
+
/** `queued` · `attempt 1` · `attempt 2` · `settled`. */
|
|
869
|
+
label: React$1.ReactNode;
|
|
870
|
+
/** When it started, on the run's own clock — `+44.5s`. */
|
|
871
|
+
started?: React$1.ReactNode;
|
|
872
|
+
/** How long it took — `30.0s`, or `4.2s…` while it is still running. */
|
|
873
|
+
took?: React$1.ReactNode;
|
|
874
|
+
/** What happened, in one line. */
|
|
875
|
+
what?: React$1.ReactNode;
|
|
876
|
+
tone?: "muted" | "info" | "success" | "warning" | "destructive";
|
|
877
|
+
/** It ran and it did not stick. **Struck, never dropped.** */
|
|
878
|
+
struck?: boolean;
|
|
879
|
+
}
|
|
880
|
+
interface AttemptClockProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
881
|
+
rows: AttemptRow[];
|
|
882
|
+
/**
|
|
883
|
+
* What the two numbers are — `elapsed 32.4s · working 2.3s · the gap is the
|
|
884
|
+
* attempt that timed out`.
|
|
885
|
+
*
|
|
886
|
+
* **Stated, never left as arithmetic.** A reader who has to subtract two
|
|
887
|
+
* durations to find a 30-second timeout has been handed a sum instead of an
|
|
888
|
+
* answer.
|
|
889
|
+
*/
|
|
890
|
+
summary?: React$1.ReactNode;
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* A step's clock, attempt by attempt.
|
|
894
|
+
*
|
|
895
|
+
* One duration cannot say what happened to a step that timed out once and then
|
|
896
|
+
* returned: `2.1s` is what it *did*, `32.4s` is what a reader waited, and the
|
|
897
|
+
* gap between them **is** the first attempt. So the clock is a row per attempt
|
|
898
|
+
* — queued, each try, settled — and the try that failed keeps its place, struck.
|
|
899
|
+
*
|
|
900
|
+
* Nothing new is recorded for this: it is the `timing` and `attempt` fields the
|
|
901
|
+
* interpreter already writes, read as a list instead of as a total.
|
|
902
|
+
*/
|
|
903
|
+
declare const AttemptClock: React$1.ForwardRefExoticComponent<AttemptClockProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
904
|
+
|
|
671
905
|
/**
|
|
672
906
|
* TODO — provisional. Built ahead of its design review.
|
|
673
907
|
*
|
|
@@ -770,19 +1004,38 @@ interface BarChartVProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
|
|
|
770
1004
|
declare const BarChartV: React$1.ForwardRefExoticComponent<BarChartVProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
771
1005
|
|
|
772
1006
|
/**
|
|
773
|
-
* The
|
|
1007
|
+
* The capabilities Invana ships today — **suggestions, not a limit.**
|
|
1008
|
+
*
|
|
1009
|
+
* These are what {@link Bound} autocompletes to. They bind nothing: a product
|
|
1010
|
+
* that adds a `vector_write` bound as it grows passes `"vector_write"` and the
|
|
1011
|
+
* chip draws it. The catalogue groups by these and an envelope ceilings them,
|
|
1012
|
+
* but that is the *runtime's* vocabulary to police — a chip that refused to
|
|
1013
|
+
* render an unknown bound would make the design kit a release blocker for
|
|
1014
|
+
* every new capability.
|
|
1015
|
+
*/
|
|
1016
|
+
type KnownBound = "none" | "network" | "graph_read" | "graph_write" | "schema_write" | "ingest" | "llm" | "plan_write" | "work_write";
|
|
1017
|
+
/**
|
|
1018
|
+
* What a callable may spend — any identifier at all.
|
|
774
1019
|
*
|
|
775
|
-
*
|
|
776
|
-
*
|
|
1020
|
+
* `(string & {})` keeps the known set autocompleting while accepting anything
|
|
1021
|
+
* else without a cast. See {@link KnownBound}.
|
|
777
1022
|
*/
|
|
778
|
-
type Bound =
|
|
1023
|
+
type Bound = KnownBound | (string & {});
|
|
779
1024
|
/**
|
|
780
|
-
*
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
*
|
|
1025
|
+
* What each bound is painted with — **the kit ships no hues.**
|
|
1026
|
+
*
|
|
1027
|
+
* Which colour means `schema_write` is a product's decision. Four of the nine
|
|
1028
|
+
* were only ever data-palette slots picked for being distinguishable from one
|
|
1029
|
+
* another, which is exactly the kind of choice a component should not be
|
|
1030
|
+
* making on a consumer's behalf; and holding the map forced every consumer
|
|
1031
|
+
* onto a stylesheet that defines those slots, which is how `bg-data-*` came to
|
|
1032
|
+
* be dead in the precompiled `@invana/ui/styles.css` without anyone noticing.
|
|
1033
|
+
*
|
|
1034
|
+
* Values are class strings, so a surface spends whatever its own Tailwind
|
|
1035
|
+
* build has — a data-palette token, a status token, a brand colour. A bound
|
|
1036
|
+
* left out draws in the neutral.
|
|
784
1037
|
*/
|
|
785
|
-
|
|
1038
|
+
type BoundPalette = Partial<Record<Bound, string>>;
|
|
786
1039
|
interface BoundChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
787
1040
|
bound: Bound;
|
|
788
1041
|
/**
|
|
@@ -790,6 +1043,19 @@ interface BoundChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "
|
|
|
790
1043
|
* it. Use sparingly — see the note on colour below.
|
|
791
1044
|
*/
|
|
792
1045
|
swatchOnly?: boolean;
|
|
1046
|
+
/** What to call it, when the identifier is not what this surface says. */
|
|
1047
|
+
label?: React$1.ReactNode;
|
|
1048
|
+
/**
|
|
1049
|
+
* This chip's swatch class, given directly — `bg-data-7`, `bg-violet-500`.
|
|
1050
|
+
* The shortest path when a call site draws one chip and knows its bound.
|
|
1051
|
+
* Wins over {@link BoundChipProps.palette}.
|
|
1052
|
+
*/
|
|
1053
|
+
swatch?: string;
|
|
1054
|
+
/**
|
|
1055
|
+
* What the bounds are painted with, when a caller draws several and would
|
|
1056
|
+
* rather state the map once. Only this chip's own bound is read.
|
|
1057
|
+
*/
|
|
1058
|
+
palette?: BoundPalette;
|
|
793
1059
|
}
|
|
794
1060
|
/**
|
|
795
1061
|
* What a task is allowed to spend, as a swatch and a name.
|
|
@@ -841,30 +1107,87 @@ interface CannotAnswerCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
841
1107
|
declare const CannotAnswerCard: React$1.ForwardRefExoticComponent<CannotAnswerCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
842
1108
|
|
|
843
1109
|
/**
|
|
844
|
-
* The
|
|
1110
|
+
* The classes of participant Invana ships today — **suggestions, not a limit.**
|
|
845
1111
|
*
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
1112
|
+
* These are what {@link Layer} autocompletes to. They bind nothing: a product
|
|
1113
|
+
* that grows a `vector_store` layer next week passes `"vector_store"` and every
|
|
1114
|
+
* component here draws it, because a component that had to be edited before a
|
|
1115
|
+
* developer could name a new layer is a component that owns the product's
|
|
1116
|
+
* vocabulary.
|
|
1117
|
+
*
|
|
1118
|
+
* `agent` is the **spine**: the runtime itself, which does the participating
|
|
1119
|
+
* rather than being a participant, and is never governed. Nothing in this file
|
|
1120
|
+
* knows that — a band says so with `spine`, see `LayerStrip`.
|
|
850
1121
|
*/
|
|
851
|
-
type
|
|
852
|
-
/** What a reader calls the layer. The address segment is not the label. */
|
|
853
|
-
declare const LABEL: Record<Layer, string>;
|
|
1122
|
+
type KnownLayer = "graph_data" | "llm" | "third_party" | "cache" | "human" | "agent";
|
|
854
1123
|
/**
|
|
855
|
-
*
|
|
1124
|
+
* What a participant **is** — any identifier at all.
|
|
856
1125
|
*
|
|
857
|
-
*
|
|
858
|
-
*
|
|
859
|
-
*
|
|
1126
|
+
* `(string & {})` is what keeps both halves: the known set still autocompletes
|
|
1127
|
+
* and still documents itself, while an unknown string is accepted without a
|
|
1128
|
+
* cast. Widening this to plain `string` would silently drop the suggestions;
|
|
1129
|
+
* narrowing it back to the union would make the kit the gatekeeper of a
|
|
1130
|
+
* vocabulary it does not own.
|
|
1131
|
+
*/
|
|
1132
|
+
type Layer = KnownLayer | (string & {});
|
|
1133
|
+
/**
|
|
1134
|
+
* What a reader calls the layer: the identifier with its underscores opened up.
|
|
860
1135
|
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
|
|
1136
|
+
* Derived rather than looked up — a table would have to be edited for every
|
|
1137
|
+
* layer a product adds, and for all six Invana ships today the table said
|
|
1138
|
+
* exactly this anyway (`graph_data` → `graph data`). A layer that wants
|
|
1139
|
+
* something else passes `label`.
|
|
1140
|
+
*/
|
|
1141
|
+
declare const layerLabel: (layer: Layer) => string;
|
|
1142
|
+
/**
|
|
1143
|
+
* How one layer is painted. **The kit ships no hues** — a consumer supplies
|
|
1144
|
+
* these, because which colour means `llm` is a product's decision and not a
|
|
1145
|
+
* component's.
|
|
1146
|
+
*
|
|
1147
|
+
* Both are class strings rather than colours, so a surface spends whatever
|
|
1148
|
+
* palette its own Tailwind build already has: `bg-data-7` from
|
|
1149
|
+
* `@invana/styling`, a brand token, a plain `bg-violet-500`. A component that
|
|
1150
|
+
* held the map would force every consumer onto the kit's palette *and* onto a
|
|
1151
|
+
* stylesheet that defines it — which is how `bg-data-*` came to be dead in the
|
|
1152
|
+
* precompiled `@invana/ui/styles.css` without anyone noticing.
|
|
1153
|
+
*
|
|
1154
|
+
* It is passed to the component that draws, as a prop, every time — never
|
|
1155
|
+
* installed once for a tree. A caller restating its palette at four call sites
|
|
1156
|
+
* is the honest cost: the alternative hides *which* colours a drawing is using
|
|
1157
|
+
* behind a provider somebody else mounted.
|
|
1158
|
+
*
|
|
1159
|
+
* - `swatch` is the **solid mark**: the dot beside a name, the rail down a bar.
|
|
1160
|
+
* - `tint` is the **wash**: a bar's ground and edge together. Keep it faint —
|
|
1161
|
+
* it sits *behind* text, so a hue dark enough to label in is a hue too dark
|
|
1162
|
+
* to wash with.
|
|
1163
|
+
* - `text` is the hue **as type**: a participant address written in its layer's
|
|
1164
|
+
* colour, so `model/Orders@v2` and the `graph data` dot above it are visibly
|
|
1165
|
+
* the same thing. This is the one that has to clear a contrast floor, which
|
|
1166
|
+
* is why it is yours to choose and separate from `swatch` — the token that
|
|
1167
|
+
* makes a legible 6px dot is often not the one that makes legible 13px mono.
|
|
866
1168
|
*/
|
|
867
|
-
|
|
1169
|
+
interface LayerPaint {
|
|
1170
|
+
/** The solid mark — `bg-data-7`. */
|
|
1171
|
+
swatch?: string;
|
|
1172
|
+
/** The wash, ground and edge — `border-data-7/35 bg-data-7/10`. */
|
|
1173
|
+
tint?: string;
|
|
1174
|
+
/** The hue as type, for an address that should read as its layer — `text-data-7`. */
|
|
1175
|
+
text?: string;
|
|
1176
|
+
}
|
|
1177
|
+
/**
|
|
1178
|
+
* What each layer is painted with. Partial on purpose: a layer left out falls
|
|
1179
|
+
* back to the neutral, which is a legible answer rather than a blank one.
|
|
1180
|
+
*/
|
|
1181
|
+
type LayerPalette = Partial<Record<Layer, LayerPaint>>;
|
|
1182
|
+
/**
|
|
1183
|
+
* One layer's paint, with the neutral filled in for anything unsaid — so a
|
|
1184
|
+
* caller never branches on `undefined` to draw a dot.
|
|
1185
|
+
*
|
|
1186
|
+
* There is no provider and no context. Colour arrives as the `palette` prop on
|
|
1187
|
+
* the component that draws, every time: a chip painted from somewhere up the
|
|
1188
|
+
* tree is a chip whose colour you cannot find by reading its call site.
|
|
1189
|
+
*/
|
|
1190
|
+
declare const layerPaint: (palette: LayerPalette | undefined, layer: Layer) => Required<LayerPaint>;
|
|
868
1191
|
interface LayerChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
869
1192
|
layer: Layer;
|
|
870
1193
|
/**
|
|
@@ -873,12 +1196,25 @@ interface LayerChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "
|
|
|
873
1196
|
* *nothing is configured* reads differently from *nothing matched*.
|
|
874
1197
|
*/
|
|
875
1198
|
count?: number;
|
|
1199
|
+
/** What to call it, when {@link layerLabel} is not what this surface says. */
|
|
1200
|
+
label?: React$1.ReactNode;
|
|
876
1201
|
/**
|
|
877
1202
|
* The layer is closed, empty or out of view: the swatch drops to the muted
|
|
878
1203
|
* token and the label goes with it. The chip stays legible — this is *not
|
|
879
1204
|
* in play*, never *not there*.
|
|
880
1205
|
*/
|
|
881
1206
|
dim?: boolean;
|
|
1207
|
+
/**
|
|
1208
|
+
* This chip's swatch class, given directly — `bg-data-7`, `bg-violet-500`.
|
|
1209
|
+
* The shortest path when a call site draws one chip and knows its layer.
|
|
1210
|
+
* Wins over {@link LayerChipProps.palette}.
|
|
1211
|
+
*/
|
|
1212
|
+
swatch?: string;
|
|
1213
|
+
/**
|
|
1214
|
+
* What the layers are painted with, when a caller draws several and would
|
|
1215
|
+
* rather state the map once. Only this chip's own layer is read.
|
|
1216
|
+
*/
|
|
1217
|
+
palette?: LayerPalette;
|
|
882
1218
|
}
|
|
883
1219
|
/**
|
|
884
1220
|
* One class of participant, as a swatch and a name.
|
|
@@ -938,6 +1274,11 @@ interface LensRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "chi
|
|
|
938
1274
|
usage?: LensUsage;
|
|
939
1275
|
selected?: boolean;
|
|
940
1276
|
onSelect?: (name: string) => void;
|
|
1277
|
+
/**
|
|
1278
|
+
* What the layers of a `closes` narrowing are painted with. Omitted, those
|
|
1279
|
+
* chips draw in the neutral.
|
|
1280
|
+
*/
|
|
1281
|
+
palette?: LayerPalette;
|
|
941
1282
|
}
|
|
942
1283
|
/**
|
|
943
1284
|
* One world in the Worlds drawer: its name, what it narrows, and how used it is.
|
|
@@ -1488,7 +1829,12 @@ interface DiagnosisCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1488
1829
|
*/
|
|
1489
1830
|
declare const DiagnosisCard: React$1.ForwardRefExoticComponent<DiagnosisCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1490
1831
|
|
|
1491
|
-
type
|
|
1832
|
+
type KnownDiffOp = "add" | "remove" | "change";
|
|
1833
|
+
/**
|
|
1834
|
+
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
1835
|
+
* else renders with the neutral token and its own name.
|
|
1836
|
+
*/
|
|
1837
|
+
type DiffOp = KnownDiffOp | (string & {});
|
|
1492
1838
|
interface DiffRowProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>, "children"> {
|
|
1493
1839
|
op?: DiffOp;
|
|
1494
1840
|
/** What kind of thing changed — `node`, `edge`, `property`. */
|
|
@@ -1698,6 +2044,44 @@ declare class ErrorBoundary extends Component<{
|
|
|
1698
2044
|
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;
|
|
1699
2045
|
}
|
|
1700
2046
|
|
|
2047
|
+
interface ExchangeOption {
|
|
2048
|
+
label: React$1.ReactNode;
|
|
2049
|
+
/** The one that was taken. */
|
|
2050
|
+
chosen?: boolean;
|
|
2051
|
+
}
|
|
2052
|
+
interface ExchangeRecordProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
2053
|
+
/** Who asked — `the agent asks`. */
|
|
2054
|
+
asker?: React$1.ReactNode;
|
|
2055
|
+
question: React$1.ReactNode;
|
|
2056
|
+
/** Why it had to ask — `parse_intent found two readings and was told not to guess`. */
|
|
2057
|
+
why?: React$1.ReactNode;
|
|
2058
|
+
/** What it offered. Every option, with the taken one marked. */
|
|
2059
|
+
options?: ExchangeOption[];
|
|
2060
|
+
/** Who answered — `ravi answers`. */
|
|
2061
|
+
answerer?: React$1.ReactNode;
|
|
2062
|
+
answer?: React$1.ReactNode;
|
|
2063
|
+
/** What the answer cost and what happened next — `after 41.2s · the run resumed on round 2`. */
|
|
2064
|
+
answerNote?: React$1.ReactNode;
|
|
2065
|
+
}
|
|
2066
|
+
/**
|
|
2067
|
+
* A question a run asked a person, after it was answered.
|
|
2068
|
+
*
|
|
2069
|
+
* `ClarifyCard` is the **live** ask — it has controls, and the run is waiting on
|
|
2070
|
+
* them. This is the same exchange once it is a record: the question, every
|
|
2071
|
+
* option it offered with the one taken marked, who answered and how long the
|
|
2072
|
+
* run stood still. Nothing here is pickable, because the choice was made and a
|
|
2073
|
+
* trace is never rewritten.
|
|
2074
|
+
*
|
|
2075
|
+
* **The options that were not taken stay.** *It chose by promise date* is a
|
|
2076
|
+
* different fact from *it was offered two readings and chose by promise date* —
|
|
2077
|
+
* the second is the one that explains the round that follows.
|
|
2078
|
+
*
|
|
2079
|
+
* The rails mark the **act**, not the participant: asking is an interruption,
|
|
2080
|
+
* answering is what let the run continue. Which colour means `human` is a
|
|
2081
|
+
* palette decision and belongs to the layer components.
|
|
2082
|
+
*/
|
|
2083
|
+
declare const ExchangeRecord: React$1.ForwardRefExoticComponent<ExchangeRecordProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2084
|
+
|
|
1701
2085
|
interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1702
2086
|
/**
|
|
1703
2087
|
* Right-aligned trailing text — a count, a position, a state. Kept separate
|
|
@@ -1721,7 +2105,7 @@ interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
1721
2105
|
* a {@link SectionHeader}, so several can sit in one scrolling column and still
|
|
1722
2106
|
* read as subordinate to the panel's own title.
|
|
1723
2107
|
*
|
|
1724
|
-
* Uppercase at `text-
|
|
2108
|
+
* Uppercase at `text-sm` with tracking, because at this size caps are what
|
|
1725
2109
|
* separate a label from the sentence under it; lowercase at 11px reads as body
|
|
1726
2110
|
* copy set small. That is also why it is a component rather than four utility
|
|
1727
2111
|
* classes: the treatment was being retyped, and a label that drifts a weight or
|
|
@@ -1751,6 +2135,18 @@ interface FilterChipProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonEl
|
|
|
1751
2135
|
value?: React$1.ReactNode;
|
|
1752
2136
|
/** Marks the chip as narrowing the list, so an active filter is visible while scrolling. */
|
|
1753
2137
|
active?: boolean;
|
|
2138
|
+
/**
|
|
2139
|
+
* Clear this one filter, without opening its menu.
|
|
2140
|
+
*
|
|
2141
|
+
* Only for a chip that **is** set: an unset chip has nothing to clear, and an
|
|
2142
|
+
* × on it would offer to undo something nobody did. With it, the chip is a
|
|
2143
|
+
* pair of controls rather than one — the label opens the picker, the × drops
|
|
2144
|
+
* the value — so both are reachable by keyboard and the × carries its own
|
|
2145
|
+
* name.
|
|
2146
|
+
*/
|
|
2147
|
+
onRemove?: () => void;
|
|
2148
|
+
/** What the × is called, for a screen reader. Defaults to `Clear <label>`. */
|
|
2149
|
+
removeLabel?: string;
|
|
1754
2150
|
}
|
|
1755
2151
|
/**
|
|
1756
2152
|
* The row above a list that narrows it.
|
|
@@ -1822,6 +2218,36 @@ interface HeatStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
|
|
|
1822
2218
|
*/
|
|
1823
2219
|
declare const HeatStrip: React$1.ForwardRefExoticComponent<HeatStripProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1824
2220
|
|
|
2221
|
+
/**
|
|
2222
|
+
* The kinds of run Invana opens today — **suggestions, not a limit.**
|
|
2223
|
+
*
|
|
2224
|
+
* A product that grows a `simulate` kind passes `"simulate"` and the chip draws
|
|
2225
|
+
* it. The journal is one list with one filter over it ([SR7]), so the kind is a
|
|
2226
|
+
* *column value*, never a panel of its own — and a component that refused an
|
|
2227
|
+
* unknown value would make the kit a release blocker for every new one.
|
|
2228
|
+
*/
|
|
2229
|
+
type KnownRunKind = "ask" | "import" | "bulk" | "stitch" | "enrich" | "schedule";
|
|
2230
|
+
/** What a run is, as an identifier — any string at all. See {@link KnownRunKind}. */
|
|
2231
|
+
type RunKind = KnownRunKind | (string & {});
|
|
2232
|
+
interface KindChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
2233
|
+
kind: RunKind;
|
|
2234
|
+
/** Not in play — a kind the current filter excludes. */
|
|
2235
|
+
dim?: boolean;
|
|
2236
|
+
}
|
|
2237
|
+
/**
|
|
2238
|
+
* What kind of run this row is: `ask` · `import` · `bulk` · `stitch` · `enrich`.
|
|
2239
|
+
*
|
|
2240
|
+
* **Neutral on purpose.** A kind is not a status and not a layer: it says which
|
|
2241
|
+
* shape of work opened the run, and every kind is equally ordinary. Painting
|
|
2242
|
+
* them would put five more hues on a row that already carries a status dot and
|
|
2243
|
+
* a layer, and would invite a reader to think `import` is worse than `ask`.
|
|
2244
|
+
*
|
|
2245
|
+
* Mono, because the value is the engine's own (`kind in (import, bulk)` is a
|
|
2246
|
+
* filter a person types), and small, because it sits inside a row that is
|
|
2247
|
+
* already carrying an address and a summary.
|
|
2248
|
+
*/
|
|
2249
|
+
declare const KindChip: React$1.ForwardRefExoticComponent<KindChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
2250
|
+
|
|
1825
2251
|
interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "title"> {
|
|
1826
2252
|
layer: Layer;
|
|
1827
2253
|
/**
|
|
@@ -1838,6 +2264,11 @@ interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
1838
2264
|
children?: React$1.ReactNode;
|
|
1839
2265
|
/** How many participants the layer holds, shown on the chip. */
|
|
1840
2266
|
count?: number;
|
|
2267
|
+
/**
|
|
2268
|
+
* What the layer is painted with — only this band's own layer is read.
|
|
2269
|
+
* Omitted, the chip draws in the neutral.
|
|
2270
|
+
*/
|
|
2271
|
+
palette?: LayerPalette;
|
|
1841
2272
|
/** The layer is out of view for this lens: the whole band dims. */
|
|
1842
2273
|
dim?: boolean;
|
|
1843
2274
|
}
|
|
@@ -1863,72 +2294,311 @@ interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
1863
2294
|
declare const LayerSection: React$1.ForwardRefExoticComponent<LayerSectionProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1864
2295
|
|
|
1865
2296
|
/**
|
|
1866
|
-
* What
|
|
2297
|
+
* What an item is doing where it sits — the two tenses in one vocabulary.
|
|
2298
|
+
*
|
|
2299
|
+
* `declared` is the plan tense: this is what the playbook **will** engage.
|
|
2300
|
+
* `out` · `in` · `refused` · `skipped` are the run tense: what it did engage,
|
|
2301
|
+
* what a bound stopped, and what it never reached for. Refused and skipped stay
|
|
2302
|
+
* two different facts, and both are drawn — a drawing that showed only what
|
|
2303
|
+
* happened would answer *what did this run do* and not *what was it stopped
|
|
2304
|
+
* from doing*, and the second is the question the strip exists for.
|
|
2305
|
+
*/
|
|
2306
|
+
type KnownLayerItemState = "declared" | "out" | "in" | "refused" | "skipped";
|
|
2307
|
+
/**
|
|
2308
|
+
* What an item is doing — **suggestions, not a limit.** A run that grows a
|
|
2309
|
+
* `deferred` or a `retried` passes it and the bar draws: the neutral edge, and
|
|
2310
|
+
* the state's own name under the label. Only the states above carry special
|
|
2311
|
+
* drawing, because only they have a meaning defined here to draw.
|
|
2312
|
+
*/
|
|
2313
|
+
type LayerItemState = KnownLayerItemState | (string & {});
|
|
2314
|
+
/** The run half of {@link LayerItemState}, as the ledger's `direction` column. */
|
|
2315
|
+
type TouchDirection = Exclude<KnownLayerItemState, "declared"> | (string & {});
|
|
2316
|
+
/**
|
|
2317
|
+
* One participant under a band — the row a task actually lands on.
|
|
1867
2318
|
*
|
|
1868
|
-
*
|
|
1869
|
-
*
|
|
1870
|
-
*
|
|
1871
|
-
*
|
|
1872
|
-
* strip exists for.
|
|
2319
|
+
* A band says *llm*; a part says **which** llm, or which role a caller may
|
|
2320
|
+
* re-cast: `role: decide`, `model/Orders@v2`, `third_party/app/email`. Reading
|
|
2321
|
+
* a plan is reading its parts, because that is the list a world is checked
|
|
2322
|
+
* against.
|
|
1873
2323
|
*/
|
|
1874
|
-
|
|
1875
|
-
|
|
2324
|
+
interface LayerPart {
|
|
2325
|
+
id: string;
|
|
2326
|
+
/** The participant address, or the role — `model/Orders@v2`, `role: decide`. */
|
|
2327
|
+
label: string;
|
|
2328
|
+
/** What the caller still owes, or what the crossing is — `egress: the note`. */
|
|
2329
|
+
note?: string;
|
|
2330
|
+
}
|
|
2331
|
+
interface LayerBand {
|
|
1876
2332
|
layer: Layer;
|
|
1877
|
-
/** Overrides the layer's own name
|
|
2333
|
+
/** Overrides the layer's own name. */
|
|
1878
2334
|
label?: React$1.ReactNode;
|
|
2335
|
+
/** Right of the name — `declared · 1`, `nothing declared`, `2 roles`. */
|
|
2336
|
+
note?: string;
|
|
2337
|
+
/** The participants under it, each its own row. */
|
|
2338
|
+
parts?: LayerPart[];
|
|
2339
|
+
/**
|
|
2340
|
+
* This band is the **spine** — the runtime's own dispatches, which the other
|
|
2341
|
+
* bands are timed against and which is never governed. Its wire runs the
|
|
2342
|
+
* whole axis and it is never drawn as unspent.
|
|
2343
|
+
*
|
|
2344
|
+
* The band says so rather than the component recognising a layer by name:
|
|
2345
|
+
* `agent` is Invana's spine, but the layer vocabulary is a product's to grow
|
|
2346
|
+
* and a strip that hard-coded one of its values would be a strip that had to
|
|
2347
|
+
* be edited before anyone could rename it.
|
|
2348
|
+
*/
|
|
2349
|
+
spine?: boolean;
|
|
1879
2350
|
}
|
|
1880
|
-
|
|
2351
|
+
/**
|
|
2352
|
+
* One task, where it sits and how long it takes.
|
|
2353
|
+
*
|
|
2354
|
+
* `start` and `end` are in the axis's own unit — a step ordinal under `seq`, a
|
|
2355
|
+
* millisecond under `elapsed`. A task with no `end` is an instant and is drawn
|
|
2356
|
+
* at the minimum width.
|
|
2357
|
+
*/
|
|
2358
|
+
interface LayerItem {
|
|
2359
|
+
id: string;
|
|
2360
|
+
/** The task. This is the only place a task name is written. */
|
|
2361
|
+
label: string;
|
|
1881
2362
|
layer: Layer;
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
2363
|
+
/** The {@link LayerPart} it lands on. Omitted, it sits on the band itself. */
|
|
2364
|
+
part?: string;
|
|
2365
|
+
start: number;
|
|
2366
|
+
end?: number;
|
|
2367
|
+
state?: LayerItemState;
|
|
2368
|
+
/** Under the name — `decide`, `${supplier_id}`, `form: human`. */
|
|
2369
|
+
note?: string;
|
|
1885
2370
|
/** The rule that refused it, when one did. */
|
|
1886
2371
|
ruleMatched?: string;
|
|
2372
|
+
/** What this task usually takes — see {@link LayerForecast}. */
|
|
2373
|
+
forecast?: LayerForecast;
|
|
2374
|
+
}
|
|
2375
|
+
/**
|
|
2376
|
+
* What this task usually costs, drawn **on** the bar that says what it cost
|
|
2377
|
+
* this time.
|
|
2378
|
+
*
|
|
2379
|
+
* `p50` is a **duration in the axis's own unit**, not a position: the median is
|
|
2380
|
+
* a length of time a step takes, and placing it as an absolute moment would
|
|
2381
|
+
* make the same forecast wrong for every run that started the step a second
|
|
2382
|
+
* later. The strip turns it into a mark at `start + p50`, so the overrun is the
|
|
2383
|
+
* gap between the mark and the bar's end — visible, rather than two numbers a
|
|
2384
|
+
* reader has to subtract.
|
|
2385
|
+
*
|
|
2386
|
+
* Drawn for a task that came in **under** its median too. *Faster than usual*
|
|
2387
|
+
* is a finding, and a forecast that only ever showed overruns would be a
|
|
2388
|
+
* warning light rather than a comparison.
|
|
2389
|
+
*/
|
|
2390
|
+
interface LayerForecast {
|
|
2391
|
+
/** The median, as a duration in the axis's unit. */
|
|
2392
|
+
p50: number;
|
|
2393
|
+
/** The gap in the caller's words — `+11%`, `−33%`, `inside p95`. */
|
|
2394
|
+
note?: React$1.ReactNode;
|
|
2395
|
+
}
|
|
2396
|
+
/** A bounded repetition over a stretch of the axis — `loop · max 3`. */
|
|
2397
|
+
interface LayerBracket {
|
|
2398
|
+
id: string;
|
|
2399
|
+
start: number;
|
|
2400
|
+
end: number;
|
|
2401
|
+
label: string;
|
|
1887
2402
|
}
|
|
1888
|
-
|
|
2403
|
+
/**
|
|
2404
|
+
* A **seam** — a moment on the axis where everything stops at once.
|
|
2405
|
+
*
|
|
2406
|
+
* A gate belongs to no band. It is not dispatched, it holds no slot and it has
|
|
2407
|
+
* no participant, so it cannot be a bar: it is a condition on the way into a
|
|
2408
|
+
* step, and it stops every layer together. That makes it a **position on the
|
|
2409
|
+
* axis**, drawn as a rule the bands are crossed by — which is also the only
|
|
2410
|
+
* drawing left once task names stop being the axis, because there are no
|
|
2411
|
+
* columns for it to sit between.
|
|
2412
|
+
*
|
|
2413
|
+
* **Which side of the line the label sits on is the price of saying no.**
|
|
2414
|
+
* `before` means nothing has been spent yet; `after` means the work up to here
|
|
2415
|
+
* is already paid for. A reader gets what declining costs from where the mark
|
|
2416
|
+
* sits, before reading a word of it.
|
|
2417
|
+
*/
|
|
2418
|
+
interface LayerSeam {
|
|
1889
2419
|
id: string;
|
|
1890
|
-
/**
|
|
2420
|
+
/**
|
|
2421
|
+
* Where it sits, in the axis's own unit. **Omitted, it has no position** —
|
|
2422
|
+
* it can be raised at any dispatch, and it is drawn across the whole axis
|
|
2423
|
+
* rather than at a point. Placing such a gate on one moment would be a guess.
|
|
2424
|
+
*/
|
|
2425
|
+
at?: number;
|
|
2426
|
+
/** What it is — `approval · before dispatch`, `verdict · after the pass`. */
|
|
1891
2427
|
label: string;
|
|
1892
|
-
/**
|
|
1893
|
-
|
|
1894
|
-
|
|
2428
|
+
/** Which side of the line the cost falls on. Defaults to `before`. */
|
|
2429
|
+
edge?: "before" | "after";
|
|
2430
|
+
/**
|
|
2431
|
+
* It is not on the plan: it resolves at dispatch, so the same plan is gated
|
|
2432
|
+
* for one caller and not another. Drawn dashed — *this may appear*.
|
|
2433
|
+
*/
|
|
2434
|
+
conditional?: boolean;
|
|
2435
|
+
/**
|
|
2436
|
+
* **Nothing can forecast this one.** How long a person takes to say yes is
|
|
2437
|
+
* not in the record, so a gate marked this way is drawn dashed like a
|
|
2438
|
+
* conditional one and its note carries the actual instead of a comparison.
|
|
2439
|
+
*
|
|
2440
|
+
* It exists as its own flag rather than as a caller's choice of words because
|
|
2441
|
+
* *there is no estimate* and *the estimate was met* must not look alike on a
|
|
2442
|
+
* drawing whose whole subject is forecast against actual. Drawing a guess
|
|
2443
|
+
* here would be the one dishonest mark on the strip.
|
|
2444
|
+
*/
|
|
2445
|
+
noEstimate?: boolean;
|
|
2446
|
+
/** Under the label — `nothing spent · finance-approvers · 4h`. */
|
|
2447
|
+
note?: string;
|
|
1895
2448
|
}
|
|
2449
|
+
/** What the axis counts. */
|
|
2450
|
+
type LayerScale = "seq" | "elapsed";
|
|
1896
2451
|
interface LayerStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
|
|
1897
|
-
bands:
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
2452
|
+
bands: LayerBand[];
|
|
2453
|
+
items: LayerItem[];
|
|
2454
|
+
/**
|
|
2455
|
+
* `seq` is a plan's time — what happens before what, one unit per step.
|
|
2456
|
+
* `elapsed` is a run's, in milliseconds from the run opening.
|
|
2457
|
+
*/
|
|
2458
|
+
scale?: LayerScale;
|
|
2459
|
+
/** The axis extent. Defaults to the items' own. */
|
|
2460
|
+
domain?: [number, number];
|
|
2461
|
+
/** Tick positions in axis units. Defaults to integers (`seq`) or five (`elapsed`). */
|
|
2462
|
+
ticks?: number[];
|
|
2463
|
+
formatTick?: (value: number) => string;
|
|
2464
|
+
brackets?: LayerBracket[];
|
|
2465
|
+
/**
|
|
2466
|
+
* The gates — the moments the whole drawing stops at. They get a row of their
|
|
2467
|
+
* own above the bands *and* a rule down the track, because a gate has to read
|
|
2468
|
+
* both as a thing with a name and as something every band is stopped by.
|
|
2469
|
+
*/
|
|
2470
|
+
seams?: LayerSeam[];
|
|
2471
|
+
onSelectItem?: (itemId: string) => void;
|
|
2472
|
+
selectedItem?: string;
|
|
2473
|
+
/**
|
|
2474
|
+
* The bands whose participants are folded away, uncontrolled. Their tasks do
|
|
2475
|
+
* not disappear with them: they drop onto the band's own line, which is the
|
|
2476
|
+
* whole point of shutting one.
|
|
2477
|
+
*/
|
|
2478
|
+
defaultCollapsed?: Layer[];
|
|
2479
|
+
/** The same, controlled. Pass it with `onCollapsedChange`. */
|
|
2480
|
+
collapsed?: Layer[];
|
|
2481
|
+
onCollapsedChange?: (layers: Layer[]) => void;
|
|
1901
2482
|
/**
|
|
1902
|
-
*
|
|
1903
|
-
*
|
|
2483
|
+
* Offer the disclosures at all. Off, the bands render as given and a caller
|
|
2484
|
+
* that wants an overview passes the bands it wants shut in `collapsed`.
|
|
2485
|
+
*/
|
|
2486
|
+
collapsible?: boolean;
|
|
2487
|
+
/**
|
|
2488
|
+
* A hover card on each task, saying what the bar cannot fit: the participant
|
|
2489
|
+
* it spends, when it runs and for how long, and the rule that refused it. On
|
|
2490
|
+
* by default; off falls back to the native `title`.
|
|
2491
|
+
*/
|
|
2492
|
+
hoverDetail?: boolean;
|
|
2493
|
+
/** What that card says, when the default is not what this surface owes. */
|
|
2494
|
+
itemDetail?: (item: LayerItem) => React$1.ReactNode;
|
|
2495
|
+
/**
|
|
2496
|
+
* Keep the band labels in place while time scrolls. On by default: a run with
|
|
2497
|
+
* forty steps scrolls, and a band you cannot name is a row of marks.
|
|
1904
2498
|
*/
|
|
1905
2499
|
frozenLabels?: boolean;
|
|
2500
|
+
/**
|
|
2501
|
+
* The label column, in `rem`. The default fits a layer name at the root size
|
|
2502
|
+
* beside its note — `human` and `3 rounds · 6m 01s` on one line.
|
|
2503
|
+
*/
|
|
2504
|
+
labelWidth?: number;
|
|
2505
|
+
/** The narrowest the track is drawn before it scrolls, in `rem`. */
|
|
2506
|
+
minTrackWidth?: number;
|
|
2507
|
+
/**
|
|
2508
|
+
* The narrowest one tick may be squeezed to, in `rem`. Past that the strip
|
|
2509
|
+
* scrolls rather than shrinking: a bar too narrow to carry its task's name
|
|
2510
|
+
* has stopped being a drawing of that task.
|
|
2511
|
+
*/
|
|
2512
|
+
minSlotWidth?: number;
|
|
2513
|
+
/**
|
|
2514
|
+
* What the layers are painted with. The same map reaches the band chips and
|
|
2515
|
+
* the bars, so a strip never disagrees with its own labels; a layer left out
|
|
2516
|
+
* draws in the neutral.
|
|
2517
|
+
*/
|
|
2518
|
+
palette?: LayerPalette;
|
|
1906
2519
|
}
|
|
1907
|
-
|
|
2520
|
+
/** An unknown state is still a state: it says its own name. */
|
|
2521
|
+
declare const stateLabel: (state: LayerItemState) => string;
|
|
1908
2522
|
/**
|
|
1909
|
-
* A run as
|
|
1910
|
-
*
|
|
1911
|
-
*
|
|
1912
|
-
*
|
|
1913
|
-
*
|
|
1914
|
-
*
|
|
2523
|
+
* A plan or a run as layer bands over a time axis — a gantt, not a matrix.
|
|
2524
|
+
*
|
|
2525
|
+
* **Time is the x axis, in whichever tense the drawing is in.** A plan's time
|
|
2526
|
+
* is its order (`seq` — what happens before what); a run's is the wall clock
|
|
2527
|
+
* (`elapsed`). Task names are not an axis: a task is a bar, written once where
|
|
2528
|
+
* it sits, so a reader answers *what does this engage, and for how long* by
|
|
2529
|
+
* scanning across, and *what spends this participant* by scanning down.
|
|
2530
|
+
*
|
|
2531
|
+
* **A band opens into its participants.** `llm` is a band; `role: decide` and
|
|
2532
|
+
* `role: extract` are the rows under it, and the task sits on the row it
|
|
2533
|
+
* actually spends. The band alone cannot say which model a step will reach, and
|
|
2534
|
+
* that is the list a world is checked against.
|
|
2535
|
+
*
|
|
2536
|
+
* **A band folds its participants away without losing its tasks.** Shut, the
|
|
2537
|
+
* rows go and every task the layer spends drops onto the band's own line —
|
|
2538
|
+
* which is the overview: six lines, every task placed in time, *what was this
|
|
2539
|
+
* layer busy with* answered without reading twelve rows. Open, the same tasks
|
|
2540
|
+
* sit on the participant that spends them. `collapse all` in the header does it
|
|
2541
|
+
* to every band that has participants to fold, and nothing is hidden either
|
|
2542
|
+
* way: folding moves a task up a row, it never drops it.
|
|
2543
|
+
*
|
|
2544
|
+
* **A bar says what it is; hovering it says what it cannot fit.** The card
|
|
2545
|
+
* carries the participant the row truncates or folding took away, when the task
|
|
2546
|
+
* runs and for how long, and the rule that refused it — so a bar can stay a bar
|
|
2547
|
+
* rather than growing a second line for every fact somebody might want.
|
|
1915
2548
|
*
|
|
1916
2549
|
* **Refusals are struck in place, not removed.** A refused engagement keeps its
|
|
1917
|
-
*
|
|
1918
|
-
*
|
|
1919
|
-
*
|
|
1920
|
-
*
|
|
1921
|
-
*
|
|
1922
|
-
*
|
|
1923
|
-
*
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
2550
|
+
* bar and takes a struck label, because the gap it would otherwise leave is
|
|
2551
|
+
* indistinguishable from a stretch of time that never reached for that layer.
|
|
2552
|
+
*
|
|
2553
|
+
* **A row nothing spent is drawn muted, never dropped.** A band no task
|
|
2554
|
+
* touched takes the muted ground **across its whole width** — label column and
|
|
2555
|
+
* track together — and so does a participant row under an open band:
|
|
2556
|
+
* `role: extract` declared and never reached reads as *this run did not get
|
|
2557
|
+
* that far*, not as an ordinary empty row. A dropped row would say nothing at
|
|
2558
|
+
* all, and *this plan never reaches for a cache* is a finding.
|
|
2559
|
+
*
|
|
2560
|
+
* The ground is the carrier, not the type colour. A row is unspent because it
|
|
2561
|
+
* is *empty*, and an empty row has no text to mute past its own name — greying
|
|
2562
|
+
* the chip while the row keeps the card ground says *this label is quiet* when
|
|
2563
|
+
* the fact is *nothing spends this layer*.
|
|
2564
|
+
*
|
|
2565
|
+
* **A bar wears its layer, and its state is the edge.** The hue tints the bar's
|
|
2566
|
+
* ground and border and runs down its rail; dashed says the task never ran, and
|
|
2567
|
+
* the destructive token says a rule refused it — the one fact that outranks
|
|
2568
|
+
* whose bar it is. The label itself stays on a text token: the data palette is
|
|
2569
|
+
* a surface palette here, which keeps `cache` as legible as `human`.
|
|
2570
|
+
*
|
|
2571
|
+
* **Refused is not unspent.** A row whose only task was refused keeps its full
|
|
2572
|
+
* weight: being stopped from reaching a participant and never reaching for one
|
|
2573
|
+
* are the two facts this drawing exists to separate.
|
|
2574
|
+
*
|
|
2575
|
+
* **A gate is a seam, not a row.** Nothing is dispatched at a gate, so it has
|
|
2576
|
+
* no participant and cannot be a bar; it stops every band at once, so it is a
|
|
2577
|
+
* position on the axis and the bands are crossed by it. Which side of the line
|
|
2578
|
+
* its label hangs on is what saying no costs — `before` and nothing is spent,
|
|
2579
|
+
* `after` and the pass is already paid for. A gate that can be raised at any
|
|
2580
|
+
* dispatch has no position and draws across the whole axis instead.
|
|
2581
|
+
*
|
|
2582
|
+
* **The spine band is always drawn**, with its wire running the whole axis: the
|
|
2583
|
+
* runtime's own dispatches are what the other bands are timed against, and it
|
|
2584
|
+
* is never governed. A band declares itself the spine with `spine` — the strip
|
|
2585
|
+
* recognises no layer by name. A spine that has dispatched nothing recedes like
|
|
2586
|
+
* any other empty row: the wire still says *this is the clock*, and the muted
|
|
2587
|
+
* ground says *it has not run yet*, which are two different facts.
|
|
2588
|
+
*
|
|
2589
|
+
* DOM over a fixed track, not canvas: it binds to no canvas store, it lives in
|
|
1926
2590
|
* `mainSection` where no canvas exists, and frozen row labels plus text
|
|
1927
2591
|
* selection are free here and expensive there.
|
|
1928
2592
|
*/
|
|
1929
2593
|
declare const LayerStrip: React$1.ForwardRefExoticComponent<LayerStripProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1930
2594
|
|
|
1931
|
-
type LegendSwatchKind = "dot" | "line" | "dashed" | "arrow" | "ring"
|
|
2595
|
+
type LegendSwatchKind = "dot" | "line" | "dashed" | "arrow" | "ring"
|
|
2596
|
+
/** The rail down a row — how a trace says which layer a step spent. */
|
|
2597
|
+
| "stripe"
|
|
2598
|
+
/** A box around what it holds — a bounded repetition, drawn by containment. */
|
|
2599
|
+
| "bracket"
|
|
2600
|
+
/** A line the drawing is crossed by, with the mark that names it — a gate. */
|
|
2601
|
+
| "rule";
|
|
1932
2602
|
interface LegendItemProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "color"> {
|
|
1933
2603
|
/**
|
|
1934
2604
|
* What the mark looks like on the canvas. A legend that draws a dot for
|
|
@@ -1994,6 +2664,34 @@ interface LensChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "c
|
|
|
1994
2664
|
*/
|
|
1995
2665
|
declare const LensChip: React$1.ForwardRefExoticComponent<LensChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1996
2666
|
|
|
2667
|
+
/** What the mark means, as a tone. The same seven `StatusDot` uses, less the dot. */
|
|
2668
|
+
type MarkTone = "muted" | "info" | "success" | "warning" | "destructive";
|
|
2669
|
+
interface MarkChipProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
2670
|
+
tone?: MarkTone;
|
|
2671
|
+
/** `↺ 2 of 3`, `⏸ 1 of 3`, `live`, `↳ delegates`. */
|
|
2672
|
+
children?: React$1.ReactNode;
|
|
2673
|
+
}
|
|
2674
|
+
/**
|
|
2675
|
+
* What happened to this row that its own columns cannot say.
|
|
2676
|
+
*
|
|
2677
|
+
* A run's trace row already carries a name, a description, a layer, a role and
|
|
2678
|
+
* a duration. What it does *not* carry is the exception: this step took two
|
|
2679
|
+
* attempts, this one is painting right now, this one asked a person, this one
|
|
2680
|
+
* delegated a run of its own. Those are marks — they appear on a handful of
|
|
2681
|
+
* rows and they are the rows a reader is looking for.
|
|
2682
|
+
*
|
|
2683
|
+
* **Outlined, never filled.** A filled chip competes with the row's own name at
|
|
2684
|
+
* the same size; an outline reads as an annotation on the name, which is what it
|
|
2685
|
+
* is. Mono, because most marks are counts against a bound (`2 of 3`) and the
|
|
2686
|
+
* bound is the engine's number.
|
|
2687
|
+
*
|
|
2688
|
+
* Distinct from `BoundChip`, and the distinction is the point: a bound is what a
|
|
2689
|
+
* callable **may** spend, declared before anything ran. A mark is what a run
|
|
2690
|
+
* **did** — it exists only in the record, and it is usually the reason a reader
|
|
2691
|
+
* opened the trace at all.
|
|
2692
|
+
*/
|
|
2693
|
+
declare const MarkChip: React$1.ForwardRefExoticComponent<MarkChipProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
2694
|
+
|
|
1997
2695
|
interface MatchCandidate {
|
|
1998
2696
|
address: string;
|
|
1999
2697
|
matched: boolean;
|
|
@@ -2055,7 +2753,12 @@ declare const MenuItem: React$1.FC<MenuItemProps>;
|
|
|
2055
2753
|
* Omit it for an ordinary measurement. A grid where every tile is coloured
|
|
2056
2754
|
* carries no signal, and a number that is merely large is not a warning.
|
|
2057
2755
|
*/
|
|
2058
|
-
type
|
|
2756
|
+
type KnownMetricTone = "running" | "success" | "warning" | "error" | "info";
|
|
2757
|
+
/**
|
|
2758
|
+
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
2759
|
+
* else renders with the neutral token and its own name.
|
|
2760
|
+
*/
|
|
2761
|
+
type MetricTone = KnownMetricTone | (string & {});
|
|
2059
2762
|
interface MetricTileProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2060
2763
|
/** What is being measured — `accepted`, `served (plan.verified)`, `hit rate`. */
|
|
2061
2764
|
label: React$1.ReactNode;
|
|
@@ -2724,6 +3427,52 @@ interface PanelStackProps {
|
|
|
2724
3427
|
*/
|
|
2725
3428
|
declare function PanelStack({ sections, stackRef, onCollapsedChange, headerHeight, withHandle, className, headerClassName, bodyClassName, }: PanelStackProps): React$1.JSX.Element;
|
|
2726
3429
|
|
|
3430
|
+
/**
|
|
3431
|
+
* What a run did with a participant it was allowed — **suggestions, not a
|
|
3432
|
+
* limit.** A product with a seventh verdict passes it and the row draws it in
|
|
3433
|
+
* the neutral.
|
|
3434
|
+
*/
|
|
3435
|
+
type KnownParticipantVerdict = "touched" | "never touched" | "refused" | "miss" | "denied";
|
|
3436
|
+
type ParticipantVerdict = KnownParticipantVerdict | (string & {});
|
|
3437
|
+
interface ParticipantRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3438
|
+
/** The participant, as the world addresses it — `model/Routes@v4`. */
|
|
3439
|
+
address: string;
|
|
3440
|
+
verdict: ParticipantVerdict;
|
|
3441
|
+
/** What happened — `1,284 rows · step 7`, `allowed, and nothing asked for it`. */
|
|
3442
|
+
note?: React$1.ReactNode;
|
|
3443
|
+
/**
|
|
3444
|
+
* The tone the verdict is read in. Defaults: `touched` succeeds, `refused`
|
|
3445
|
+
* and `denied` are destructive, everything else is muted — *allowed and never
|
|
3446
|
+
* reached for* is not a failure, it is an invitation to narrow.
|
|
3447
|
+
*/
|
|
3448
|
+
tone?: "success" | "muted" | "warning" | "destructive";
|
|
3449
|
+
/**
|
|
3450
|
+
* How the **address** is drawn. Derived from the verdict — `refused` strikes
|
|
3451
|
+
* it in place, `never touched` mutes it — and overridable for a vocabulary
|
|
3452
|
+
* the kit has not seen.
|
|
3453
|
+
*
|
|
3454
|
+
* Striking is `AddressChip`'s job and not this row's: the address is struck
|
|
3455
|
+
* everywhere a refusal is shown, and two components deciding that
|
|
3456
|
+
* independently is how one surface comes to strike and another to hide.
|
|
3457
|
+
*/
|
|
3458
|
+
addressTone?: AddressTone;
|
|
3459
|
+
}
|
|
3460
|
+
/**
|
|
3461
|
+
* One participant a run could have spent, and what it actually did with it.
|
|
3462
|
+
*
|
|
3463
|
+
* The Lens reading of a run is a list of these under their layers: every
|
|
3464
|
+
* address the world allowed, each marked `touched` · `never touched` ·
|
|
3465
|
+
* `refused`. **Nothing is filtered out**, because the list is not an inventory
|
|
3466
|
+
* of what ran — it is the gap between *declared* and *did*, and each kind of
|
|
3467
|
+
* gap names a different act. Three allowed and never touched is an invitation
|
|
3468
|
+
* to narrow the world; a refusal is an invitation to widen it, or to accept
|
|
3469
|
+
* that the graph cannot answer inside it.
|
|
3470
|
+
*
|
|
3471
|
+
* It is not `RuleRow`: a rule is a sentence about what *may* happen, written
|
|
3472
|
+
* before anything ran. This is a fact about one execution.
|
|
3473
|
+
*/
|
|
3474
|
+
declare const ParticipantRow: React$1.ForwardRefExoticComponent<ParticipantRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3475
|
+
|
|
2727
3476
|
interface PropertyListProps extends React$1.HTMLAttributes<HTMLDListElement> {
|
|
2728
3477
|
/**
|
|
2729
3478
|
* Width of the label column. One value for the whole list, so every value
|
|
@@ -2866,6 +3615,32 @@ interface RecordHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
|
|
|
2866
3615
|
*/
|
|
2867
3616
|
declare const RecordHeader: React$1.ForwardRefExoticComponent<RecordHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2868
3617
|
|
|
3618
|
+
interface RecordPagerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3619
|
+
/** Where the reader is — `step 7 of 9`. */
|
|
3620
|
+
position?: React$1.ReactNode;
|
|
3621
|
+
onPrevious?: () => void;
|
|
3622
|
+
onNext?: () => void;
|
|
3623
|
+
/** What the two controls are called. The defaults name the *record*, not the direction. */
|
|
3624
|
+
previousLabel?: string;
|
|
3625
|
+
nextLabel?: string;
|
|
3626
|
+
}
|
|
3627
|
+
/**
|
|
3628
|
+
* The record before this one, and the one after.
|
|
3629
|
+
*
|
|
3630
|
+
* A step opened from a run's trace is one of nine, and the reader almost always
|
|
3631
|
+
* wants the next one — so walking the run costs two keystrokes rather than a
|
|
3632
|
+
* return to the list and a second drill-in.
|
|
3633
|
+
*
|
|
3634
|
+
* **Both controls carry a name.** An icon-only button with no accessible name
|
|
3635
|
+
* is a control a screen reader announces as "button", which is the one thing a
|
|
3636
|
+
* pager must not be; `previousLabel` and `nextLabel` name the record, so it
|
|
3637
|
+
* reads *previous step* rather than *left*.
|
|
3638
|
+
*
|
|
3639
|
+
* At either end the control is **disabled, not hidden**: a pager that loses a
|
|
3640
|
+
* button at the edges moves the other one under the reader's cursor.
|
|
3641
|
+
*/
|
|
3642
|
+
declare const RecordPager: React$1.ForwardRefExoticComponent<RecordPagerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3643
|
+
|
|
2869
3644
|
interface RepairNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2870
3645
|
/** What was wrong — `unknown property Theme.velocity5d`. */
|
|
2871
3646
|
from: React$1.ReactNode;
|
|
@@ -3091,6 +3866,93 @@ interface RuleRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "chi
|
|
|
3091
3866
|
*/
|
|
3092
3867
|
declare const RuleRow: React$1.ForwardRefExoticComponent<RuleRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3093
3868
|
|
|
3869
|
+
/**
|
|
3870
|
+
* How a run or a step ended, as the engine writes it — **suggestions, not a
|
|
3871
|
+
* limit.** An unknown status still renders: it says its own name, in the
|
|
3872
|
+
* neutral.
|
|
3873
|
+
*/
|
|
3874
|
+
type KnownRunStatus = "queued" | "running" | "succeeded" | "failed" | "cancelled" | "cannot_answer" | "awaiting_approval" | "skipped" | "held" | "purged";
|
|
3875
|
+
type RunStatus = KnownRunStatus | (string & {});
|
|
3876
|
+
/**
|
|
3877
|
+
* Which tone each status is read in.
|
|
3878
|
+
*
|
|
3879
|
+
* The kit owns this map where it does **not** own a layer's or a bound's
|
|
3880
|
+
* colour, and the difference is real: a layer is a product's vocabulary, while
|
|
3881
|
+
* *finished · finished but look at it · failed · not started* is the same small
|
|
3882
|
+
* set of states every surface in the system already draws with `StatusDot`. Two
|
|
3883
|
+
* maps for one idea is how a journal row and its own pagehead come to disagree.
|
|
3884
|
+
*
|
|
3885
|
+
* **`succeeded` and `cannot_answer` are deliberately different tones.** The
|
|
3886
|
+
* machinery succeeded; the reading is that the graph cannot answer inside this
|
|
3887
|
+
* world. A run that says both in one green word would be hiding the only fact
|
|
3888
|
+
* the reader needs ([SR53]).
|
|
3889
|
+
*/
|
|
3890
|
+
declare const TONE: Record<string, StatusDotProps["tone"]>;
|
|
3891
|
+
interface RunStatusTextProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
3892
|
+
status: RunStatus;
|
|
3893
|
+
/** Overrides the tone {@link RunStatus} resolves to. */
|
|
3894
|
+
tone?: StatusDotProps["tone"];
|
|
3895
|
+
/** Draw the dot before the word. Off in a table cell, on in a row. */
|
|
3896
|
+
dot?: boolean;
|
|
3897
|
+
/** What to call it, when the engine's own word is not what this surface says. */
|
|
3898
|
+
label?: React$1.ReactNode;
|
|
3899
|
+
}
|
|
3900
|
+
/**
|
|
3901
|
+
* A run's outcome, in its tone and in the engine's own word.
|
|
3902
|
+
*
|
|
3903
|
+
* `succeeded` · `running` · `cannot_answer` · `awaiting_approval` — written as
|
|
3904
|
+
* the record writes them, underscores and all, because these are the values a
|
|
3905
|
+
* reader filters on and quotes into a support thread. Prettifying them here
|
|
3906
|
+
* would mean the word on screen is not the word in the API.
|
|
3907
|
+
*
|
|
3908
|
+
* The word is always present, so colour is never the only carrier of the state.
|
|
3909
|
+
*/
|
|
3910
|
+
declare const RunStatusText: React$1.ForwardRefExoticComponent<RunStatusTextProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
3911
|
+
|
|
3912
|
+
interface RunRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title" | "onSelect"> {
|
|
3913
|
+
status: RunStatus;
|
|
3914
|
+
/** Overrides the tone the status resolves to. */
|
|
3915
|
+
tone?: StatusDotProps["tone"];
|
|
3916
|
+
kind?: RunKind;
|
|
3917
|
+
/**
|
|
3918
|
+
* The run's address — the last eight characters of its uuid, mono.
|
|
3919
|
+
*
|
|
3920
|
+
* **First on the row, before anything measured.** A row a reader cannot
|
|
3921
|
+
* quote into a log line, a support thread or `GET …/runs/{id}` has made them
|
|
3922
|
+
* drill in to find out what they are looking at.
|
|
3923
|
+
*/
|
|
3924
|
+
address?: React$1.ReactNode;
|
|
3925
|
+
/** What it was about — the question asked, the dataset loaded, the stitch run. */
|
|
3926
|
+
title: React$1.ReactNode;
|
|
3927
|
+
/** Under it — `2m 51s · 21.4k · 9/9 · 4 mins ago`. */
|
|
3928
|
+
meta?: React$1.ReactNode;
|
|
3929
|
+
/** Hard right — a badge, a count, an outcome. */
|
|
3930
|
+
aside?: React$1.ReactNode;
|
|
3931
|
+
/** A child run sits under the step that spawned it, indented — never a sibling. */
|
|
3932
|
+
depth?: number;
|
|
3933
|
+
selected?: boolean;
|
|
3934
|
+
onSelect?: () => void;
|
|
3935
|
+
}
|
|
3936
|
+
/**
|
|
3937
|
+
* One run in the journal.
|
|
3938
|
+
*
|
|
3939
|
+
* Every execution in a Graph is one of these — a question answered, a dataset
|
|
3940
|
+
* loaded, a stitch committed, an enrichment gated on a person — because they
|
|
3941
|
+
* are one record walked by one interpreter. **There is no row type per kind**
|
|
3942
|
+
* and no panel per kind: the kind is a chip and a filter value, which is what
|
|
3943
|
+
* keeps one journal from becoming four lists that drift apart.
|
|
3944
|
+
*
|
|
3945
|
+
* The order on the row is addressed, then described, then measured: the id, the
|
|
3946
|
+
* kind, what it was about, and the numbers underneath. A reader scanning for
|
|
3947
|
+
* *the run I was just looking at* finds it by id; a reader scanning for *what
|
|
3948
|
+
* has this system been doing* reads the line under it.
|
|
3949
|
+
*
|
|
3950
|
+
* With `onSelect` the whole row is one button, so the accessible name is the
|
|
3951
|
+
* whole row — the id, the kind and the summary in one string, which is exactly
|
|
3952
|
+
* what a reader driving this from the keyboard needs to hear.
|
|
3953
|
+
*/
|
|
3954
|
+
declare const RunRow: React$1.ForwardRefExoticComponent<RunRowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3955
|
+
|
|
3094
3956
|
/**
|
|
3095
3957
|
* `sm` (26px) is the application field — a search box docked in a panel header,
|
|
3096
3958
|
* beside a 30px tab strip. `default` (40px) stays the page size.
|
|
@@ -3421,6 +4283,10 @@ interface TaskNodeProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "ch
|
|
|
3421
4283
|
taskKey: React$1.ReactNode;
|
|
3422
4284
|
/** What it may spend. */
|
|
3423
4285
|
bound: Bound;
|
|
4286
|
+
/** The bound's swatch class, given directly — `bg-data-7`. */
|
|
4287
|
+
boundSwatch?: string;
|
|
4288
|
+
/** The bounds' palette, when a caller would rather state the map once. */
|
|
4289
|
+
boundPalette?: BoundPalette;
|
|
3424
4290
|
/**
|
|
3425
4291
|
* How it went, when this node is painting a **run**. Omit when the node is
|
|
3426
4292
|
* painting a plan or a draft, which have no status of their own.
|
|
@@ -3434,6 +4300,15 @@ interface TaskNodeProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "ch
|
|
|
3434
4300
|
* (`p50 3.4s · 14/14`). One rendering, three readings.
|
|
3435
4301
|
*/
|
|
3436
4302
|
meta?: React$1.ReactNode;
|
|
4303
|
+
/**
|
|
4304
|
+
* The drawing is a **record**, not a draft: a picked node gets the ring and
|
|
4305
|
+
* **no handles**.
|
|
4306
|
+
*
|
|
4307
|
+
* Handles are an offer to move something. A run paints status onto the plan
|
|
4308
|
+
* it ran and nothing on it is editable, so a handle there is a control that
|
|
4309
|
+
* does nothing — the one thing worse on a trace than a missing affordance.
|
|
4310
|
+
*/
|
|
4311
|
+
readOnly?: boolean;
|
|
3437
4312
|
/** Picked — draws the ring and four corner handles. */
|
|
3438
4313
|
selected?: boolean;
|
|
3439
4314
|
/** Needs an approval before it writes. Rings it in `warning`. */
|
|
@@ -3503,7 +4378,12 @@ type TerminalLineKind = "prompt" | "output" | "comment";
|
|
|
3503
4378
|
* command you typed, what it printed, a comment. A run's log has no prompts and
|
|
3504
4379
|
* no comments; every line is output, and what varies is how loud it is.
|
|
3505
4380
|
*/
|
|
3506
|
-
type
|
|
4381
|
+
type KnownTerminalLevel = "info" | "warn" | "error" | "debug";
|
|
4382
|
+
/**
|
|
4383
|
+
* The values the kit draws specially — **suggestions, not a limit.** Anything
|
|
4384
|
+
* else renders with the neutral token and its own name.
|
|
4385
|
+
*/
|
|
4386
|
+
type TerminalLevel = KnownTerminalLevel | (string & {});
|
|
3507
4387
|
interface TerminalLineProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3508
4388
|
kind?: TerminalLineKind;
|
|
3509
4389
|
/**
|
|
@@ -3611,6 +4491,37 @@ declare const TimelineFooter: React$1.ForwardRefExoticComponent<TimelineFooterPr
|
|
|
3611
4491
|
|
|
3612
4492
|
declare const Toolbar: React__default.FC;
|
|
3613
4493
|
|
|
4494
|
+
interface TouchItem {
|
|
4495
|
+
layer: Layer;
|
|
4496
|
+
/** What it amounts to — `3 calls`, `1,284 rows`, `miss`, `asked + approved`. */
|
|
4497
|
+
note?: React$1.ReactNode;
|
|
4498
|
+
/** What to call it, when {@link layerLabel} is not what this surface says. */
|
|
4499
|
+
label?: React$1.ReactNode;
|
|
4500
|
+
/** A guardrail said no. Struck in place, never dropped. */
|
|
4501
|
+
refused?: boolean;
|
|
4502
|
+
/** Allowed, and nothing reached for it. Present, and visibly not in play. */
|
|
4503
|
+
dim?: boolean;
|
|
4504
|
+
}
|
|
4505
|
+
interface TouchStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
4506
|
+
items: TouchItem[];
|
|
4507
|
+
palette?: LayerPalette;
|
|
4508
|
+
}
|
|
4509
|
+
/**
|
|
4510
|
+
* What a run touched at all — one cell per layer, on one line.
|
|
4511
|
+
*
|
|
4512
|
+
* This is a **summary**, and the whole reason it is a strip and not an axis.
|
|
4513
|
+
* *What did this touch* is answered once for the whole run, so it costs one
|
|
4514
|
+
* line above the list; drawn as a band per layer down a trace it would be a
|
|
4515
|
+
* matrix one sixth full, because a step spends exactly one layer.
|
|
4516
|
+
*
|
|
4517
|
+
* **Refused is struck in place and never touched is dimmed, and neither is
|
|
4518
|
+
* hidden.** The gap between what a world allowed and what the run reached for
|
|
4519
|
+
* is the finding: three layers allowed and never touched is an invitation to
|
|
4520
|
+
* narrow, and a refusal is an invitation to widen or to accept that the graph
|
|
4521
|
+
* cannot answer. A strip that showed only what was spent could say neither.
|
|
4522
|
+
*/
|
|
4523
|
+
declare const TouchStrip: React$1.ForwardRefExoticComponent<TouchStripProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4524
|
+
|
|
3614
4525
|
/**
|
|
3615
4526
|
* A single clickable/displayed reference shown in a step's
|
|
3616
4527
|
* "REFERENCED COMPONENTS" row.
|
|
@@ -3714,6 +4625,106 @@ interface TourProps {
|
|
|
3714
4625
|
*/
|
|
3715
4626
|
declare function Tour({ controller, steps, onExit, onComplete, badgeLabel, prevLabel, nextLabel, finishLabel, exitLabel, showExit, showCounter, showProgressBar, position, className, }: TourProps): React$1.JSX.Element | null;
|
|
3716
4627
|
|
|
4628
|
+
interface TraceListProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
4629
|
+
children?: React$1.ReactNode;
|
|
4630
|
+
}
|
|
4631
|
+
/**
|
|
4632
|
+
* A run, in the order it happened.
|
|
4633
|
+
*
|
|
4634
|
+
* The default reading of a trace, because *what happened, and then what* is the
|
|
4635
|
+
* cheapest honest answer to a reader opening a run. Its rows are
|
|
4636
|
+
* {@link TraceStep}s; a bounded repetition **contains** its rounds
|
|
4637
|
+
* ({@link TraceLoop}) and a gate lies **between** rows ({@link TraceGate}).
|
|
4638
|
+
*
|
|
4639
|
+
* Nothing here is an axis. The layer a step spent is a column on its row, so a
|
|
4640
|
+
* list nests for free and a second round is simply another row inside the box
|
|
4641
|
+
* that holds it. The clock reading of the same trace is `LayerStrip`.
|
|
4642
|
+
*/
|
|
4643
|
+
declare const TraceList: React$1.ForwardRefExoticComponent<TraceListProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4644
|
+
interface TraceStepProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onSelect" | "role"> {
|
|
4645
|
+
/** Where it sits in the run — the sequence number. */
|
|
4646
|
+
seq?: React$1.ReactNode;
|
|
4647
|
+
/** The step's key — `execute_query`. Mono, because it is the plan's own word. */
|
|
4648
|
+
name: React$1.ReactNode;
|
|
4649
|
+
/** One line: what it did, in the graph's terms. */
|
|
4650
|
+
description?: React$1.ReactNode;
|
|
4651
|
+
/** The participant class it spent. A step spends exactly one. */
|
|
4652
|
+
layer?: Layer;
|
|
4653
|
+
/** What it spent it on — `extract`, `decide`, `read_only`, `schema`. */
|
|
4654
|
+
role?: React$1.ReactNode;
|
|
4655
|
+
/** How long it took, or `—` when it never ran. */
|
|
4656
|
+
duration?: React$1.ReactNode;
|
|
4657
|
+
/** Under the duration — `ok`, `round 2`, `1,284 rows`, `skipped`. */
|
|
4658
|
+
note?: React$1.ReactNode;
|
|
4659
|
+
/** The exception this row carries — a `MarkChip`. */
|
|
4660
|
+
mark?: React$1.ReactNode;
|
|
4661
|
+
palette?: LayerPalette;
|
|
4662
|
+
/** A delegated run's steps sit under the step that spawned them. */
|
|
4663
|
+
depth?: number;
|
|
4664
|
+
/** Dispatched to nobody: queued, held, or never reached. Present, not in play. */
|
|
4665
|
+
dim?: boolean;
|
|
4666
|
+
/** It ran and it failed, or it was refused. The name is struck, in the destructive tone. */
|
|
4667
|
+
struck?: boolean;
|
|
4668
|
+
selected?: boolean;
|
|
4669
|
+
onSelect?: () => void;
|
|
4670
|
+
}
|
|
4671
|
+
/**
|
|
4672
|
+
* One event of a run: a step, and everything that is true of it.
|
|
4673
|
+
*
|
|
4674
|
+
* **The stripe is the layer.** A step touches exactly one participant class, so
|
|
4675
|
+
* the layer is a 3px rail down the row rather than a column of its own — which
|
|
4676
|
+
* leaves the row's width for the two things a reader is actually scanning, the
|
|
4677
|
+
* step's key and what it did.
|
|
4678
|
+
*
|
|
4679
|
+
* A row keeps its place in every state. A step that is painting right now, one
|
|
4680
|
+
* that was skipped because the step above it failed, one that was refused: all
|
|
4681
|
+
* three stay where they sit in the order, dimmed or struck. A list that dropped
|
|
4682
|
+
* them would be a list that cannot say *nothing below the failure was
|
|
4683
|
+
* dispatched*.
|
|
4684
|
+
*/
|
|
4685
|
+
declare const TraceStep: React$1.ForwardRefExoticComponent<TraceStepProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4686
|
+
interface TraceLoopProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
4687
|
+
/** What bounded it — `↻ 2 of 3 rounds — understood on round 2`. */
|
|
4688
|
+
label: React$1.ReactNode;
|
|
4689
|
+
/** Hard right — `3 events · 42.8s`. */
|
|
4690
|
+
summary?: React$1.ReactNode;
|
|
4691
|
+
/** The rail and wash it is drawn in. Defaults to the warning token. */
|
|
4692
|
+
tone?: "warning" | "info" | "muted";
|
|
4693
|
+
children?: React$1.ReactNode;
|
|
4694
|
+
}
|
|
4695
|
+
/**
|
|
4696
|
+
* A bounded repetition, drawn by containment.
|
|
4697
|
+
*
|
|
4698
|
+
* The rounds are **inside** it, so a second round is one more row in the box
|
|
4699
|
+
* and a list nests for free. Drawing a loop as a marker beside its rows would
|
|
4700
|
+
* make a reader reconstruct which rows it held; drawing it as a bracket down the
|
|
4701
|
+
* side is the clock reading's job, where the axis is time and rows are bands.
|
|
4702
|
+
*/
|
|
4703
|
+
declare const TraceLoop: React$1.ForwardRefExoticComponent<TraceLoopProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4704
|
+
interface TraceGateProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
4705
|
+
/** What it is — `approval — approved by ravi`. */
|
|
4706
|
+
label: React$1.ReactNode;
|
|
4707
|
+
/** What it cost — `waited 2m 04s · nothing was spent while it waited`. */
|
|
4708
|
+
note?: React$1.ReactNode;
|
|
4709
|
+
/** Defaults to the destructive token, which is what a stop is drawn in. */
|
|
4710
|
+
tone?: "destructive" | "warning" | "muted";
|
|
4711
|
+
/**
|
|
4712
|
+
* Which side of the line the cost falls on. `before` — nothing has been spent
|
|
4713
|
+
* yet; `after` — the work up to here is already paid for.
|
|
4714
|
+
*/
|
|
4715
|
+
edge?: "before" | "after";
|
|
4716
|
+
}
|
|
4717
|
+
/**
|
|
4718
|
+
* A gate — a rule across the list, never a row in it.
|
|
4719
|
+
*
|
|
4720
|
+
* It is dispatched by nobody, holds no slot and spends no participant, so it is
|
|
4721
|
+
* not a step: it is a **condition on the way into one**. Drawn as a full-width
|
|
4722
|
+
* rule with its chip hung off the side the cost falls on, *above this, nothing
|
|
4723
|
+
* has been spent* becomes something the drawing says rather than something a
|
|
4724
|
+
* legend has to claim.
|
|
4725
|
+
*/
|
|
4726
|
+
declare const TraceGate: React$1.ForwardRefExoticComponent<TraceGateProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4727
|
+
|
|
3717
4728
|
interface TreeViewProps {
|
|
3718
4729
|
style?: React$1.CSSProperties;
|
|
3719
4730
|
className?: string;
|
|
@@ -3895,4 +4906,4 @@ interface UseOverflowItemsResult {
|
|
|
3895
4906
|
*/
|
|
3896
4907
|
declare function useOverflowItems({ count, enabled, pinnedIndex, reserve, }: UseOverflowItemsOptions): UseOverflowItemsResult;
|
|
3897
4908
|
|
|
3898
|
-
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,
|
|
4909
|
+
export { AbsenceNote, type AbsenceNoteProps, type AbsenceReason, 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, type Artifact, ArtifactTable, type ArtifactTableProps, AttemptClock, type AttemptClockProps, type AttemptRow, 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, type ExchangeOption, ExchangeRecord, type ExchangeRecordProps, 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, KindChip, type KindChipProps, type KnownAddressTone, type KnownBound, type KnownDiffOp, type KnownLayer, type KnownLayerItemState, type KnownMetricTone, type KnownParticipantVerdict, type KnownRunKind, type KnownRunStatus, type KnownTerminalLevel, type Layer, type LayerBand, type LayerBracket, LayerChip, type LayerChipProps, type LayerForecast, 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, 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, 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, RatingControl, type RatingControlProps, RecordHeader, type RecordHeaderProps, RecordPager, type RecordPagerProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, type RuleEgress, type RuleProperties, RuleRow, type RuleRowProps, type RuleSelect, type RunKind, RunRow, type RunRowProps, type RunStatus, RunStatusText, type RunStatusTextProps, 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, 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, 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 UseOverflowItemsOptions, type UseOverflowItemsResult, type UseTourOptions, type Verdict, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, describeSlice, stateLabel as layerItemLabel, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, TONE as runStatusTones, split as splitAddress, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
|