GuidesAPI ReferenceChangelogAPI PolicyGusto Security
Guides

Component Inventory


AlertProps

PropTypeRequiredDescription
status"info" | "success" | "warning" | "error"NoThe visual status that the alert should convey
labelstringYesThe label text for the alert
childrenReact.ReactNodeNoOptional children to be rendered inside the alert
iconReact.ReactNodeNoOptional custom icon component to override the default icon
classNamestringNoCSS className to be applied
onDismiss() => voidNoOptional callback function called when the dismiss button is clicked
disableScrollIntoViewbooleanNoWhether to disable scrolling the alert into view and focusing it on mount. Set to true when using inside modals.

BadgeProps

PropTypeRequiredDescription
childrenReact.ReactNodeYesContent to be displayed inside the badge
status"info" | "success" | "warning" | "error"NoVisual style variant of the badge
classNamestringNo-
idstringNo-
aria-labelstringNoDefines a string value that labels the current element.

BannerProps

PropTypeRequiredDescription
titleReact.ReactNodeYesTitle content displayed in the colored header section
childrenReact.ReactNodeYesContent to be displayed in the main content area
status"warning" | "error"NoVisual status variant of the banner
classNamestringNo-
idstringNo-
aria-labelstringNoDefines a string value that labels the current element.

BaseListProps

PropTypeRequiredDescription
itemsReact.ReactNode[]YesThe list items to render
classNamestringNoOptional custom class name
aria-labelstringNoAccessibility label for the list
aria-labelledbystringNoID of an element that labels this list
aria-describedbystringNoID of an element that describes this list

BreadcrumbsProps

PropTypeRequiredDescription
breadcrumbsBreadcrumb[]YesArray of breadcrumbs
currentBreadcrumbIdstringNoCurrent breadcrumb id
aria-labelstringNoAccessibility label for the breadcrumbs
classNamestringNoAdditional CSS class name for the breadcrumbs container
onClick(id: string) => voidNoEvent handler for breadcrumb navigation
isSmallContainerbooleanNoPassed to the breadcrumbs when the container size is small (640px and below) At this size, the breadcrumb typically does not have sufficient size to render completely. In our implementation, we switch to a condensed mobile version of the breadcrumbs

Breadcrumb

PropTypeRequiredDescription
idstringYes-
labelReact.ReactNodeYes-

ButtonIconProps

PropTypeRequiredDescription
buttonRefRef<HTMLButtonElement | null>NoReact ref for the button element
variant"error" | "primary" | "secondary" | "tertiary"NoVisual style variant of the button
isLoadingbooleanNoShows a loading spinner and disables the button
isDisabledbooleanNoDisables the button and prevents interaction
childrenReact.ReactNodeNoContent to be rendered inside the button
onBlur(e: React.FocusEvent<Element, Element>) => voidNoHandler for blur events
onFocus(e: React.FocusEvent<Element, Element>) => voidNoHandler for focus events
classNamestringNo-
idstringNo-
onKeyDownReact.KeyboardEventHandler<HTMLButtonElement>No-
onKeyUpReact.KeyboardEventHandler<HTMLButtonElement>No-
aria-labelstringNoDefines a string value that labels the current element.
aria-labelledbystringNoIdentifies the element (or elements) that labels the current element.
aria-describedbystringNoIdentifies the element (or elements) that describes the object.
titlestringNo-
namestringNo-
type"submit" | "reset" | "button"No-
onClickReact.MouseEventHandler<HTMLButtonElement>No-
formstringNo-
tabIndexnumberNo-

ButtonProps

