@usefidel/design-system 0.26.0 → 0.28.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.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, SVGAttributes, ReactElement, ElementType, ComponentPropsWithoutRef } from 'react';
2
+ import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, SVGAttributes, ReactElement, ElementType, ComponentPropsWithoutRef, CSSProperties } from 'react';
3
3
 
4
4
  type ButtonVariant = 'primary' | 'outlined' | 'text' | 'neutral' | 'link'
5
5
  /** High-contrast near-black, for a page's main create action ("New comparison"). */
@@ -607,12 +607,16 @@ interface CalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
607
607
  children?: ReactNode;
608
608
  /** Trailing action(s), e.g. a ButtonLink. Moves under the text on phones. */
609
609
  action?: ReactNode;
610
+ /** Shows a close button at the end; `dismissLabel` names it. */
611
+ onDismiss?: () => void;
612
+ /** @default 'Dismiss' */
613
+ dismissLabel?: string;
610
614
  }
611
615
  /**
612
616
  * Fidel design-system Callout: a tinted row that tells the reader something
613
617
  * about the page they are on and, optionally, what to do about it.
614
618
  */
615
- declare function Callout({ tone, icon, title, titleAside, children, action, className, ...rest }: CalloutProps): react.JSX.Element;
619
+ declare function Callout({ tone, icon, title, titleAside, children, action, onDismiss, dismissLabel, className, ...rest }: CalloutProps): react.JSX.Element;
616
620
 
617
621
  type SkeletonShape = 'rect' | 'text' | 'circle';
618
622
  interface SkeletonProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
@@ -994,7 +998,7 @@ interface BrandButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
994
998
  /** Fidel design-system BrandButton: the product mark that turns into an action icon on hover or focus. */
995
999
  declare function BrandButton({ mark, hoverIcon, type, className, ...rest }: BrandButtonProps): react.JSX.Element;
996
1000
 
