@usefidel/design-system 0.25.0 → 0.26.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/fidel.manifest.json +2 -2
- package/dist/index.cjs +291 -16
- package/dist/index.css +553 -0
- package/dist/index.d.cts +165 -3
- package/dist/index.d.ts +165 -3
- package/dist/index.js +274 -7
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -480,6 +480,10 @@ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
480
480
|
dot?: Tone;
|
|
481
481
|
/** Leading icon, drawn at 14px, e.g. a repository or branch mark. */
|
|
482
482
|
icon?: ReactNode;
|
|
483
|
+
/** Shows a remove button at the end; its label is "Remove <removeLabel>". */
|
|
484
|
+
onRemove?: () => void;
|
|
485
|
+
/** Names the tag for the remove button. Defaults to the text when it is a string. */
|
|
486
|
+
removeLabel?: string;
|
|
483
487
|
children: ReactNode;
|
|
484
488
|
}
|
|
485
489
|
/**
|
|
@@ -487,7 +491,7 @@ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
487
491
|
* optional coloured dot. Measured from Figma "✅Project" comparison-type chip
|
|
488
492
|
* (node 231:59808).
|
|
489
493
|
*/
|
|
490
|
-
declare function Tag({ dot, icon, className, children, ...rest }: TagProps): react.JSX.Element;
|
|
494
|
+
declare function Tag({ dot, icon, onRemove, removeLabel, className, children, ...rest }: TagProps): react.JSX.Element;
|
|
491
495
|
|
|
492
496
|
interface MultiSelectOption {
|
|
493
497
|
value: string;
|
|
@@ -566,6 +570,8 @@ interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
|
|
|
566
570
|
description?: ReactNode;
|
|
567
571
|
/** Primary action, usually a Button. */
|
|
568
572
|
action?: ReactNode;
|
|
573
|
+
/** Second button, shown on the same row after the primary one. */
|
|
574
|
+
secondaryAction?: ReactNode;
|
|
569
575
|
/** Secondary line under the action, e.g. a help link. */
|
|
570
576
|
footer?: ReactNode;
|
|
571
577
|
/** `compact` for an empty list inside a card or table: smaller title and
|
|
@@ -577,7 +583,7 @@ interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
|
|
|
577
583
|
* action and footer, for a list or page with nothing in it yet. Measured from
|
|
578
584
|
* Figma "✅Project" Empty State Container (node 231:59661).
|
|
579
585
|
*/
|
|
580
|
-
declare function EmptyState({ illustration, title, description, action, footer, size, className, ...rest }: EmptyStateProps): react.JSX.Element;
|
|
586
|
+
declare function EmptyState({ illustration, title, description, action, secondaryAction, footer, size, className, ...rest }: EmptyStateProps): react.JSX.Element;
|
|
581
587
|
/**
|
|
582
588
|
* Two tilted cards with a search badge: "nothing found yet". Drawn from the
|
|
583
589
|
* Figma "Stacked Cards" layers (node 80:49887), 240×160.
|
|
@@ -1145,4 +1151,160 @@ declare function ToastRegion({ className, children, ...rest }: ToastRegionProps)
|
|
|
1145
1151
|
/** Fidel design-system Toast: a short status message with an optional action. Place it in a ToastRegion. */
|
|
1146
1152
|
declare function Toast({ children, action, onDismiss, duration, className, ...rest }: ToastProps): react.JSX.Element;
|
|
1147
1153
|
|
|
1148
|
-
|
|
1154
|
+
type StepperStepStatus = 'done' | 'current' | 'upcoming';
|
|
1155
|
+
interface StepperStepProps {
|
|
1156
|
+
status: StepperStepStatus;
|
|
1157
|
+
children: ReactNode;
|
|
1158
|
+
}
|
|
1159
|
+
declare function StepperStep(_: StepperStepProps): null;
|
|
1160
|
+
interface StepperProps extends HTMLAttributes<HTMLOListElement> {
|
|
1161
|
+
/** Stepper.Step elements, in order. */
|
|
1162
|
+
children: ReactNode;
|
|
1163
|
+
}
|
|
1164
|
+
/** Fidel design-system Stepper: a numbered row of steps joined by lines, for a multi-step form. */
|
|
1165
|
+
declare function StepperRoot({ className, children, ...rest }: StepperProps): react.JSX.Element;
|
|
1166
|
+
declare const Stepper: typeof StepperRoot & {
|
|
1167
|
+
Step: typeof StepperStep;
|
|
1168
|
+
};
|
|
1169
|
+
|
|
1170
|
+
interface NumberedStepsProps extends HTMLAttributes<HTMLOListElement> {
|
|
1171
|
+
/** NumberedSteps.Item elements, in order. */
|
|
1172
|
+
children: ReactNode;
|
|
1173
|
+
}
|
|
1174
|
+
declare function NumberedStepsRoot({ className, children, ...rest }: NumberedStepsProps): react.JSX.Element;
|
|
1175
|
+
declare function NumberedStepsItem({ className, children, ...rest }: HTMLAttributes<HTMLLIElement>): react.JSX.Element;
|
|
1176
|
+
/** Fidel design-system NumberedSteps: a form laid out as numbered steps joined by a line. */
|
|
1177
|
+
declare const NumberedSteps: typeof NumberedStepsRoot & {
|
|
1178
|
+
Item: typeof NumberedStepsItem;
|
|
1179
|
+
};
|
|
1180
|
+
|
|
1181
|
+
interface OptionListProps extends HTMLAttributes<HTMLDivElement> {
|
|
1182
|
+
children: ReactNode;
|
|
1183
|
+
}
|
|
1184
|
+
declare function OptionListRoot({ className, children, ...rest }: OptionListProps): react.JSX.Element;
|
|
1185
|
+
declare function OptionListLabel({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
|
|
1186
|
+
interface OptionRowProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'title'> {
|
|
1187
|
+
/** @default 'radio' */
|
|
1188
|
+
control?: 'radio' | 'checkbox';
|
|
1189
|
+
title: ReactNode;
|
|
1190
|
+
description?: ReactNode;
|
|
1191
|
+
/** Quiet text or a Badge at the end of the row, e.g. "Recommended" or "main, 3d ago". */
|
|
1192
|
+
meta?: ReactNode;
|
|
1193
|
+
}
|
|
1194
|
+
/** One choice in an OptionList: a radio or checkbox with a title, a second line and optional end content. */
|
|
1195
|
+
declare function OptionRow({ control, title, description, meta, className, checked, disabled, ...rest }: OptionRowProps): react.JSX.Element;
|
|
1196
|
+
/** Fidel design-system OptionList: radio or checkbox rows in one bordered group, with optional group labels. */
|
|
1197
|
+
declare const OptionList: typeof OptionListRoot & {
|
|
1198
|
+
Label: typeof OptionListLabel;
|
|
1199
|
+
Row: typeof OptionRow;
|
|
1200
|
+
};
|
|
1201
|
+
|
|
1202
|
+
interface ChecklistProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
1203
|
+
title?: ReactNode;
|
|
1204
|
+
children: ReactNode;
|
|
1205
|
+
}
|
|
1206
|
+
declare function ChecklistRoot({ title, className, children, ...rest }: ChecklistProps): react.JSX.Element;
|
|
1207
|
+
interface ChecklistItemProps {
|
|
1208
|
+
done: boolean;
|
|
1209
|
+
label: ReactNode;
|
|
1210
|
+
/** The chosen value under the label, or a placeholder such as "Not set yet". */
|
|
1211
|
+
value: ReactNode;
|
|
1212
|
+
}
|
|
1213
|
+
declare function ChecklistItem({ done, label, value }: ChecklistItemProps): react.JSX.Element;
|
|
1214
|
+
/** Fidel design-system Checklist: a summary of choices so far, each ticked once set. */
|
|
1215
|
+
declare const Checklist: typeof ChecklistRoot & {
|
|
1216
|
+
Item: typeof ChecklistItem;
|
|
1217
|
+
};
|
|
1218
|
+
|
|
1219
|
+
interface DrawerProps {
|
|
1220
|
+
open: boolean;
|
|
1221
|
+
/** Called on Escape, the close button, or a click on the page behind. */
|
|
1222
|
+
onClose: () => void;
|
|
1223
|
+
title: ReactNode;
|
|
1224
|
+
description?: ReactNode;
|
|
1225
|
+
children?: ReactNode;
|
|
1226
|
+
/** Pinned to the bottom: a summary on the left and the buttons, primary last. */
|
|
1227
|
+
footer?: ReactNode;
|
|
1228
|
+
/** False blocks every way of closing, e.g. while saving. @default true */
|
|
1229
|
+
dismissible?: boolean;
|
|
1230
|
+
}
|
|
1231
|
+
/**
|
|
1232
|
+
* Fidel design-system Drawer: a floating panel that slides in from the right over the
|
|
1233
|
+
* page, for picking or editing without leaving it. Traps focus, locks page
|
|
1234
|
+
* scroll and returns focus on close, like Modal.
|
|
1235
|
+
*/
|
|
1236
|
+
declare function Drawer({ open, onClose, title, description, children, footer, dismissible }: DrawerProps): react.ReactPortal | null;
|
|
1237
|
+
|
|
1238
|
+
interface ResourceCardStat {
|
|
1239
|
+
label: ReactNode;
|
|
1240
|
+
value: ReactNode;
|
|
1241
|
+
}
|
|
1242
|
+
interface ResourceCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
1243
|
+
/** 16px icon before the title, e.g. a repository mark. */
|
|
1244
|
+
icon?: ReactNode;
|
|
1245
|
+
title: ReactNode;
|
|
1246
|
+
/** Beside the title, e.g. a Tag. */
|
|
1247
|
+
badge?: ReactNode;
|
|
1248
|
+
/** Small lines under the title. */
|
|
1249
|
+
meta?: ReactNode[];
|
|
1250
|
+
stats?: ResourceCardStat[];
|
|
1251
|
+
/** At the end of the card, e.g. a "Manage" button. */
|
|
1252
|
+
action?: ReactNode;
|
|
1253
|
+
/** `add` is the dashed card that invites adding another resource. @default 'default' */
|
|
1254
|
+
variant?: 'default' | 'add';
|
|
1255
|
+
}
|
|
1256
|
+
/** Fidel design-system ResourceCard: one linked thing (a repository, an account) with its numbers and an action. */
|
|
1257
|
+
declare function ResourceCard({ icon, title, badge, meta, stats, action, variant, className, ...rest }: ResourceCardProps): react.JSX.Element;
|
|
1258
|
+
|
|
1259
|
+
interface PageSkeletonProps {
|
|
1260
|
+
/** What's loading, for screen readers. @default 'Loading' */
|
|
1261
|
+
label?: string;
|
|
1262
|
+
children: ReactNode;
|
|
1263
|
+
}
|
|
1264
|
+
/** Fidel design-system PageSkeleton: a page's loading layout, composed from its parts so it matches the page. */
|
|
1265
|
+
declare function PageSkeletonRoot({ label, children }: PageSkeletonProps): react.JSX.Element;
|
|
1266
|
+
interface PageSkeletonHeaderProps {
|
|
1267
|
+
/** Real text when the title is known before data loads, e.g. "Projects". */
|
|
1268
|
+
title?: ReactNode;
|
|
1269
|
+
description?: ReactNode | boolean;
|
|
1270
|
+
breadcrumb?: boolean;
|
|
1271
|
+
action?: boolean;
|
|
1272
|
+
/** Number of tabs under the title. */
|
|
1273
|
+
tabs?: number;
|
|
1274
|
+
}
|
|
1275
|
+
/** The PageHeader with bars where data-driven text will go. */
|
|
1276
|
+
declare function PageSkeletonHeader({ title, description, breadcrumb, action, tabs }: PageSkeletonHeaderProps): react.JSX.Element;
|
|
1277
|
+
/** A search field and filter buttons. */
|
|
1278
|
+
declare function PageSkeletonToolbar({ filters }: {
|
|
1279
|
+
filters?: number;
|
|
1280
|
+
}): react.JSX.Element;
|
|
1281
|
+
/** A bordered table with a header row and `rows` rows of `columns` cells. */
|
|
1282
|
+
declare function PageSkeletonTable({ rows, columns }: {
|
|
1283
|
+
rows?: number;
|
|
1284
|
+
columns?: number;
|
|
1285
|
+
}): react.JSX.Element;
|
|
1286
|
+
/** A grid of cards. */
|
|
1287
|
+
declare function PageSkeletonCards({ count, height, columns }: {
|
|
1288
|
+
count?: number;
|
|
1289
|
+
height?: number;
|
|
1290
|
+
columns?: number;
|
|
1291
|
+
}): react.JSX.Element;
|
|
1292
|
+
/** Labelled fields, one under the other. */
|
|
1293
|
+
declare function PageSkeletonForm({ fields }: {
|
|
1294
|
+
fields?: number;
|
|
1295
|
+
}): react.JSX.Element;
|
|
1296
|
+
/** Main content beside a fixed-width aside, like a form with its summary. */
|
|
1297
|
+
declare function PageSkeletonSplit({ children, aside }: {
|
|
1298
|
+
children: ReactNode;
|
|
1299
|
+
aside: ReactNode;
|
|
1300
|
+
}): react.JSX.Element;
|
|
1301
|
+
declare const PageSkeleton: typeof PageSkeletonRoot & {
|
|
1302
|
+
Header: typeof PageSkeletonHeader;
|
|
1303
|
+
Toolbar: typeof PageSkeletonToolbar;
|
|
1304
|
+
Table: typeof PageSkeletonTable;
|
|
1305
|
+
Cards: typeof PageSkeletonCards;
|
|
1306
|
+
Form: typeof PageSkeletonForm;
|
|
1307
|
+
Split: typeof PageSkeletonSplit;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -480,6 +480,10 @@ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
480
480
|
dot?: Tone;
|
|
481
481
|
/** Leading icon, drawn at 14px, e.g. a repository or branch mark. */
|
|
482
482
|
icon?: ReactNode;
|
|
483
|
+
/** Shows a remove button at the end; its label is "Remove <removeLabel>". */
|
|
484
|
+
onRemove?: () => void;
|
|
485
|
+
/** Names the tag for the remove button. Defaults to the text when it is a string. */
|
|
486
|
+
removeLabel?: string;
|
|
483
487
|
children: ReactNode;
|
|
484
488
|
}
|
|
485
489
|
/**
|
|
@@ -487,7 +491,7 @@ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
487
491
|
* optional coloured dot. Measured from Figma "✅Project" comparison-type chip
|
|
488
492
|
* (node 231:59808).
|
|
489
493
|
*/
|
|
490
|
-
declare function Tag({ dot, icon, className, children, ...rest }: TagProps): react.JSX.Element;
|
|
494
|
+
declare function Tag({ dot, icon, onRemove, removeLabel, className, children, ...rest }: TagProps): react.JSX.Element;
|
|
491
495
|
|
|
492
496
|
interface MultiSelectOption {
|
|
493
497
|
value: string;
|
|
@@ -566,6 +570,8 @@ interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
|
|
|
566
570
|
description?: ReactNode;
|
|
567
571
|
/** Primary action, usually a Button. */
|
|
568
572
|
action?: ReactNode;
|
|
573
|
+
/** Second button, shown on the same row after the primary one. */
|
|
574
|
+
secondaryAction?: ReactNode;
|
|
569
575
|
/** Secondary line under the action, e.g. a help link. */
|
|
570
576
|
footer?: ReactNode;
|
|
571
577
|
/** `compact` for an empty list inside a card or table: smaller title and
|
|
@@ -577,7 +583,7 @@ interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>
|
|
|
577
583
|
* action and footer, for a list or page with nothing in it yet. Measured from
|
|
578
584
|
* Figma "✅Project" Empty State Container (node 231:59661).
|
|
579
585
|
*/
|
|
580
|
-
declare function EmptyState({ illustration, title, description, action, footer, size, className, ...rest }: EmptyStateProps): react.JSX.Element;
|
|
586
|
+
declare function EmptyState({ illustration, title, description, action, secondaryAction, footer, size, className, ...rest }: EmptyStateProps): react.JSX.Element;
|
|
581
587
|
/**
|
|
582
588
|
* Two tilted cards with a search badge: "nothing found yet". Drawn from the
|
|
583
589
|
* Figma "Stacked Cards" layers (node 80:49887), 240×160.
|
|
@@ -1145,4 +1151,160 @@ declare function ToastRegion({ className, children, ...rest }: ToastRegionProps)
|
|
|
1145
1151
|
/** Fidel design-system Toast: a short status message with an optional action. Place it in a ToastRegion. */
|
|
1146
1152
|
declare function Toast({ children, action, onDismiss, duration, className, ...rest }: ToastProps): react.JSX.Element;
|
|
1147
1153
|
|
|
1148
|
-
|
|
1154
|
+
type StepperStepStatus = 'done' | 'current' | 'upcoming';
|
|
1155
|
+
interface StepperStepProps {
|
|
1156
|
+
status: StepperStepStatus;
|
|
1157
|
+
children: ReactNode;
|
|
1158
|
+
}
|
|
1159
|
+
declare function StepperStep(_: StepperStepProps): null;
|
|
1160
|
+
interface StepperProps extends HTMLAttributes<HTMLOListElement> {
|
|
1161
|
+
/** Stepper.Step elements, in order. */
|
|
1162
|
+
children: ReactNode;
|
|
1163
|
+
}
|
|
1164
|
+
/** Fidel design-system Stepper: a numbered row of steps joined by lines, for a multi-step form. */
|
|
1165
|
+
declare function StepperRoot({ className, children, ...rest }: StepperProps): react.JSX.Element;
|
|
1166
|
+
declare const Stepper: typeof StepperRoot & {
|
|
1167
|
+
Step: typeof StepperStep;
|
|
1168
|
+
};
|
|
1169
|
+
|
|
1170
|
+
interface NumberedStepsProps extends HTMLAttributes<HTMLOListElement> {
|
|
1171
|
+
/** NumberedSteps.Item elements, in order. */
|
|
1172
|
+
children: ReactNode;
|
|
1173
|
+
}
|
|
1174
|
+
declare function NumberedStepsRoot({ className, children, ...rest }: NumberedStepsProps): react.JSX.Element;
|
|
1175
|
+
declare function NumberedStepsItem({ className, children, ...rest }: HTMLAttributes<HTMLLIElement>): react.JSX.Element;
|
|
1176
|
+
/** Fidel design-system NumberedSteps: a form laid out as numbered steps joined by a line. */
|
|
1177
|
+
declare const NumberedSteps: typeof NumberedStepsRoot & {
|
|
1178
|
+
Item: typeof NumberedStepsItem;
|
|
1179
|
+
};
|
|
1180
|
+
|
|
1181
|
+
interface OptionListProps extends HTMLAttributes<HTMLDivElement> {
|
|
1182
|
+
children: ReactNode;
|
|
1183
|
+
}
|
|
1184
|
+
declare function OptionListRoot({ className, children, ...rest }: OptionListProps): react.JSX.Element;
|
|
1185
|
+
declare function OptionListLabel({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
|
|
1186
|
+
interface OptionRowProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'title'> {
|
|
1187
|
+
/** @default 'radio' */
|
|
1188
|
+
control?: 'radio' | 'checkbox';
|
|
1189
|
+
title: ReactNode;
|
|
1190
|
+
description?: ReactNode;
|
|
1191
|
+
/** Quiet text or a Badge at the end of the row, e.g. "Recommended" or "main, 3d ago". */
|
|
1192
|
+
meta?: ReactNode;
|
|
1193
|
+
}
|
|
1194
|
+
/** One choice in an OptionList: a radio or checkbox with a title, a second line and optional end content. */
|
|
1195
|
+
declare function OptionRow({ control, title, description, meta, className, checked, disabled, ...rest }: OptionRowProps): react.JSX.Element;
|
|
1196
|
+
/** Fidel design-system OptionList: radio or checkbox rows in one bordered group, with optional group labels. */
|
|
1197
|
+
declare const OptionList: typeof OptionListRoot & {
|
|
1198
|
+
Label: typeof OptionListLabel;
|
|
1199
|
+
Row: typeof OptionRow;
|
|
1200
|
+
};
|
|
1201
|
+
|
|
1202
|
+
interface ChecklistProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
1203
|
+
title?: ReactNode;
|
|
1204
|
+
children: ReactNode;
|
|
1205
|
+
}
|
|
1206
|
+
declare function ChecklistRoot({ title, className, children, ...rest }: ChecklistProps): react.JSX.Element;
|
|
1207
|
+
interface ChecklistItemProps {
|
|
1208
|
+
done: boolean;
|
|
1209
|
+
label: ReactNode;
|
|
1210
|
+
/** The chosen value under the label, or a placeholder such as "Not set yet". */
|
|
1211
|
+
value: ReactNode;
|
|
1212
|
+
}
|
|
1213
|
+
declare function ChecklistItem({ done, label, value }: ChecklistItemProps): react.JSX.Element;
|
|
1214
|
+
/** Fidel design-system Checklist: a summary of choices so far, each ticked once set. */
|
|
1215
|
+
declare const Checklist: typeof ChecklistRoot & {
|
|
1216
|
+
Item: typeof ChecklistItem;
|
|
1217
|
+
};
|
|
1218
|
+
|
|
1219
|
+
interface DrawerProps {
|
|
1220
|
+
open: boolean;
|
|
1221
|
+
/** Called on Escape, the close button, or a click on the page behind. */
|
|
1222
|
+
onClose: () => void;
|
|
1223
|
+
title: ReactNode;
|
|
1224
|
+
description?: ReactNode;
|
|
1225
|
+
children?: ReactNode;
|
|
1226
|
+
/** Pinned to the bottom: a summary on the left and the buttons, primary last. */
|
|
1227
|
+
footer?: ReactNode;
|
|
1228
|
+
/** False blocks every way of closing, e.g. while saving. @default true */
|
|
1229
|
+
dismissible?: boolean;
|
|
1230
|
+
}
|
|
1231
|
+
/**
|
|
1232
|
+
* Fidel design-system Drawer: a floating panel that slides in from the right over the
|
|
1233
|
+
* page, for picking or editing without leaving it. Traps focus, locks page
|
|
1234
|
+
* scroll and returns focus on close, like Modal.
|
|
1235
|
+
*/
|
|
1236
|
+
declare function Drawer({ open, onClose, title, description, children, footer, dismissible }: DrawerProps): react.ReactPortal | null;
|
|
1237
|
+
|
|
1238
|
+
interface ResourceCardStat {
|
|
1239
|
+
label: ReactNode;
|
|
1240
|
+
value: ReactNode;
|
|
1241
|
+
}
|
|
1242
|
+
interface ResourceCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
1243
|
+
/** 16px icon before the title, e.g. a repository mark. */
|
|
1244
|
+
icon?: ReactNode;
|
|
1245
|
+
title: ReactNode;
|
|
1246
|
+
/** Beside the title, e.g. a Tag. */
|
|
1247
|
+
badge?: ReactNode;
|
|
1248
|
+
/** Small lines under the title. */
|
|
1249
|
+
meta?: ReactNode[];
|
|
1250
|
+
stats?: ResourceCardStat[];
|
|
1251
|
+
/** At the end of the card, e.g. a "Manage" button. */
|
|
1252
|
+
action?: ReactNode;
|
|
1253
|
+
/** `add` is the dashed card that invites adding another resource. @default 'default' */
|
|
1254
|
+
variant?: 'default' | 'add';
|
|
1255
|
+
}
|
|
1256
|
+
/** Fidel design-system ResourceCard: one linked thing (a repository, an account) with its numbers and an action. */
|
|
1257
|
+
declare function ResourceCard({ icon, title, badge, meta, stats, action, variant, className, ...rest }: ResourceCardProps): react.JSX.Element;
|
|
1258
|
+
|
|
1259
|
+
interface PageSkeletonProps {
|
|
1260
|
+
/** What's loading, for screen readers. @default 'Loading' */
|
|
1261
|
+
label?: string;
|
|
1262
|
+
children: ReactNode;
|
|
1263
|
+
}
|
|
1264
|
+
/** Fidel design-system PageSkeleton: a page's loading layout, composed from its parts so it matches the page. */
|
|
1265
|
+
declare function PageSkeletonRoot({ label, children }: PageSkeletonProps): react.JSX.Element;
|
|
1266
|
+
interface PageSkeletonHeaderProps {
|
|
1267
|
+
/** Real text when the title is known before data loads, e.g. "Projects". */
|
|
1268
|
+
title?: ReactNode;
|
|
1269
|
+
description?: ReactNode | boolean;
|
|
1270
|
+
breadcrumb?: boolean;
|
|
1271
|
+
action?: boolean;
|
|
1272
|
+
/** Number of tabs under the title. */
|
|
1273
|
+
tabs?: number;
|
|
1274
|
+
}
|
|
1275
|
+
/** The PageHeader with bars where data-driven text will go. */
|
|
1276
|
+
declare function PageSkeletonHeader({ title, description, breadcrumb, action, tabs }: PageSkeletonHeaderProps): react.JSX.Element;
|
|
1277
|
+
/** A search field and filter buttons. */
|
|
1278
|
+
declare function PageSkeletonToolbar({ filters }: {
|
|
1279
|
+
filters?: number;
|
|
1280
|
+
}): react.JSX.Element;
|
|
1281
|
+
/** A bordered table with a header row and `rows` rows of `columns` cells. */
|
|
1282
|
+
declare function PageSkeletonTable({ rows, columns }: {
|
|
1283
|
+
rows?: number;
|
|
1284
|
+
columns?: number;
|
|
1285
|
+
}): react.JSX.Element;
|
|
1286
|
+
/** A grid of cards. */
|
|
1287
|
+
declare function PageSkeletonCards({ count, height, columns }: {
|
|
1288
|
+
count?: number;
|
|
1289
|
+
height?: number;
|
|
1290
|
+
columns?: number;
|
|
1291
|
+
}): react.JSX.Element;
|
|
1292
|
+
/** Labelled fields, one under the other. */
|
|
1293
|
+
declare function PageSkeletonForm({ fields }: {
|
|
1294
|
+
fields?: number;
|
|
1295
|
+
}): react.JSX.Element;
|
|
1296
|
+
/** Main content beside a fixed-width aside, like a form with its summary. */
|
|
1297
|
+
declare function PageSkeletonSplit({ children, aside }: {
|
|
1298
|
+
children: ReactNode;
|
|
1299
|
+
aside: ReactNode;
|
|
1300
|
+
}): react.JSX.Element;
|
|
1301
|
+
declare const PageSkeleton: typeof PageSkeletonRoot & {
|
|
1302
|
+
Header: typeof PageSkeletonHeader;
|
|
1303
|
+
Toolbar: typeof PageSkeletonToolbar;
|
|
1304
|
+
Table: typeof PageSkeletonTable;
|
|
1305
|
+
Cards: typeof PageSkeletonCards;
|
|
1306
|
+
Form: typeof PageSkeletonForm;
|
|
1307
|
+
Split: typeof PageSkeletonSplit;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
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 };
|