@czi-sds/components
Version:
2021 Create-a-thon Science Initiative Component Library
1,050 lines (1,049 loc) • 102 kB
TypeScript
/// <reference types="react" />
import { PaletteMode, PopperProps, AutocompleteInputChangeReason, AutocompleteRenderInputParams, AutocompleteProps, PaperProps, CardMedia, CardMediaProps, CardProps, SliderProps, SwitchProps, AppBarProps, TabsProps, DrawerProps, ToggleButtonGroupProps } from "@mui/material";
import { AccordionProps as RawAccordionProps } from "@mui/material";
import { AccordionDetailsProps as RawAccordionDetailsProps } from "@mui/material";
import { AccordionSummaryProps as RawAccordionSummaryProps } from "@mui/material";
import { AutocompleteChangeDetails as AutocompleteChangeDetails$0 } from "@mui/material";
import { AutocompleteChangeReason as AutocompleteChangeReason$0 } from "@mui/material";
import { AutocompleteCloseReason as AutocompleteCloseReason$0 } from "@mui/material";
import { AutocompleteValue as AutocompleteValue$0 } from "@mui/material";
import { AutocompleteProps as MuiAutocompleteProps } from "@mui/material";
import { TextFieldProps as RawTextFieldSearchProps } from "@mui/material";
import { MenuItemProps as RawMenuItemProps } from "@mui/material";
import { ClickAwayListenerProps as MUIClickAwayListenerProps } from "@mui/material";
import { ButtonProps as RawButtonProps } from "@mui/material";
import { IconButtonProps as RawButtonIconProps } from "@mui/material";
import { ButtonProps as ButtonProps$0 } from "@mui/material";
import { TooltipProps as RawTooltipProps } from "@mui/material";
import { ChipProps as RawChipProps } from "@mui/material";
import { DialogProps as RawDialogProps } from "@mui/material";
import { DialogActionsProps as RawDialogActionsProps } from "@mui/material";
import { DialogContentProps as RawDialogContentProps } from "@mui/material";
import { DialogTitleProps as RawDialogTitleProps } from "@mui/material";
import { CheckboxProps as MUICheckboxProps } from "@mui/material";
import { RadioProps as MUIRadioProps } from "@mui/material";
import { TextFieldProps as RawTextFieldProps } from "@mui/material";
import { LinkProps as RawLinkProps } from "@mui/material";
import { ListProps as RawListProps } from "@mui/material";
import { ListItemProps as RawListItemProps } from "@mui/material";
import { ListSubheaderProps as RawListSubheaderProps } from "@mui/material";
import { MenuProps as RawMenuProps } from "@mui/material";
import { ChipProps as ChipProps$0 } from "@mui/material";
import { LinkProps as LinkProps$1 } from "@mui/material";
import { TabProps as RawTabProps } from "@mui/material";
import { TabsProps as RawTabsProps } from "@mui/material";
import React from "react";
import { CSSProperties, ReactElement, ReactNode, SyntheticEvent, HTMLAttributeAnchorTarget, ComponentType, ElementType } from "react";
import { Theme, ThemeOptions, TypographyStyle, Breakpoints, PaletteOptions } from "@mui/material/styles";
import { SerializedStyles } from "@emotion/react";
import { AlertProps } from "@mui/lab";
import { AutocompleteChangeDetails, AutocompleteChangeReason, AutocompleteCloseReason, AutocompleteValue } from "@mui/base";
import { AlertTitleProps } from "@mui/material/AlertTitle";
import { AutocompleteValue as AutocompleteValue$1 } from "@mui/material/useAutocomplete";
interface SdsAccordionDetailsProps {
id?: string;
}
type AccordionDetailsProps = RawAccordionDetailsProps & SdsAccordionDetailsProps;
declare const AccordionDetails: (props: AccordionDetailsProps) => import("react/jsx-runtime").JSX.Element;
interface SdsAccordionHeaderProps {
subtitle?: string;
chevronSize?: "xs" | "s";
}
type AccordionHeaderProps = RawAccordionSummaryProps & SdsAccordionHeaderProps;
declare const AccordionHeader: (props: AccordionHeaderProps) => import("react/jsx-runtime").JSX.Element;
interface AccentColor {
surfacePrimary: string;
surfaceSecondary: string;
textAction: string;
textActionHover: string;
textActionPressed: string;
fillHover: string;
fillPressed: string;
fillPrimary: string;
border: string;
borderHover: string;
borderPressed: string;
borderOpen: string;
borderFocus: string;
borderSelected: string;
ornament: string;
ornamentHover: string;
ornamentPressed: string;
ornamentOpen: string;
ornamentFocus: string;
ornamentSelected: string;
}
interface BaseColor {
backgroundPrimary: string;
backgroundPrimaryInverse: string;
backgroundSecondary: string;
backgroundSecondaryInverse: string;
backgroundTertiary: string;
surface: string;
surfaceInverse: string;
textPrimary: string;
textPrimaryInverse: string;
textSecondary: string;
textSecondaryInverse: string;
textTertiary: string;
textTertiaryInverse: string;
textDisabled: string;
textDisabledInverse: string;
textOnFill: string;
fillHover: string;
fillHoverInverse: string;
fillPressed: string;
fillPressedInverse: string;
fillPrimary: string;
fillOpen: string;
fillOpenInverse: string;
fillSelected: string;
fillDisabled: string;
divider: string;
dividerInverse: string;
borderPrimary: string;
borderPrimaryInverse: string;
borderSecondary: string;
borderPrimaryHover: string;
borderPrimaryHoverInverse: string;
borderOnFill: string;
borderPrimaryPressed: string;
borderPrimaryPressedInverse: string;
borderPrimaryDisabled: string;
borderPrimaryDisabledInverse: string;
ornamentDisabled: string;
ornamentDisabledInverse: string;
ornamentOnFill: string;
ornamentPrimary: string;
ornamentPrimaryInverse: string;
ornamentSecondary: string;
ornamentSecondaryInverse: string;
ornamentSecondaryHover: string;
ornamentSecondaryHoverInverse: string;
ornamentSecondaryPressed: string;
ornamentSecondaryPressedInverse: string;
}
interface IntentColor {
surfacePrimary: string;
surfaceSecondary: string;
text: string;
fillPrimary: string;
fillSecondary: string;
fillHover: string;
fillPressed: string;
border: string;
ornament: string;
}
/**
* (masoudmanson): The SDSPalette is a custom palette based on
* the semantic design tokens for the SDS components.
*/
interface SDSPalette {
accent: AccentColor;
base: BaseColor;
beta: IntentColor;
info: IntentColor;
negative: IntentColor;
notice: IntentColor;
neutral: IntentColor;
positive: IntentColor;
}
/**
* (masoudmanson): Using module augmentation to extend the MUI Palette
* https://mui.com/material-ui/customization/palette/#typescript
*/
declare module "@mui/material/styles" {
// (masoudmanson): Extends the MUI Palette to include the SDSPalette and the SDSTextPalette
interface Palette {
sds: SDSPalette;
}
interface PaletteOptions {
sds?: SDSPalette;
}
/**
* @see https://mui.com/material-ui/customization/breakpoints/#custom-breakpoints
* (masoudmanson): ModuleAugmentation is required for TypeScript to recognize the
* custom breakpoints added to the theme.
*/
interface BreakpointOverrides {
// remove the xs and xl breakpoints since SDS does not support them
xs: false;
sm: true;
md: true;
lg: true;
xl: false;
}
}
interface SDSTheme extends Theme {
app?: AppTheme;
}
interface SDSThemeOptions extends ThemeOptions {
app?: AppTheme;
}
interface AppTheme {
borders?: Borders;
colors: Colors;
corners: Corners;
fontWeights: FontWeights;
iconSizes: IconSizes;
shadows: Shadows;
spacing: Spaces;
typography: Typography;
}
interface Shadows {
none: "none";
s: string;
m: string;
l: string;
}
interface TypographyStyles {
body: {
regular: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
medium: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
semibold: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
};
caps: {
semibold: {
xxs: TypographyStyle;
xxxs: TypographyStyle;
xxxxs: TypographyStyle;
};
};
code: {
regular: {
s: TypographyStyle;
xs: TypographyStyle;
};
medium: {
s: TypographyStyle;
xs: TypographyStyle;
};
semibold: {
s: TypographyStyle;
xs: TypographyStyle;
};
};
header: {
semibold: {
xxl: TypographyStyle;
xl: TypographyStyle;
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
};
link: {
regular: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
medium: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
semibold: {
l: TypographyStyle;
m: TypographyStyle;
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
};
tabular: {
regular: {
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
medium: {
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
semibold: {
s: TypographyStyle;
xs: TypographyStyle;
xxs: TypographyStyle;
xxxs: TypographyStyle;
};
};
title: {
bold: {
s: TypographyStyle;
m: TypographyStyle;
l: TypographyStyle;
};
};
}
interface Typography {
fontFamily: {
body: CSSProperties["fontFamily"];
caps?: CSSProperties["fontFamily"];
code?: CSSProperties["fontFamily"];
header?: CSSProperties["fontFamily"];
link?: CSSProperties["fontFamily"];
tabular?: CSSProperties["fontFamily"];
title?: CSSProperties["fontFamily"];
};
wideStyles: TypographyStyles;
narrowStyles: TypographyStyles;
}
interface FontWeights {
bold: number;
light: number;
medium: number;
regular: number;
semibold: number;
}
interface Corners {
none: number;
s: number;
m: number;
l: number;
xl: number;
rounded: number;
}
interface Spaces {
default: number;
xxxs: number;
xxs: number;
xs: number;
s: number;
m: number;
l: number;
xl: number;
xxl: number;
}
/**
* @deprecated
*
* (masoudmanson): The Spacings type is an alias for the Spaces type and
* is deprecated. It is recommended to use the Spaces type instead.
*/
type Spacings = Spaces;
interface Color {
900?: string;
800: string;
700: string;
600: string;
500: string;
400: string;
300: string;
200: string;
100: string;
75?: string;
50?: string;
}
interface Colors {
blue: Color;
gray: Color;
green: Color;
purple: Color;
red: Color;
yellow: Color;
}
interface IconSize {
height: number;
width: number;
}
interface IconSizes {
xs: IconSize;
s: IconSize;
l: IconSize;
xl: IconSize;
input: IconSize;
}
interface Border {
default?: string;
divider?: string;
dividerInverse?: string;
black?: string;
solid?: string;
dashed?: string;
hover?: string;
inverse?: string;
disabled?: string;
table?: string;
pressed?: string;
open?: string;
focused?: string;
selected?: string;
thick?: string;
extraThick?: string;
}
interface Borders {
accent: Border;
base: Border;
beta: Border;
info: Border;
link: Border;
negative: Border;
neutral: Border;
none: string;
notice: Border;
positive: Border;
}
/**
* Theme adaptor with light/dark mode support.
*
* @param t The theme to use. Currently supports a light and dark variant.
* @returns The selected theme object to be used in the ThemeProvider
*/
declare const Theme$0: (t: PaletteMode) => import("@mui/material").Theme;
/**
* Default theme, uses light mode with no option to change it.
*
* Use the `theme` export to get a flexible light/dark mode theme function
*/
declare const defaultTheme: import("@mui/material").Theme;
declare const SDSLightThemeColors: Colors;
declare const SDSDarkThemeColors: Colors;
/**
* Create a SDS App Theme with custom colors that follows the SDS color model.
*/
declare const makeSdsSemanticAppTheme: (colors: Colors, isDarkTheme?: boolean) => AppTheme;
declare const SDSLightAppTheme: AppTheme;
declare const SDSDarkAppTheme: AppTheme;
/**
* Helper function to select the appropriate theme settings.
*
* @param theme The theme to choose from. Currently supports a light and dark variant.
* @returns The appropriate app theme for the variant.
*/
declare const SDSChooseTheme: (theme: PaletteMode) => AppTheme;
/**
* (masoudmanson): This is to make sure that the old defaultAppTheme
* export is still available for backward compatibility.
*
* @deprecated
* Please use `SDSAppTheme` instead. This export will be removed in the future.
*/
declare const defaultAppTheme: AppTheme;
declare const SDSPaletteLight: (appTheme: AppTheme) => SDSPalette;
declare const SDSPaletteDark: (appTheme: AppTheme) => SDSPalette;
/**
* This function creates the theme options for the MUI theme provider
*/
declare function makeThemeOptions(appTheme: AppTheme, mode: PaletteMode): SDSThemeOptions;
// (thuang): Somehow this namespace needs to be globally unique to prevent
// namespace collisions.
// Might be related to using `rollup-plugin-ts`, which does code splitting?
interface CommonThemeProps {
theme?: SDSTheme;
}
declare const getSpaces: ({ theme }: CommonThemeProps) => Spaces | null;
/**
* @deprecated getSpacings() is deprecated and may be removed in a future release. Please use getSpaces()
*/
declare const getSpacings: ({ theme }: CommonThemeProps) => Spaces | null;
declare const getTypography: ({ theme }: CommonThemeProps) => Typography | null;
declare const getMode: ({ theme }: CommonThemeProps) => "light" | "dark";
declare const getPalette: ({ theme }: CommonThemeProps) => PaletteOptions;
declare const getColors: ({ theme }: CommonThemeProps) => Colors | null;
declare const getSemanticColors: ({ theme }: CommonThemeProps) => SDSPalette | null;
declare const getShadows: ({ theme }: CommonThemeProps) => Shadows | null;
declare const getCorners: ({ theme }: CommonThemeProps) => Corners | null;
declare const getFontWeights: ({ theme }: CommonThemeProps) => FontWeights | null;
declare const getIconSizes: ({ theme }: CommonThemeProps) => IconSizes | null;
declare const getBorders: ({ theme }: CommonThemeProps) => Borders | null;
declare const getBreakpoints: ({ theme }: CommonThemeProps) => Breakpoints | null;
declare function focusVisibleA11yStyle(props: CommonThemeProps): string;
declare const fontBody: <W extends "regular" | "medium" | "semibold">(fontSize: keyof {
regular: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
medium: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
semibold: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodyMediumXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontBodySemiboldXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCaps: <W extends "semibold">(fontSize: keyof {
semibold: {
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCapsXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCapsXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCapsXxxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeader: <W extends "semibold">(fontSize: keyof {
semibold: {
xxl: import("@mui/material/styles/createTypography").CSSProperties;
xl: import("@mui/material/styles/createTypography").CSSProperties;
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderXxl: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderXl: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontHeaderXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCode: <W extends "regular" | "medium" | "semibold">(fontSize: keyof {
regular: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
};
medium: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
};
semibold: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeMediumXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeMediumS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeSemiboldXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontCodeSemiboldS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabular: <W extends "regular" | "medium" | "semibold">(fontSize: keyof {
regular: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
medium: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
semibold: {
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularMediumXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularMediumXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularMediumXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularMediumS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularSemiboldXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularSemiboldXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularSemiboldXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTabularSemiboldS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTitle: <W extends "bold">(fontSize: keyof {
bold: {
s: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
l: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTitleBoldS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTitleBoldM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontTitleBoldL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLink: <W extends "regular" | "medium" | "semibold">(fontSize: keyof {
regular: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
medium: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
semibold: {
l: import("@mui/material/styles/createTypography").CSSProperties;
m: import("@mui/material/styles/createTypography").CSSProperties;
s: import("@mui/material/styles/createTypography").CSSProperties;
xs: import("@mui/material/styles/createTypography").CSSProperties;
xxs: import("@mui/material/styles/createTypography").CSSProperties;
xxxs: import("@mui/material/styles/createTypography").CSSProperties;
};
}[W], fontWeight?: W | undefined, isNarrow?: boolean) => (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkMediumXxxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldL: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldM: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldS: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldXs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldXxs: (props: CommonThemeProps) => SerializedStyles | null;
declare const fontLinkSemiboldXxxs: (props: CommonThemeProps) => SerializedStyles | null;
interface AccordionExtraProps extends CommonThemeProps {
useDivider?: boolean;
togglePosition?: "right" | "left";
chevronSize?: "xs" | "s" | "l" | "xl";
}
type AccordionProps = RawAccordionProps & AccordionExtraProps & {
id: string;
};
/**
* @see https://mui.com/material-ui/react-accordion/
*/
declare const Accordion: React.ForwardRefExoticComponent<Omit<AccordionProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
/**
* @see https://mui.com/material-ui/react-alert/
*
* @deprecated
* This component is deprecated and will be removed in the next major version.
* Please use `Callout` or `Notification` instead.
*/
declare const Alert: (props: AlertProps) => JSX.Element;
interface IconNameToSizes {
Bacteria: "xs" | "s" | "l" | "xl";
BarChartHorizontal3: "xs" | "s";
BarChartVertical3: "xs" | "s";
BarChartVertical4: "xs" | "s";
Book: "xs" | "s" | "l" | "xl";
Check: "xs" | "s";
CheckCircle: "xs" | "s" | "l" | "xl";
ChevronDown: "xs" | "s" | "l" | "xl";
ChevronDown2: "xs" | "s";
ChevronLeft2: "xs" | "s";
ChevronLeft: "xs" | "s" | "l" | "xl";
ChevronRight2: "xs" | "s";
ChevronRight: "xs" | "s" | "l" | "xl";
ChevronUp: "xs" | "s" | "l" | "xl";
ChevronUp2: "xs" | "s";
CirclesOverlap2: "xs" | "s" | "l" | "xl";
Code: "xs" | "s" | "l" | "xl";
Compass: "l" | "xl";
Copy: "xs" | "s" | "l" | "xl";
Cube: "xs" | "s" | "l" | "xl";
DNA: "l" | "xl";
Document: "xs" | "s";
DotsHorizontal: "xs" | "s" | "l" | "xl";
Download: "xs" | "s" | "l" | "xl";
Edit: "xs" | "s" | "l" | "xl";
Envelope: "xs" | "s";
ExclamationMarkCircle: "xs" | "s" | "l" | "xl";
ExclamationMarkSpeechBubble: "l" | "xl";
EyeClosed: "xs" | "s";
EyeOpen: "xs" | "s";
Filter: "xs" | "s";
FlagCheck: "xs" | "s";
FlagOutline: "xs" | "s";
FlagQuestionMark: "xs" | "s";
FlagXMark: "xs" | "s";
Flask: "l" | "xl";
FlaskPrivate: "l" | "xl";
FlaskPublic: "l" | "xl";
Gear: "xs" | "s";
Github: "xs" | "s";
Globe: "xs" | "s";
GlobeBasic: "l" | "xl";
Grid: "l" | "xl";
GridDots3: "l" | "xl";
GridPrivate: "l" | "xl";
GridPublic: "l" | "xl";
House: "xs" | "s";
InfoCircle: "xs" | "s" | "l" | "xl";
InfoSpeechBubble: "l" | "xl";
LifeRing: "xs" | "s";
LightBulb: "xs" | "s" | "l" | "xl";
LinesDashed3Solid1: "xs" | "s";
LinesHorizontal3: "xs" | "s" | "l" | "xl";
Link: "xs" | "s";
List: "xs" | "s";
Loading: "xs" | "s" | "l" | "xl";
Lock: "xs" | "s" | "l" | "xl";
LockCircle: "xs" | "s";
Minus: "xs" | "s";
Open: "xs" | "s";
Pause: "l" | "xl";
People: "xs" | "s" | "l" | "xl";
Percentage: "xs" | "s";
Person: "xs" | "s" | "l" | "xl";
Pin: "xs" | "s";
PinLocation: "xs" | "s";
Play: "l" | "xl";
Plus: "xs" | "s";
PlusCircle: "xs" | "s";
ProjectPrivate: "l" | "xl";
ProjectPublic: "l" | "xl";
PuzzlePiece: "xs" | "s";
QuestionMark: "l" | "xl";
QuestionMarkCircle: "xs" | "s";
Quote: "l" | "xl";
Read: "l" | "xl";
Refresh: "xs" | "s" | "l" | "xl";
Report: "l" | "xl";
Rocket: "l" | "xl";
RotateLeft: "xs" | "s";
RotateRight: "xs" | "s";
Save: "l" | "xl";
Scale: "xs" | "s";
ScatterPlot: "xs" | "s";
Search: "xs" | "s" | "l" | "xl";
SearchLinesHorizontal3: "xs" | "s" | "l" | "xl";
Send: "l" | "xl";
Share: "l" | "xl";
SlidersHorizontal: "l" | "xl";
SpeechBubbles: "l" | "xl";
SquareOnDashedSquare: "l" | "xl";
Starburst: "xs" | "s";
Star: "l" | "xl";
Table: "xs" | "s";
ThumbsDown: "xs" | "s";
ThumbsUp: "xs" | "s";
TrashCan: "xs" | "s" | "l" | "xl";
TreeDendogram: "l" | "xl";
TreeHorizontal: "xs" | "s" | "l" | "xl";
TreeHorizontalPrivate: "l" | "xl";
TreeHorizontalPublic: "l" | "xl";
TreeHorizontalTopRightFilled: "l" | "xl";
TreeVertical: "xs" | "s";
TriangleDown: "xs" | "s";
TriangleLeft: "xs" | "s";
TriangleRight: "xs" | "s";
TriangleUp: "xs" | "s";
Update: "l" | "xl";
Upload: "l" | "xl";
Virus: "l" | "xl";
VirusCircleS: "l" | "xl";
Widget: "l" | "xl";
XMark: "xs" | "s" | "l" | "xl";
XMarkCircle: "xs" | "s";
}
interface IconExtraProps<IconName extends keyof IconNameToSizes> extends CommonThemeProps {
className?: string;
sdsIcon: IconName;
sdsSize: IconNameToSizes[IconName];
}
type SdsIconColorType = "blue" | "gray" | "green" | "purple" | "red" | "yellow";
interface SdsIconWithColor$0 {
color?: SdsIconColorType;
shade?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;
}
type IconProps<IconName extends keyof IconNameToSizes> = IconExtraProps<IconName> & SdsIconWithColor$0;
/**
* @see https://mui.com/material-ui/icons/#icons
*/
declare const Icon: import("react").ForwardRefExoticComponent<IconExtraProps<keyof IconNameToSizes> & SdsIconWithColor$0 & import("react").RefAttributes<HTMLDivElement | null>>;
type IntentType = "negative" | "notice" | "positive";
interface InputSearchExtraProps extends CommonThemeProps {
disabled?: boolean;
intent?: IntentType | "default";
sdsStyle?: "rounded" | "square";
value?: string;
}
interface AccessibleInputSearchProps {
label: string;
placeholder?: string;
id: string;
handleSubmit?: (value: string) => void;
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
customTheme?: "light" | "dark" | "auto";
}
type InputSearchProps = RawTextFieldSearchProps & AccessibleInputSearchProps & InputSearchExtraProps;
/**
* @see https://mui.com/material-ui/react-text-field/
*/
declare const InputSearch: React.ForwardRefExoticComponent<(Omit<import("@mui/material").StandardTextFieldProps & AccessibleInputSearchProps & InputSearchExtraProps, "ref"> | Omit<import("@mui/material").OutlinedTextFieldProps & AccessibleInputSearchProps & InputSearchExtraProps, "ref"> | Omit<import("@mui/material").FilledTextFieldProps & AccessibleInputSearchProps & InputSearchExtraProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
/*
The final goal is to create a typescript interface which only accepts the
icons with "xs" or "s" size. At first we create a new TypeScript interface
that modifies the IconNameToSizes interface to change the values of icons
with 'xs' | 's' | 'l' | 'xl' sizes to 'xs' | 's', allowing for easy
filtering of items with 'l' | 'xl' sizes only later on
*/
type ModifiedIconNameToSizes = {
[K in keyof IconNameToSizes]: IconNameToSizes[K] extends "xs" | "s" | "l" | "xl" ? IconNameToSizes[K] extends "l" | "xl" ? "l" | "xl" : "xs" | "s" : IconNameToSizes[K];
};
/*
In the second step we create a TypeScript interface that is a subset of
the IconNameToSizes interface, containing only those icons that can be "xs" or "s" in size.
As a result, the MenuItem component accepts a bacteria icon with a
size value of "xs" | "s" | "l" | "xl" or a check icon with a size value of "xs" | "s",
but not a book icon since it has a size value of "l" | "xl".
*/
type IconNameToSmallSizes = {
[K in keyof ModifiedIconNameToSizes as ModifiedIconNameToSizes[K] extends "xs" | "s" ? K : never]: IconNameToSizes[K];
};
interface MenuItemExtraProps<IconName extends keyof IconNameToSmallSizes> {
column?: React.ReactNode;
isMultiSelect?: boolean;
icon?: IconName | React.ReactElement<CustomSVGProps>;
/**
* @deprecated Use `icon` instead.
* (masoudmanson): This prop is deprecated and will be removed in the next major version.
* Please replace instances of `sdsIcon` with `icon`.
*/
sdsIcon?: IconName | React.ReactElement<CustomSVGProps>;
sdsIconProps?: Partial<IconProps<IconName>>;
sdsStyle?: "determinate" | "indeterminate";
sdsType?: "default" | "action";
}
type MenuItemProps<IconName extends keyof IconNameToSmallSizes> = MenuItemExtraProps<IconName> & RawMenuItemProps;
/**
* @see https://mui.com/material-ui/react-menu/
*/
declare const MenuItem: React.ForwardRefExoticComponent<Omit<MenuItemProps<"Bacteria" | "BarChartHorizontal3" | "BarChartVertical3" | "BarChartVertical4" | "Book" | "Check" | "CheckCircle" | "ChevronDown" | "ChevronDown2" | "ChevronLeft2" | "ChevronLeft" | "ChevronRight2" | "ChevronRight" | "ChevronUp" | "ChevronUp2" | "CirclesOverlap2" | "Code" | "Copy" | "Cube" | "Document" | "DotsHorizontal" | "Download" | "Edit" | "Envelope" | "ExclamationMarkCircle" | "EyeClosed" | "EyeOpen" | "Filter" | "FlagCheck" | "FlagOutline" | "FlagQuestionMark" | "FlagXMark" | "Gear" | "Github" | "Globe" | "House" | "InfoCircle" | "LifeRing" | "LightBulb" | "LinesDashed3Solid1" | "LinesHorizontal3" | "Link" | "List" | "Loading" | "Lock" | "LockCircle" | "Minus" | "Open" | "People" | "Percentage" | "Person" | "Pin" | "PinLocation" | "Plus" | "PlusCircle" | "PuzzlePiece" | "QuestionMarkCircle" | "Refresh" | "RotateLeft" | "RotateRight" | "Scale" | "ScatterPlot" | "Search" | "SearchLinesHorizontal3" | "Starburst" | "Table" | "ThumbsDown" | "ThumbsUp" | "TrashCan" | "TreeHorizontal" | "TreeVertical" | "TriangleDown" | "TriangleLeft" | "TriangleRight" | "TriangleUp" | "XMark" | "XMarkCircle">, "ref"> & React.RefAttributes<HTMLLIElement | null>>;
interface StyleProps extends CommonThemeProps {
count?: number;
icon?: ReactElement;
search?: boolean;
groupBy?: AutocompleteProps<DefaultAutocompleteOption, boolean, boolean, boolean>["groupBy"];
}
// (thuang): This requires option to have a `name` property.
// (masoudmanson): Represents a generic autocomplete option with common properties.
interface AutocompleteOptionGeneral {
name: string; // The name of the autocomplete option.
section?: string; // An optional section for categorization.
}
// (masoudmanson): Represents a basic autocomplete option.
interface AutocompleteOptionBasic extends AutocompleteOptionGeneral {
count?: number; // An optional count associated with the option.
details?: string; // An optional string for additional details.
icon?: keyof IconNameToSmallSizes | React.ReactElement<CustomSVGProps>; // An optional icon key.
sdsIconProps?: Partial<IconProps<keyof IconNameToSmallSizes>>; // Optional properties for the associated icon.
}
// (masoudmanson): Represents an autocomplete option that includes a custom React component.
interface AutocompleteOptionComponent extends AutocompleteOptionGeneral {
component?: ReactNode; // An optional custom React component.
}
// (masoudmanson): Combines properties from two types while ensuring that overlapping properties are optional.
type Exclusive<T, U> = T & {
[K in Exclude<keyof U, keyof T>]?: undefined;
};
// (masoudmanson): Represents a default autocomplete option that can be either basic or include a custom component.
type DefaultAutocompleteOption = Exclusive<AutocompleteOptionBasic, AutocompleteOptionComponent> // Represents a basic option with optional custom properties.
| Exclusive<AutocompleteOptionComponent, AutocompleteOptionBasic>; // Represents an option with a custom component and optional basic properties.
// Represents an option with a custom component and optional basic properties.
interface ExtraAutocompleteProps<T, Multiple, DisableClearable, FreeSolo> extends Omit<StyleProps, "groupBy"> {
keepSearchOnSelect?: boolean;
renderInput?: (params: AutocompleteRenderInputParams) => React.ReactNode;
onInputChange?: (event: SyntheticEvent<Element, Event>, value: string, reason: AutocompleteInputChangeReason) => void;
onChange?: (event: React.SyntheticEvent, value: AutocompleteValue$0<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason$0, details?: AutocompleteChangeDetails$0<T>) => void;
InputBaseProps?: Partial<InputSearchProps>;
label?: string;
intent?: InputSearchProps["intent"];
onClickAway?: (event?: MouseEvent | TouchEvent, reason?: AutocompleteCloseReason$0) => void;
onClick?: (event?: TouchEvent | MouseEvent) => void;
}
type CustomAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = Omit<MuiAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>, "renderInput" | "nonce" | "rev" | "rel" | "autoFocus" | "content">;
type AutocompleteBaseProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = CustomAutocompleteProps<T, Multiple, DisableClearable, FreeSolo> & ExtraAutocompleteProps<T, Multiple, DisableClearable, FreeSolo>;
interface StyleProps$0 extends CommonThemeProps {
count?: number;
icon?: ReactElement;
search?: boolean;
title?: string;
width?: number;
}
declare const StyledPopper: import("@emotion/styled").StyledComponent<import("@mui/material").PopperProps & import("react").RefAttributes<HTMLDivElement> & {
theme?: import("@emotion/react").Theme | undefined;
} & StyleProps$0, {}, {}>;
declare const StyledPaper$0: import("@emotion/styled").StyledComponent<import("@mui/material").PaperOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
}, "className" | "style" | "classes" | "children" | "sx" | "variant" | "elevation" | "square"> & {
theme?: import("@emotion/react").Theme | undefined;
} & StyleProps$0, {}, {}>;
interface ExtraAutocompleteMultiColumnProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> extends StyleProps$0 {
keepSearchOnSelect?: boolean;
renderInput?: (params: AutocompleteRenderInputParams) => React.ReactNode;
onInputChange?: (event: SyntheticEvent<Element, Event>, value: string, reason: AutocompleteInputChangeReason) => void;
InputBaseProps?: Partial<InputSearchProps>;
PopperBaseProps?: Partial<PopperProps>;
label?: string;
PopperComponent?: React.JSXElementConstructor<PopperProps>;
PopperPlacement?: "bottom-start" | "top-start" | "bottom-end" | "top-end";
children?: JSX.Element | null;
onClickAway?: (event?: MouseEvent | TouchEvent, reason?: AutocompleteCloseReason$0) => void;
onClick?: (event?: TouchEvent | MouseEvent) => void;
ClickAwayListenerProps?: Partial<MUIClickAwayListenerProps>;
options: AutocompleteMultiColumnOption<T, Multiple, DisableClearable, FreeSolo>[];
value?: AutocompleteMultiColumnValue<T, Multiple, DisableClearable, FreeSolo>;
onChange?: (event: React.SyntheticEvent, value: AutocompleteMultiColumnValue<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason$0, details?: AutocompleteChangeDetails$0<T>) => void;
}
type CustomAutocompleteProps$0<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = Omit<AutocompleteBaseProps<T, Multiple, DisableClearable, FreeSolo>, "renderInput" | "options" | "value" | "onChange" | "nonce" | "rev" | "rel" | "autoFocus" | "content">;
type AutocompleteMultiColumnProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = CustomAutocompleteProps$0<T, Multiple, DisableClearable, FreeSolo> & ExtraAutocompleteMultiColumnProps<T, Multiple, DisableClearable, FreeSolo>;
type AutocompleteSingleColumnOption<T> = T;
type AutocompleteMultiColumnOption<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = {
options: T[];
props?: Partial<AutocompleteBaseProps<T, Multiple, DisableClearable, FreeSolo>>;
width?: number;
name: string;
icon?: React.ReactNode;
};
type SDSAutocompleteOptions<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = AutocompleteSingleColumnOption<T>[] | AutocompleteMultiColumnOption<T, Multiple, DisableClearable, FreeSolo>[];
type AutocompleteMultiColumnValue<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = Record<string | number | symbol, AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>> | undefined;
type AutocompleteSingleColumnValue<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>;
type SDSAutocompleteValue<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = AutocompleteSingleColumnValue<T, Multiple, DisableClearable, FreeSolo> | AutocompleteMultiColumnValue<T, Multiple, DisableClearable, FreeSolo>;
type AutocompleteSingleColumnOnChange<T, Multiple, DisableClearable, FreeSolo> = (event: React.SyntheticEvent, value: AutocompleteValue<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<T>) => void;
type AutocompleteMultiColumnOnChange<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = (event: React.SyntheticEvent, value: AutocompleteMultiColumnValue<T, Multiple, DisableClearable, FreeSolo>, reason: AutocompleteChangeReason, details?: AutocompleteChangeDetails<T>) => void;
type SDSAutocompleteOnChange<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = AutocompleteSingleColumnOnChange<T, Multiple, DisableClearable, FreeSolo> | AutocompleteMultiColumnOnChange<T, Multiple, DisableClearable, FreeSolo>;
interface ExtraAutocompleteProps$0<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> {
options: SDSAutocompleteOptions<T, Multiple, DisableClearable, FreeSolo>;
PopperBaseProps?: Partial<PopperProps>;
value?: SDSAutocompleteValue<T, Multiple, DisableClearable, FreeSolo>;
onClickAway?: (event?: MouseEvent | TouchEvent, reason?: AutocompleteCloseReason) => void;
onClick?: (event?: TouchEvent | MouseEvent) => void;
onChange?: SDSAutocompleteOnChange<T, Multiple, DisableClearable, FreeSolo>;
count?: number;
icon?: ReactElement;
search?: boolean;
}
type AutocompleteProps$0<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined> = Omit<AutocompleteBaseProps<T, Multiple, DisableClearable, FreeSolo>, "options" | "value" | "onChange"> & ExtraAutocompleteProps$0<T, Multiple, DisableClearable, FreeSolo>;
declare const Autocomplete$0: <T extends DefaultAutocompleteOption, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined>(props: AutocompleteProps$0<T, Multiple, DisableClearable, FreeSolo>) => JSX.Element;
type ButtonTypeMap = {
icon: "primary" | "secondary" | "tertiary";
minimal: "primary" | "secondary";
rounded: "primary" | "secondary" | "destructive";
square: "primary" | "secondary" | "destructive";
};
type ButtonSize = "small" | "medium" | "large";
interface BaseButtonProps extends RawButtonProps {
children?: React.ReactNode;
isAllCaps?: boolean;
target?: HTMLAttributeAnchorTarget;
}
interface SdsIconButtonProps extends BaseButtonProps {
sdsStyle: "icon";
sdsType?: ButtonTypeMap["icon"];
sdsSize?: ButtonSize;
icon: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
sdsIconProps?: Partial<IconProps<keyof IconNameToSizes>>;
}
interface SdsMinimalButtonProps extends BaseButtonProps {
sdsStyle: "minimal";
sdsType?: ButtonTypeMap["minimal"];
children: React.ReactNode;
}
interface SdsButtonProps extends BaseButtonProps {
sdsStyle: "rounded" | "square";
isRounded?: boolean;
sdsType?: ButtonTypeMap["rounded" | "square"];
children: React.ReactNode;
}
type SdsProps = SdsIconButtonProps | SdsMinimalButtonProps | SdsButtonProps;
type ButtonProps = SdsProps;
/**
* @see https://mui.com/material-ui/react-button/
*/
declare const Button: React.ForwardRefExoticComponent<(Omit<SdsIconButtonProps, "ref"> | Omit<SdsMinimalButtonProps, "ref"> | Omit<SdsButtonProps, "ref">) & React.RefAttributes<HTMLButtonElement>>;
interface BannerExtraProps extends CommonThemeProps {
sdsType: "primary" | "secondary";
intent?: BannerIntentType;
}
type ButtonType$0 = ButtonProps & {
bannerType: string;
} & CommonThemeProps;
type BannerIntentType = "info" | "negative" | "notice" | "positive";
interface BannerProps extends BannerExtraProps {
children: React.ReactNode;
icon?: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
sdsIconProps?: Partial<IconProps<keyof IconNameToSizes>>;
dismissed?: boolean;
dismissible?: boolean;
onClose?: (e: React.MouseEvent) => void;
intent?: BannerIntentType;
}
declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAttributes<HTMLDivElement | null>>;
type SdsProps$0 = {
sdsStyle: "icon";
sdsType?: ButtonTypeMap["icon"];
icon: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
sdsIconProps?: Partial<IconProps<keyof IconNameToSizes>>;
sdsSize?: ButtonSize;
} | {
sdsStyle: "rounded" | "square";
sdsType?: ButtonTypeMap["rounded"];
icon?: keyof IconNameToSizes | React.ReactElement<CustomSVGProps>;
sdsIconProps?: Partial<IconProps<keyof IconNameToSizes>>;
sdsSize?: ButtonSize;
};
type ButtonDropdownProps = But