PropTypeRequiredDescription
buttonRefRef<HTMLButtonElement | null>NoReact ref for the button element
variant"error" | "primary" | "secondary" | "tertiary"NoVisual style variant of the button
isLoadingbooleanNoShows a loading spinner and disables the button
isDisabledbooleanNoDisables the button and prevents interaction
childrenReact.ReactNodeNoContent to be rendered inside the button
onBlur(e: React.FocusEvent<Element, Element>) => voidNoHandler for blur events
onFocus(e: React.FocusEvent<Element, Element>) => voidNoHandler for focus events
classNamestringNo-
idstringNo-
onKeyDownReact.KeyboardEventHandler<HTMLButtonElement>No-
onKeyUpReact.KeyboardEventHandler<HTMLButtonElement>No-
aria-labelstringNoDefines a string value that labels the current element.
aria-labelledbystringNoIdentifies the element (or elements) that labels the current element.
aria-describedbystringNoIdentifies the element (or elements) that describes the object.
titlestringNo-
namestringNo-
type"submit" | "reset" | "button"No-
onClickReact.MouseEventHandler<HTMLButtonElement>No-
formstringNo-
tabIndexnumberNo-

CalendarPreviewProps

PropTypeRequiredDescription
highlightDates{ date: Date; highlightColor: "primary" | "secondary"; label: string; }[]NoArray of dates to highlight with custom colors and labels
dateRange{ start: Date; end: Date; label: string; }YesDate range to display in the calendar preview

CardProps

PropTypeRequiredDescription
onSelect(checked: boolean) => voidNoCallback function when the card is selected
childrenReact.ReactNodeYesContent to be displayed inside the card
menuReact.ReactNodeNoOptional menu component to be displayed on the right side of the card
classNamestringNoCSS className to be applied

CheckboxGroupProps

PropTypeRequiredDescription
isInvalidbooleanNoIndicates if the checkbox group is in an invalid state
isDisabledbooleanNoDisables all checkbox options in the group
optionsCheckboxGroupOption[]YesArray of checkbox options to display
valuestring[]NoArray of currently selected values
onChange(value: string[]) => voidNoCallback when selection changes
inputRefRef<HTMLInputElement | null>NoReact ref for the first checkbox input element
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-

CheckboxGroupOption

PropTypeRequiredDescription
labelReact.ReactNodeYesLabel text or content for the checkbox option
valuestringYesValue of the option that will be passed to onChange
isDisabledbooleanNoDisables this specific checkbox option
descriptionReact.ReactNodeNoOptional description text for the checkbox option

CheckboxProps

PropTypeRequiredDescription
valuebooleanNoCurrent checked state of the checkbox
onChange(value: boolean) => voidNoCallback when checkbox state changes
inputRefRef<HTMLInputElement | null>NoReact ref for the checkbox input element
isInvalidbooleanNoIndicates if the checkbox is in an invalid state
isDisabledbooleanNoDisables the checkbox and prevents interaction
onBlur() => voidNoHandler for blur events
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-

ComboBoxProps

PropTypeRequiredDescription
isDisabledbooleanNoDisables the combo box and prevents interaction
isInvalidbooleanNoIndicates that the field has an error
labelstringYesLabel text for the combo box field
onChange(value: string) => voidNoCallback when selection changes
onBlur() => voidNoHandler for blur events
optionsComboBoxOption[]YesArray of options to display in the dropdown
valuestringNoCurrently selected value
inputRefRef<HTMLInputElement | null>NoReact ref for the combo box input element
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-
placeholderstringNo-

ComboBoxOption

PropTypeRequiredDescription
labelstringYesDisplay text for the option
valuestringYesValue of the option that will be passed to onChange

DatePickerProps

PropTypeRequiredDescription
inputRefRef<HTMLInputElement | null>NoReact ref for the date input element
isDisabledbooleanNoDisables the date picker and prevents interaction
isInvalidbooleanNoIndicates that the field has an error
onChange(value: Date | null) => voidNoCallback when selected date changes
onBlur() => voidNoHandler for blur events
labelstringYesLabel text for the date picker field
valuenull | DateNoCurrently selected date value
placeholderstringNoPlaceholder text when no date is selected
portalContainerHTMLElementNoElement to use as the portal container
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-

