@invana/ui 0.0.28 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -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;
@@ -393,7 +468,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
393
468
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
394
469
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
395
470
  declare const sheetVariants: (props?: ({
396
- side?: "bottom" | "left" | "right" | "top" | null | undefined;
471
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
397
472
  } & class_variance_authority_types.ClassProp) | undefined) => string;
398
473
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
399
474
  }
@@ -564,6 +639,67 @@ declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<Omit<ToggleGrou
564
639
  size?: "default" | "sm" | "lg" | null | undefined;
565
640
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLButtonElement>>;
566
641
 
642
+ /**
643
+ * How this address stood in the run, or in the rule being read.
644
+ *
645
+ * `denied` and `refused` are two different facts and the boards print both:
646
+ * a **denied** address is what the bound says, read at rest; a **refused** one
647
+ * is what actually happened when a run reached for it. One is a rule, the other
648
+ * is an event, and collapsing them loses *the bound was there and nothing ever
649
+ * tested it*.
650
+ */
651
+ type KnownAddressTone = "allowed" | "denied" | "refused" | "untouched";
652
+ /**
653
+ * The values the kit draws specially — **suggestions, not a limit.** Anything
654
+ * else renders with the neutral token and its own name.
655
+ */
656
+ type AddressTone = KnownAddressTone | (string & {});
657
+ /**
658
+ * Split an address so the **participant survives truncation**.
659
+ *
660
+ * `graph_data/model/Deals@1.0.0` is read right-to-left: the last segment is
661
+ * which thing, and the first two are which kind of thing — and the kind is
662
+ * already carried by the `LayerChip` beside it. So the head flexes and clips
663
+ * and the tail is pinned, giving `graph_data/mod…/Deals@1.0.0` rather than the
664
+ * `graph_data/model/Dea…` a plain `truncate` would give.
665
+ *
666
+ * A wildcard pattern is the same shape (`graph_data/model/Deals@*`), and
667
+ * `third_party/**` has no tail to lose.
668
+ */
669
+ declare function split(address: string): {
670
+ head: string;
671
+ tail: string;
672
+ };
673
+ interface AddressChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children" | "onClick"> {
674
+ /** `graph_data/model/Deals@1.0.0`, or a pattern — `third_party/**`. */
675
+ address: string;
676
+ tone?: AddressTone;
677
+ /**
678
+ * Open the participant this names. Present makes the chip a button; absent
679
+ * leaves it text, because an address that looks pressable and is not teaches
680
+ * the reader to stop pressing.
681
+ */
682
+ onOpen?: (address: string) => void;
683
+ }
684
+ /**
685
+ * One participant's address, printed so the participant stays readable.
686
+ *
687
+ * The address is the only identifier there is — the lens matches on it, the
688
+ * ledger records it, the run drawing expands it — so it appears wherever a
689
+ * bound, a touch or a refusal is shown, and it has to survive a narrow column
690
+ * without becoming three of the same string.
691
+ *
692
+ * **It truncates in the middle, not the end.** See {@link split}: the last
693
+ * segment is which thing and the ones before it are which kind, so the kind is
694
+ * what gives way. Clipping the tail would render every model in a Graph as
695
+ * `graph_data/model/…`.
696
+ *
697
+ * The separators sit at half opacity so the segments read as three parts of one
698
+ * name rather than one long token. Monospace for the same reason it is
699
+ * monospace in the ledger: these are compared by eye, down a column.
700
+ */
701
+ declare const AddressChip: React$1.ForwardRefExoticComponent<AddressChipProps & React$1.RefAttributes<HTMLSpanElement>>;
702
+
567
703
  declare const agentChipVariants: (props?: ({
568
704
  kind?: "agent" | "person" | null | undefined;
569
705
  inactive?: boolean | null | undefined;
@@ -586,46 +722,6 @@ interface AgentChipProps extends React$1.HTMLAttributes<HTMLSpanElement>, Varian
586
722
  */
587
723
  declare const AgentChip: React$1.ForwardRefExoticComponent<AgentChipProps & React$1.RefAttributes<HTMLSpanElement>>;
588
724
 
589
- /**
590
- * The closed set of capabilities a callable may spend.
591
- *
592
- * Nine values, fixed. The catalogue is grouped by these and an envelope
593
- * ceilings them, so this is a vocabulary rather than a list that grows.
594
- */
595
- type Bound = "none" | "network" | "graph_read" | "graph_write" | "schema_write" | "ingest" | "llm" | "plan_write" | "work_write";
596
- /**
597
- * One hue per bound, fixed — colour follows the bound, never its position in a
598
- * list. Five come from the status tokens because they already mean the right
599
- * thing; the other four take data-palette slots, which are chosen for being
600
- * distinguishable from each other rather than for meaning anything.
601
- */
602
- declare const SWATCH: Record<Bound, string>;
603
- interface BoundChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
604
- bound: Bound;
605
- /**
606
- * Render the swatch alone, for somewhere the name is already written beside
607
- * it. Use sparingly — see the note on colour below.
608
- */
609
- swatchOnly?: boolean;
610
- }
611
- /**
612
- * What a task is allowed to spend, as a swatch and a name.
613
- *
614
- * It appears on a task node in a flow, in a run's record header, on a catalogue
615
- * row and in the parameter form's contract card — everywhere a reader has to
616
- * know *what this act costs* before reading what it does.
617
- *
618
- * **The name is always there.** The swatch is a scanning aid, not the carrier:
619
- * nine hues cannot be told apart reliably, several pairs are close, and a
620
- * colour-blind reader gets nothing from any of them. `swatchOnly` exists for
621
- * the one case where the name is already printed next to the chip.
622
- *
623
- * Deliberately not a `Badge`. A badge carries *state* and takes a tone from the
624
- * status palette; a bound is a fixed property of a callable and must not read
625
- * as "this went well" because it happens to be green.
626
- */
627
- declare const BoundChip: React$1.ForwardRefExoticComponent<BoundChipProps & React$1.RefAttributes<HTMLSpanElement>>;
628
-
629
725
  declare const stateVariants: (props?: ({
630
726
  tone?: "active" | "error" | "running" | "draft" | "review" | null | undefined;
631
727
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -753,6 +849,78 @@ interface BarChartVProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
753
849
  */
754
850
  declare const BarChartV: React$1.ForwardRefExoticComponent<BarChartVProps & React$1.RefAttributes<HTMLDivElement>>;
755
851
 
852
+ /**
853
+ * The capabilities Invana ships today — **suggestions, not a limit.**
854
+ *
855
+ * These are what {@link Bound} autocompletes to. They bind nothing: a product
856
+ * that adds a `vector_write` bound as it grows passes `"vector_write"` and the
857
+ * chip draws it. The catalogue groups by these and an envelope ceilings them,
858
+ * but that is the *runtime's* vocabulary to police — a chip that refused to
859
+ * render an unknown bound would make the design kit a release blocker for
860
+ * every new capability.
861
+ */
862
+ type KnownBound = "none" | "network" | "graph_read" | "graph_write" | "schema_write" | "ingest" | "llm" | "plan_write" | "work_write";
863
+ /**
864
+ * What a callable may spend — any identifier at all.
865
+ *
866
+ * `(string & {})` keeps the known set autocompleting while accepting anything
867
+ * else without a cast. See {@link KnownBound}.
868
+ */
869
+ type Bound = KnownBound | (string & {});
870
+ /**
871
+ * What each bound is painted with — **the kit ships no hues.**
872
+ *
873
+ * Which colour means `schema_write` is a product's decision. Four of the nine
874
+ * were only ever data-palette slots picked for being distinguishable from one
875
+ * another, which is exactly the kind of choice a component should not be
876
+ * making on a consumer's behalf; and holding the map forced every consumer
877
+ * onto a stylesheet that defines those slots, which is how `bg-data-*` came to
878
+ * be dead in the precompiled `@invana/ui/styles.css` without anyone noticing.
879
+ *
880
+ * Values are class strings, so a surface spends whatever its own Tailwind
881
+ * build has — a data-palette token, a status token, a brand colour. A bound
882
+ * left out draws in the neutral.
883
+ */
884
+ type BoundPalette = Partial<Record<Bound, string>>;
885
+ interface BoundChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
886
+ bound: Bound;
887
+ /**
888
+ * Render the swatch alone, for somewhere the name is already written beside
889
+ * it. Use sparingly — see the note on colour below.
890
+ */
891
+ swatchOnly?: boolean;
892
+ /** What to call it, when the identifier is not what this surface says. */
893
+ label?: React$1.ReactNode;
894
+ /**
895
+ * This chip's swatch class, given directly — `bg-data-7`, `bg-violet-500`.
896
+ * The shortest path when a call site draws one chip and knows its bound.
897
+ * Wins over {@link BoundChipProps.palette}.
898
+ */
899
+ swatch?: string;
900
+ /**
901
+ * What the bounds are painted with, when a caller draws several and would
902
+ * rather state the map once. Only this chip's own bound is read.
903
+ */
904
+ palette?: BoundPalette;
905
+ }
906
+ /**
907
+ * What a task is allowed to spend, as a swatch and a name.
908
+ *
909
+ * It appears on a task node in a flow, in a run's record header, on a catalogue
910
+ * row and in the parameter form's contract card — everywhere a reader has to
911
+ * know *what this act costs* before reading what it does.
912
+ *
913
+ * **The name is always there.** The swatch is a scanning aid, not the carrier:
914
+ * nine hues cannot be told apart reliably, several pairs are close, and a
915
+ * colour-blind reader gets nothing from any of them. `swatchOnly` exists for
916
+ * the one case where the name is already printed next to the chip.
917
+ *
918
+ * Deliberately not a `Badge`. A badge carries *state* and takes a tone from the
919
+ * status palette; a bound is a fixed property of a callable and must not read
920
+ * as "this went well" because it happens to be green.
921
+ */
922
+ declare const BoundChip: React$1.ForwardRefExoticComponent<BoundChipProps & React$1.RefAttributes<HTMLSpanElement>>;
923
+
756
924
  interface ButtonWithTooltipProps extends ButtonProps {
757
925
  tooltip: React__default.ReactNode;
758
926
  }
@@ -784,6 +952,247 @@ interface CannotAnswerCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
784
952
  */
785
953
  declare const CannotAnswerCard: React$1.ForwardRefExoticComponent<CannotAnswerCardProps & React$1.RefAttributes<HTMLDivElement>>;
786
954
 
955
+ /**
956
+ * The classes of participant Invana ships today — **suggestions, not a limit.**
957
+ *
958
+ * These are what {@link Layer} autocompletes to. They bind nothing: a product
959
+ * that grows a `vector_store` layer next week passes `"vector_store"` and every
960
+ * component here draws it, because a component that had to be edited before a
961
+ * developer could name a new layer is a component that owns the product's
962
+ * vocabulary.
963
+ *
964
+ * `agent` is the **spine**: the runtime itself, which does the participating
965
+ * rather than being a participant, and is never governed. Nothing in this file
966
+ * knows that — a band says so with `spine`, see `LayerStrip`.
967
+ */
968
+ type KnownLayer = "graph_data" | "llm" | "third_party" | "cache" | "human" | "agent";
969
+ /**
970
+ * What a participant **is** — any identifier at all.
971
+ *
972
+ * `(string & {})` is what keeps both halves: the known set still autocompletes
973
+ * and still documents itself, while an unknown string is accepted without a
974
+ * cast. Widening this to plain `string` would silently drop the suggestions;
975
+ * narrowing it back to the union would make the kit the gatekeeper of a
976
+ * vocabulary it does not own.
977
+ */
978
+ type Layer = KnownLayer | (string & {});
979
+ /**
980
+ * What a reader calls the layer: the identifier with its underscores opened up.
981
+ *
982
+ * Derived rather than looked up — a table would have to be edited for every
983
+ * layer a product adds, and for all six Invana ships today the table said
984
+ * exactly this anyway (`graph_data` → `graph data`). A layer that wants
985
+ * something else passes `label`.
986
+ */
987
+ declare const layerLabel: (layer: Layer) => string;
988
+ /**
989
+ * How one layer is painted. **The kit ships no hues** — a consumer supplies
990
+ * these, because which colour means `llm` is a product's decision and not a
991
+ * component's.
992
+ *
993
+ * Both are class strings rather than colours, so a surface spends whatever
994
+ * palette its own Tailwind build already has: `bg-data-7` from
995
+ * `@invana/styling`, a brand token, a plain `bg-violet-500`. A component that
996
+ * held the map would force every consumer onto the kit's palette *and* onto a
997
+ * stylesheet that defines it — which is how `bg-data-*` came to be dead in the
998
+ * precompiled `@invana/ui/styles.css` without anyone noticing.
999
+ *
1000
+ * It is passed to the component that draws, as a prop, every time — never
1001
+ * installed once for a tree. A caller restating its palette at four call sites
1002
+ * is the honest cost: the alternative hides *which* colours a drawing is using
1003
+ * behind a provider somebody else mounted.
1004
+ *
1005
+ * - `swatch` is the **solid mark**: the dot beside a name, the rail down a bar.
1006
+ * - `tint` is the **wash**: a bar's ground and edge together. Keep it faint —
1007
+ * it sits *behind* text, so a hue dark enough to label in is a hue too dark
1008
+ * to wash with.
1009
+ * - `text` is the hue **as type**: a participant address written in its layer's
1010
+ * colour, so `model/Orders@v2` and the `graph data` dot above it are visibly
1011
+ * the same thing. This is the one that has to clear a contrast floor, which
1012
+ * is why it is yours to choose and separate from `swatch` — the token that
1013
+ * makes a legible 6px dot is often not the one that makes legible 13px mono.
1014
+ */
1015
+ interface LayerPaint {
1016
+ /** The solid mark — `bg-data-7`. */
1017
+ swatch?: string;
1018
+ /** The wash, ground and edge — `border-data-7/35 bg-data-7/10`. */
1019
+ tint?: string;
1020
+ /** The hue as type, for an address that should read as its layer — `text-data-7`. */
1021
+ text?: string;
1022
+ }
1023
+ /**
1024
+ * What each layer is painted with. Partial on purpose: a layer left out falls
1025
+ * back to the neutral, which is a legible answer rather than a blank one.
1026
+ */
1027
+ type LayerPalette = Partial<Record<Layer, LayerPaint>>;
1028
+ /**
1029
+ * One layer's paint, with the neutral filled in for anything unsaid — so a
1030
+ * caller never branches on `undefined` to draw a dot.
1031
+ *
1032
+ * There is no provider and no context. Colour arrives as the `palette` prop on
1033
+ * the component that draws, every time: a chip painted from somewhere up the
1034
+ * tree is a chip whose colour you cannot find by reading its call site.
1035
+ */
1036
+ declare const layerPaint: (palette: LayerPalette | undefined, layer: Layer) => Required<LayerPaint>;
1037
+ interface LayerChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children"> {
1038
+ layer: Layer;
1039
+ /**
1040
+ * How many participants this layer holds — `graph data 4`. Omit where the
1041
+ * count is already in the row, and note that `0` is a fact worth printing:
1042
+ * *nothing is configured* reads differently from *nothing matched*.
1043
+ */
1044
+ count?: number;
1045
+ /** What to call it, when {@link layerLabel} is not what this surface says. */
1046
+ label?: React$1.ReactNode;
1047
+ /**
1048
+ * The layer is closed, empty or out of view: the swatch drops to the muted
1049
+ * token and the label goes with it. The chip stays legible — this is *not
1050
+ * in play*, never *not there*.
1051
+ */
1052
+ dim?: boolean;
1053
+ /**
1054
+ * This chip's swatch class, given directly — `bg-data-7`, `bg-violet-500`.
1055
+ * The shortest path when a call site draws one chip and knows its layer.
1056
+ * Wins over {@link LayerChipProps.palette}.
1057
+ */
1058
+ swatch?: string;
1059
+ /**
1060
+ * What the layers are painted with, when a caller draws several and would
1061
+ * rather state the map once. Only this chip's own layer is read.
1062
+ */
1063
+ palette?: LayerPalette;
1064
+ }
1065
+ /**
1066
+ * One class of participant, as a swatch and a name.
1067
+ *
1068
+ * It heads a `LayerSection`, bands a run's `LayerStrip`, and counts a layer in
1069
+ * the Worlds drawer — everywhere a reader has to know *what kind of thing this
1070
+ * is* before reading which one.
1071
+ *
1072
+ * **The name is always there.** Six hues cannot be told apart reliably and a
1073
+ * colour-blind reader gets nothing from any of them: the swatch speeds up
1074
+ * scanning a list you can already read, and carries nothing on its own.
1075
+ *
1076
+ * Deliberately not a `Badge` and deliberately not `BoundChip`. A badge carries
1077
+ * *state* from the status palette; a bound is what a callable may **spend**; a
1078
+ * layer is what a participant **is**. The two chips co-occur on the agent
1079
+ * boards, which is why they never share a hue.
1080
+ */
1081
+ declare const LayerChip: React$1.ForwardRefExoticComponent<LayerChipProps & React$1.RefAttributes<HTMLSpanElement>>;
1082
+
1083
+ /** The four roles a plan may name. Fixed — `tier` would not survive a re-cast. */
1084
+ type CastRole = "extract" | "decide" | "judge" | "embed";
1085
+ /**
1086
+ * One thing a lens does to the world it is read against.
1087
+ *
1088
+ * A closed set, because the drawer's job is *what does this narrow* answered at
1089
+ * a glance, and a free-text summary is a sentence each caller writes
1090
+ * differently. Empty means the lens narrows nothing — which is a real state and
1091
+ * the row says so in words, never with a blank.
1092
+ */
1093
+ type Narrowing = {
1094
+ kind: "allow";
1095
+ count: number;
1096
+ } | {
1097
+ kind: "deny";
1098
+ count: number;
1099
+ } | {
1100
+ kind: "sliced";
1101
+ } | {
1102
+ kind: "excludes";
1103
+ properties: string[];
1104
+ } | {
1105
+ kind: "closes";
1106
+ layers: Layer[];
1107
+ } | {
1108
+ kind: "casts";
1109
+ roles: CastRole[];
1110
+ };
1111
+ interface LensUsage {
1112
+ /** How many runs opened under this lens. `0` is printed, not hidden. */
1113
+ runs: number;
1114
+ /** Already humanised — `2h ago`. The row does not own a clock. */
1115
+ lastUsed?: string;
1116
+ }
1117
+ interface LensRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
1118
+ name: string;
1119
+ narrows?: Narrowing[];
1120
+ usage?: LensUsage;
1121
+ selected?: boolean;
1122
+ onSelect?: (name: string) => void;
1123
+ /**
1124
+ * What the layers of a `closes` narrowing are painted with. Omitted, those
1125
+ * chips draw in the neutral.
1126
+ */
1127
+ palette?: LayerPalette;
1128
+ }
1129
+ /**
1130
+ * One world in the Worlds drawer: its name, what it narrows, and how used it is.
1131
+ *
1132
+ * **What it narrows is chips, not prose.** A world is picked by comparing it
1133
+ * with the four above it, and four sentences do not compare — six fixed kinds
1134
+ * of narrowing do. `closes` renders its layers as `LayerChip`s because *which*
1135
+ * layer is closed is the part being compared.
1136
+ *
1137
+ * **A world that narrows nothing says so in words.** `Everything` is a real
1138
+ * world and the default one; a blank row would read as a world whose summary
1139
+ * failed to load, which is the opposite of the reassurance it is there to give.
1140
+ *
1141
+ * **Usage is a fact, not a ranking.** `used in 34 runs · last 2h ago` tells a
1142
+ * reader whether they are about to edit something live. It never sorts the list
1143
+ * — a world used once may be the one that matters, and a list that reorders
1144
+ * itself under you cannot be scanned twice.
1145
+ */
1146
+ declare const LensRow: React$1.ForwardRefExoticComponent<LensRowProps & React$1.RefAttributes<HTMLDivElement>>;
1147
+
1148
+ /**
1149
+ * The four roles, in the order a run spends them. Fixed, and **always all four**
1150
+ * — see the note on the component.
1151
+ */
1152
+ declare const CAST_ROLES: CastRole[];
1153
+ /** Where a resolved address came from. Innermost wins. */
1154
+ type CastSource = "todo" | "plan" | "agent" | "shipped";
1155
+ interface CastResolution {
1156
+ role: CastRole;
1157
+ /** `null` when nothing casts the role and no shipped default resolves it. */
1158
+ address: string | null;
1159
+ allowed: boolean;
1160
+ /** The rule that denied it, when one did — so a refusal names its bound. */
1161
+ ruleMatched?: string | null;
1162
+ source?: CastSource;
1163
+ }
1164
+ interface CastTableProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
1165
+ /** What the lens itself casts: role → model address. Partial is normal. */
1166
+ cast?: Partial<Record<CastRole, string>>;
1167
+ /**
1168
+ * The same four roles after resolution — innermost wins, then checked against
1169
+ * the effective rules. Absent leaves the table read as *what this lens says*
1170
+ * rather than *what a run would get*.
1171
+ */
1172
+ resolved?: CastResolution[];
1173
+ readOnly?: boolean;
1174
+ }
1175
+ /**
1176
+ * `role → resolves to → why this one`, four fixed rows.
1177
+ *
1178
+ * A plan names a **role**, not a model: `decide` says *how much this matters*,
1179
+ * which stays true when the line-up moves, in a way `tier` and a hard-coded
1180
+ * model id do not. The cast is what turns the role into an address.
1181
+ *
1182
+ * **All four rows, always — including the ones nothing casts.** A table that
1183
+ * showed only what was set would make *nothing casts `judge`* invisible, and
1184
+ * that is precisely the state worth seeing before a run opens: it is the one
1185
+ * that falls to a shipped default, which may name a model this Graph is not
1186
+ * credentialed for.
1187
+ *
1188
+ * **The cast is not a bound.** It picks *within* the rules and never widens
1189
+ * them: innermost wins, and the resolved address is then checked against the
1190
+ * effective rules and refused by name if denied. That is why a denied row names
1191
+ * the rule rather than just going red — the recourse is to edit that rule, and
1192
+ * the reader has to know which.
1193
+ */
1194
+ declare const CastTable: React$1.ForwardRefExoticComponent<CastTableProps & React$1.RefAttributes<HTMLDivElement>>;
1195
+
787
1196
  interface ChatSessionProps {
788
1197
  /** The message list — typically `<ChatSessionMessage />` nodes. */
789
1198
  children?: React$1.ReactNode;
@@ -1266,7 +1675,12 @@ interface DiagnosisCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
1266
1675
  */
1267
1676
  declare const DiagnosisCard: React$1.ForwardRefExoticComponent<DiagnosisCardProps & React$1.RefAttributes<HTMLDivElement>>;
1268
1677
 
1269
- type DiffOp = "add" | "remove" | "change";
1678
+ type KnownDiffOp = "add" | "remove" | "change";
1679
+ /**
1680
+ * The values the kit draws specially — **suggestions, not a limit.** Anything
1681
+ * else renders with the neutral token and its own name.
1682
+ */
1683
+ type DiffOp = KnownDiffOp | (string & {});
1270
1684
  interface DiffRowProps extends Omit<React$1.HTMLAttributes<HTMLLIElement>, "children"> {
1271
1685
  op?: DiffOp;
1272
1686
  /** What kind of thing changed — `node`, `edge`, `property`. */
@@ -1331,6 +1745,49 @@ interface DivergingBarProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
1331
1745
  */
1332
1746
  declare const DivergingBar: React$1.ForwardRefExoticComponent<DivergingBarProps & React$1.RefAttributes<HTMLDivElement>>;
1333
1747
 
1748
+ /**
1749
+ * What of the Graph's data may accompany a call across the boundary.
1750
+ *
1751
+ * A **closed** set, because an open one is a list nobody can audit: a reader
1752
+ * has to know that what is not named cannot be sent, and that only holds if the
1753
+ * vocabulary is fixed.
1754
+ */
1755
+ type EgressClass = "type_names" | "property_names" | "the_question" | "property_values" | "record_ids" | "aggregates" | "everything";
1756
+ interface EgressListProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
1757
+ /** The destination this governs — `llm/anthropic-prod/claude-opus-5`. */
1758
+ to: string;
1759
+ /** What may be sent. **Empty is the default and means nothing may.** */
1760
+ classes?: EgressClass[];
1761
+ /**
1762
+ * What was actually withheld on a real crossing. Absent reads as a **rule**
1763
+ * at rest; present reads as an **event** — see the note below.
1764
+ */
1765
+ cut?: EgressClass[];
1766
+ }
1767
+ /**
1768
+ * Per destination: what may be sent, and what was cut.
1769
+ *
1770
+ * **Egress is declared per destination, on the rule that matched it.** A
1771
+ * run-wide setting would have to be the strictest of its destinations, which is
1772
+ * the least useful one — so this component is always about *one* address, and a
1773
+ * surface showing several renders several.
1774
+ *
1775
+ * **Reading a thing and sending it are different permissions.** A query may
1776
+ * filter on `Deal.revenue` while the value never enters a prompt — used to
1777
+ * **compute**, not to **reason**. That is the distinction this list exists to
1778
+ * make visible, and it is why `property_values` being absent is worth as much
1779
+ * screen as the classes that are present.
1780
+ *
1781
+ * **`cut` is what makes it evidence rather than configuration.** The same
1782
+ * component states the bound before a run and what the bound actually withheld
1783
+ * after one; without `cut`, a reader cannot tell a rule that did work from a
1784
+ * rule that never bit.
1785
+ *
1786
+ * An empty `classes` is drawn in words, because the lens default is `[]` and a
1787
+ * blank row would read as *not configured* rather than *nothing may leave*.
1788
+ */
1789
+ declare const EgressList: React$1.ForwardRefExoticComponent<EgressListProps & React$1.RefAttributes<HTMLDivElement>>;
1790
+
1334
1791
  /**
1335
1792
  * How an answer's records are rendered. A kind is a *body inside* the emission
1336
1793
  * card, never a block of its own (DS9) — so this names the body, it does not
@@ -1433,6 +1890,41 @@ declare class ErrorBoundary extends Component<{
1433
1890
  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;
1434
1891
  }
1435
1892
 
1893
+ interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
1894
+ /**
1895
+ * Right-aligned trailing text — a count, a position, a state. Kept separate
1896
+ * from `children` so the label stays left and the fact stays right without
1897
+ * every call site building its own flex row.
1898
+ */
1899
+ aside?: React$1.ReactNode;
1900
+ /**
1901
+ * `muted` (default) for a label being scanned past, `foreground` when it
1902
+ * titles a card that has no other heading, `accent` when it names something
1903
+ * the reader is being taught.
1904
+ */
1905
+ tone?: "muted" | "foreground" | "accent";
1906
+ children?: React$1.ReactNode;
1907
+ }
1908
+ /**
1909
+ * The smallest heading in the system: a label over the thing it names.
1910
+ *
1911
+ * `WHY IT MATTERS`, `1 · CONNECTED`, `OPTIONAL`, `REFERENCED COMPONENTS`. It
1912
+ * titles a band of content without the weight — or the 35px and the rule — of
1913
+ * a {@link SectionHeader}, so several can sit in one scrolling column and still
1914
+ * read as subordinate to the panel's own title.
1915
+ *
1916
+ * Uppercase at `text-sm` with tracking, because at this size caps are what
1917
+ * separate a label from the sentence under it; lowercase at 11px reads as body
1918
+ * copy set small. That is also why it is a component rather than four utility
1919
+ * classes: the treatment was being retyped, and a label that drifts a weight or
1920
+ * a tracking step in one panel stops reading as the same kind of thing.
1921
+ *
1922
+ * `tone="accent"` is for a label that names something the reader is being
1923
+ * *taught* rather than something they are scanning — a callout's kind, a
1924
+ * concept's name. Use it rarely; muted is the default for a reason.
1925
+ */
1926
+ declare const Eyebrow: React$1.ForwardRefExoticComponent<EyebrowProps & React$1.RefAttributes<HTMLDivElement>>;
1927
+
1436
1928
  interface FilterBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
1437
1929
  /** The filter controls. `FilterChip`s, a `SearchInput`, a toggle. */
1438
1930
  children?: React$1.ReactNode;
@@ -1522,6 +2014,316 @@ interface HeatStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "c
1522
2014
  */
1523
2015
  declare const HeatStrip: React$1.ForwardRefExoticComponent<HeatStripProps & React$1.RefAttributes<HTMLDivElement>>;
1524
2016
 
2017
+ interface LayerSectionProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "title"> {
2018
+ layer: Layer;
2019
+ /**
2020
+ * What this layer amounts to, in the reader's words — `permitted whole`,
2021
+ * `4 of 5 models · sliced`, `closed · nothing but the two below`.
2022
+ *
2023
+ * **A closed layer says so here.** Closing a layer is what picking four
2024
+ * models out of six means, and it is a stated field rather than something
2025
+ * inferred from *there is an allow rule in this band* — so the band has to
2026
+ * print it, or an auditor reads an allow-list as a list of exceptions.
2027
+ */
2028
+ summary?: React$1.ReactNode;
2029
+ /** The layer's `RuleRow`s. None is a real state — see `summary`. */
2030
+ children?: React$1.ReactNode;
2031
+ /** How many participants the layer holds, shown on the chip. */
2032
+ count?: number;
2033
+ /**
2034
+ * What the layer is painted with — only this band's own layer is read.
2035
+ * Omitted, the chip draws in the neutral.
2036
+ */
2037
+ palette?: LayerPalette;
2038
+ /** The layer is out of view for this lens: the whole band dims. */
2039
+ dim?: boolean;
2040
+ }
2041
+ /**
2042
+ * One layer's band of rules, under the layer's own name and summary.
2043
+ *
2044
+ * A lens reads as five of these stacked — graph data, llm, third party, cache,
2045
+ * human — so *what is shut* is answered by scanning five summary lines rather
2046
+ * than by reading every rule. That is the shape the Worlds and Guardrails
2047
+ * drawers share, which is why the band is a component and not a heading each
2048
+ * screen retypes.
2049
+ *
2050
+ * **A band with no rules still appears.** An absent layer and a layer with
2051
+ * nothing in it are different facts: one is *this Graph has no third parties
2052
+ * configured*, the other is *it has them and this lens admits none*. A band
2053
+ * that vanished when empty would make the two look alike, and the second is the
2054
+ * one worth seeing.
2055
+ *
2056
+ * The rule is subordinate to the band, so the band's label is a `LayerChip`
2057
+ * rather than a heading — the panel's own title is the heading, and five
2058
+ * headings under it would compete with it.
2059
+ */
2060
+ declare const LayerSection: React$1.ForwardRefExoticComponent<LayerSectionProps & React$1.RefAttributes<HTMLDivElement>>;
2061
+
2062
+ /**
2063
+ * What an item is doing where it sits — the two tenses in one vocabulary.
2064
+ *
2065
+ * `declared` is the plan tense: this is what the playbook **will** engage.
2066
+ * `out` · `in` · `refused` · `skipped` are the run tense: what it did engage,
2067
+ * what a bound stopped, and what it never reached for. Refused and skipped stay
2068
+ * two different facts, and both are drawn — a drawing that showed only what
2069
+ * happened would answer *what did this run do* and not *what was it stopped
2070
+ * from doing*, and the second is the question the strip exists for.
2071
+ */
2072
+ type KnownLayerItemState = "declared" | "out" | "in" | "refused" | "skipped";
2073
+ /**
2074
+ * What an item is doing — **suggestions, not a limit.** A run that grows a
2075
+ * `deferred` or a `retried` passes it and the bar draws: the neutral edge, and
2076
+ * the state's own name under the label. Only the states above carry special
2077
+ * drawing, because only they have a meaning defined here to draw.
2078
+ */
2079
+ type LayerItemState = KnownLayerItemState | (string & {});
2080
+ /** The run half of {@link LayerItemState}, as the ledger's `direction` column. */
2081
+ type TouchDirection = Exclude<KnownLayerItemState, "declared"> | (string & {});
2082
+ /**
2083
+ * One participant under a band — the row a task actually lands on.
2084
+ *
2085
+ * A band says *llm*; a part says **which** llm, or which role a caller may
2086
+ * re-cast: `role: decide`, `model/Orders@v2`, `third_party/app/email`. Reading
2087
+ * a plan is reading its parts, because that is the list a world is checked
2088
+ * against.
2089
+ */
2090
+ interface LayerPart {
2091
+ id: string;
2092
+ /** The participant address, or the role — `model/Orders@v2`, `role: decide`. */
2093
+ label: string;
2094
+ /** What the caller still owes, or what the crossing is — `egress: the note`. */
2095
+ note?: string;
2096
+ }
2097
+ interface LayerBand {
2098
+ layer: Layer;
2099
+ /** Overrides the layer's own name. */
2100
+ label?: React$1.ReactNode;
2101
+ /** Right of the name — `declared · 1`, `nothing declared`, `2 roles`. */
2102
+ note?: string;
2103
+ /** The participants under it, each its own row. */
2104
+ parts?: LayerPart[];
2105
+ /**
2106
+ * This band is the **spine** — the runtime's own dispatches, which the other
2107
+ * bands are timed against and which is never governed. Its wire runs the
2108
+ * whole axis and it is never drawn as unspent.
2109
+ *
2110
+ * The band says so rather than the component recognising a layer by name:
2111
+ * `agent` is Invana's spine, but the layer vocabulary is a product's to grow
2112
+ * and a strip that hard-coded one of its values would be a strip that had to
2113
+ * be edited before anyone could rename it.
2114
+ */
2115
+ spine?: boolean;
2116
+ }
2117
+ /**
2118
+ * One task, where it sits and how long it takes.
2119
+ *
2120
+ * `start` and `end` are in the axis's own unit — a step ordinal under `seq`, a
2121
+ * millisecond under `elapsed`. A task with no `end` is an instant and is drawn
2122
+ * at the minimum width.
2123
+ */
2124
+ interface LayerItem {
2125
+ id: string;
2126
+ /** The task. This is the only place a task name is written. */
2127
+ label: string;
2128
+ layer: Layer;
2129
+ /** The {@link LayerPart} it lands on. Omitted, it sits on the band itself. */
2130
+ part?: string;
2131
+ start: number;
2132
+ end?: number;
2133
+ state?: LayerItemState;
2134
+ /** Under the name — `decide`, `${supplier_id}`, `form: human`. */
2135
+ note?: string;
2136
+ /** The rule that refused it, when one did. */
2137
+ ruleMatched?: string;
2138
+ }
2139
+ /** A bounded repetition over a stretch of the axis — `loop · max 3`. */
2140
+ interface LayerBracket {
2141
+ id: string;
2142
+ start: number;
2143
+ end: number;
2144
+ label: string;
2145
+ }
2146
+ /**
2147
+ * A **seam** — a moment on the axis where everything stops at once.
2148
+ *
2149
+ * A gate belongs to no band. It is not dispatched, it holds no slot and it has
2150
+ * no participant, so it cannot be a bar: it is a condition on the way into a
2151
+ * step, and it stops every layer together. That makes it a **position on the
2152
+ * axis**, drawn as a rule the bands are crossed by — which is also the only
2153
+ * drawing left once task names stop being the axis, because there are no
2154
+ * columns for it to sit between.
2155
+ *
2156
+ * **Which side of the line the label sits on is the price of saying no.**
2157
+ * `before` means nothing has been spent yet; `after` means the work up to here
2158
+ * is already paid for. A reader gets what declining costs from where the mark
2159
+ * sits, before reading a word of it.
2160
+ */
2161
+ interface LayerSeam {
2162
+ id: string;
2163
+ /**
2164
+ * Where it sits, in the axis's own unit. **Omitted, it has no position** —
2165
+ * it can be raised at any dispatch, and it is drawn across the whole axis
2166
+ * rather than at a point. Placing such a gate on one moment would be a guess.
2167
+ */
2168
+ at?: number;
2169
+ /** What it is — `approval · before dispatch`, `verdict · after the pass`. */
2170
+ label: string;
2171
+ /** Which side of the line the cost falls on. Defaults to `before`. */
2172
+ edge?: "before" | "after";
2173
+ /**
2174
+ * It is not on the plan: it resolves at dispatch, so the same plan is gated
2175
+ * for one caller and not another. Drawn dashed — *this may appear*.
2176
+ */
2177
+ conditional?: boolean;
2178
+ /** Under the label — `nothing spent · finance-approvers · 4h`. */
2179
+ note?: string;
2180
+ }
2181
+ /** What the axis counts. */
2182
+ type LayerScale = "seq" | "elapsed";
2183
+ interface LayerStripProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
2184
+ bands: LayerBand[];
2185
+ items: LayerItem[];
2186
+ /**
2187
+ * `seq` is a plan's time — what happens before what, one unit per step.
2188
+ * `elapsed` is a run's, in milliseconds from the run opening.
2189
+ */
2190
+ scale?: LayerScale;
2191
+ /** The axis extent. Defaults to the items' own. */
2192
+ domain?: [number, number];
2193
+ /** Tick positions in axis units. Defaults to integers (`seq`) or five (`elapsed`). */
2194
+ ticks?: number[];
2195
+ formatTick?: (value: number) => string;
2196
+ brackets?: LayerBracket[];
2197
+ /**
2198
+ * The gates — the moments the whole drawing stops at. They get a row of their
2199
+ * own above the bands *and* a rule down the track, because a gate has to read
2200
+ * both as a thing with a name and as something every band is stopped by.
2201
+ */
2202
+ seams?: LayerSeam[];
2203
+ onSelectItem?: (itemId: string) => void;
2204
+ selectedItem?: string;
2205
+ /**
2206
+ * The bands whose participants are folded away, uncontrolled. Their tasks do
2207
+ * not disappear with them: they drop onto the band's own line, which is the
2208
+ * whole point of shutting one.
2209
+ */
2210
+ defaultCollapsed?: Layer[];
2211
+ /** The same, controlled. Pass it with `onCollapsedChange`. */
2212
+ collapsed?: Layer[];
2213
+ onCollapsedChange?: (layers: Layer[]) => void;
2214
+ /**
2215
+ * Offer the disclosures at all. Off, the bands render as given and a caller
2216
+ * that wants an overview passes the bands it wants shut in `collapsed`.
2217
+ */
2218
+ collapsible?: boolean;
2219
+ /**
2220
+ * A hover card on each task, saying what the bar cannot fit: the participant
2221
+ * it spends, when it runs and for how long, and the rule that refused it. On
2222
+ * by default; off falls back to the native `title`.
2223
+ */
2224
+ hoverDetail?: boolean;
2225
+ /** What that card says, when the default is not what this surface owes. */
2226
+ itemDetail?: (item: LayerItem) => React$1.ReactNode;
2227
+ /**
2228
+ * Keep the band labels in place while time scrolls. On by default: a run with
2229
+ * forty steps scrolls, and a band you cannot name is a row of marks.
2230
+ */
2231
+ frozenLabels?: boolean;
2232
+ /**
2233
+ * The label column, in `rem`. The default fits a layer name at the root size
2234
+ * beside its note — `human` and `3 rounds · 6m 01s` on one line.
2235
+ */
2236
+ labelWidth?: number;
2237
+ /** The narrowest the track is drawn before it scrolls, in `rem`. */
2238
+ minTrackWidth?: number;
2239
+ /**
2240
+ * The narrowest one tick may be squeezed to, in `rem`. Past that the strip
2241
+ * scrolls rather than shrinking: a bar too narrow to carry its task's name
2242
+ * has stopped being a drawing of that task.
2243
+ */
2244
+ minSlotWidth?: number;
2245
+ /**
2246
+ * What the layers are painted with. The same map reaches the band chips and
2247
+ * the bars, so a strip never disagrees with its own labels; a layer left out
2248
+ * draws in the neutral.
2249
+ */
2250
+ palette?: LayerPalette;
2251
+ }
2252
+ /** An unknown state is still a state: it says its own name. */
2253
+ declare const stateLabel: (state: LayerItemState) => string;
2254
+ /**
2255
+ * A plan or a run as layer bands over a time axis — a gantt, not a matrix.
2256
+ *
2257
+ * **Time is the x axis, in whichever tense the drawing is in.** A plan's time
2258
+ * is its order (`seq` — what happens before what); a run's is the wall clock
2259
+ * (`elapsed`). Task names are not an axis: a task is a bar, written once where
2260
+ * it sits, so a reader answers *what does this engage, and for how long* by
2261
+ * scanning across, and *what spends this participant* by scanning down.
2262
+ *
2263
+ * **A band opens into its participants.** `llm` is a band; `role: decide` and
2264
+ * `role: extract` are the rows under it, and the task sits on the row it
2265
+ * actually spends. The band alone cannot say which model a step will reach, and
2266
+ * that is the list a world is checked against.
2267
+ *
2268
+ * **A band folds its participants away without losing its tasks.** Shut, the
2269
+ * rows go and every task the layer spends drops onto the band's own line —
2270
+ * which is the overview: six lines, every task placed in time, *what was this
2271
+ * layer busy with* answered without reading twelve rows. Open, the same tasks
2272
+ * sit on the participant that spends them. `collapse all` in the header does it
2273
+ * to every band that has participants to fold, and nothing is hidden either
2274
+ * way: folding moves a task up a row, it never drops it.
2275
+ *
2276
+ * **A bar says what it is; hovering it says what it cannot fit.** The card
2277
+ * carries the participant the row truncates or folding took away, when the task
2278
+ * runs and for how long, and the rule that refused it — so a bar can stay a bar
2279
+ * rather than growing a second line for every fact somebody might want.
2280
+ *
2281
+ * **Refusals are struck in place, not removed.** A refused engagement keeps its
2282
+ * bar and takes a struck label, because the gap it would otherwise leave is
2283
+ * indistinguishable from a stretch of time that never reached for that layer.
2284
+ *
2285
+ * **A row nothing spent is drawn muted, never dropped.** A band no task
2286
+ * touched takes the muted ground **across its whole width** — label column and
2287
+ * track together — and so does a participant row under an open band:
2288
+ * `role: extract` declared and never reached reads as *this run did not get
2289
+ * that far*, not as an ordinary empty row. A dropped row would say nothing at
2290
+ * all, and *this plan never reaches for a cache* is a finding.
2291
+ *
2292
+ * The ground is the carrier, not the type colour. A row is unspent because it
2293
+ * is *empty*, and an empty row has no text to mute past its own name — greying
2294
+ * the chip while the row keeps the card ground says *this label is quiet* when
2295
+ * the fact is *nothing spends this layer*.
2296
+ *
2297
+ * **A bar wears its layer, and its state is the edge.** The hue tints the bar's
2298
+ * ground and border and runs down its rail; dashed says the task never ran, and
2299
+ * the destructive token says a rule refused it — the one fact that outranks
2300
+ * whose bar it is. The label itself stays on a text token: the data palette is
2301
+ * a surface palette here, which keeps `cache` as legible as `human`.
2302
+ *
2303
+ * **Refused is not unspent.** A row whose only task was refused keeps its full
2304
+ * weight: being stopped from reaching a participant and never reaching for one
2305
+ * are the two facts this drawing exists to separate.
2306
+ *
2307
+ * **A gate is a seam, not a row.** Nothing is dispatched at a gate, so it has
2308
+ * no participant and cannot be a bar; it stops every band at once, so it is a
2309
+ * position on the axis and the bands are crossed by it. Which side of the line
2310
+ * its label hangs on is what saying no costs — `before` and nothing is spent,
2311
+ * `after` and the pass is already paid for. A gate that can be raised at any
2312
+ * dispatch has no position and draws across the whole axis instead.
2313
+ *
2314
+ * **The spine band is always drawn**, with its wire running the whole axis: the
2315
+ * runtime's own dispatches are what the other bands are timed against, and it
2316
+ * is never governed. A band declares itself the spine with `spine` — the strip
2317
+ * recognises no layer by name. A spine that has dispatched nothing recedes like
2318
+ * any other empty row: the wire still says *this is the clock*, and the muted
2319
+ * ground says *it has not run yet*, which are two different facts.
2320
+ *
2321
+ * DOM over a fixed track, not canvas: it binds to no canvas store, it lives in
2322
+ * `mainSection` where no canvas exists, and frozen row labels plus text
2323
+ * selection are free here and expensive there.
2324
+ */
2325
+ declare const LayerStrip: React$1.ForwardRefExoticComponent<LayerStripProps & React$1.RefAttributes<HTMLDivElement>>;
2326
+
1525
2327
  type LegendSwatchKind = "dot" | "line" | "dashed" | "arrow" | "ring";