997
- type OwnProps<C extends ElementType> = {
1001
+ type OwnProps$1<C extends ElementType> = {
998
1002
  /** Element or component to render, e.g. a router Link. @default 'a' */
999
1003
  as?: C;
1000
1004
  /** 16px icon before the label. */
@@ -1007,7 +1011,7 @@ type OwnProps<C extends ElementType> = {
1007
1011
  iconOnly?: boolean;
1008
1012
  children: ReactNode;
1009
1013
  };
1010
- type SidebarItemProps<C extends ElementType = 'a'> = OwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof OwnProps<C>>;
1014
+ type SidebarItemProps<C extends ElementType = 'a'> = OwnProps$1<C> & Omit<ComponentPropsWithoutRef<C>, keyof OwnProps$1<C>>;
1011
1015
  /** Fidel design-system SidebarItem: one row in a side navigation. */
1012
1016
  declare function SidebarItem<C extends ElementType = 'a'>({ as, icon, leading, active, iconOnly, className, children, ...rest }: SidebarItemProps<C>): react.JSX.Element;
1013
1017
 
@@ -1121,6 +1125,10 @@ declare const AppLayout: typeof AppLayoutRoot & {
1121
1125
  interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1122
1126
  title: ReactNode;
1123
1127
  description?: ReactNode;
1128
+ /** Beside the title block, e.g. a 40px logo mark. */
1129
+ leading?: ReactNode;
1130
+ /** A row of facts under the title, e.g. repo, branch and Tags. Wraps. */
1131
+ meta?: ReactNode;
1124
1132
  /** Above the title, e.g. "Projects / Flow web app". */
1125
1133
  breadcrumb?: ReactNode;
1126
1134
  /** The page's one primary action, and any secondary ones. */
@@ -1129,7 +1137,7 @@ interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1129
1137
  children?: ReactNode;
1130
1138
  }
1131
1139
  /** Fidel design-system PageHeader: breadcrumb, title, description and actions at the top of a page. */
1132
- declare function PageHeader({ title, description, breadcrumb, actions, className, children, ...rest }: PageHeaderProps): react.JSX.Element;
1140
+ declare function PageHeader({ title, description, leading, meta, breadcrumb, actions, className, children, ...rest }: PageHeaderProps): react.JSX.Element;
1133
1141
 
1134
1142
  interface ToastAction {
1135
1143
  label: string;
@@ -1307,4 +1315,254 @@ declare const PageSkeleton: typeof PageSkeletonRoot & {
1307
1315
  Split: typeof PageSkeletonSplit;
1308
1316
  };
1309
1317
 
1310
- export { Accordion, type AccordionProps, AppLayout, type AppLayoutProps, AppNav, type AppNavProps, Avatar, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BrandButton, type BrandButtonProps, type Breakpoint, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Callout, type CalloutProps, type CalloutTone, Card, type CardPadding, type CardProps, type CardTone, Checkbox, type CheckboxProps, Checklist, type ChecklistItemProps, type ChecklistProps, type DiffElement, type DiffPropertyLine, DiffPropertyList, type DiffPropertyListProps, DiffSection, type DiffSectionProps, Divider, type DividerProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Input, type InputProps, ListLabel, type ListLabelProps, Menu, type MenuDivider, type MenuEntry, type MenuItem, type MenuLabel, type MenuPlacement, type MenuProps, type MenuSearch, MismatchCard, type MismatchCardProps, type MismatchProperty, Modal, type ModalProps, type ModalSize, type ModalTone, MultiSelect, type MultiSelectOption, type MultiSelectProps, NumberedSteps, type NumberedStepsProps, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PageHeader, type PageHeaderProps, PageSkeleton, type PageSkeletonHeaderProps, type PageSkeletonProps, Pagination, type PaginationProps, PricingCard, type PricingCardProps, Radio, RadioCard, type RadioCardProps, type RadioProps, ResourceCard, type ResourceCardProps, type ResourceCardStat, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Select, type SelectOption, type SelectProps, SettingsSection, type SettingsSectionProps, Sidebar, type SidebarBrandProps, SidebarItem, type SidebarItemProps, type SidebarProps, type SidebarSectionProps, type SidebarState, Skeleton, SkeletonGroup, type SkeletonGroupProps, type SkeletonProps, type SkeletonShape, Spinner, type SpinnerProps, Split, type SplitProps, StackedCardsIllustration, Stat, type StatProps, StatusDot, type StatusDotProps, type StatusDotStatus, type Step, StepList, type StepListProps, type StepStatus, Stepper, type StepperProps, type StepperStepProps, type StepperStepStatus, Swatch, type SwatchProps, TabNav, type TabNavProps, Table, type TableColumn, type TableProps, Tag, type TagProps, Toast, type ToastAction, type ToastProps, ToastRegion, type ToastRegionProps, Toggle, type ToggleProps, type ToggleSize, type Tone, Tooltip, type TooltipProps, type TooltipSide, WorkspaceAvatar, WorkspaceSwitcher, type WorkspaceSwitcherProps, breakpoints, useSidebar };
1318
+ type PreviewCardProps<T extends ElementType = 'div'> = {
1319
+ /** Render as a link, e.g. react-router's `Link`. @default 'div' */
1320
+ as?: T;
1321
+ /** `add` is the dashed card that invites adding another one. @default 'default' */
1322
+ variant?: 'default' | 'add';
1323
+ } & Omit<ComponentPropsWithoutRef<T>, 'as'>;
1324
+ declare function PreviewCardRoot<T extends ElementType = 'div'>({ as, variant, className, ...rest }: PreviewCardProps<T>): react.JSX.Element;
1325
+ interface PreviewCardPreviewProps extends HTMLAttributes<HTMLDivElement> {
1326
+ /** A small chip in the top corner naming where the preview comes from. */
1327
+ label?: ReactNode;
1328
+ }
1329
+ declare function PreviewCardPreview({ label, className, children, ...rest }: PreviewCardPreviewProps): react.JSX.Element;
1330
+ interface PreviewCardTitleProps extends HTMLAttributes<HTMLDivElement> {
1331
+ /** At the end of the title row, e.g. a Tag or "4 variants". */
1332
+ aside?: ReactNode;
1333
+ }
1334
+ declare function PreviewCardTitle({ aside, className, children, ...rest }: PreviewCardTitleProps): react.JSX.Element;
1335
+ /**
1336
+ * Fidel design-system PreviewCard: a picture of a thing over its name, facts
1337
+ * and a footer. Compose `Preview`, `Body` (holding `Title` and `Meta`) and `Footer`.
1338
+ */
1339
+ declare const PreviewCard: typeof PreviewCardRoot & {
1340
+ Preview: typeof PreviewCardPreview;
1341
+ Body: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1342
+ Title: typeof PreviewCardTitle;
1343
+ Meta: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1344
+ Footer: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1345
+ };
1346
+
1347
+ interface TileProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1348
+ /** Small heading in the top corner; pass a link to make it one. */
1349
+ label: ReactNode;
1350
+ /** Beside the label, e.g. a "Reading 3 of 5" Tag. */
1351
+ aside?: ReactNode;
1352
+ }
1353
+ /** Fidel design-system Tile: a quiet labelled panel holding a sample, for a grid of overview tiles. */
1354
+ declare function Tile({ label, aside, className, children, ...rest }: TileProps): react.JSX.Element;
1355
+
1356
+ interface ListCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1357
+ title?: ReactNode;
1358
+ /** A number after the title. */
1359
+ count?: number;
1360
+ /** At the end of the header, e.g. "Step 2 of 4". */
1361
+ aside?: ReactNode;
1362
+ /** A quiet line under the rows. */
1363
+ footer?: ReactNode;
1364
+ }
1365
+ declare function ListCardRoot({ title, count, aside, footer, className, children, ...rest }: ListCardProps): react.JSX.Element;
1366
+ interface ListCardRowProps extends Omit<HTMLAttributes<HTMLLIElement>, 'title'> {
1367
+ /** 16px icon before the text. */
1368
+ icon?: ReactNode;
1369
+ /** Colours the icon. @default 'neutral' */
1370
+ tone?: Tone;
1371
+ title: ReactNode;
1372
+ description?: ReactNode;
1373
+ /** At the end of the row, e.g. a Button, a count or a Tag. */
1374
+ trailing?: ReactNode;
1375
+ /** Dims the row, e.g. a step not reached yet. */
1376
+ muted?: boolean;
1377
+ }
1378
+ declare function ListCardRow({ icon, tone, title, description, trailing, muted, className, ...rest }: ListCardRowProps): react.JSX.Element;
1379
+ /** Fidel design-system ListCard: a bordered card of rows, each with an icon, text and something at the end. */
1380
+ declare const ListCard: typeof ListCardRoot & {
1381
+ Row: typeof ListCardRow;
1382
+ };
1383
+
1384
+ interface DescriptionListItem {
1385
+ label: ReactNode;
1386
+ value: ReactNode;
1387
+ }
1388
+ interface DescriptionListProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1389
+ title?: ReactNode;
1390
+ /** At the end of the title row, e.g. a "Setup ›" link. */
1391
+ action?: ReactNode;
1392
+ items?: DescriptionListItem[];
1393
+ /** A quiet note under the items. */
1394
+ note?: ReactNode;
1395
+ }
1396
+ /** Fidel design-system DescriptionList: a titled group of label and value rows, for a side panel. */
1397
+ declare function DescriptionList({ title, action, items, note, className, children, ...rest }: DescriptionListProps): react.JSX.Element;
1398
+
1399
+ interface ColorRampProps extends HTMLAttributes<HTMLDivElement> {
1400
+ /** CSS colours, light to dark or in token order. Pass values you have already validated. */
1401
+ colors: string[];
1402
+ /** Height of the strip: 16, 32 or 64px. @default 'md' */
1403
+ size?: 'sm' | 'md' | 'lg';
1404
+ }
1405
+ /** Fidel design-system ColorRamp: a strip of colour blocks side by side, for a palette at a glance. */
1406
+ declare function ColorRamp({ colors, size, className, ...rest }: ColorRampProps): react.JSX.Element;
1407
+
1408
+ interface SwatchListItem {
1409
+ /** A CSS colour you have already validated, or null when it can't be shown. */
1410
+ color: string | null;
1411
+ name: ReactNode;
1412
+ value: ReactNode;
1413
+ }
1414
+ interface SwatchListProps extends HTMLAttributes<HTMLUListElement> {
1415
+ items: SwatchListItem[];
1416
+ }
1417
+ /** Fidel design-system SwatchList: compact rows of a colour dot, a token name and its value. */
1418
+ declare function SwatchList({ items, className, ...rest }: SwatchListProps): react.JSX.Element;
1419
+
1420
+ interface TypeSpecimenWeight {
1421
+ label: string;
1422
+ weight: number;
1423
+ }
1424
+ interface TypeSpecimenProps extends HTMLAttributes<HTMLElement> {
1425
+ /** Family name to show, e.g. "Rethink Sans". */
1426
+ family: string;
1427
+ /** The CSS font-family to draw the samples in. Pass a value you have already validated. */
1428
+ fontFamily: string;
1429
+ /** The variables that use this family, e.g. Tags for `--font-body`. */
1430
+ tokens?: ReactNode;
1431
+ /** A line set in the family. */
1432
+ sample?: ReactNode;
1433
+ weights?: TypeSpecimenWeight[];
1434
+ /** A quiet note at the bottom, e.g. the fallback stack. */
1435
+ footer?: ReactNode;
1436
+ }
1437
+ /** Fidel design-system TypeSpecimen: one typeface drawn large, with its alphabet and weights. */
1438
+ declare function TypeSpecimen({ family, fontFamily, tokens, sample, weights, footer, className, ...rest }: TypeSpecimenProps): react.JSX.Element;
1439
+ interface TypeSampleProps extends HTMLAttributes<HTMLDivElement> {
1440
+ fontFamily: string;
1441
+ /** Under the glyphs, e.g. "Body and display". */
1442
+ caption?: ReactNode;
1443
+ }
1444
+ /** Fidel design-system TypeSample: a large "Aa" in one typeface with a caption, for overview tiles. */
1445
+ declare function TypeSample({ fontFamily, caption, className, ...rest }: TypeSampleProps): react.JSX.Element;
1446
+
1447
+ declare function TypeScaleRoot({ className, ...rest }: HTMLAttributes<HTMLUListElement>): react.JSX.Element;
1448
+ interface TypeScaleRowProps extends HTMLAttributes<HTMLLIElement> {
1449
+ /** The token, e.g. "text-4xl". Set in mono. */
1450
+ name: ReactNode;
1451
+ /** Under the name, e.g. "36px / 40px". */
1452
+ detail?: ReactNode;
1453
+ /** Size, line height, weight or family to draw the sample with. Pass values you have already validated. */
1454
+ sampleStyle: CSSProperties;
1455
+ /** @default 'Check every pull request' */
1456
+ sample?: ReactNode;
1457
+ }
1458
+ declare function TypeScaleRow({ name, detail, sampleStyle, sample, className, ...rest }: TypeScaleRowProps): react.JSX.Element;
1459
+ /** Fidel design-system TypeScale: one row per text size, each drawn at its real size. */
1460
+ declare const TypeScale: typeof TypeScaleRoot & {
1461
+ Row: typeof TypeScaleRow;
1462
+ };
1463
+
1464
+ interface MeasureListItem {
1465
+ name: ReactNode;
1466
+ value: ReactNode;
1467
+ /** The number the bar is drawn from, in any unit shared by every item. */
1468
+ amount: number;
1469
+ }
1470
+ interface MeasureListProps extends HTMLAttributes<HTMLUListElement> {
1471
+ items: MeasureListItem[];
1472
+ /** The amount a full bar stands for. @default the largest amount */
1473
+ max?: number;
1474
+ /** @default 'accent' */
1475
+ tone?: 'accent' | 'neutral';
1476
+ }
1477
+ /** Fidel design-system MeasureList: rows of a token name, its value and a bar to scale, e.g. spacing or durations. */
1478
+ declare function MeasureList({ items, max, tone, className, ...rest }: MeasureListProps): react.JSX.Element;
1479
+
1480
+ interface TokenSampleProps extends HTMLAttributes<HTMLDivElement> {
1481
+ /** What the sample draws: a corner radius or a box shadow. */
1482
+ kind: 'radius' | 'shadow';
1483
+ /** The CSS value to draw. Pass a value you have already validated. */
1484
+ value: string;
1485
+ name: ReactNode;
1486
+ /** Under the name, e.g. "8px" or the shadow as written. */
1487
+ detail?: ReactNode;
1488
+ }
1489
+ /** Fidel design-system TokenSample: a square drawn with one radius or shadow token, over its name and value. */
1490
+ declare function TokenSample({ kind, value, name, detail, className, ...rest }: TokenSampleProps): react.JSX.Element;
1491
+
1492
+ interface EasingCurveProps extends HTMLAttributes<HTMLDivElement> {
1493
+ /** `cubic-bezier(x1, y1, x2, y2)`. Anything else draws a straight line. */
1494
+ value: string;
1495
+ name: ReactNode;
1496
+ }
1497
+ /** Fidel design-system EasingCurve: an easing token drawn as its curve, over its name and value. */
1498
+ declare function EasingCurve({ value, name, className, ...rest }: EasingCurveProps): react.JSX.Element;
1499
+
1500
+ interface FilterChipOption<T extends string> {
1501
+ value: T;
1502
+ label: ReactNode;
1503
+ /** Shown after the label, e.g. how many items match. */
1504
+ count?: number;
1505
+ }
1506
+ interface FilterChipsProps<T extends string> {
1507
+ options: FilterChipOption<T>[];
1508
+ value: T;
1509
+ onChange: (value: T) => void;
1510
+ /** Names the group for screen readers. */
1511
+ 'aria-label': string;
1512
+ className?: string;
1513
+ }
1514
+ /**
1515
+ * Fidel design-system FilterChips: a row of pill filters, one selected, each
1516
+ * with a count. A radio group: Arrow keys move and select; Tab leaves it.
1517
+ */
1518
+ declare function FilterChips<T extends string>({ options, value, onChange, 'aria-label': ariaLabel, className }: FilterChipsProps<T>): react.JSX.Element;
1519
+
1520
+ interface MeterProps extends HTMLAttributes<HTMLDivElement> {
1521
+ value: number;
1522
+ max: number;
1523
+ /** Beside the bar, e.g. "1 of 3 brands on Pro". Also names the meter for screen readers when it is a string. */
1524
+ label: ReactNode;
1525
+ }
1526
+ /** Fidel design-system Meter: a thin bar showing how much of an allowance is used. */
1527
+ declare function Meter({ value, max, label, className, ...rest }: MeterProps): react.JSX.Element;
1528
+
1529
+ interface ConnectionCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1530
+ /** 20px mark of the service, shown in a 36px tile. */
1531
+ icon: ReactNode;
1532
+ /** `dark` fills the tile, e.g. for a terminal mark. @default 'light' */
1533
+ iconTone?: 'light' | 'dark';
1534
+ title: ReactNode;
1535
+ /** Under the title, e.g. "Shared with Flow" or "Only you". */
1536
+ subtitle?: ReactNode;
1537
+ /** Pinned to the bottom, e.g. Connect or Disconnect. */
1538
+ footer?: ReactNode;
1539
+ }
1540
+ /** Fidel design-system ConnectionCard: one connected service, its state and the action that changes it. */
1541
+ declare function ConnectionCard({ icon, iconTone, title, subtitle, footer, className, children, ...rest }: ConnectionCardProps): react.JSX.Element;
1542
+
1543
+ interface OwnProps<T extends ElementType> {
1544
+ /** Render as a link, e.g. react-router's `Link`. @default 'button' */
1545
+ as?: T;
1546
+ /** Before the text, e.g. an avatar. */
1547
+ leading?: ReactNode;
1548
+ title: ReactNode;
1549
+ description?: ReactNode;
1550
+ /** At the end. @default a chevron */
1551
+ trailing?: ReactNode;
1552
+ }
1553
+ type ListRowProps<T extends ElementType = 'button'> = OwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof OwnProps<T> | 'title'>;
1554
+ /** Fidel design-system ListRow: a quiet clickable row that opens something, with a leading mark and a chevron. */
1555
+ declare function ListRow<T extends ElementType = 'button'>({ as, leading, title, description, trailing, className, ...rest }: ListRowProps<T>): react.JSX.Element;
1556
+
1557
+ interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
1558
+ /** The text to show and copy. */
1559
+ code: string;
1560
+ /** Names the copy button. @default 'Copy' */
1561
+ copyLabel?: string;
1562
+ /** `inline` is one dark line for a command; `block` keeps line breaks for a file. @default 'inline' */
1563
+ variant?: 'inline' | 'block';
1564
+ }
1565
+ /** Fidel design-system CodeBlock: a command or file in mono with a copy button. */
1566
+ declare function CodeBlock({ code, copyLabel, variant, className, ...rest }: CodeBlockProps): react.JSX.Element;
1567
+
1568
+ export { Accordion, type AccordionProps, AppLayout, type AppLayoutProps, AppNav, type AppNavProps, Avatar, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BrandButton, type BrandButtonProps, type Breakpoint, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Callout, type CalloutProps, type CalloutTone, Card, type CardPadding, type CardProps, type CardTone, Checkbox, type CheckboxProps, Checklist, type ChecklistItemProps, type ChecklistProps, CodeBlock, type CodeBlockProps, ColorRamp, type ColorRampProps, ConnectionCard, type ConnectionCardProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, type DiffElement, type DiffPropertyLine, DiffPropertyList, type DiffPropertyListProps, DiffSection, type DiffSectionProps, Divider, type DividerProps, Drawer, type DrawerProps, EasingCurve, type EasingCurveProps, EmptyState, type EmptyStateProps, type FilterChipOption, FilterChips, type FilterChipsProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Input, type InputProps, ListCard, type ListCardProps, type ListCardRowProps, ListLabel, type ListLabelProps, ListRow, type ListRowProps, MeasureList, type MeasureListItem, type MeasureListProps, Menu, type MenuDivider, type MenuEntry, type MenuItem, type MenuLabel, type MenuPlacement, type MenuProps, type MenuSearch, Meter, type MeterProps, MismatchCard, type MismatchCardProps, type MismatchProperty, Modal, type ModalProps, type ModalSize, type ModalTone, MultiSelect, type MultiSelectOption, type MultiSelectProps, NumberedSteps, type NumberedStepsProps, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PageHeader, type PageHeaderProps, PageSkeleton, type PageSkeletonHeaderProps, type PageSkeletonProps, Pagination, type PaginationProps, PreviewCard, type PreviewCardPreviewProps, type PreviewCardProps, type PreviewCardTitleProps, PricingCard, type PricingCardProps, Radio, RadioCard, type RadioCardProps, type RadioProps, ResourceCard, type ResourceCardProps, type ResourceCardStat, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Select, type SelectOption, type SelectProps, SettingsSection, type SettingsSectionProps, Sidebar, type SidebarBrandProps, SidebarItem, type SidebarItemProps, type SidebarProps, type SidebarSectionProps, type SidebarState, Skeleton, SkeletonGroup, type SkeletonGroupProps, type SkeletonProps, type SkeletonShape, Spinner, type SpinnerProps, Split, type SplitProps, StackedCardsIllustration, Stat, type StatProps, StatusDot, type StatusDotProps, type StatusDotStatus, type Step, StepList, type StepListProps, type StepStatus, Stepper, type StepperProps, type StepperStepProps, type StepperStepStatus, Swatch, SwatchList, type SwatchListItem, type SwatchListProps, type SwatchProps, TabNav, type TabNavProps, Table, type TableColumn, type TableProps, Tag, type TagProps, Tile, type TileProps, Toast, type ToastAction, type ToastProps, ToastRegion, type ToastRegionProps, Toggle, type ToggleProps, type ToggleSize, TokenSample, type TokenSampleProps, type Tone, Tooltip, type TooltipProps, type TooltipSide, TypeSample, type TypeSampleProps, TypeScale, type TypeScaleRowProps, TypeSpecimen, type TypeSpecimenProps, type TypeSpecimenWeight, WorkspaceAvatar, WorkspaceSwitcher, type WorkspaceSwitcherProps, breakpoints, useSidebar };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, SVGAttributes, ReactElement, ElementType, ComponentPropsWithoutRef } from 'react';
2
+ import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, SVGAttributes, ReactElement, ElementType, ComponentPropsWithoutRef, CSSProperties } from 'react';
3
3
 