DescriptionListProps

PropTypeRequiredDescription
itemsDescriptionListItem[]Yes-
classNamestringNo-

DescriptionListItem

PropTypeRequiredDescription
termReact.ReactNode | React.ReactNode[]Yes-
descriptionReact.ReactNode | React.ReactNode[]Yes-

DialogProps

PropTypeRequiredDescription
isOpenbooleanNoControls whether the dialog is open or closed
onClose() => voidNoCallback function called when the dialog should be closed
onPrimaryActionClick() => voidNoCallback function called when the primary action button is clicked
isDestructivebooleanNoWhether the primary action is destructive (changes button style to error variant)
isPrimaryActionLoadingbooleanNoWhether the primary action button is in loading state
primaryActionLabelstringYesText label for the primary action button
closeActionLabelstringYesText label for the close/cancel action button
titleReact.ReactNodeNoOptional title content to be displayed at the top of the dialog
childrenReact.ReactNodeNoOptional children content to be rendered in the dialog body
shouldCloseOnBackdropClickbooleanNoWhether clicking the backdrop should close the dialog

HeadingProps

PropTypeRequiredDescription
as"h1" | "h2" | "h3" | "h4" | "h5" | "h6"YesThe HTML heading element to render (h1-h6)
styledAs"h1" | "h2" | "h3" | "h4" | "h5" | "h6"NoOptional visual style to apply, independent of the semantic heading level
textAlign"start" | "center" | "end"NoText alignment within the heading
childrenReact.ReactNodeNoContent to be displayed inside the heading
classNamestringNo-

LinkProps

PropTypeRequiredDescription
hrefstringNo-
target"_self" | "_blank" | "_parent" | "_top" | stringNo-
relstringNo-
downloadanyNo-
classNamestringNo-
idstringNo-
onKeyDownReact.KeyboardEventHandler<HTMLAnchorElement>No-
onKeyUpReact.KeyboardEventHandler<HTMLAnchorElement>No-
aria-labelstringNoDefines a string value that labels the current element.
aria-labelledbystringNoIdentifies the element (or elements) that labels the current element.
aria-describedbystringNoIdentifies the element (or elements) that describes the object.
titlestringNo-
childrenReact.ReactNodeNoContent to be displayed inside the link

LoadingSpinnerProps

PropTypeRequiredDescription
size"lg" | "sm"NoSize of the spinner
style"inline" | "block"NoDisplay style of the spinner
classNamestringNo-
idstringNo-
aria-labelstringNoDefines a string value that labels the current element.

MenuProps

PropTypeRequiredDescription
triggerRefRefObjectNoReference to the element that triggers the menu
itemsMenuItem[]NoArray of menu items to display
isOpenbooleanNoControls whether the menu is currently open
onClose() => voidNoCallback when the menu is closed
aria-labelstringYesAccessible label describing the menu's purpose

MenuItem

PropTypeRequiredDescription
labelstringYesText label for the menu item
iconReact.ReactNodeNoOptional icon to display before the label
onClick() => voidYesCallback function when the menu item is clicked
isDisabledbooleanNoDisables the menu item and prevents interaction
hrefstringNoOptional URL to navigate to when clicked

ModalProps

PropTypeRequiredDescription
isOpenbooleanNoControls whether the modal is open or closed
onClose() => voidNoCallback function called when the modal should be closed
shouldCloseOnBackdropClickbooleanNoWhether clicking the backdrop should close the modal
childrenReact.ReactNodeNoMain content to be rendered in the modal body
footerReact.ReactNodeNoFooter content to be rendered at the bottom of the modal
containerRefRefObjectNoOptional ref to the backdrop container

NumberInputProps