1526
2328
  interface LegendItemProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "color"> {
1527
2329
  /**
@@ -1558,6 +2360,75 @@ interface LegendProps extends React$1.HTMLAttributes<HTMLDivElement> {
1558
2360
  declare const Legend: React$1.ForwardRefExoticComponent<LegendProps & React$1.RefAttributes<HTMLDivElement>>;
1559
2361
  declare const LegendItem: React$1.ForwardRefExoticComponent<LegendItemProps & React$1.RefAttributes<HTMLDivElement>>;
1560
2362
 
2363
+ interface LensChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "children" | "onClick"> {
2364
+ /**
2365
+ * The lens in force. **`undefined` is a real, common state** and reads
2366
+ * `Everything` — see below.
2367
+ */
2368
+ lens?: {
2369
+ name: string;
2370
+ kind?: "world" | "guardrail";
2371
+ };
2372
+ /** Open the picker. Absent leaves the chip as a statement. */
2373
+ onPick?: () => void;
2374
+ }
2375
+ /**
2376
+ * Which world a run is being read under — the header's right-hand chip, and the
2377
+ * one on an agent's row.
2378
+ *
2379
+ * **No lens reads `Everything`, never blank and never `None`.** A Graph that
2380
+ * sets no lens sees the whole global model, every configured provider and every
2381
+ * third party its agents are credentialed for: the widest state is the default,
2382
+ * and it is a *state*, not a missing value. `None` would suggest nothing is in
2383
+ * view, which is the exact opposite of what is true. `Everything` is also still
2384
+ * inside the guardrails, which is why a guardrail is not a lens you pick.
2385
+ *
2386
+ * It is the smallest surface in Govern and the one most often on screen, so it
2387
+ * carries the name and nothing else. What that world narrows belongs in the
2388
+ * drawer the chip opens — a chip that listed its rules would be a rule list
2389
+ * that happened to be in a header.
2390
+ */
2391
+ declare const LensChip: React$1.ForwardRefExoticComponent<LensChipProps & React$1.RefAttributes<HTMLSpanElement>>;
2392
+
2393
+ interface MatchCandidate {
2394
+ address: string;
2395
+ matched: boolean;
2396
+ }
2397
+ interface MatchPreviewProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
2398
+ /** The pattern as typed, wildcards and all — `graph_data/model/Deals@*`. */
2399
+ pattern: string;
2400
+ /**
2401
+ * The catalogue, each entry saying whether this pattern reaches it. Both
2402
+ * halves are needed: see the note on near-misses.
2403
+ */
2404
+ matches?: MatchCandidate[];
2405
+ loading?: boolean;
2406
+ /** Cap the list; the rest are counted. Default 8. */
2407
+ limit?: number;
2408
+ }
2409
+ /**
2410
+ * What an address pattern matches **right now**, resolved against the live
2411
+ * catalogue as the pattern is typed.
2412
+ *
2413
+ * **Narrowing is picking, not writing.** Every control in the rule builder
2414
+ * offers what the catalogue holds, so nothing can name something that is not
2415
+ * there — and this is the surface that makes that true for the one control
2416
+ * which *is* free text. A pattern is written against what it visibly bites, not
2417
+ * from memory.
2418
+ *
2419
+ * **The near-misses are shown, greyed, not filtered out.** A preview listing
2420
+ * only hits cannot distinguish *this pattern is precise* from *this pattern is
2421
+ * wrong* — both render as a short list. Showing what it passed over is how a
2422
+ * reader sees that `Deals@1.0.0` missed because they wrote the version out
2423
+ * instead of `Deals@*`, which is the mistake that makes a bound quietly stop
2424
+ * applying on the next publish.
2425
+ *
2426
+ * **Nothing matched is a first-class state**, and distinct from a layer with
2427
+ * nothing in it. One means the pattern is wrong; the other means the Graph has
2428
+ * nothing of that kind configured yet.
2429
+ */
2430
+ declare const MatchPreview: React$1.ForwardRefExoticComponent<MatchPreviewProps & React$1.RefAttributes<HTMLDivElement>>;
2431
+
1561
2432
  interface MenuItemProps extends MenuItem {
1562
2433
  level?: number;
1563
2434
  }
