@lessly/ui 3.0.0 → 4.0.0

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.ts CHANGED
@@ -304,6 +304,9 @@ interface OptionCardProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonEl
304
304
  */
305
305
  declare const OptionCard: React$1.ForwardRefExoticComponent<OptionCardProps & React$1.RefAttributes<HTMLButtonElement>>;
306
306
 
307
+ /** How loudly a header names its page. `'page'` is a page's own header; `'compact'` is the header
308
+ * of a pane inside a container that has already named the section. */
309
+ type PageHeaderSize = 'page' | 'compact';
307
310
  interface PageHeaderProps {
308
311
  /** The page title. Rendered as an `<h2>`. */
309
312
  title: React$1.ReactNode;
@@ -319,6 +322,11 @@ interface PageHeaderProps {
319
322
  badge?: React$1.ReactNode;
320
323
  /** A trailing slot (e.g. a `+ Add` button), right-aligned. */
321
324
  actions?: React$1.ReactNode;
325
+ /** `'page'` (the default) is the header of a page. `'compact'` is the header of a pane inside a
326
+ * container that has already named the section — a settings modal with a rail of its own — and
327
+ * drops the medallion and the subtitle, which only repeat what the container said. `media` and
328
+ * the title stay: an entity glyph is identity, and the title is the pane's only name for itself. */
329
+ size?: PageHeaderSize;
322
330
  id?: string;
323
331
  }
324
332
  /**
@@ -331,7 +339,7 @@ interface PageHeaderProps {
331
339
  * A header carrying a leading glyph indents its title past the content edge; a bare title sits on
332
340
  * it. That difference is deliberate — it is what tells you a page has a mark.
333
341
  */
334
- declare function PageHeader({ title, subtitle, icon: Icon, media, badge, actions, id }: PageHeaderProps): React$1.JSX.Element;
342
+ declare function PageHeader({ title, subtitle, icon: Icon, media, badge, actions, size, id }: PageHeaderProps): React$1.JSX.Element;
335
343
 
336
344
  interface SectionIntroProps {
337
345
  what: React.ReactNode;
@@ -385,6 +393,16 @@ interface SettingRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, '
385
393
  * an object beside a block.
386
394
  */
387
395
  labelTone?: 'primary' | 'secondary';
396
+ /**
397
+ * The value is one nothing on this screen will ever set, so the row draws a lock before it.
398
+ *
399
+ * It is the shape of a stated fact rather than a disabled control: there is no control to
400
+ * disable, and the reader is not being told to come back later. What took the setting away goes
401
+ * in `description`, because an imposed state is shown with its reason in one line
402
+ * (`Guidelines/Controls/State with a reason`) and a reason behind a hover is a reason most
403
+ * readers never get.
404
+ */
405
+ locked?: boolean;
388
406
  /** Names the control this row carries; renders <label>, otherwise <span>. */
389
407
  htmlFor?: string;
390
408
  /** The right-hand side — a Switch, a Select, a Button, or the value the row states. */
@@ -666,15 +684,19 @@ declare const MenubarShortcut: {
666
684
  };
667
685
 
668
686
  /**
669
- * `status` (#359) is the console's state pill: borderless, filled with `bg-bg-sunken`.
670
- * `outline` gives a status the same hairline frame a button has and since a ghost button carries
671
- * no border at rest, the status pill ended up the most button-shaped object in a row. A fill with no
672
- * frame reads as a label rather than a control. It is deliberately *not* `secondary`: that's the
673
- * attribute chip (scope, auth method), so a status painted with it reads as an attribute. Under the
674
- * cursor no neutral fill carries the pill's shape at all: `EntityRow` washes to `bg-bg-elevated`,
675
- * and `bg-bg-sunken` measures 1.12:1 against it in light, `bg-bg-secondary` 1.01:1, where a non-text
676
- * mark needs 3:1. `bg-bg-sunken` is the convention, not the measurement there is no better fill in
677
- * the ramp to go looking for.
687
+ * `status` (#359) is the console's state pill, and it lifts off whatever it lands on: `bg-bg-overlay`
688
+ * is the one fill above the ground in both themes (`Guidelines/Look/Surface tone`), 1.07:1 on a light
689
+ * page and 1.18:1 on a dark one. `outline` gives a status the same hairline frame a button has and
690
+ * since a ghost button carries no border at rest, the status pill ended up the most button-shaped
691
+ * object in a row. It is deliberately *not* `secondary`: that's the attribute chip (scope, auth
692
+ * method), so a status painted with it reads as an attribute.
693
+ *
694
+ * The plate runs out where the ground is already the top rung. On a `Card` the pill's fill and the
695
+ * card's are one colour in both themes, so the pill keeps `border-border-subtle`, the kit's quietest
696
+ * edge, which is what draws its shape there. That edge is a step below the one `outline` wears,
697
+ * which is what keeps the two apart. Under the cursor the plate is back either way: `EntityRow`
698
+ * washes to `--hov-bg`, and the pill reads 1.30:1 above that wash in light and 1.12:1 below it in
699
+ * dark.
678
700
  *
679
701
  * `danger-subtle`, `warning-subtle` and `neutral-subtle` are the three rungs of a severity ladder —
680
702
  * critical, important, and the rung that is only worth knowing. They are the one place colour marks
@@ -780,11 +802,19 @@ interface EntityTileProps {
780
802
  name?: string;
781
803
  /** A type glyph. Wins over the initial, and never tints. */
782
804
  glyph?: React$1.ReactNode;
805
+ /**
806
+ * `'neutral'` keeps a named object off the tint ramp. `Guidelines/Avatars` already names things
807
+ * that have a name and stay neutral — a group, a connector.
808
+ *
809
+ * Not the full palette: a call site that could pick violet is a call site that can contradict the
810
+ * name a thing is recognised by.
811
+ */
812
+ tone?: 'auto' | 'neutral';
783
813
  src?: string;
784
814
  size?: MarkSize;
785
815
  label?: string;
786
816
  }
787
- declare function EntityTile({ name, glyph, src, size, label }: EntityTileProps): React$1.JSX.Element;
817
+ declare function EntityTile({ name, glyph, tone, src, size, label }: EntityTileProps): React$1.JSX.Element;
788
818
 
789
819
  declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
790
820
 
@@ -821,6 +851,24 @@ declare const CollapsibleContent: React$1.ForwardRefExoticComponent<Omit<Collaps
821
851
  declare const ScrollArea: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
822
852
  declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
823
853
 
854
+ /**
855
+ * SEVERITY IS A TINT AND AN EDGE, NEVER A FILL.
856
+ *
857
+ * The four variants used to paint `--bg-danger`, `--bg-success` and `--bg-warning` — three saturated
858
+ * plates with reversed text on them, each carrying one value for both themes. Two things went wrong
859
+ * with that. A block of solid red is colour at maximum volume marking a *state*, which is the one
860
+ * thing colour does not do in this console (Guidelines/Look/Colour marks actions); and a set of them
861
+ * on one page reads as three warnings shouting over each other.
862
+ *
863
+ * So each variant takes its subtle ground, its own hairline and body text at the page's own tone,
864
+ * and the severity is carried by the edge and by the icon. The `-subtle` family is declared per
865
+ * theme, which the filled one is not — `--bg-danger` is `#78100b` on a white page as readily as on a
866
+ * dark one.
867
+ *
868
+ * `default` keeps the neutral plate and takes `--border-default` rather than `--border-subtle`: the
869
+ * elevated ground is 1.05:1 against the page it sits on, so with a hairline that quiet the box has
870
+ * no edge at all and reads as grey printed on grey.
871
+ */
824
872
  declare const alertVariants: (props?: ({
825
873
  variant?: "default" | "destructive" | "success" | "warning" | null | undefined;
826
874
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -898,7 +946,62 @@ declare const Command: React$1.ForwardRefExoticComponent<Omit<{
898
946
  disablePointerSelection?: boolean;
899
947
  vimBindings?: boolean;
900
948
  } & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
901
- declare const CommandDialog: ({ children, ...props }: DialogProps) => React$1.JSX.Element;
949
+ /** One place the palette can go. */
950
+ interface CommandDialogItem {
951
+ /** Unique within its group. Falls back to the label. */
952
+ id?: string;
953
+ label: React$1.ReactNode;
954
+ /** The second line under the label — the thing this one sits inside. */
955
+ sub?: React$1.ReactNode;
956
+ /** Leading mark — an icon, an avatar, a tile. */
957
+ mark?: React$1.ReactNode;
958
+ /**
959
+ * What the input matches on. Defaults to the heading, the sub and the label joined, so a word
960
+ * that appears only in the group's name still finds the row — and two rows with one label are
961
+ * told apart by the groups they are in rather than reading as one line twice.
962
+ */
963
+ value?: string;
964
+ onSelect?: () => void;
965
+ }
966
+ interface CommandDialogGroup {
967
+ heading: string;
968
+ items: CommandDialogItem[];
969
+ }
970
+ interface CommandDialogProps extends DialogProps {
971
+ /**
972
+ * The destinations, as headings and rows. Supply these and the dialog draws its own input, list,
973
+ * empty line and key hints; supply `children` instead and it draws whatever you put in it.
974
+ */
975
+ groups?: CommandDialogGroup[];
976
+ /** The input's placeholder. Read only alongside `groups`. */
977
+ placeholder?: string;
978
+ /** What the list says when nothing matches. Read only alongside `groups`. */
979
+ empty?: React$1.ReactNode;
980
+ /**
981
+ * The strip under the list naming the keys that drive the palette. It is drawn by default because
982
+ * those keys are true of every palette; pass a node to say something else there, or `null` to draw
983
+ * none. Nothing is drawn while no row matches, whatever is passed — the slot is under a list, and
984
+ * an empty list has no keys. Read only alongside `groups`.
985
+ */
986
+ keyHints?: React$1.ReactNode;
987
+ /**
988
+ * Bind ⌘K (Ctrl+K off a Mac) to toggle the dialog.
989
+ *
990
+ * It is the dialog's rather than the caller's because the shortcut has to work from anywhere on
991
+ * the page, and a listener hung off whichever row happens to be mounted works from wherever that
992
+ * row is. Needs `onOpenChange` — there is nothing to toggle without it.
993
+ */
994
+ shortcut?: boolean;
995
+ }
996
+ /**
997
+ * A command palette in a dialog.
998
+ *
999
+ * `groups` is the whole of a palette that searches a navigation: one heading per area, one row per
1000
+ * place. What it does not decide is where the rows come from — reading them off an app's own
1001
+ * navigation tables is that app's business, and a list kept beside those tables is a list that
1002
+ * drifts from them.
1003
+ */
1004
+ declare const CommandDialog: ({ children, groups, placeholder, empty, keyHints, shortcut, open, onOpenChange, ...props }: CommandDialogProps) => React$1.JSX.Element;
902
1005
  declare const CommandInput: React$1.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React$1.InputHTMLAttributes<HTMLInputElement>> & {
903
1006
  ref?: React$1.Ref<HTMLInputElement>;
904
1007
  } & {
@@ -947,12 +1050,27 @@ interface CommandItemProps extends React$1.ComponentPropsWithoutRef<typeof Comma
947
1050
  /** The second line under the label. */
948
1051
  sub?: React$1.ReactNode;
949
1052
  }
1053
+ /**
1054
+ * `data-selected` here is where the arrow keys and the pointer are standing, not what the reader has
1055
+ * chosen, so the row takes a plate and the tone and no weight step: bold is a wider glyph, and a row
1056
+ * that thickens under the pointer reflows its own text and shifts every row below it
1057
+ * (`Guidelines/Look/Selection weight`). The plate is `--hov-bg`, the one the pointer paints
1058
+ * everywhere else in the console, so it steps the same way off the palette's own fill as a row does
1059
+ * off a card: 1.12:1 down in light, 1.12:1 up in dark.
1060
+ */
950
1061
  declare const CommandItem: React$1.ForwardRefExoticComponent<CommandItemProps & React$1.RefAttributes<HTMLDivElement>>;
951
1062
  declare const CommandShortcut: {
952
1063
  ({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
953
1064
  displayName: string;
954
1065
  };
955
1066
 
1067
+ /**
1068
+ * @deprecated A horizontal bar of menu triggers across the top of a page. This console navigates
1069
+ * from a rail: `AppSidebar` (with `NavRow` for a row) holds the sections, `Tabs` switches within a
1070
+ * page, and `DropdownMenu` or `MenuPopup` opens a menu from a trigger. It arrived with the shadcn
1071
+ * set and no surface here has ever drawn one. Removed in a future major, and every
1072
+ * `NavigationMenu*` part goes with it.
1073
+ */
956
1074
  declare const NavigationMenu: React$1.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuProps & React$1.RefAttributes<HTMLElement>, "ref"> & React$1.RefAttributes<HTMLElement>>;
957
1075
  declare const NavigationMenuList: React$1.ForwardRefExoticComponent<Omit<NavigationMenuPrimitive.NavigationMenuListProps & React$1.RefAttributes<HTMLUListElement>, "ref"> & React$1.RefAttributes<HTMLUListElement>>;
958
1076
  declare const NavigationMenuItem: React$1.ForwardRefExoticComponent<NavigationMenuPrimitive.NavigationMenuItemProps & React$1.RefAttributes<HTMLLIElement>>;
@@ -978,6 +1096,9 @@ declare function useTheme(): {
978
1096
  * `system` remains a stored preference — a console nobody has told defaults to it — and pressing
979
1097
  * this mark ends it. That is why the name says so while the preference is still `system`: the press
980
1098
  * costs something a person cannot see, and `ThemePicker` is where it is given back.
1099
+ *
1100
+ * It rests on `topBarMarkClass` — it stands in the top bar's row of marks, and how that row rests is
1101
+ * one thing rather than one per component.
981
1102
  */
982
1103
  declare function ThemeToggle(): React$1.JSX.Element;
983
1104
 
@@ -1180,6 +1301,22 @@ interface StatCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
1180
1301
  hint?: React$1.ReactNode;
1181
1302
  sub?: React$1.ReactNode;
1182
1303
  icon?: LucideIcon;
1304
+ /**
1305
+ * The shape behind the value, drawn under the figure and its delta: `delta` says how far the
1306
+ * number moved, this says the path it took. A chart is what goes here, and the card never draws
1307
+ * one — it holds the region and the caller fills it, so a card is still a card and not a
1308
+ * charting API.
1309
+ *
1310
+ * Give what goes in it a height of its own. Passing `null` keeps the room anyway — 40px, the
1311
+ * height a chart here is expected to take — so a card whose series is empty stands as tall as
1312
+ * the cards beside it; omit the prop and there is no region at all.
1313
+ *
1314
+ * It is decoration: the value is written out above it. What goes in hides itself from the
1315
+ * accessibility tree the way an `aria-hidden` chart does — the card will not do it for you, since
1316
+ * hiding a region it has never seen would swallow a caption and put a chart's own tooltip out of
1317
+ * reach.
1318
+ */
1319
+ trend?: React$1.ReactNode;
1183
1320
  }
1184
1321
  declare const StatCard: React$1.ForwardRefExoticComponent<StatCardProps & React$1.RefAttributes<HTMLDivElement>>;
1185
1322
 
@@ -1369,9 +1506,16 @@ interface UserMenuProps {
1369
1506
  user: UserMenuUser;
1370
1507
  items: UserMenuItem[];
1371
1508
  collapsed?: boolean;
1509
+ /**
1510
+ * The name-on-hover for the collapsed trigger. On by default, because in a 52px rail the tooltip
1511
+ * is the only place the name appears at all. A top bar is the case for turning it off: the avatar
1512
+ * sits among icon marks that name themselves the same way, and one more of them naming *you* is
1513
+ * the thing you already know.
1514
+ */
1515
+ tooltip?: boolean;
1372
1516
  align?: 'start' | 'center' | 'end';
1373
1517
  }
1374
- declare function UserMenu({ user, items, collapsed, align }: UserMenuProps): React$1.JSX.Element;
1518
+ declare function UserMenu({ user, items, collapsed, tooltip, align }: UserMenuProps): React$1.JSX.Element;
1375
1519
 
1376
1520
  /** True when `name` (kebab-case) maps to a real lucide-react icon. */
1377
1521
  declare function isKnownExtensionIcon(name: string): boolean;
@@ -1904,8 +2048,9 @@ interface BackLinkProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElem
1904
2048
  * edge, naming the parent rather than saying "Back".
1905
2049
  *
1906
2050
  * It is not a second trail: the top bar keeps the whole breadcrumb, and the back/forward history
1907
- * arrows are gone (#337), which is what leaves this the one control that walks. A **wizard gets
1908
- * none** its steps are the navigation. See `Guidelines/Second level navigation`.
2051
+ * arrows are gone (#337), which is what leaves this the one control that walks the content column.
2052
+ * A rail's own drill-in walks with `SidebarBackHeader`, inside the rail. A **wizard gets none** —
2053
+ * its steps are the navigation. See `Guidelines/Page & navigation/Second level navigation`.
1909
2054
  *
1910
2055
  * **Two ways to spell the destination, and one of them is required.**
1911
2056
  *
@@ -2147,8 +2292,8 @@ interface GrantRolePickerProps {
2147
2292
  * It is not a `Select`. A select answers with one of its options; this one can also take the thing
2148
2293
  * it describes away, and a command sitting among options is neither a listbox nor a set of radios.
2149
2294
  * So it is a menu, and the removal is a menu item (Guidelines/Controls/When it isn't a Button),
2150
- * which reddens under the pointer or the keyboard and drops the red frame a destructive `Button`
2151
- * rests on, because a row repeated down a menu would shout (Guidelines/Controls/Destructive
2295
+ * which reddens under the pointer or the keyboard and drops the frame and the wash a destructive
2296
+ * `Button` rests on, because a row repeated down a menu would shout (Guidelines/Controls/Destructive
2152
2297
  * actions).
2153
2298
  */
2154
2299
  declare const GrantRolePicker: React$1.ForwardRefExoticComponent<GrantRolePickerProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -2261,7 +2406,7 @@ interface RemovableChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement
2261
2406
  * nothing in it to click. This carries a control, and everything below follows from that.
2262
2407
  *
2263
2408
  * **The ✕ stays grey on hover, and that is the point.** Every other remove in this console wears its
2264
- * danger — `Button variant="destructive"` rests on a red frame and reddens under the pointer, which
2409
+ * danger — `Button variant="destructive"` rests on a red wash and reddens under the pointer, which
2265
2410
  * is how a revoke or a teardown announces what it costs (Guidelines/Destructive actions). This one does
2266
2411
  * not, because **taking someone out of a draft has not done anything yet**: nothing is revoked,
2267
2412
  * nothing is saved, and the only state it changes is a list you are still assembling. Red here
@@ -2323,6 +2468,10 @@ declare function useSidebar(options?: UseSidebarOptions): UseSidebarResult;
2323
2468
 
2324
2469
  /** `rail` is the sidebar, `menu` a popup surface, `card` a settings line inside a `Card`. */
2325
2470
  type NavRowVariant = 'rail' | 'menu' | 'card';
2471
+ /** What pressing the row does, in the words of `Guidelines/Lists & rows/List items`: `drill` opens
2472
+ * the thing as a page of its own, `disclosure` grows its detail underneath. Everything else goes
2473
+ * bare, which is why there is no third name here. */
2474
+ type NavRowMark = 'drill' | 'disclosure';
2326
2475
  interface NavRowOwnProps {
2327
2476
  /** Leading glyph. Rendered in a fixed 20px box with SVGs normalized to 18px — 16px and 16px on
2328
2477
  * `card`, where the row sits beside body text rather than in a rail.
@@ -2348,9 +2497,19 @@ interface NavRowOwnProps {
2348
2497
  * A falsy value (`null`/`false`/`0`/`''`) renders nothing — e.g. passing
2349
2498
  * `trailing={count}` with `count === 0` produces no adornment, not a "0". */
2350
2499
  trailing?: React$1.ReactNode;
2500
+ /** The kit's own trailing mark, drawn into the same slot `trailing` fills. A row that names one
2501
+ * takes that slot: `trailing` fills it only where no mark is named, so a caller cannot declare
2502
+ * `mark="drill"` and draw something else in its place. Dropped at the narrow width — see
2503
+ * `hideLabel`. */
2504
+ mark?: NavRowMark;
2505
+ /** Whether a `disclosure` row's detail is open: the caret turns 180°, and the row states
2506
+ * `aria-expanded` unless its caller states one of its own. `drill` reads it as nothing. */
2507
+ markOpen?: boolean;
2351
2508
  /** The trailing value is an absence ("None yet") — a step quieter. */
2352
2509
  mutedTrailing?: boolean;
2353
- /** Icon-only row (collapsed rails). `label` becomes the aria-label. */
2510
+ /** Icon-only row (collapsed rails). `label` becomes the aria-label, and `mark` draws nothing:
2511
+ * at that width there is no label left for a mark to point at. A `trailing` node stays — what
2512
+ * a caller puts in the slot is the caller's to drop. */
2354
2513
  hideLabel?: boolean;
2355
2514
  }
2356
2515
  /** Render the single child element instead of a button, e.g. a router <Link>.
@@ -2369,14 +2528,71 @@ type NavRowProps = NavRowOwnProps & Omit<React$1.ComponentPropsWithoutRef<'butto
2369
2528
  *
2370
2529
  * The `card` variant is the settings line that leaves the page for another section — People →
2371
2530
  * Members, Security → Identity. It carries no trailing mark and no underline: a section jump is
2372
- * not an entity opening as a page, so the hover fill is the whole affordance.
2373
- *
2374
- * Rail rows are designed for the `bg-surface` canvas. In the light theme `--hov-bg` is an
2375
- * opaque `#ffffff` plate, so a rail `NavRow` has no hover contrast on a surface that is
2376
- * already white — notably a `--menu-bg` plate. Use the `menu` variant there; its
2377
- * `--menu-hov` is tuned for that surface. */
2531
+ * not an entity opening as a page, so the hover fill is the whole affordance. */
2378
2532
  declare const NavRow: React$1.ForwardRefExoticComponent<NavRowProps & React$1.RefAttributes<HTMLButtonElement>>;
2379
2533
 
2534
+ interface RailToggleProps extends React$1.ComponentPropsWithoutRef<'button'> {
2535
+ /** Which state the rail is in now, not what the press will do. The mark and the accessible name
2536
+ * are both read off it, so a rail cannot say one thing and draw another. */
2537
+ collapsed: boolean;
2538
+ }
2539
+ /**
2540
+ * The control that opens and closes a rail: one box on the glyph column, and a mark whose bar
2541
+ * crosses it while the rail travels. Both are timed from `.motion-rail-collapse`, so the bar and
2542
+ * the edge arrive together and both go to nothing under `prefers-reduced-motion`. It draws its own
2543
+ * mark: the mark is the state, so a caller's would be a rail saying nothing about which side it
2544
+ * is on.
2545
+ *
2546
+ * `AppSidebar` already stands one at its foot, and a consumer of that rail never mounts this. It
2547
+ * ships for the other rail — one a product draws itself, because it carries two panes or a shape
2548
+ * `AppSidebar` does not offer — where the alternative is a hand-copied 40px box and a hand-copied
2549
+ * seam that drift from the rail beside them.
2550
+ *
2551
+ * `collapsed` is the only required prop and it is state, not intent: the accessible name says what
2552
+ * the press will do (`Expand sidebar` when closed), `aria-expanded` reports what is true now, and a
2553
+ * caller's own `aria-label` replaces the first without touching the second — which is how the
2554
+ * console gives the control the words its command palette already uses for it.
2555
+ *
2556
+ * No tooltip of its own. On a closed rail every neighbour has one, so the call site composes it —
2557
+ * and the label it shows is then the same string this takes.
2558
+ */
2559
+ declare const RailToggle: React$1.ForwardRefExoticComponent<RailToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
2560
+
2561
+ interface QuickSearchRowProps {
2562
+ /** Opens the palette. The row is a way in, not the thing it opens. */
2563
+ onOpen: () => void;
2564
+ /** The words on the row, and the name it answers to at the narrow width. */
2565
+ label?: string;
2566
+ /**
2567
+ * The second way in, stated rather than implied — this is the one fact a person needs before they
2568
+ * stop reaching for the sidebar at all. `false` for a rail with no shortcut bound.
2569
+ */
2570
+ shortcut?: React$1.ReactNode;
2571
+ /**
2572
+ * The narrow rail, which draws the plain row instead of the field: the shortcut goes and the
2573
+ * tooltip carries the words. Not `hideLabel` passed through — a rail this narrow has no field in
2574
+ * it at all, so the two widths are two shapes rather than one shape with its words hidden.
2575
+ */
2576
+ collapsed?: boolean;
2577
+ /** Leading mark. The magnifier, unless the rail draws search as something else. */
2578
+ icon?: React$1.ReactNode;
2579
+ }
2580
+ /**
2581
+ * A rail's first row: it opens the command palette, and states the shortcut that reaches the same
2582
+ * palette without it.
2583
+ *
2584
+ * It wears a field — a frame, a magnifier inside it, the label at placeholder tone — because that is
2585
+ * the shape a person looks for when they arrive wanting to search, and it is what Cloudflare, Linear
2586
+ * and Vercel each put at the top of a sidebar. It is never a text input: what it opens is where the
2587
+ * typing happens, and a field in the rail that ate keystrokes would be a second search. A collapsed
2588
+ * rail draws the plain row instead — there is no field at 64px, and a frame with nothing in it is
2589
+ * not one. Needs a `TooltipProvider` above it, like every tooltip here.
2590
+ */
2591
+ declare function QuickSearchRow({ onOpen, label, shortcut, collapsed, icon, }: QuickSearchRowProps): React$1.JSX.Element;
2592
+ declare namespace QuickSearchRow {
2593
+ var displayName: string;
2594
+ }
2595
+
2380
2596
  type NavSectionLabelProps = React$1.HTMLAttributes<HTMLDivElement>;
2381
2597
  /** Section header for nav rails and menu popups. Insets match the 0.3.0 prototype
2382
2598
  * (4px 4px 2px 8px), so it hangs slightly left of the rows it labels. */
@@ -2442,6 +2658,38 @@ interface OrgProductSwitcherItem {
2442
2658
  /** Optional leading mark. Falls back to a lettered tile built from `name`. */
2443
2659
  icon?: React$1.ReactNode;
2444
2660
  }
2661
+ /**
2662
+ * A product's lifecycle state (#343). These are the platform's own three — the admin API has
2663
+ * `product_block` / `unblock` and `product_archive` / `unarchive`, and nothing else. "Paused" was
2664
+ * invented once and is gone; there is no pause operation to reach it.
2665
+ *
2666
+ * `active` renders nothing. It is what almost every product is, so a badge on it states nothing and
2667
+ * turns a scannable list into a column of identical pills. The two states that stop a product being
2668
+ * usable are the ones worth a mark, and they get the `status` badge (Guidelines/Marks/Badge kinds).
2669
+ *
2670
+ * `archived` is hidden org-wide and read-only, restorable any time. `blocked` is imposed from the
2671
+ * outside — a platform admin blocks a product — so it is a state a console observes, never one it
2672
+ * causes.
2673
+ */
2674
+ type ProductStatus = 'active' | 'blocked' | 'archived';
2675
+ /**
2676
+ * The one place the silent-when-active rule is written down, for every surface that lists products —
2677
+ * this menu and the console's own product lists alike. Returns `undefined` rather than a badge
2678
+ * rendering nothing, so a caller's `meta`/`badge` slot stays genuinely empty and doesn't reserve a
2679
+ * gap.
2680
+ */
2681
+ declare function productStatusBadge(status: ProductStatus): React$1.ReactNode | undefined;
2682
+ /**
2683
+ * A product in the menu. An organization has no lifecycle state, which is why this is a second type
2684
+ * rather than a field on the one above.
2685
+ *
2686
+ * `status` is optional so that adding it does not break every consumer already passing products, and
2687
+ * an omission reads as `active` — which is the risk the field exists to answer: a blocked product
2688
+ * listed without one is offered as if it were fine. Pass it wherever the state is known.
2689
+ */
2690
+ interface OrgProductSwitcherProduct extends OrgProductSwitcherItem {
2691
+ status?: ProductStatus;
2692
+ }
2445
2693
  /** A row in the menu's footer action group — e.g. Create product, Product settings, Org
2446
2694
  * settings. `href` renders a link (right-click / new-tab work); otherwise `onSelect` fires. */
2447
2695
  interface OrgProductSwitcherAction {
@@ -2452,34 +2700,63 @@ interface OrgProductSwitcherAction {
2452
2700
  href?: string;
2453
2701
  }
2454
2702
  interface OrgProductSwitcherProps {
2455
- /** All organizations the user can switch to. */
2456
- organizations: OrgProductSwitcherItem[];
2457
- activeOrgId: string;
2458
- onOrgSelect: (id: string) => void;
2459
- /** Products for the ACTIVE org. The consumer re-supplies these when the org changes. Omit (or
2460
- * leave `activeProductId` unset) for an org-level context — the trigger then shows just the org,
2461
- * and the menu still lists any products so you can jump into one. */
2462
- products?: OrgProductSwitcherItem[];
2703
+ /** The organizations the user can switch to. Supply these and the menu is the organizations —
2704
+ * whatever else is passed. Omit them for a switcher scoped to one org, and the menu is the
2705
+ * products. */
2706
+ organizations?: OrgProductSwitcherItem[];
2707
+ activeOrgId?: string;
2708
+ onOrgSelect?: (id: string) => void;
2709
+ /**
2710
+ * The products to switch between. Each carries its `status`, which the row states.
2711
+ *
2712
+ * @deprecated Passing `products` alongside `organizations` is deprecated and now lists the
2713
+ * organizations alone: give the products to their own switcher — the top bar's
2714
+ * `trigger="inline"` — and leave this one the organizations. `products` on its own is unchanged,
2715
+ * and so are `activeProductId` and `onProductSelect`, which the trigger reads either way.
2716
+ */
2717
+ products?: OrgProductSwitcherProduct[];
2718
+ /** The product the trigger names. Read whichever list the menu shows, so a switcher listing
2719
+ * organizations still says which product you are in. */
2463
2720
  activeProductId?: string;
2721
+ /** Fires when a product row is chosen. A menu showing the organizations has no product rows. */
2464
2722
  onProductSelect?: (id: string) => void;
2465
- /** Footer actions below the products (Create product, Product settings, …). The group and
2723
+ /** Footer actions below the list (Create organization, Create product, …). The group and
2466
2724
  * its divider render only when this is non-empty — the consumer owns which rows appear. */
2467
2725
  actions?: OrgProductSwitcherAction[];
2726
+ /**
2727
+ * The trigger's shape, and it follows from where the switcher sits rather than from taste.
2728
+ *
2729
+ * `stacked` is the sidebar header's box: the org over the product, full width, behind the mark
2730
+ * the organizations switcher leads with — a products switcher leads with the name in either form.
2731
+ * `inline` is one line at a top bar's weight — the name you are in and the chevron, hugging its
2732
+ * own words — because a bar has no column to fill and the mark beside it is the page's, not the
2733
+ * switcher's. The menu is the same either way: switching product is the same act wherever the
2734
+ * console offers it.
2735
+ */
2736
+ trigger?: 'stacked' | 'inline';
2468
2737
  /** Accessible name for the trigger. Defaults to `"<org> / <product>"`, and to whatever the
2469
2738
  * trigger reads before an org resolves. */
2470
2739
  'aria-label'?: string;
2471
2740
  className?: string;
2472
2741
  }
2473
2742
  /**
2474
- * Compound organization·product switcher for the sidebar header (#81): a single control that
2475
- * shows the current **org** as a label above the current **product**, and opens one menu to
2476
- * switch either — Organizations, then the active org's Products.
2743
+ * The switcher for the sidebar header (#81) and the top bar: a control that names where you are and
2744
+ * opens one list to move.
2745
+ *
2746
+ * **One switcher, one list.** `organizations` supplied and it is the organizations; `organizations`
2747
+ * omitted and it is the products. The rail carries the organizations and the bar's `inline` trigger
2748
+ * carries the products, so a console offers each switch in one place and the trigger names the
2749
+ * product either way.
2750
+ *
2751
+ * The list is always searched — a field above the rows whatever their number, so nothing about the
2752
+ * control depends on how many things you happen to own. Every product states the state it is in on
2753
+ * its row, in the console's own words: `active` says nothing, which is the rule and not a gap.
2477
2754
  *
2478
2755
  * Presentational: the consumer owns selection state and re-supplies `products` +
2479
2756
  * `activeProductId` for the newly-selected org. Wiring org/product switches to routing is the
2480
2757
  * consumer's job.
2481
2758
  */
2482
- declare function OrgProductSwitcher({ organizations, activeOrgId, onOrgSelect, products, activeProductId, onProductSelect, actions, className, ...props }: OrgProductSwitcherProps): React$1.JSX.Element;
2759
+ declare function OrgProductSwitcher({ organizations, activeOrgId, onOrgSelect, products, activeProductId, onProductSelect, actions, trigger, className, ...props }: OrgProductSwitcherProps): React$1.JSX.Element;
2483
2760
  declare namespace OrgProductSwitcher {
2484
2761
  var displayName: string;
2485
2762
  }
@@ -2515,14 +2792,20 @@ interface SidebarBackHeaderProps extends Omit<React$1.HTMLAttributes<HTMLElement
2515
2792
  * (`onTitleClick`).
2516
2793
  * - **Single mode** (`onTitleClick` omitted): the whole row is one native button (`onBack`).
2517
2794
  *
2518
- * The row adds NO horizontal padding of its own — the parent pane owns horizontal inset. */
2795
+ * The row adds NO horizontal padding of its own — the parent pane owns horizontal inset.
2796
+ *
2797
+ * **Beside `BackLink`.** This one walks the *rail*: it heads a drilled pane and takes the rail
2798
+ * back to the rows it came from, changing which navigation is on screen and not which page is.
2799
+ * `BackLink` walks the *page* — one control above a sub-page's title, on the content column's
2800
+ * left edge, naming the parent (`Guidelines/Second level navigation`). A drilled rail beside an
2801
+ * entity page shows both at once, so they are not two spellings of one control. */
2519
2802
  declare function SidebarBackHeader({ title, onBack, onTitleClick, backLabel, arrowProps, titleProps, className, ...rowProps }: SidebarBackHeaderProps): React$1.JSX.Element;
2520
2803
  declare namespace SidebarBackHeader {
2521
2804
  var displayName: string;
2522
2805
  }
2523
2806
 
2524
2807
  interface TopBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
2525
- /** The leading content the page's trail. */
2808
+ /** What sits at the leading edge. `OrgProductSwitcher` is what normally goes here. */
2526
2809
  left?: React$1.ReactNode;
2527
2810
  /** What rests at the right edge. `TopBarUtilities` is what normally goes here. */
2528
2811
  right?: React$1.ReactNode;
@@ -2532,7 +2815,7 @@ interface TopBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
2532
2815
  * Goes in `AppShell`'s `topBar` slot.
2533
2816
  *
2534
2817
  * It writes no horizontal inset, because `AppShell` spells that once for this row and for `main`
2535
- * together — so the trail starts on the content's left edge because the shell puts them both there,
2818
+ * together — so `left` starts on the content's left edge because the shell puts them both there,
2536
2819
  * not because two files agreed on the same number. It draws no bottom border either: the band already
2537
2820
  * aligns with the sidebar header, and the rail's divider is the line for both.
2538
2821
  *
@@ -2557,16 +2840,16 @@ interface TopBarUtilitiesProps extends React$1.HTMLAttributes<HTMLDivElement> {
2557
2840
  items: TopBarUtility[];
2558
2841
  }
2559
2842
  /**
2560
- * The utility marks resting at the top bar's right edge — docs, MCP, feedback, notifications.
2843
+ * The utility marks resting at the top bar's right edge — feedback, support, and whatever else
2844
+ * a product parks there.
2561
2845
  *
2562
2846
  * The row is one set of marks, and that is the whole component: same form, same weight, name carried
2563
2847
  * by the tooltip. A visible label on one of them makes it read as a button standing among glyphs, and
2564
2848
  * a frame on one makes it read as a different kind of control — so the row spells neither, and a call
2565
2849
  * site cannot ask for them. Which marks a product picks, and in what order, is the `items` array; how
2566
- * they rest is not negotiable, which is why this is a component and not four `Button`s in a `div`.
2850
+ * they rest is `topBarMarkClass`, which is not negotiable and not this component's alone.
2567
2851
  *
2568
- * Every mark is a button. A mark that navigates has no arm here yet — `Button`'s icon-only form takes
2569
- * no `asChild`, so an anchor cannot wear it — and until it does, a destination is an `onClick`.
2852
+ * Every mark is a button. A mark that navigates has no arm here yet — a destination is an `onClick`.
2570
2853
  *
2571
2854
  * Needs a `TooltipProvider` above it. `AppShell` mounts one, so a top bar inside the shell has it.
2572
2855
  */
@@ -3069,7 +3352,7 @@ interface NotificationToastProps {
3069
3352
  item: NotificationItem;
3070
3353
  /** Provenance shown once per run of same-source cards. Default `true`. */
3071
3354
  showSource?: boolean;
3072
- /** A short state line under the body, e.g. "Awaiting your decision expires in 20s." */
3355
+ /** A short state line under the body, e.g. "Awaiting your decision. Expires in 20s." */
3073
3356
  note?: React$1.ReactNode;
3074
3357
  /** The card's own controls: mute the source, turn its pushes off. Sits before the dismiss ✕. */
3075
3358
  overflow?: React$1.ReactNode;
@@ -3279,10 +3562,10 @@ type ThemePickerProps = ThemePickerBaseProps & ({
3279
3562
  onValueChange?: (theme: Theme) => void;
3280
3563
  });
3281
3564
  /**
3282
- * Choosing the console's theme, by looking at it: Light and Dark are miniatures of the console they
3283
- * offer, and Auto is the `Monitor` glyph, because it follows the machine and has no one console to
3284
- * show. Auto is `system`, and it is here because `ThemeToggle` already cycles through it — a picker
3285
- * offering only light and dark would contradict the console's own control.
3565
+ * Choosing the console's theme, by looking at it: every card is a miniature of the console, Light and
3566
+ * Dark in the theme they offer and Auto in both at once across one diagonal cut, because it follows
3567
+ * the machine. Auto is `system`, and it is here because `ThemeToggle` already cycles through it — a
3568
+ * picker offering only light and dark would contradict the console's own control.
3286
3569
  */
3287
3570
  declare const ThemePicker: React$1.ForwardRefExoticComponent<ThemePickerProps & React$1.RefAttributes<HTMLDivElement>>;
3288
3571
 
@@ -3478,4 +3761,4 @@ interface RatingScaleProps extends Omit<React$1.ComponentPropsWithoutRef<typeof
3478
3761
  }
3479
3762
  declare const RatingScale: React$1.ForwardRefExoticComponent<RatingScaleProps & React$1.RefAttributes<HTMLDivElement>>;
3480
3763
 
3481
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddPicker, type AddPickerItem, type AddPickerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, AttachmentChip, type AttachmentChipProps, type AttachmentState, AutoHeight, type AutoHeightProps, Avatar, AvatarFallback, AvatarImage, BackLink, type BackLinkProps, Badge, type BadgeProps, type BeneficialOwnerPayload, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, COUNTRY_OPTIONS, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardNote, type CardNoteProps, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselApi, CarouselContent, type CarouselContextProps, CarouselItem, CarouselNext, type CarouselOptions, type CarouselPlugin, CarouselPrevious, type CarouselProps, Checkbox, Code, CodeBlock, type CodeBlockProps, type CodeLang, type CodeProps, type CodeVariant, Col, type ColProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, type CommandItemProps, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, type ConfirmDialogStepUp, ConnectorCard, type ConnectorCardProps, type ConnectorOrigin, type ConnectorStatus, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, DatePicker, type DatePickerProps, DecorativeIcon, type DecorativeIconProps, type DeltaDirection, type DeltaTone, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocsLink, type DocsLinkProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, EntityRow, type EntityRowOpens, type EntityRowOpensProps, type EntityRowProps, EntityTile, type EntityTileProps, ExtensionIcon, type ExtensionIconProps, FeedbackButton, type FeedbackButtonLabels, type FeedbackButtonProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GlyphAvatar, type GlyphAvatarProps, type GrantRole, type GrantRoleNotes, GrantRolePicker, type GrantRolePickerProps, GrantRow, type GrantRowProps, Grid, GridOverlay, type GridOverlayProps, type GridProps, HoverCard, HoverCardContent, HoverCardTrigger, IconHint, type IconHintProps, ImageCropDialog, type ImageCropDialogProps, type ImageCropShape, type ImageCropType, ImageCropper, type ImageCropperProps, ImageUpload, type ImageUploadProps, type ImageUploadSize, InlineError, type InlineErrorProps, Input, InputAddon, type InputAddonProps, InputGroup, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, ListCells, type ListCellsProps, type ListColumn, type ListColumnWidth, ListHeader, type ListHeaderProps, MISSING_TONE, Medallion, type MedallionProps, MenuDivider, MenuPopup, type MenuPopupProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavRow, type NavRowProps, type NavRowVariant, NavSectionLabel, type NavSectionLabelProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NotifClass, type NotificationAction, NotificationBell, type NotificationBellProps, NotificationCenter, type NotificationCenterProps, type NotificationClass, type NotificationDeepLink, type NotificationItem, type NotificationMute, type NotificationPreferences, type NotificationProduct, NotificationRow, type NotificationRowProps, NotificationSettings, type NotificationSettingsProps, type NotificationSeverity, type NotificationSubscription, type NotificationThreshold, NotificationToast, type NotificationToastDwell, type NotificationToastProps, NotificationToaster, type NotificationToasterPosition, type NotificationToasterProps, OptionCard, type OptionCardProps, OrgProductSwitcher, type OrgProductSwitcherAction, type OrgProductSwitcherItem, type OrgProductSwitcherProps, type OrganizationOnboardingDefaults, OrganizationOnboardingForm, type OrganizationOnboardingFormProps, type OrganizationOnboardingPayload, PageColumn, type PageColumnProps, PageHeader, type PageHeaderProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, PersonAvatar, type PersonAvatarProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, RatingScale, type RatingScaleProps, type RatingScaleSize, RemovableChip, type RemovableChipProps, RemoveButton, type RemoveButtonProps, RequestRow, type RequestRowProps, type RequestState, type RequestSurface, type ResolvedTheme, type Responsive, ScrollArea, ScrollBar, SecretReveal, type SecretRevealProps, SectionIntro, type SectionIntroProps, Select, type SelectOption, type SelectProps, Separator, SettingRow, type SettingRowProps, type Severity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarBackHeader, type SidebarBackHeaderProps, SidebarProductHeader, type SidebarProductHeaderProps, Skeleton, Slider, StarRating, type StarRatingProps, type StarRatingSize, StatCard, type StatCardProps, StatusDot, type StatusDotProps, StepUpChallenge, type StepUpChallengeProps, type StepUpMethod, type StepUpProof, Switch, type SwitchProps, TOAST_DWELL, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, type Theme, ThemePicker, type ThemePickerProps, ThemeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, TopBarUtilities, type TopBarUtilitiesProps, type TopBarUtility, type UseFreshHighlightResult, type UseSidebarOptions, type UseSidebarResult, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuUser, WEIGHT_TONE, alertVariants, attachmentChipVariants, badgeVariants, buttonVariants, cn, formatRelativeAge, grantRemoveLabel, isKnownExtensionIcon, isNotificationSettled, navigationMenuTriggerStyle, severityBadgeVariant, severityLabels, statusDotVariants, toggleVariants, useCarousel, useFormField, useFreshHighlight, useIsMobile, useSidebar, useTheme };
3764
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddPicker, type AddPickerItem, type AddPickerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, AttachmentChip, type AttachmentChipProps, type AttachmentState, AutoHeight, type AutoHeightProps, Avatar, AvatarFallback, AvatarImage, BackLink, type BackLinkProps, Badge, type BadgeProps, type BeneficialOwnerPayload, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, COUNTRY_OPTIONS, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardNote, type CardNoteProps, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselApi, CarouselContent, type CarouselContextProps, CarouselItem, CarouselNext, type CarouselOptions, type CarouselPlugin, CarouselPrevious, type CarouselProps, Checkbox, Code, CodeBlock, type CodeBlockProps, type CodeLang, type CodeProps, type CodeVariant, Col, type ColProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, type CommandDialogGroup, type CommandDialogItem, type CommandDialogProps, CommandEmpty, CommandGroup, CommandInput, CommandItem, type CommandItemProps, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, type ConfirmDialogStepUp, ConnectorCard, type ConnectorCardProps, type ConnectorOrigin, type ConnectorStatus, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, DatePicker, type DatePickerProps, DecorativeIcon, type DecorativeIconProps, type DeltaDirection, type DeltaTone, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocsLink, type DocsLinkProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, EntityRow, type EntityRowOpens, type EntityRowOpensProps, type EntityRowProps, EntityTile, type EntityTileProps, ExtensionIcon, type ExtensionIconProps, FeedbackButton, type FeedbackButtonLabels, type FeedbackButtonProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GlyphAvatar, type GlyphAvatarProps, type GrantRole, type GrantRoleNotes, GrantRolePicker, type GrantRolePickerProps, GrantRow, type GrantRowProps, Grid, GridOverlay, type GridOverlayProps, type GridProps, HoverCard, HoverCardContent, HoverCardTrigger, IconHint, type IconHintProps, ImageCropDialog, type ImageCropDialogProps, type ImageCropShape, type ImageCropType, ImageCropper, type ImageCropperProps, ImageUpload, type ImageUploadProps, type ImageUploadSize, InlineError, type InlineErrorProps, Input, InputAddon, type InputAddonProps, InputGroup, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, ListCells, type ListCellsProps, type ListColumn, type ListColumnWidth, ListHeader, type ListHeaderProps, MISSING_TONE, Medallion, type MedallionProps, MenuDivider, MenuPopup, type MenuPopupProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavRow, type NavRowMark, type NavRowProps, type NavRowVariant, NavSectionLabel, type NavSectionLabelProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NotifClass, type NotificationAction, NotificationBell, type NotificationBellProps, NotificationCenter, type NotificationCenterProps, type NotificationClass, type NotificationDeepLink, type NotificationItem, type NotificationMute, type NotificationPreferences, type NotificationProduct, NotificationRow, type NotificationRowProps, NotificationSettings, type NotificationSettingsProps, type NotificationSeverity, type NotificationSubscription, type NotificationThreshold, NotificationToast, type NotificationToastDwell, type NotificationToastProps, NotificationToaster, type NotificationToasterPosition, type NotificationToasterProps, OptionCard, type OptionCardProps, OrgProductSwitcher, type OrgProductSwitcherAction, type OrgProductSwitcherItem, type OrgProductSwitcherProduct, type OrgProductSwitcherProps, type OrganizationOnboardingDefaults, OrganizationOnboardingForm, type OrganizationOnboardingFormProps, type OrganizationOnboardingPayload, PageColumn, type PageColumnProps, PageHeader, type PageHeaderProps, type PageHeaderSize, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, PersonAvatar, type PersonAvatarProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type ProductStatus, Progress, QuickSearchRow, type QuickSearchRowProps, RadioGroup, RadioGroupItem, RailToggle, type RailToggleProps, RatingScale, type RatingScaleProps, type RatingScaleSize, RemovableChip, type RemovableChipProps, RemoveButton, type RemoveButtonProps, RequestRow, type RequestRowProps, type RequestState, type RequestSurface, type ResolvedTheme, type Responsive, ScrollArea, ScrollBar, SecretReveal, type SecretRevealProps, SectionIntro, type SectionIntroProps, Select, type SelectOption, type SelectProps, Separator, SettingRow, type SettingRowProps, type Severity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarBackHeader, type SidebarBackHeaderProps, SidebarProductHeader, type SidebarProductHeaderProps, Skeleton, Slider, StarRating, type StarRatingProps, type StarRatingSize, StatCard, type StatCardProps, StatusDot, type StatusDotProps, StepUpChallenge, type StepUpChallengeProps, type StepUpMethod, type StepUpProof, Switch, type SwitchProps, TOAST_DWELL, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, type Theme, ThemePicker, type ThemePickerProps, ThemeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, TopBarUtilities, type TopBarUtilitiesProps, type TopBarUtility, type UseFreshHighlightResult, type UseSidebarOptions, type UseSidebarResult, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuUser, WEIGHT_TONE, alertVariants, attachmentChipVariants, badgeVariants, buttonVariants, cn, formatRelativeAge, grantRemoveLabel, isKnownExtensionIcon, isNotificationSettled, navigationMenuTriggerStyle, productStatusBadge, severityBadgeVariant, severityLabels, statusDotVariants, toggleVariants, useCarousel, useFormField, useFreshHighlight, useIsMobile, useSidebar, useTheme };