UNPKG

@czi-sds/components

Version:

2021 Create-a-thon Science Initiative Component Library

1,050 lines (1,049 loc) 102 kB
/// <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