@@ -1580,7 +2451,12 @@ declare const MenuItem: React$1.FC<MenuItemProps>;
1580
2451
  * Omit it for an ordinary measurement. A grid where every tile is coloured
1581
2452
  * carries no signal, and a number that is merely large is not a warning.
1582
2453
  */
1583
- type MetricTone = "running" | "success" | "warning" | "error" | "info";
2454
+ type KnownMetricTone = "running" | "success" | "warning" | "error" | "info";
2455
+ /**
2456
+ * The values the kit draws specially — **suggestions, not a limit.** Anything
2457
+ * else renders with the neutral token and its own name.
2458
+ */
2459
+ type MetricTone = KnownMetricTone | (string & {});
1584
2460
  interface MetricTileProps extends React$1.HTMLAttributes<HTMLDivElement> {
1585
2461
  /** What is being measured — `accepted`, `served (plan.verified)`, `hit rate`. */
1586
2462
  label: React$1.ReactNode;
@@ -2277,44 +3153,6 @@ interface PropertyRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>,
2277
3153
  declare const PropertyList: React$1.ForwardRefExoticComponent<PropertyListProps & React$1.RefAttributes<HTMLDListElement>>;
2278
3154
  declare const PropertyRow: React$1.ForwardRefExoticComponent<PropertyRowProps & React$1.RefAttributes<HTMLDivElement>>;
2279
3155
 
2280
- interface RecordHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
2281
- /**
2282
- * The record's state, as the dot on the left. Omit for a record that has no
2283
- * state of its own — a catalogue entry, a draft being edited.
2284
- */
2285
- tone?: StatusDotProps["tone"];
2286
- /**
2287
- * The record and its parents, outermost first. The **last** crumb is the
2288
- * record this surface is about and is set solid; the ones before it are the
2289
- * path to it and are muted.
2290
- *
2291
- * One crumb is the normal case — a run, a plan. Two is a child: `a run › the
2292
- * task inside it`.
2293
- */
2294
- crumbs: React$1.ReactNode[];
2295
- /** What is true about it — a `<BoundChip>`, a status `<Badge>`, a kind. */
2296
- chips?: React$1.ReactNode;
2297
- /** What you can do to it — prev/next, a view switch, buttons, a `…` menu. */
2298
- actions?: React$1.ReactNode;
2299
- }
2300
- /**
2301
- * Which record you are looking at, across the top of the surface showing it.
2302
- *
2303
- * A run dashboard, a step dashboard, a plan, a draft — every one of them opens
2304
- * with this line, so a reader who followed a link knows what they are reading
2305
- * before they read any of it.
2306
- *
2307
- * It is **not** a `ContextBar`. That is 28px under a panel and describes the
2308
- * *view* — counts, a keyboard hint, a tab-shaped switch. This is above the
2309
- * content and names the *record*, which is why the crumbs are mono: they are
2310
- * identifiers, not prose.
2311
- *
2312
- * It is not a `Breadcrumb` either, though it contains one shape of one. A
2313
- * breadcrumb is navigation up a tree; these two crumbs are a record and its
2314
- * parent, shown so the child is not read out of context.
2315
- */
2316
- declare const RecordHeader: React$1.ForwardRefExoticComponent<RecordHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
2317
-
2318
3156
  interface ProposalCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