4
4
  type ButtonVariant = 'primary' | 'outlined' | 'text' | 'neutral' | 'link'
5
5
  /** High-contrast near-black, for a page's main create action ("New comparison"). */
@@ -607,12 +607,16 @@ interface CalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
607
607
  children?: ReactNode;
608
608
  /** Trailing action(s), e.g. a ButtonLink. Moves under the text on phones. */
609
609
  action?: ReactNode;
610
+ /** Shows a close button at the end; `dismissLabel` names it. */
611
+ onDismiss?: () => void;
612
+ /** @default 'Dismiss' */
613
+ dismissLabel?: string;
610
614
  }
611
615
  /**
612
616
  * Fidel design-system Callout: a tinted row that tells the reader something
613
617
  * about the page they are on and, optionally, what to do about it.
614
618
  */
615
- declare function Callout({ tone, icon, title, titleAside, children, action, className, ...rest }: CalloutProps): react.JSX.Element;
619
+ declare function Callout({ tone, icon, title, titleAside, children, action, onDismiss, dismissLabel, className, ...rest }: CalloutProps): react.JSX.Element;
616
620
 
617
621
  type SkeletonShape = 'rect' | 'text' | 'circle';
618
622
  interface SkeletonProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
@@ -994,7 +998,7 @@ interface BrandButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>,
994
998
  /** Fidel design-system BrandButton: the product mark that turns into an action icon on hover or focus. */