PropTypeRequiredDescription
format"currency" | "decimal" | "percent"NoFormat type for the number input
inputRefRef<HTMLInputElement | null>NoReact ref for the number input element
valuenumberNoCurrent value of the number input
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables the number input and prevents interaction
onChange(value: number) => voidNoCallback when number input value changes
onBlur() => voidNoHandler for blur events
adornmentStartReact.ReactNodeNoElement to display at the start of the input
adornmentEndReact.ReactNodeNoElement to display at the end of the input
minimumFractionDigitsnumberNoMinimum number of decimal places to display
maximumFractionDigitsnumberNoMaximum number of decimal places to display
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-
placeholderstringNo-
minstring | numberNo-
maxstring | numberNo-

OrderedListProps

The props for this component are defined in BaseListProps.

PaginationControlProps

PropTypeRequiredDescription
handleFirstPage() => voidYes-
handlePreviousPage() => voidYes-
handleNextPage() => voidYes-
handleLastPage() => voidYes-
handleItemsPerPageChange(n: PaginationItemsPerPage ) => voidYes-
currentPagenumberYes-
totalPagesnumberYes-
itemsPerPage5 | 10 | 50No-
isFetchingbooleanNo-

PaginationItemsPerPage

type PaginationItemsPerPage = 5 | 10 | 50

ProgressBarProps

PropTypeRequiredDescription
totalStepsnumberYesTotal number of steps in the progress sequence
currentStepnumberYesCurrent step in the progress sequence
classNamestringNoAdditional CSS class name for the progress bar container
labelstringYesAccessible label describing the progress bar's purpose
ctaReact.ComponentType | nullNoComponent to render as the progress bar's CTA

RadioGroupProps

PropTypeRequiredDescription
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables all radio options in the group
optionsRadioGroupOption[]YesArray of radio options to display
valuestringNoCurrently selected value
defaultValuestringNoInitially selected value
onChange(value: string) => voidNoCallback when selection changes
inputRefRef<HTMLInputElement | null>NoReact ref for the first radio input element
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-

RadioGroupOption

PropTypeRequiredDescription
labelReact.ReactNodeYesLabel text or content for the radio option
valuestringYesValue of the option that will be passed to onChange
isDisabledbooleanNoDisables this specific radio option
descriptionReact.ReactNodeNoOptional description text for the radio option

RadioProps

PropTypeRequiredDescription
valuebooleanNoCurrent checked state of the radio button
onChange(checked: boolean) => voidNoCallback when radio button state changes
inputRefRef<HTMLInputElement | null>NoReact ref for the radio input element
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables the radio button and prevents interaction
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-
onBlurReact.FocusEventHandler<HTMLInputElement>No-

SelectProps

PropTypeRequiredDescription
isDisabledbooleanNoDisables the select and prevents interaction
isInvalidbooleanNoIndicates that the field has an error
labelstringYesLabel text for the select field
onChange(value: string) => voidNoCallback when selection changes
onBlur() => voidNoHandler for blur events
optionsSelectOption[]YesArray of options to display in the select dropdown
placeholderstringNoPlaceholder text when no option is selected
valuestringNoCurrently selected value
inputRefRef<HTMLButtonElement | null>NoReact ref for the select button element
portalContainerHTMLElementNoElement to use as the portal container
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-

SelectOption

PropTypeRequiredDescription
valuestringYesValue of the option that will be passed to onChange
labelstringYesDisplay text for the option

SwitchProps

PropTypeRequiredDescription
onBlur() => voidNoHandler for blur events
onChange(checked: boolean) => voidNoCallback when switch state changes
valuebooleanNoCurrent checked state of the switch
inputRefRef<HTMLInputElement | null>NoReact ref for the switch input element
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables the switch and prevents interaction
classNamestringNoAdditional CSS class name for the switch container
labelstringYesLabel text for the switch
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
idstringNo-
namestringNo-

TableProps