2319
3157
  /** What is being proposed — `Draft pattern`. */
2320
3158
  title: React$1.ReactNode;
@@ -2391,6 +3229,44 @@ declare const DotRating: React$1.ForwardRefExoticComponent<DotRatingProps & Reac
2391
3229
  */
2392
3230
  declare const RatingControl: React$1.ForwardRefExoticComponent<RatingControlProps & React$1.RefAttributes<HTMLDivElement>>;
2393
3231
 
3232
+ interface RecordHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
3233
+ /**
3234
+ * The record's state, as the dot on the left. Omit for a record that has no
3235
+ * state of its own — a catalogue entry, a draft being edited.
3236
+ */
3237
+ tone?: StatusDotProps["tone"];
3238
+ /**
3239
+ * The record and its parents, outermost first. The **last** crumb is the
3240
+ * record this surface is about and is set solid; the ones before it are the
3241
+ * path to it and are muted.
3242
+ *
3243
+ * One crumb is the normal case — a run, a plan. Two is a child: `a run › the
3244
+ * task inside it`.
3245
+ */
3246
+ crumbs: React$1.ReactNode[];
3247
+ /** What is true about it — a `<BoundChip>`, a status `<Badge>`, a kind. */
3248
+ chips?: React$1.ReactNode;
3249
+ /** What you can do to it — prev/next, a view switch, buttons, a `…` menu. */
3250
+ actions?: React$1.ReactNode;
3251
+ }
3252
+ /**
3253
+ * Which record you are looking at, across the top of the surface showing it.
3254
+ *
3255
+ * A run dashboard, a step dashboard, a plan, a draft — every one of them opens
3256
+ * with this line, so a reader who followed a link knows what they are reading
3257
+ * before they read any of it.
3258
+ *
3259
+ * It is **not** a `ContextBar`. That is 28px under a panel and describes the
3260
+ * *view* — counts, a keyboard hint, a tab-shaped switch. This is above the
3261
+ * content and names the *record*, which is why the crumbs are mono: they are
3262
+ * identifiers, not prose.
3263
+ *
3264
+ * It is not a `Breadcrumb` either, though it contains one shape of one. A
3265
+ * breadcrumb is navigation up a tree; these two crumbs are a record and its
3266
+ * parent, shown so the child is not read out of context.
3267
+ */
3268
+ declare const RecordHeader: React$1.ForwardRefExoticComponent<RecordHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
3269
+
2394
3270
  interface RepairNoteProps extends React$1.HTMLAttributes<HTMLDivElement> {
2395
3271
  /** What was wrong — `unknown property Theme.velocity5d`. */
2396
3272
  from: React$1.ReactNode;
@@ -2487,6 +3363,135 @@ interface RichSelectProps {
2487
3363
  */
2488
3364
  declare function RichSelect({ options, value, onChange, multiple, label, placeholder, renderOption, renderValue, align, side, sideOffset, tooltip, tooltipSide, disabled, triggerClassName, contentClassName, className, }: RichSelectProps): React$1.JSX.Element;
2489
3365
 
3366
+ /** A slice along the axes the matched model **declared**. */
3367
+ interface RuleSelect {
3368
+ time?: {
3369
+ axis: string;
3370
+ from?: string;
3371
+ to?: string;
3372
+ };
3373
+ geo?: {
3374
+ axis: string;
3375
+ vocab?: string;
3376
+ in: string[];
3377
+ };
3378
+ dims?: Record<string, string[]>;
3379
+ }
3380
+ /**
3381
+ * What a published model version says may be narrowed.
3382
+ *
3383
+ * Empty is the default and means *nothing is selectable* — the model can still
3384
+ * be allowed or denied whole, it simply cannot be sliced. Nothing is inferred
3385
+ * from a property's name or type, because that would make *which rows did this
3386
+ * run see* depend on a guess.
3387
+ */
3388
+ interface DeclaredAxes {
3389
+ time?: {
3390
+ property: string;
3391
+ };
3392
+ geo?: {
3393
+ property: string;
3394
+ vocab?: string;
3395
+ };
3396
+ dims?: string[];
3397
+ }
3398
+ interface SliceLine {
3399
+ /** `time` · `geo` · a dimension's own name. */
3400
+ axisKind: string;
3401
+ text: string;
3402
+ /** The model declared no such axis — this slice would be refused at save. */
3403
+ undeclared?: boolean;
3404
+ }
3405
+ /**
3406
+ * One slice, as lines, with **the axis always named**.
3407
+ *
3408
+ * `time 2026-01-01 → 2026-06-30 · axis signed_at`. The axis is never implied: a
3409
+ * model declares which property carries valid time, two models in one Graph
3410
+ * declare different ones, and *which rows did this run see* must not depend on
3411
+ * the reader guessing which was used.
3412
+ *
3413
+ * When `declared` is given, a slice along an axis the model never declared is
3414
+ * marked — that is the refusal the authoring form has to show before a save,
3415
+ * naming the model **and** the axis.
3416
+ */
3417
+ declare function describeSlice(select: RuleSelect, declared?: DeclaredAxes): SliceLine[];
3418
+ interface SliceSummaryProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
3419
+ select?: RuleSelect;
3420
+ /**
3421
+ * The matched model version's declared axes. Given, the summary can mark a
3422
+ * slice the model cannot support; omitted, it states the slice and claims
3423
+ * nothing about whether it is legal.
3424
+ */
3425
+ declaredAxes?: DeclaredAxes;
3426
+ /** Which model is being sliced — named in the undeclared-axis refusal. */
3427
+ modelLabel?: string;
3428
+ /** `line` sits under a `RuleRow`; `block` stands alone on W3 and R2. */
3429
+ variant?: "line" | "block";
3430
+ }
3431
+ /**
3432
+ * What a rule narrows to, stated so the axis is never in doubt.
3433
+ *
3434
+ * **The axis is always named.** See {@link describeSlice} — this is the one
3435
+ * rule the component exists to hold, and it is why a slice is a component
3436
+ * rather than a template string at each call site.
3437
+ *
3438
+ * **An undeclared axis is shown, not hidden.** A lens asking for an axis a
3439
+ * model never declared is refused at save naming the model and the axis, so the
3440
+ * form has to render the illegal state on the way to being told about it.
3441
+ * Silently dropping the line would make the refusal arrive from nowhere.
3442
+ *
3443
+ * `variant="line"` is what a `RuleRow` renders — the same description, so the
3444
+ * two never drift into two accounts of one slice.
3445
+ */
3446
+ declare const SliceSummary: React$1.ForwardRefExoticComponent<SliceSummaryProps & React$1.RefAttributes<HTMLDivElement>>;
3447
+
3448
+ /** Which properties of the matched participant survive into the answer. */
3449
+ interface RuleProperties {
3450
+ /**
3451
+ * Excluded by name. Exclusion is the only form: an allow-list of properties
3452
+ * would silently drop a property added to the model later, which is the kind
3453
+ * of bound that stops applying without anybody editing it.
3454
+ */
3455
+ exclude?: string[];
3456
+ }
3457
+ /** What may accompany a crossing to this destination. */
3458
+ interface RuleEgress {
3459
+ may_send: string[];
3460
+ }
3461
+
3462
+ interface RuleRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
3463
+ /** The address pattern this rule matches — `graph_data/model/Deals@*`. */
3464
+ match: string;
3465
+ /** `true` allows, `false` denies. Deny wins at any specificity. */
3466
+ allow: boolean;
3467
+ properties?: RuleProperties;
3468
+ select?: RuleSelect;
3469
+ egress?: RuleEgress;
3470
+ /**
3471
+ * The row is being read rather than authored. Read-only rows lose the hover
3472
+ * affordance, so a guardrail somebody cannot edit does not look pressable.
3473
+ */
3474
+ readOnly?: boolean;
3475
+ }
3476
+ /**
3477
+ * One rule, read as a sentence: what it matches, whether it allows, and what it
3478
+ * narrows.
3479
+ *
3480
+ * It is the unit of a `LayerSection`, so a lens reads as five bands of these
3481
+ * rather than a table of five columns most of which are empty — a rule that
3482
+ * slices carries a select line, one that does not carries nothing.
3483
+ *
3484
+ * **Deny is the loud one.** An allow is the ordinary state and sits muted; a
3485
+ * deny takes the destructive token, because [deny wins at any specificity] and
3486
+ * a reader scanning a long lens for *what is shut* should find it without
3487
+ * reading every row.
3488
+ *
3489
+ * The sub-lines are facts about the match, so they hang under it and inherit
3490
+ * its indent rather than becoming columns. A row with none of them is one line
3491
+ * tall, which is what most rows are.
3492
+ */
3493
+ declare const RuleRow: React$1.ForwardRefExoticComponent<RuleRowProps & React$1.RefAttributes<HTMLDivElement>>;
3494
+
2490
3495
  /**
2491
3496
  * `sm` (26px) is the application field — a search box docked in a panel header,
2492
3497
  * beside a 30px tab strip. `default` (40px) stays the page size.
@@ -2504,41 +3509,6 @@ interface SearchInputProps extends Omit<React__default.ComponentProps<'input'>,
2504
3509
  }
2505
3510
  declare const SearchInput: React__default.FC<SearchInputProps>;
2506
3511
 
2507
- interface EyebrowProps extends React$1.HTMLAttributes<HTMLDivElement> {
2508
- /**
2509
- * Right-aligned trailing text — a count, a position, a state. Kept separate
2510
- * from `children` so the label stays left and the fact stays right without
2511
- * every call site building its own flex row.
2512
- */
2513
- aside?: React$1.ReactNode;
2514
- /**
2515
- * `muted` (default) for a label being scanned past, `foreground` when it
2516
- * titles a card that has no other heading, `accent` when it names something
2517
- * the reader is being taught.
2518
- */
2519
- tone?: "muted" | "foreground" | "accent";
2520
- children?: React$1.ReactNode;
2521
- }
2522
- /**
2523
- * The smallest heading in the system: a label over the thing it names.
2524
- *
2525
- * `WHY IT MATTERS`, `1 · CONNECTED`, `OPTIONAL`, `REFERENCED COMPONENTS`. It
2526
- * titles a band of content without the weight — or the 35px and the rule — of
2527
- * a {@link SectionHeader}, so several can sit in one scrolling column and still
2528
- * read as subordinate to the panel's own title.
2529
- *
2530
- * Uppercase at `text-meta` with tracking, because at this size caps are what
2531
- * separate a label from the sentence under it; lowercase at 11px reads as body
2532
- * copy set small. That is also why it is a component rather than four utility
2533
- * classes: the treatment was being retyped, and a label that drifts a weight or
2534
- * a tracking step in one panel stops reading as the same kind of thing.
2535
- *
2536
- * `tone="accent"` is for a label that names something the reader is being
2537
- * *taught* rather than something they are scanning — a callout's kind, a
2538
- * concept's name. Use it rarely; muted is the default for a reason.
2539
- */
2540
- declare const Eyebrow: React$1.ForwardRefExoticComponent<EyebrowProps & React$1.RefAttributes<HTMLDivElement>>;
2541
-
2542
3512
  interface SectionHeaderProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