995
999
  declare function BrandButton({ mark, hoverIcon, type, className, ...rest }: BrandButtonProps): react.JSX.Element;
996
1000
 
997
- type OwnProps<C extends ElementType> = {
1001
+ type OwnProps$1<C extends ElementType> = {
998
1002
  /** Element or component to render, e.g. a router Link. @default 'a' */
999
1003
  as?: C;
1000
1004
  /** 16px icon before the label. */
@@ -1007,7 +1011,7 @@ type OwnProps<C extends ElementType> = {
1007
1011
  iconOnly?: boolean;
1008
1012
  children: ReactNode;
1009
1013
  };
1010
- type SidebarItemProps<C extends ElementType = 'a'> = OwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof OwnProps<C>>;
1014
+ type SidebarItemProps<C extends ElementType = 'a'> = OwnProps$1<C> & Omit<ComponentPropsWithoutRef<C>, keyof OwnProps$1<C>>;
1011
1015
  /** Fidel design-system SidebarItem: one row in a side navigation. */
1012
1016
  declare function SidebarItem<C extends ElementType = 'a'>({ as, icon, leading, active, iconOnly, className, children, ...rest }: SidebarItemProps<C>): react.JSX.Element;
1013
1017
 
@@ -1121,6 +1125,10 @@ declare const AppLayout: typeof AppLayoutRoot & {
1121
1125
  interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1122
1126
  title: ReactNode;
1123
1127
  description?: ReactNode;
1128
+ /** Beside the title block, e.g. a 40px logo mark. */
1129
+ leading?: ReactNode;
1130
+ /** A row of facts under the title, e.g. repo, branch and Tags. Wraps. */
1131
+ meta?: ReactNode;
1124
1132
  /** Above the title, e.g. "Projects / Flow web app". */
1125
1133
  breadcrumb?: ReactNode;
1126
1134
  /** The page's one primary action, and any secondary ones. */
@@ -1129,7 +1137,7 @@ interface PageHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1129
1137
  children?: ReactNode;
1130
1138
  }
1131
1139
  /** Fidel design-system PageHeader: breadcrumb, title, description and actions at the top of a page. */
1132
- declare function PageHeader({ title, description, breadcrumb, actions, className, children, ...rest }: PageHeaderProps): react.JSX.Element;
1140
+ declare function PageHeader({ title, description, leading, meta, breadcrumb, actions, className, children, ...rest }: PageHeaderProps): react.JSX.Element;
1133
1141
 
1134
1142
  interface ToastAction {
1135
1143
  label: string;
@@ -1307,4 +1315,254 @@ declare const PageSkeleton: typeof PageSkeletonRoot & {
1307
1315
  Split: typeof PageSkeletonSplit;
1308
1316
  };
1309
1317
 
1310
- export { Accordion, type AccordionProps, AppLayout, type AppLayoutProps, AppNav, type AppNavProps, Avatar, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BrandButton, type BrandButtonProps, type Breakpoint, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Callout, type CalloutProps, type CalloutTone, Card, type CardPadding, type CardProps, type CardTone, Checkbox, type CheckboxProps, Checklist, type ChecklistItemProps, type ChecklistProps, type DiffElement, type DiffPropertyLine, DiffPropertyList, type DiffPropertyListProps, DiffSection, type DiffSectionProps, Divider, type DividerProps, Drawer, type DrawerProps, EmptyState, type EmptyStateProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Input, type InputProps, ListLabel, type ListLabelProps, Menu, type MenuDivider, type MenuEntry, type MenuItem, type MenuLabel, type MenuPlacement, type MenuProps, type MenuSearch, MismatchCard, type MismatchCardProps, type MismatchProperty, Modal, type ModalProps, type ModalSize, type ModalTone, MultiSelect, type MultiSelectOption, type MultiSelectProps, NumberedSteps, type NumberedStepsProps, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PageHeader, type PageHeaderProps, PageSkeleton, type PageSkeletonHeaderProps, type PageSkeletonProps, Pagination, type PaginationProps, PricingCard, type PricingCardProps, Radio, RadioCard, type RadioCardProps, type RadioProps, ResourceCard, type ResourceCardProps, type ResourceCardStat, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Select, type SelectOption, type SelectProps, SettingsSection, type SettingsSectionProps, Sidebar, type SidebarBrandProps, SidebarItem, type SidebarItemProps, type SidebarProps, type SidebarSectionProps, type SidebarState, Skeleton, SkeletonGroup, type SkeletonGroupProps, type SkeletonProps, type SkeletonShape, Spinner, type SpinnerProps, Split, type SplitProps, StackedCardsIllustration, Stat, type StatProps, StatusDot, type StatusDotProps, type StatusDotStatus, type Step, StepList, type StepListProps, type StepStatus, Stepper, type StepperProps, type StepperStepProps, type StepperStepStatus, Swatch, type SwatchProps, TabNav, type TabNavProps, Table, type TableColumn, type TableProps, Tag, type TagProps, Toast, type ToastAction, type ToastProps, ToastRegion, type ToastRegionProps, Toggle, type ToggleProps, type ToggleSize, type Tone, Tooltip, type TooltipProps, type TooltipSide, WorkspaceAvatar, WorkspaceSwitcher, type WorkspaceSwitcherProps, breakpoints, useSidebar };
1318
+ type PreviewCardProps<T extends ElementType = 'div'> = {
1319
+ /** Render as a link, e.g. react-router's `Link`. @default 'div' */
1320
+ as?: T;
1321
+ /** `add` is the dashed card that invites adding another one. @default 'default' */
1322
+ variant?: 'default' | 'add';
1323
+ } & Omit<ComponentPropsWithoutRef<T>, 'as'>;
1324
+ declare function PreviewCardRoot<T extends ElementType = 'div'>({ as, variant, className, ...rest }: PreviewCardProps<T>): react.JSX.Element;
1325
+ interface PreviewCardPreviewProps extends HTMLAttributes<HTMLDivElement> {
1326
+ /** A small chip in the top corner naming where the preview comes from. */
1327
+ label?: ReactNode;
1328
+ }
1329
+ declare function PreviewCardPreview({ label, className, children, ...rest }: PreviewCardPreviewProps): react.JSX.Element;
1330
+ interface PreviewCardTitleProps extends HTMLAttributes<HTMLDivElement> {
1331
+ /** At the end of the title row, e.g. a Tag or "4 variants". */
1332
+ aside?: ReactNode;
1333
+ }
1334
+ declare function PreviewCardTitle({ aside, className, children, ...rest }: PreviewCardTitleProps): react.JSX.Element;
1335
+ /**
1336
+ * Fidel design-system PreviewCard: a picture of a thing over its name, facts
1337
+ * and a footer. Compose `Preview`, `Body` (holding `Title` and `Meta`) and `Footer`.
1338
+ */
1339
+ declare const PreviewCard: typeof PreviewCardRoot & {
1340
+ Preview: typeof PreviewCardPreview;
1341
+ Body: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1342
+ Title: typeof PreviewCardTitle;
1343
+ Meta: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1344
+ Footer: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
1345
+ };
1346
+
1347
+ interface TileProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1348
+ /** Small heading in the top corner; pass a link to make it one. */
1349
+ label: ReactNode;
1350
+ /** Beside the label, e.g. a "Reading 3 of 5" Tag. */
1351
+ aside?: ReactNode;
1352
+ }
1353
+ /** Fidel design-system Tile: a quiet labelled panel holding a sample, for a grid of overview tiles. */
1354
+ declare function Tile({ label, aside, className, children, ...rest }: TileProps): react.JSX.Element;
1355
+
1356
+ interface ListCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1357
+ title?: ReactNode;
1358
+ /** A number after the title. */
1359
+ count?: number;
1360
+ /** At the end of the header, e.g. "Step 2 of 4". */
1361
+ aside?: ReactNode;
1362
+ /** A quiet line under the rows. */
1363
+ footer?: ReactNode;
1364
+ }
1365
+ declare function ListCardRoot({ title, count, aside, footer, className, children, ...rest }: ListCardProps): react.JSX.Element;
1366
+ interface ListCardRowProps extends Omit<HTMLAttributes<HTMLLIElement>, 'title'> {
1367
+ /** 16px icon before the text. */
1368
+ icon?: ReactNode;
1369
+ /** Colours the icon. @default 'neutral' */
1370
+ tone?: Tone;
1371
+ title: ReactNode;
1372
+ description?: ReactNode;
1373
+ /** At the end of the row, e.g. a Button, a count or a Tag. */
1374
+ trailing?: ReactNode;
1375
+ /** Dims the row, e.g. a step not reached yet. */
1376
+ muted?: boolean;
1377
+ }
1378
+ declare function ListCardRow({ icon, tone, title, description, trailing, muted, className, ...rest }: ListCardRowProps): react.JSX.Element;
1379
+ /** Fidel design-system ListCard: a bordered card of rows, each with an icon, text and something at the end. */
1380
+ declare const ListCard: typeof ListCardRoot & {
1381
+ Row: typeof ListCardRow;
1382
+ };
1383
+
1384
+ interface DescriptionListItem {
1385
+ label: ReactNode;
1386
+ value: ReactNode;
1387
+ }
1388
+ interface DescriptionListProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1389
+ title?: ReactNode;
1390
+ /** At the end of the title row, e.g. a "Setup ›" link. */
1391
+ action?: ReactNode;
1392
+ items?: DescriptionListItem[];
1393
+ /** A quiet note under the items. */
1394
+ note?: ReactNode;
1395
+ }
1396
+ /** Fidel design-system DescriptionList: a titled group of label and value rows, for a side panel. */
1397
+ declare function DescriptionList({ title, action, items, note, className, children, ...rest }: DescriptionListProps): react.JSX.Element;
1398
+
1399
+ interface ColorRampProps extends HTMLAttributes<HTMLDivElement> {
1400
+ /** CSS colours, light to dark or in token order. Pass values you have already validated. */
1401
+ colors: string[];
1402
+ /** Height of the strip: 16, 32 or 64px. @default 'md' */
1403
+ size?: 'sm' | 'md' | 'lg';
1404
+ }
1405
+ /** Fidel design-system ColorRamp: a strip of colour blocks side by side, for a palette at a glance. */
1406
+ declare function ColorRamp({ colors, size, className, ...rest }: ColorRampProps): react.JSX.Element;
1407
+
1408
+ interface SwatchListItem {
1409
+ /** A CSS colour you have already validated, or null when it can't be shown. */
1410
+ color: string | null;
1411
+ name: ReactNode;
1412
+ value: ReactNode;
1413
+ }
1414
+ interface SwatchListProps extends HTMLAttributes<HTMLUListElement> {
1415
+ items: SwatchListItem[];
1416
+ }
1417
+ /** Fidel design-system SwatchList: compact rows of a colour dot, a token name and its value. */
1418
+ declare function SwatchList({ items, className, ...rest }: SwatchListProps): react.JSX.Element;
1419
+
1420
+ interface TypeSpecimenWeight {
1421
+ label: string;
1422
+ weight: number;
1423
+ }
1424
+ interface TypeSpecimenProps extends HTMLAttributes<HTMLElement> {
1425
+ /** Family name to show, e.g. "Rethink Sans". */
1426
+ family: string;
1427
+ /** The CSS font-family to draw the samples in. Pass a value you have already validated. */
1428
+ fontFamily: string;
1429
+ /** The variables that use this family, e.g. Tags for `--font-body`. */
1430
+ tokens?: ReactNode;
1431
+ /** A line set in the family. */
1432
+ sample?: ReactNode;
1433
+ weights?: TypeSpecimenWeight[];
1434
+ /** A quiet note at the bottom, e.g. the fallback stack. */
1435
+ footer?: ReactNode;
1436
+ }
1437
+ /** Fidel design-system TypeSpecimen: one typeface drawn large, with its alphabet and weights. */
1438
+ declare function TypeSpecimen({ family, fontFamily, tokens, sample, weights, footer, className, ...rest }: TypeSpecimenProps): react.JSX.Element;
1439
+ interface TypeSampleProps extends HTMLAttributes<HTMLDivElement> {
1440
+ fontFamily: string;
1441
+ /** Under the glyphs, e.g. "Body and display". */
1442
+ caption?: ReactNode;
1443
+ }
1444
+ /** Fidel design-system TypeSample: a large "Aa" in one typeface with a caption, for overview tiles. */
1445
+ declare function TypeSample({ fontFamily, caption, className, ...rest }: TypeSampleProps): react.JSX.Element;
1446
+
1447
+ declare function TypeScaleRoot({ className, ...rest }: HTMLAttributes<HTMLUListElement>): react.JSX.Element;
1448
+ interface TypeScaleRowProps extends HTMLAttributes<HTMLLIElement> {
1449
+ /** The token, e.g. "text-4xl". Set in mono. */
1450
+ name: ReactNode;
1451
+ /** Under the name, e.g. "36px / 40px". */
1452
+ detail?: ReactNode;
1453
+ /** Size, line height, weight or family to draw the sample with. Pass values you have already validated. */
1454
+ sampleStyle: CSSProperties;
1455
+ /** @default 'Check every pull request' */
1456
+ sample?: ReactNode;
1457
+ }
1458
+ declare function TypeScaleRow({ name, detail, sampleStyle, sample, className, ...rest }: TypeScaleRowProps): react.JSX.Element;
1459
+ /** Fidel design-system TypeScale: one row per text size, each drawn at its real size. */
1460
+ declare const TypeScale: typeof TypeScaleRoot & {
1461
+ Row: typeof TypeScaleRow;
1462
+ };
1463
+
1464
+ interface MeasureListItem {
1465
+ name: ReactNode;
1466
+ value: ReactNode;
1467
+ /** The number the bar is drawn from, in any unit shared by every item. */
1468
+ amount: number;
1469
+ }
1470
+ interface MeasureListProps extends HTMLAttributes<HTMLUListElement> {
1471
+ items: MeasureListItem[];
1472
+ /** The amount a full bar stands for. @default the largest amount */
1473
+ max?: number;
1474
+ /** @default 'accent' */
1475
+ tone?: 'accent' | 'neutral';
1476
+ }
1477
+ /** Fidel design-system MeasureList: rows of a token name, its value and a bar to scale, e.g. spacing or durations. */
1478
+ declare function MeasureList({ items, max, tone, className, ...rest }: MeasureListProps): react.JSX.Element;
1479
+
1480
+ interface TokenSampleProps extends HTMLAttributes<HTMLDivElement> {
1481
+ /** What the sample draws: a corner radius or a box shadow. */
1482
+ kind: 'radius' | 'shadow';
1483
+ /** The CSS value to draw. Pass a value you have already validated. */
1484
+ value: string;
1485
+ name: ReactNode;
1486
+ /** Under the name, e.g. "8px" or the shadow as written. */
1487
+ detail?: ReactNode;
1488
+ }
1489
+ /** Fidel design-system TokenSample: a square drawn with one radius or shadow token, over its name and value. */
1490
+ declare function TokenSample({ kind, value, name, detail, className, ...rest }: TokenSampleProps): react.JSX.Element;
1491
+
1492
+ interface EasingCurveProps extends HTMLAttributes<HTMLDivElement> {
1493
+ /** `cubic-bezier(x1, y1, x2, y2)`. Anything else draws a straight line. */
1494
+ value: string;
1495
+ name: ReactNode;
1496
+ }
1497
+ /** Fidel design-system EasingCurve: an easing token drawn as its curve, over its name and value. */
1498
+ declare function EasingCurve({ value, name, className, ...rest }: EasingCurveProps): react.JSX.Element;
1499
+
1500
+ interface FilterChipOption<T extends string> {
1501
+ value: T;
1502
+ label: ReactNode;
1503
+ /** Shown after the label, e.g. how many items match. */
1504
+ count?: number;
1505
+ }
1506
+ interface FilterChipsProps<T extends string> {
1507
+ options: FilterChipOption<T>[];
1508
+ value: T;
1509
+ onChange: (value: T) => void;
1510
+ /** Names the group for screen readers. */
1511
+ 'aria-label': string;
1512
+ className?: string;
1513
+ }
1514
+ /**
1515
+ * Fidel design-system FilterChips: a row of pill filters, one selected, each
1516
+ * with a count. A radio group: Arrow keys move and select; Tab leaves it.
1517
+ */
1518
+ declare function FilterChips<T extends string>({ options, value, onChange, 'aria-label': ariaLabel, className }: FilterChipsProps<T>): react.JSX.Element;
1519
+
1520
+ interface MeterProps extends HTMLAttributes<HTMLDivElement> {
1521
+ value: number;
1522
+ max: number;
1523
+ /** Beside the bar, e.g. "1 of 3 brands on Pro". Also names the meter for screen readers when it is a string. */
1524
+ label: ReactNode;
1525
+ }
1526
+ /** Fidel design-system Meter: a thin bar showing how much of an allowance is used. */
1527
+ declare function Meter({ value, max, label, className, ...rest }: MeterProps): react.JSX.Element;
1528
+
1529
+ interface ConnectionCardProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
1530
+ /** 20px mark of the service, shown in a 36px tile. */
1531
+ icon: ReactNode;
1532
+ /** `dark` fills the tile, e.g. for a terminal mark. @default 'light' */
1533
+ iconTone?: 'light' | 'dark';
1534
+ title: ReactNode;
1535
+ /** Under the title, e.g. "Shared with Flow" or "Only you". */
1536
+ subtitle?: ReactNode;
1537
+ /** Pinned to the bottom, e.g. Connect or Disconnect. */
1538
+ footer?: ReactNode;
1539
+ }
1540
+ /** Fidel design-system ConnectionCard: one connected service, its state and the action that changes it. */
1541
+ declare function ConnectionCard({ icon, iconTone, title, subtitle, footer, className, children, ...rest }: ConnectionCardProps): react.JSX.Element;
1542
+
1543
+ interface OwnProps<T extends ElementType> {
1544
+ /** Render as a link, e.g. react-router's `Link`. @default 'button' */
1545
+ as?: T;
1546
+ /** Before the text, e.g. an avatar. */
1547
+ leading?: ReactNode;
1548
+ title: ReactNode;
1549
+ description?: ReactNode;
1550
+ /** At the end. @default a chevron */
1551
+ trailing?: ReactNode;
1552
+ }
1553
+ type ListRowProps<T extends ElementType = 'button'> = OwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof OwnProps<T> | 'title'>;
1554
+ /** Fidel design-system ListRow: a quiet clickable row that opens something, with a leading mark and a chevron. */
1555
+ declare function ListRow<T extends ElementType = 'button'>({ as, leading, title, description, trailing, className, ...rest }: ListRowProps<T>): react.JSX.Element;
1556
+
1557
+ interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
1558
+ /** The text to show and copy. */
1559
+ code: string;
1560
+ /** Names the copy button. @default 'Copy' */
1561
+ copyLabel?: string;
1562
+ /** `inline` is one dark line for a command; `block` keeps line breaks for a file. @default 'inline' */
1563
+ variant?: 'inline' | 'block';
1564
+ }
1565
+ /** Fidel design-system CodeBlock: a command or file in mono with a copy button. */
1566
+ declare function CodeBlock({ code, copyLabel, variant, className, ...rest }: CodeBlockProps): react.JSX.Element;
1567
+
1568
+ export { Accordion, type AccordionProps, AppLayout, type AppLayoutProps, AppNav, type AppNavProps, Avatar, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, BrandButton, type BrandButtonProps, type Breakpoint, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Callout, type CalloutProps, type CalloutTone, Card, type CardPadding, type CardProps, type CardTone, Checkbox, type CheckboxProps, Checklist, type ChecklistItemProps, type ChecklistProps, CodeBlock, type CodeBlockProps, ColorRamp, type ColorRampProps, ConnectionCard, type ConnectionCardProps, DescriptionList, type DescriptionListItem, type DescriptionListProps, type DiffElement, type DiffPropertyLine, DiffPropertyList, type DiffPropertyListProps, DiffSection, type DiffSectionProps, Divider, type DividerProps, Drawer, type DrawerProps, EasingCurve, type EasingCurveProps, EmptyState, type EmptyStateProps, type FilterChipOption, FilterChips, type FilterChipsProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Input, type InputProps, ListCard, type ListCardProps, type ListCardRowProps, ListLabel, type ListLabelProps, ListRow, type ListRowProps, MeasureList, type MeasureListItem, type MeasureListProps, Menu, type MenuDivider, type MenuEntry, type MenuItem, type MenuLabel, type MenuPlacement, type MenuProps, type MenuSearch, Meter, type MeterProps, MismatchCard, type MismatchCardProps, type MismatchProperty, Modal, type ModalProps, type ModalSize, type ModalTone, MultiSelect, type MultiSelectOption, type MultiSelectProps, NumberedSteps, type NumberedStepsProps, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PageHeader, type PageHeaderProps, PageSkeleton, type PageSkeletonHeaderProps, type PageSkeletonProps, Pagination, type PaginationProps, PreviewCard, type PreviewCardPreviewProps, type PreviewCardProps, type PreviewCardTitleProps, PricingCard, type PricingCardProps, Radio, RadioCard, type RadioCardProps, type RadioProps, ResourceCard, type ResourceCardProps, type ResourceCardStat, SearchInput, type SearchInputProps, SectionHeader, type SectionHeaderProps, SegmentedControl, type SegmentedControlProps, type SegmentedOption, Select, type SelectOption, type SelectProps, SettingsSection, type SettingsSectionProps, Sidebar, type SidebarBrandProps, SidebarItem, type SidebarItemProps, type SidebarProps, type SidebarSectionProps, type SidebarState, Skeleton, SkeletonGroup, type SkeletonGroupProps, type SkeletonProps, type SkeletonShape, Spinner, type SpinnerProps, Split, type SplitProps, StackedCardsIllustration, Stat, type StatProps, StatusDot, type StatusDotProps, type StatusDotStatus, type Step, StepList, type StepListProps, type StepStatus, Stepper, type StepperProps, type StepperStepProps, type StepperStepStatus, Swatch, SwatchList, type SwatchListItem, type SwatchListProps, type SwatchProps, TabNav, type TabNavProps, Table, type TableColumn, type TableProps, Tag, type TagProps, Tile, type TileProps, Toast, type ToastAction, type ToastProps, ToastRegion, type ToastRegionProps, Toggle, type ToggleProps, type ToggleSize, TokenSample, type TokenSampleProps, type Tone, Tooltip, type TooltipProps, type TooltipSide, TypeSample, type TypeSampleProps, TypeScale, type TypeScaleRowProps, TypeSpecimen, type TypeSpecimenProps, type TypeSpecimenWeight, WorkspaceAvatar, WorkspaceSwitcher, type WorkspaceSwitcherProps, breakpoints, useSidebar };