{"version":3,"sources":["../../src/theme/muiThemeOverride.d.ts"],"sourcesContent":["// this file provides overrides for MUI theme types. the overrides allow us to add our own colors and variants to MUI components.\n\nimport type { CSSProperties } from 'react';\nimport type {\n    ComponentsOverrides,\n    ComponentsVariants,\n    PaletteColorOptions,\n    TypographyStyleOptions,\n} from '@mui/material/styles';\n\nimport type { color, lightCategoricalColor, darkCategoricalColor } from './colors';\nimport type { CodeBlockProps } from '../components/CodeBlocks';\nimport type { MarkdownProps } from '../components/Markdown';\nimport type { ColumnResizerProps } from '../components/ColumnResizer';\nimport type { ContentProps } from '../components/Content';\nimport type { CopyToClipboardButtonProps } from '../components/CopyToClipboardButton';\nimport type { ErrorBoundaryProps } from '../components/ErrorBoundary';\nimport type { FileInputButtonProps } from '../components/FileInputButton';\nimport type { FileInputProps } from '../components/FileInput';\nimport type { HeaderProps } from '../components/header/Header';\nimport type { KeyboardProps } from '../components/Keyboard';\nimport type { ResizableTableContainerProps } from '../components/ResizableTableContainer';\nimport type { ShareOnFacebookButtonProps } from '../components/social/ShareOnFacebookButton';\nimport type { ShareOnLinkedInButtonProps } from '../components/social/ShareOnLinkedInButton';\nimport type { ShareOnTwitterButtonProps } from '../components/social/ShareOnTwitterButton';\nimport type { SnackbarListProps } from '../components/SnackbarList';\nimport type { TextTruncatorProps } from '../components/TextTruncator';\n\n// These empty type imports are needed for the module augmentation to apply to dependent packages\nimport type {} from '@mui/material/Typography';\ntype ColorType = typeof color;\n\nexport interface VarnishColors extends ColorType {}\n\nexport interface VarnishMuiTheme {\n    color: VarnishColors;\n    darkCategoricalColor: typeof darkCategoricalColor;\n    lightCategoricalColor: typeof lightCategoricalColor;\n}\n\nexport interface VarnishTypographyVariants {\n    monospace: true;\n}\n\n// Update the Typography's variant prop options\ndeclare module '@mui/material/Typography' {\n    interface TypographyPropsVariantOverrides extends VarnishTypographyVariants {}\n}\n\ninterface HoveredFillStroke {\n    fill: string;\n    stroke: string;\n}\n\ninterface OpacityDefaultReversed {\n    default: string;\n    reversed: string;\n}\n\ninterface FillStrokeContrast {\n    fill: string;\n    stroke: string;\n    contrast: string;\n}\n\ninterface FillContrast {\n    fill: string;\n    contrast: string;\n}\n\ninterface VarnishPaletteColorExtensions {\n    reversed?: string;\n    hovered?: HoveredFillStroke;\n    stroke?: string;\n    contrastReversed?: string;\n    text?: string; // primary only\n}\n\ninterface VarnishBackgroundExtensions {\n    reversed?: string;\n    opacity4?: OpacityDefaultReversed;\n    opacity10?: OpacityDefaultReversed;\n    opacity20?: OpacityDefaultReversed;\n    opacity30?: OpacityDefaultReversed;\n    opacity40?: OpacityDefaultReversed;\n    opacity50?: OpacityDefaultReversed;\n    opacity60?: OpacityDefaultReversed;\n    opacity70?: OpacityDefaultReversed;\n    opacity80?: OpacityDefaultReversed;\n    opacity90?: OpacityDefaultReversed;\n}\n\ninterface VarnishTextExtensions {\n    reversed?: string;\n    placeholder?: string;\n    placeholder55?: string;\n    error?: string;\n}\n\ninterface VarnishStrokeTokens {\n    opacity4: OpacityDefaultReversed;\n    opacity10: OpacityDefaultReversed;\n    opacity20: OpacityDefaultReversed;\n    opacity30: OpacityDefaultReversed;\n    opacity40: OpacityDefaultReversed;\n    opacity50: OpacityDefaultReversed;\n    opacity60: OpacityDefaultReversed;\n    opacity70: OpacityDefaultReversed;\n    opacity80: OpacityDefaultReversed;\n    opacity90: OpacityDefaultReversed;\n    opacity100: OpacityDefaultReversed;\n    disabled: { default: string };\n}\n\ninterface VarnishIconTokens {\n    default: string;\n    reversed: string;\n    disabled: string;\n    error: string;\n    opacity50: string;\n    opacity55?: string;\n    on: string;\n    opacity30: string;\n}\n\ninterface VarnishLinksTokens {\n    default: string;\n    reversed: string;\n    hovered: {\n        default: string;\n        reversed: string;\n    };\n}\n\ninterface ElementStateGroup {\n    fill: string;\n    hovered: HoveredFillStroke;\n    contrast: string;\n    stroke: string;\n    contrastReversed: string;\n}\n\ninterface VarnishOverlayTokens {\n    background: string;\n    header: string;\n    footer: string;\n    contentContrastMed: string;\n    contentContrastHigh: string;\n    contentContrastLow: string;\n    contentContrastHighGradient: string;\n}\n\ninterface VarnishElementsTokens {\n    disabled: ElementStateGroup;\n    default: ElementStateGroup;\n    faded: ElementStateGroup;\n    reversed: ElementStateGroup;\n    overlay: VarnishOverlayTokens;\n}\n\ninterface FormCheckboxTokens {\n    stroke: string;\n    fill: string;\n    hovered: HoveredFillStroke;\n    error: FillStrokeContrast;\n    checked: FillContrast;\n    disabled: FillStrokeContrast;\n}\n\ninterface FormInputTokens {\n    stroke: string;\n    fill: string;\n    contrast: string;\n    hovered: HoveredFillStroke;\n    error: FillStrokeContrast;\n    disabled: FillStrokeContrast;\n}\n\ninterface FormRadioTokens {\n    stroke: string;\n    fill: string;\n    hovered: HoveredFillStroke;\n    error: FillStrokeContrast;\n    checked: FillContrast;\n    disabled: FillStrokeContrast;\n}\n\ninterface FormSwitchTokens {\n    stroke: string;\n    fill: string;\n    hovered: HoveredFillStroke;\n    error: FillStrokeContrast;\n    checked: FillContrast;\n    disabled: FillStrokeContrast;\n}\n\ninterface FormSliderTokens {\n    stroke: string;\n    fill: string;\n    hover: HoveredFillStroke;\n}\n\ninterface VarnishFormTokens {\n    checkbox: FormCheckboxTokens;\n    input: FormInputTokens;\n    radio: FormRadioTokens;\n    switch: FormSwitchTokens;\n    slider: FormSliderTokens;\n}\n\ninterface VarnishButtonTokens {\n    text: {\n        hovered: {\n            fill: string;\n        };\n    };\n}\n\n// applying tertiary and default color variants to common components\ndeclare module '@mui/material' {\n    interface BadgePropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface ButtonPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface ButtonOwnProps {\n        shape?: 'rounded' | 'box';\n    }\n    interface IconButtonPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface IconButtonOwnProps {\n        variant?: 'contained' | 'outlined' | 'text';\n        shape?: 'rounded' | 'box';\n    }\n    interface IconButtonPropsSizeOverrides {\n        large: true;\n    }\n    interface CheckboxPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface CheckboxPropsSizeOverrides {\n        large: true;\n    }\n    interface ChipPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface ChipOwnProps {\n        shape?: 'rounded' | 'box';\n    }\n    interface ChipPropsSizeOverrides {\n        xsmall: true;\n        large: true;\n    }\n    interface CircularProgressPropsColorOverrides {\n        tertiary: true;\n    }\n    interface LinearProgressPropsColorOverrides {\n        tertiary: true;\n    }\n    interface RadioPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface RadioPropsSizeOverrides {\n        large: true;\n    }\n    interface SliderPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface SliderPropsSizeOverrides {\n        large: true;\n    }\n    interface SwitchPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface SwitchPropsSizeOverrides {\n        large: true;\n    }\n    interface LinkPropsColorOverrides {\n        tertiary: true;\n        default: true;\n    }\n    interface LinkOwnProps {\n        size?: 'small' | 'medium' | 'large';\n    }\n    interface FormControlPropsSizeOverrides {\n        large: true;\n    }\n    interface InputLabelPropsSizeOverrides {\n        large: true;\n    }\n    interface InputBasePropsSizeOverrides {\n        large: true;\n    }\n    interface TextFieldPropsSizeOverrides {\n        large: true;\n    }\n    interface SelectPropsSizeOverrides {\n        large: true;\n    }\n    interface AvatarOwnProps {\n        size?: 'small' | 'medium' | 'large';\n        color?: 'default' | 'primary' | 'secondary' | 'tertiary';\n        shape?: 'square' | 'circle';\n    }\n}\n\ndeclare module '@mui/material/styles' {\n    interface PaletteColor extends VarnishPaletteColorExtensions {}\n\n    interface SimplePaletteColorOptions extends VarnishPaletteColorExtensions {}\n\n    interface TypeBackground extends VarnishBackgroundExtensions {}\n\n    interface TypeText extends VarnishTextExtensions {}\n\n    // allow configuration using `createTheme`\n    interface ThemeOptions extends DeepPartial<VarnishMuiTheme> {}\n\n    interface PaletteOptions {\n        tertiary?: PaletteColorOptions;\n        default?: PaletteColorOptions;\n        stroke?: VarnishStrokeTokens;\n        icon?: VarnishIconTokens;\n        links?: VarnishLinksTokens;\n        elements?: VarnishElementsTokens;\n        form?: VarnishFormTokens;\n        button?: VarnishButtonTokens;\n    }\n\n    interface Palette {\n        tertiary: PaletteColor;\n        default: PaletteColor;\n        stroke: VarnishStrokeTokens;\n        icon: VarnishIconTokens;\n        links: VarnishLinksTokens;\n        elements: VarnishElementsTokens;\n        form: VarnishFormTokens;\n        button: VarnishButtonTokens;\n    }\n\n    interface Theme extends VarnishMuiTheme {}\n\n    interface CssVarsPalette {\n        tertiary: PaletteColor;\n        default: PaletteColor;\n        stroke: VarnishStrokeTokens;\n        icon: VarnishIconTokens;\n        links: VarnishLinksTokens;\n        elements: VarnishElementsTokens;\n        form: VarnishFormTokens;\n        button: VarnishButtonTokens;\n    }\n\n    // Varnish custom typography extensions\n    interface TypographyVariants {\n        monospace: CSSProperties;\n    }\n\n    interface TypographyVariantsOptions {\n        monospace?: TypographyStyleOptions;\n        fontWeightSemiBold?: number;\n    }\n\n    interface Shape {\n        borderRadiusXs: string;\n        borderRadiusSm: string;\n        borderRadiusMd: string;\n        borderRadiusLg: string;\n        borderRadiusXl: string;\n\n        borderRadiusFull: string;\n    }\n\n    interface ShapeOptions {\n        borderRadiusXs?: string;\n        borderRadiusSm?: string;\n        borderRadiusMd?: string;\n        borderRadiusLg?: string;\n        borderRadiusXl?: string;\n\n        borderRadiusFull?: string;\n    }\n\n    // Varnish custom component theme integration\n    interface ComponentNameToClassKey {\n        MuiCodeBlock: 'root';\n        MuiColumnResizer: 'root';\n        MuiContent: 'root';\n        MuiCopyToClipboardButton: 'root';\n        MuiErrorBoundary: 'debugInfo';\n        MuiFileInput: 'root';\n        MuiFileInputButton: 'root' | 'hiddenInput';\n        MuiHeader: 'root' | 'container' | 'logo' | 'slotsArea' | 'nav' | 'search' | 'action';\n        MuiKeyboard: 'root';\n        MuiMarkdown: 'root';\n        MuiResizableTableContainer: 'root';\n        MuiShareOnFacebookButton: 'root';\n        MuiShareOnLinkedInButton: 'root';\n        MuiShareOnTwitterButton: 'root';\n        MuiSnackbarList: 'root';\n        MuiTextTruncator: 'root';\n    }\n\n    interface ComponentsPropsList {\n        MuiCodeBlock: Partial<CodeBlockProps>;\n        MuiColumnResizer: Partial<ColumnResizerProps>;\n        MuiContent: Partial<ContentProps>;\n        MuiCopyToClipboardButton: Partial<CopyToClipboardButtonProps>;\n        MuiErrorBoundary: Partial<ErrorBoundaryProps>;\n        MuiFileInput: Partial<FileInputProps>;\n        MuiFileInputButton: Partial<FileInputButtonProps>;\n        MuiHeader: Partial<HeaderProps>;\n        MuiKeyboard: Partial<KeyboardProps>;\n        MuiMarkdown: Partial<MarkdownProps>;\n        MuiResizableTableContainer: Partial<ResizableTableContainerProps>;\n        MuiShareOnFacebookButton: Partial<ShareOnFacebookButtonProps>;\n        MuiShareOnLinkedInButton: Partial<ShareOnLinkedInButtonProps>;\n        MuiShareOnTwitterButton: Partial<ShareOnTwitterButtonProps>;\n        MuiSnackbarList: Partial<SnackbarListProps>;\n        MuiTextTruncator: Partial<TextTruncatorProps>;\n    }\n\n    interface Components {\n        MuiCodeBlock?: {\n            defaultProps?: ComponentsPropsList['MuiCodeBlock'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiCodeBlock'];\n            variants?: ComponentsVariants['MuiCodeBlock'];\n        };\n        MuiColumnResizer?: {\n            defaultProps?: ComponentsPropsList['MuiColumnResizer'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiColumnResizer'];\n            variants?: ComponentsVariants['MuiColumnResizer'];\n        };\n        MuiContent?: {\n            defaultProps?: ComponentsPropsList['MuiContent'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiContent'];\n            variants?: ComponentsVariants['MuiContent'];\n        };\n        MuiCopyToClipboardButton?: {\n            defaultProps?: ComponentsPropsList['MuiCopyToClipboardButton'];\n            styleOverrides?: ComponentsOverrides<\n                Omit<Theme, 'components'>\n            >['MuiCopyToClipboardButton'];\n            variants?: ComponentsVariants['MuiCopyToClipboardButton'];\n        };\n        MuiErrorBoundary?: {\n            defaultProps?: ComponentsPropsList['MuiErrorBoundary'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiErrorBoundary'];\n            variants?: ComponentsVariants['MuiErrorBoundary'];\n        };\n        MuiFileInput?: {\n            defaultProps?: ComponentsPropsList['MuiFileInput'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiFileInput'];\n            variants?: ComponentsVariants['MuiFileInput'];\n        };\n        MuiFileInputButton?: {\n            defaultProps?: ComponentsPropsList['MuiFileInputButton'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiFileInputButton'];\n            variants?: ComponentsVariants['MuiFileInputButton'];\n        };\n        MuiHeader?: {\n            defaultProps?: ComponentsPropsList['MuiHeader'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiHeader'];\n            variants?: ComponentsVariants['MuiHeader'];\n        };\n        MuiKeyboard?: {\n            defaultProps?: ComponentsPropsList['MuiKeyboard'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiKeyboard'];\n            variants?: ComponentsVariants['MuiKeyboard'];\n        };\n        MuiMarkdown?: {\n            defaultProps?: ComponentsPropsList['MuiMarkdown'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiMarkdown'];\n            variants?: ComponentsVariants['MuiMarkdown'];\n        };\n        MuiResizableTableContainer?: {\n            defaultProps?: ComponentsPropsList['MuiResizableTableContainer'];\n            styleOverrides?: ComponentsOverrides<\n                Omit<Theme, 'components'>\n            >['MuiResizableTableContainer'];\n            variants?: ComponentsVariants['MuiResizableTableContainer'];\n        };\n        MuiShareOnFacebookButton?: {\n            defaultProps?: ComponentsPropsList['MuiShareOnFacebookButton'];\n            styleOverrides?: ComponentsOverrides<\n                Omit<Theme, 'components'>\n            >['MuiShareOnFacebookButton'];\n            variants?: ComponentsVariants['MuiShareOnFacebookButton'];\n        };\n        MuiShareOnLinkedInButton?: {\n            defaultProps?: ComponentsPropsList['MuiShareOnLinkedInButton'];\n            styleOverrides?: ComponentsOverrides<\n                Omit<Theme, 'components'>\n            >['MuiShareOnLinkedInButton'];\n            variants?: ComponentsVariants['MuiShareOnLinkedInButton'];\n        };\n        MuiShareOnTwitterButton?: {\n            defaultProps?: ComponentsPropsList['MuiShareOnTwitterButton'];\n            styleOverrides?: ComponentsOverrides<\n                Omit<Theme, 'components'>\n            >['MuiShareOnTwitterButton'];\n            variants?: ComponentsVariants['MuiShareOnTwitterButton'];\n        };\n        MuiSnackbarList?: {\n            defaultProps?: ComponentsPropsList['MuiSnackbarList'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiSnackbarList'];\n            variants?: ComponentsVariants['MuiSnackbarList'];\n        };\n        MuiTextTruncator?: {\n            defaultProps?: ComponentsPropsList['MuiTextTruncator'];\n            styleOverrides?: ComponentsOverrides<Omit<Theme, 'components'>>['MuiTextTruncator'];\n            variants?: ComponentsVariants['MuiTextTruncator'];\n        };\n    }\n}\n\ndeclare module '@mui/material/Select' {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    interface BaseSelectProps<Value = unknown> {\n        shape?: 'rounded' | 'box';\n    }\n}\n\ndeclare module '@mui/material/TextField' {\n    interface BaseTextFieldProps {\n        shape?: 'rounded' | 'box';\n    }\n}\n\ndeclare module '@mui/material/Tooltip' {\n    interface TooltipProps {\n        shape?: 'rounded' | 'box';\n    }\n}\n\ndeclare module '@mui/material/SnackbarContent' {\n    interface SnackbarContentProps {\n        shape?: 'rounded' | 'box';\n    }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}