2543
3513
  /** Sits before the title. A 14px lucide icon, usually. */
2544
3514
  icon?: React$1.ReactNode;
@@ -2852,6 +3822,10 @@ interface TaskNodeProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "ch
2852
3822
  taskKey: React$1.ReactNode;
2853
3823
  /** What it may spend. */
2854
3824
  bound: Bound;
3825
+ /** The bound's swatch class, given directly — `bg-data-7`. */
3826
+ boundSwatch?: string;
3827
+ /** The bounds' palette, when a caller would rather state the map once. */
3828
+ boundPalette?: BoundPalette;
2855
3829
  /**
2856
3830
  * How it went, when this node is painting a **run**. Omit when the node is
2857
3831
  * painting a plan or a draft, which have no status of their own.
@@ -2934,7 +3908,12 @@ type TerminalLineKind = "prompt" | "output" | "comment";
2934
3908
  * command you typed, what it printed, a comment. A run's log has no prompts and
2935
3909
  * no comments; every line is output, and what varies is how loud it is.
2936
3910
  */
2937
- type TerminalLevel = "info" | "warn" | "error" | "debug";
3911
+ type KnownTerminalLevel = "info" | "warn" | "error" | "debug";
3912
+ /**
3913
+ * The values the kit draws specially — **suggestions, not a limit.** Anything
3914
+ * else renders with the neutral token and its own name.
3915
+ */
3916
+ type TerminalLevel = KnownTerminalLevel | (string & {});
2938
3917
  interface TerminalLineProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