PropTypeRequiredDescription
headersTableData[]YesArray of header cells for the table
rowsTableRow[]YesArray of rows to be displayed in the table
footerTableData[]NoArray of footer cells for the table
emptyStateReact.ReactNodeNoContent to display when the table has no rows
variant"default" | "minimal"NoVisual style variant of the table
hasCheckboxColumnbooleanNoWhether the first column contains checkboxes (affects which column gets leading variant)
classNamestringNo-
idstringNo-
aria-labelstringNoDefines a string value that labels the current element.
aria-labelledbystringNoIdentifies the element (or elements) that labels the current element.
aria-describedbystringNoIdentifies the element (or elements) that describes the object.
role"form" | "button" | "alert" | "alertdialog" | "application" | "article" | "banner" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem" | stringNo-

TableData

PropTypeRequiredDescription
keystringYesUnique identifier for the table cell
contentReact.ReactNodeYesContent to be displayed in the table cell

TableRow

PropTypeRequiredDescription
keystringYesUnique identifier for the table row
dataTableData[]YesArray of cells to be displayed in the row

TabsProps

PropTypeRequiredDescription
tabsTabProps[]YesArray of tab configuration objects
selectedIdstringNoCurrently selected tab id
onSelectionChange(id: string) => voidYesCallback when tab selection changes
aria-labelstringNoAccessible label for the tabs
aria-labelledbystringNoID of element that labels the tabs
classNamestringNoAdditional CSS class name

TabProps

PropTypeRequiredDescription
idstringYesUnique identifier for the tab
labelReact.ReactNodeYesLabel to display in the tab button
contentReact.ReactNodeYesContent to display in the tab panel
isDisabledbooleanNoWhether the tab is disabled

TextAreaProps

PropTypeRequiredDescription
inputRefRef<HTMLTextAreaElement | null>NoReact ref for the textarea element
valuestringNoCurrent value of the textarea
onChange(value: string) => voidNoCallback when textarea value changes
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables the textarea and prevents interaction
onBlur() => voidNoHandler for blur events
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-
placeholderstringNo-
rowsnumberNo-
colsnumberNo-
aria-describedbystringNoIdentifies the element (or elements) that describes the object.

TextInputProps

PropTypeRequiredDescription
inputRefRef<HTMLInputElement | null>NoReact ref for the input element
valuestringNoCurrent value of the input
onChange(value: string) => voidNoCallback when input value changes
isInvalidbooleanNoIndicates that the field has an error
isDisabledbooleanNoDisables the input and prevents interaction
onBlur() => voidNoHandler for blur events
adornmentStartReact.ReactNodeNoElement to display at the start of the input
adornmentEndReact.ReactNodeNoElement to display at the end of the input
descriptionReact.ReactNodeNoOptional description text for the field
errorMessagestringNoError message to display when the field is invalid
isRequiredbooleanNoIndicates if the field is required
labelReact.ReactNodeYesLabel text for the field
shouldVisuallyHideLabelbooleanNoHides the label visually while keeping it accessible to screen readers
classNamestringNo-
idstringNo-
namestringNo-
type"number" | "submit" | "reset" | "button" | "checkbox" | "radio" | "search" | "color" | "date" | "datetime-local" | "email" | "file" | "hidden" | "image" | "month" | "password" | "range" | "tel" | "text" | "time" | "url" | "week" | stringNo-
placeholderstringNo-
aria-describedbystringNoIdentifies the element (or elements) that describes the object.

TextProps

PropTypeRequiredDescription
as"p" | "span" | "div" | "pre"NoHTML element to render the text as
size"lg" | "sm" | "xs" | "md"NoSize variant of the text
textAlign"start" | "center" | "end"NoText alignment within the container
weight"regular" | "medium" | "semibold" | "bold"NoFont weight of the text
childrenReact.ReactNodeNoContent to be displayed
variant"supporting" | "leading"NoVisual style variant of the text
classNamestringNo-
idstringNo-

UnorderedListProps

The props for this component are defined in BaseListProps.