2939
3918
  kind?: TerminalLineKind;
2940
3919
  /**
@@ -3326,4 +4305,4 @@ interface UseOverflowItemsResult {
3326
4305
  */
3327
4306
  declare function useOverflowItems({ count, enabled, pinnedIndex, reserve, }: UseOverflowItemsOptions): UseOverflowItemsResult;
3328
4307
 
3329
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgentChip, type AgentChipProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, type AppStatusBarProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChartH, type BarChartHProps, BarChartV, type BarChartVProps, type BarDatum, type BaseNavProps, type Bound, BoundChip, type BoundChipProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChatSession, ChatSessionActivityRow, type ChatSessionActivityRowProps, type ChatSessionActivityStatus, ChatSessionActivitySubLine, type ChatSessionActivitySubLineProps, ChatSessionComposer, type ChatSessionComposerProps, ChatSessionContextChip, type ChatSessionContextChipProps, ChatSessionDisclosure, type ChatSessionDisclosureProps, ChatSessionMessage, type ChatSessionMessageAction, ChatSessionMessageOptions, type ChatSessionMessageOptionsProps, type ChatSessionMessageProps, type ChatSessionMessageRole, type ChatSessionMessageStatus, ChatSessionProgressLine, type ChatSessionProgressLineProps, ChatSessionPromptRow, type ChatSessionPromptRowProps, type ChatSessionProps, ChatSessionStatusBar, type ChatSessionStatusBarProps, ChatSessionTaskGroup, type ChatSessionTaskGroupProps, ChatSessionTaskRow, type ChatSessionTaskRowProps, type ChatSessionTaskStatus, CitationList, type CitationListProps, CitationMarker, CitationRow, type CitationRowProps, ClampedText, type ClampedTextProps, ClarifyCard, type ClarifyCardProps, type ClarifyOption, type ColumnDatum, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, type ContextBarProps, DiagnosisCard, type DiagnosisCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, type DiffListProps, type DiffOp, DiffRow, type DiffRowProps, DivergingBar, type DivergingBarProps, type DivergingDatum, DotRating, type DotRatingProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmissionCard, type EmissionCardProps, EmissionHeader, type EmissionHeaderProps, type EmissionKind, EmptyState, EmptyStateLock, type EmptyStateLockProps, type EmptyStateProps, ErrorBoundary, Eyebrow, type EyebrowProps, FilterBar, type FilterBarProps, FilterChip, type FilterChipProps, type HeatCell, type HeatState, HeatStrip, type HeatStripProps, HoverCard, HoverCardContent, HoverCardTrigger, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, MenuItem, type MenuItemProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, type MetricGridProps, MetricTile, type MetricTileProps, type MetricTone, NavBase, NavHorizontal, type NavHorizontalItem, NavHorizontalItems, type NavHorizontalItemsProps, type NavHorizontalProps, type NavItemConfig, NavItems, type NavItemsProps, type NavItemsVariant, type NavMenuItem, type NavSection, NavVertical, type NavVerticalItem, NavVerticalItems, type NavVerticalItemsProps, type NavVerticalProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, type NestedMenuProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelBox, type PanelBoxProps, PanelContent, type PanelContentProps, PanelStack, type PanelStackHandle, type PanelStackProps, type PanelStackSection, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, RatingControl, type RatingControlProps, RecordHeader, type RecordHeaderProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchInputSize, SectionHeader, type SectionHeaderProps, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Sparkline, type SparklineProps, Spinner, StatusDot, type StatusDotProps, type TabConfig, TabbedPanel, type TabbedPanelProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, type TaskGanttDetailCardProps, type TaskGanttDetailProps, type TaskGanttInstant, type TaskGanttProps, type TaskGanttSegment, type TaskGanttStatus, type TaskGanttTask, 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, Tour, type TourController, type TourProps, type TourReference, type TourStep, TreeItem, TreeView, type TreeViewProps, Typography, TypographyBlockquote, type TypographyBlockquoteProps, TypographyH1, type TypographyH1Props, TypographyH2, type TypographyH2Props, TypographyH3, type TypographyH3Props, TypographyH4, type TypographyH4Props, TypographyH5, type TypographyH5Props, TypographyH6, type TypographyH6Props, TypographyInlineCode, type TypographyInlineCodeProps, TypographyLarge, type TypographyLargeProps, TypographyLead, type TypographyLeadProps, TypographyList, type TypographyListProps, TypographyMuted, type TypographyMutedProps, TypographyP, type TypographyPProps, TypographyPre, type TypographyPreProps, TypographySmall, type TypographySmallProps, UnderDevelopment, type UnderDevelopmentProps, type UseOverflowItemsOptions, type UseOverflowItemsResult, type UseTourOptions, type Verdict, agentChipVariants, badgeVariants, SWATCH as boundSwatch, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, navigationMenuTriggerStyle, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
4308
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressChip, type AddressChipProps, type AddressTone, AgentChip, type AgentChipProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, type AppStatusBarProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChartH, type BarChartHProps, BarChartV, type BarChartVProps, type BarDatum, type BaseNavProps, type Bound, BoundChip, type BoundChipProps, type BoundPalette, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, ButtonWithTooltip, type ButtonWithTooltipProps, CAST_ROLES, CannotAnswerCard, type CannotAnswerCardProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CastResolution, type CastRole, type CastSource, CastTable, type CastTableProps, ChatSession, ChatSessionActivityRow, type ChatSessionActivityRowProps, type ChatSessionActivityStatus, ChatSessionActivitySubLine, type ChatSessionActivitySubLineProps, ChatSessionComposer, type ChatSessionComposerProps, ChatSessionContextChip, type ChatSessionContextChipProps, ChatSessionDisclosure, type ChatSessionDisclosureProps, ChatSessionMessage, type ChatSessionMessageAction, ChatSessionMessageOptions, type ChatSessionMessageOptionsProps, type ChatSessionMessageProps, type ChatSessionMessageRole, type ChatSessionMessageStatus, ChatSessionProgressLine, type ChatSessionProgressLineProps, ChatSessionPromptRow, type ChatSessionPromptRowProps, type ChatSessionProps, ChatSessionStatusBar, type ChatSessionStatusBarProps, ChatSessionTaskGroup, type ChatSessionTaskGroupProps, ChatSessionTaskRow, type ChatSessionTaskRowProps, type ChatSessionTaskStatus, CitationList, type CitationListProps, CitationMarker, CitationRow, type CitationRowProps, ClampedText, type ClampedTextProps, ClarifyCard, type ClarifyCardProps, type ClarifyOption, type ColumnDatum, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, type ContextBarProps, type DeclaredAxes, DiagnosisCard, type DiagnosisCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, type DiffListProps, type DiffOp, DiffRow, type DiffRowProps, DivergingBar, type DivergingBarProps, type DivergingDatum, DotRating, type DotRatingProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type EgressClass, EgressList, type EgressListProps, EmissionCard, type EmissionCardProps, EmissionHeader, type EmissionHeaderProps, type EmissionKind, EmptyState, EmptyStateLock, type EmptyStateLockProps, type EmptyStateProps, ErrorBoundary, Eyebrow, type EyebrowProps, FilterBar, type FilterBarProps, FilterChip, type FilterChipProps, type HeatCell, type HeatState, HeatStrip, type HeatStripProps, HoverCard, HoverCardContent, HoverCardTrigger, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, type KnownAddressTone, type KnownBound, type KnownDiffOp, type KnownLayer, type KnownLayerItemState, type KnownMetricTone, type KnownTerminalLevel, type Layer, type LayerBand, type LayerBracket, LayerChip, type LayerChipProps, type LayerItem, type LayerItemState, type LayerPaint, type LayerPalette, type LayerPart, type LayerScale, type LayerSeam, LayerSection, type LayerSectionProps, LayerStrip, type LayerStripProps, Legend, LegendItem, type LegendItemProps, type LegendProps, type LegendSwatchKind, LensChip, type LensChipProps, LensRow, type LensRowProps, type LensUsage, Link, type LinkProps, type MatchCandidate, MatchPreview, type MatchPreviewProps, MenuItem, type MenuItemProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, type MetricGridProps, MetricTile, type MetricTileProps, type MetricTone, type Narrowing, NavBase, NavHorizontal, type NavHorizontalItem, NavHorizontalItems, type NavHorizontalItemsProps, type NavHorizontalProps, type NavItemConfig, NavItems, type NavItemsProps, type NavItemsVariant, type NavMenuItem, type NavSection, NavVertical, type NavVerticalItem, NavVerticalItems, type NavVerticalItemsProps, type NavVerticalProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, type NestedMenuProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelBox, type PanelBoxProps, PanelContent, type PanelContentProps, PanelStack, type PanelStackHandle, type PanelStackProps, type PanelStackSection, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, type PropertyListProps, PropertyRow, type PropertyRowProps, ProposalCard, type ProposalCardProps, RatingControl, type RatingControlProps, RecordHeader, type RecordHeaderProps, RepairNote, type RepairNoteProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, type RetryNoteProps, RichSelect, type RichSelectOption, type RichSelectProps, type RuleEgress, type RuleProperties, RuleRow, type RuleRowProps, type RuleSelect, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SearchInputSize, SectionHeader, type SectionHeaderProps, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SliceLine, SliceSummary, type SliceSummaryProps, Sparkline, type SparklineProps, Spinner, StatusDot, type StatusDotProps, type TabConfig, TabbedPanel, type TabbedPanelProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, type TaskGanttDetailCardProps, type TaskGanttDetailProps, type TaskGanttInstant, type TaskGanttProps, type TaskGanttSegment, type TaskGanttStatus, type TaskGanttTask, TaskNode, type TaskNodeProps, type TaskNodeTag, type TemplateOption, TemplatePicker, type TemplatePickerProps, Terminal, type TerminalLevel, TerminalLine, type TerminalLineKind, type TerminalLineProps, type TerminalProps, TimelineEntry, type TimelineEntryProps, TimelineFooter, type TimelineFooterProps, TimelineList, type TimelineListProps, type TimelineVariant, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type TouchDirection, Tour, type TourController, type TourProps, type TourReference, type TourStep, TreeItem, TreeView, type TreeViewProps, Typography, TypographyBlockquote, type TypographyBlockquoteProps, TypographyH1, type TypographyH1Props, TypographyH2, type TypographyH2Props, TypographyH3, type TypographyH3Props, TypographyH4, type TypographyH4Props, TypographyH5, type TypographyH5Props, TypographyH6, type TypographyH6Props, TypographyInlineCode, type TypographyInlineCodeProps, TypographyLarge, type TypographyLargeProps, TypographyLead, type TypographyLeadProps, TypographyList, type TypographyListProps, TypographyMuted, type TypographyMutedProps, TypographyP, type TypographyPProps, TypographyPre, type TypographyPreProps, TypographySmall, type TypographySmallProps, UnderDevelopment, type UnderDevelopmentProps, type UseOverflowItemsOptions, type UseOverflowItemsResult, type UseTourOptions, type Verdict, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, describeSlice, stateLabel as layerItemLabel, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, split as splitAddress, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };