{"version":3,"sources":["../../src/theme/theme.ts","../../../../node_modules/hex-rgb/index.js","../../src/theme/colors.ts","../../src/theme/theme-utils.ts","../../src/theme/components/buttons.ts","../../src/theme/components/data-display.ts","../../src/theme/components/feedback.ts","../../src/theme/components/inputs.ts","../../src/theme/components/navigation.ts","../../src/theme/components/surfaces.ts","../../src/theme/components/index.ts","../../src/theme/palette.ts","../../src/theme/typography.ts","../../src/theme/shape.ts"],"sourcesContent":["import { deepmerge } from '@mui/utils';\n\nimport { createTheme, type Theme, type ThemeOptions } from '@mui/material/styles';\n\nimport { color, darkCategoricalColor, lightCategoricalColor } from './colors';\nimport { components } from './components';\nimport { buildPalette } from './palette';\nimport { typography } from './typography';\nimport { shape } from './shape';\n\n// This import ensures the MUI module augmentation is included in the bundle\nimport './muiThemeOverride.d';\n\nexport const varnishBaseOptions: ThemeOptions = {\n    components,\n    typography,\n    color,\n    darkCategoricalColor,\n    lightCategoricalColor,\n    cssVariables: {\n        cssVarPrefix: 'ai2',\n        colorSchemeSelector: 'data-color-scheme',\n    },\n    colorSchemes: {\n        light: { palette: buildPalette('light') },\n        dark: { palette: buildPalette('dark') },\n    },\n    spacing: (factor: number) => `${0.5 * factor}rem`,\n    shape,\n};\n\nexport const varnishTheme: Theme = createTheme(varnishBaseOptions);\n\nexport const getTheme = (overrides: ThemeOptions = {}): Theme => {\n    return createTheme(deepmerge(varnishBaseOptions, overrides));\n};\n\nexport default { getTheme };\n","const hexCharacters = 'a-f\\\\d';\nconst match3or4Hex = `#?[${hexCharacters}]{3}[${hexCharacters}]?`;\nconst match6or8Hex = `#?[${hexCharacters}]{6}([${hexCharacters}]{2})?`;\nconst nonHexChars = new RegExp(`[^#${hexCharacters}]`, 'gi');\nconst validHexSize = new RegExp(`^${match3or4Hex}$|^${match6or8Hex}$`, 'i');\n\nexport default function hexRgb(hex, options = {}) {\n\tif (typeof hex !== 'string' || nonHexChars.test(hex) || !validHexSize.test(hex)) {\n\t\tthrow new TypeError('Expected a valid hex string');\n\t}\n\n\thex = hex.replace(/^#/, '');\n\tlet alphaFromHex = 1;\n\n\tif (hex.length === 8) {\n\t\talphaFromHex = Number.parseInt(hex.slice(6, 8), 16) / 255;\n\t\thex = hex.slice(0, 6);\n\t}\n\n\tif (hex.length === 4) {\n\t\talphaFromHex = Number.parseInt(hex.slice(3, 4).repeat(2), 16) / 255;\n\t\thex = hex.slice(0, 3);\n\t}\n\n\tif (hex.length === 3) {\n\t\thex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n\t}\n\n\tconst number = Number.parseInt(hex, 16);\n\tconst red = number >> 16;\n\tconst green = (number >> 8) & 255;\n\tconst blue = number & 255;\n\tconst alpha = typeof options.alpha === 'number' ? options.alpha : alphaFromHex;\n\n\tif (options.format === 'array') {\n\t\treturn [red, green, blue, alpha];\n\t}\n\n\tif (options.format === 'css') {\n\t\tconst alphaString = alpha === 1 ? '' : ` / ${Number((alpha * 100).toFixed(2))}%`;\n\t\treturn `rgb(${red} ${green} ${blue}${alphaString})`;\n\t}\n\n\treturn {red, green, blue, alpha};\n}\n","import hexRgb from 'hex-rgb';\nimport type { ColorKeys } from '@allenai/varnish-theme/mui';\nimport varnishTheme from '@allenai/varnish-theme/mui';\n\nimport { getContrastText } from './theme-utils';\n\ntype VarnishThemeColor = (typeof varnishTheme)['color'][ColorKeys];\n\nexport class RGBA {\n    constructor(\n        public r: number,\n        public g: number,\n        public b: number,\n        public a: number\n    ) {}\n\n    toString() {\n        return `rgba(${this.r}, ${this.g}, ${this.b}, ${this.a})`;\n    }\n}\n\n// convert a hex color string to a RGBA\nexport function hexToRgb(hex: string): RGBA {\n    const rgba = hexRgb(hex);\n    return new RGBA(rgba.red, rgba.green, rgba.blue, rgba.alpha);\n}\n\nexport class Color {\n    public readonly displayName: string;\n    public readonly hex: string;\n    public readonly rgba: RGBA;\n\n    public readonly useContrastText: boolean;\n    public readonly contrastTextColor: string;\n\n    constructor(displayName: string, hex: string, rgba?: RGBA, useContrastText?: boolean) {\n        this.displayName = displayName;\n        this.hex = hex.toUpperCase();\n        this.rgba = rgba || hexToRgb(hex);\n        this.useContrastText = useContrastText ?? false;\n        this.contrastTextColor = getContrastText(this.hex);\n    }\n\n    toString() {\n        return this.hex;\n    }\n}\n\n// get color from style token\nconst getColor = (color: VarnishThemeColor) => {\n    const c = color.attributes;\n    const rgba = new RGBA(c.rgb.r, c.rgb.g, c.rgb.b, c.rgb.a);\n    const useContrastText = 'useContrastText' in c ? c.useContrastText : false;\n\n    // Include alpha in hex when it's not fully opaque\n    const alphaHex =\n        c.rgb.a < 1\n            ? Math.round(c.rgb.a * 255)\n                  .toString(16)\n                  .padStart(2, '0')\n            : '';\n    const hex = `#${c.hex.toUpperCase()}${alphaHex.toUpperCase()}`;\n\n    const colorName = color.name.replace('color-', '');\n    // Make color names formatted like B10 or R2 uppercase\n    const displayName = colorName.match(/^\\D\\d+$/) ? colorName.toUpperCase() : colorName;\n    return new Color(displayName, hex, rgba, useContrastText);\n};\n\n// colors grabbed from varnish-theme\nexport const color = Object.entries(varnishTheme.color).reduce(\n    (acc, [k, v]) => {\n        acc[k as ColorKeys] = getColor(v);\n        return acc;\n    },\n    {} as Record<ColorKeys, Color>\n);\n\n// TODO: these should pull from VarnishTheme. This is not currently done because the VarnishTheme\n// does not expose hex nor a color id like 'R10'. And converting from string rgb is not ideal.\n// This will likely be reworked in the future due to new branding. (very likely, we wont expose\n// charting colors from the mui theme at all)\nexport const lightCategoricalColor = {\n    Red: new Color('Red', color.R10.hex, color.R10.rgba, color.R10.useContrastText),\n    Orange: new Color('Orange', color.O9.hex, color.O9.rgba, color.O9.useContrastText),\n    Aqua: new Color('Aqua', color.A10.hex, color.A10.rgba, color.A10.useContrastText),\n    Teal: new Color('Teal', color.T8.hex, color.T8.rgba, color.T8.useContrastText),\n    Blue: new Color('Blue', color.B6.hex, color.B6.rgba, color.B6.useContrastText),\n    Magenta: new Color('Magenta', color.M10.hex, color.M10.rgba, color.M10.useContrastText),\n    Purple: new Color('Purple', color.P8.hex, color.P8.rgba, color.P8.useContrastText),\n    Green: new Color('Green', color.G10.hex, color.G10.rgba, color.G10.useContrastText),\n} as const satisfies Record<string, Color>;\n\nexport const darkCategoricalColor = {\n    Red: new Color('Red', color.R4.hex, color.R4.rgba, color.R4.useContrastText),\n    Orange: new Color('Orange', color.O4.hex, color.O4.rgba, color.O4.useContrastText),\n    Aqua: new Color('Aqua', color.A3.hex, color.A3.rgba, color.A3.useContrastText),\n    Teal: new Color('Teal', color.T3.hex, color.T3.rgba, color.T3.useContrastText),\n    Blue: new Color('Blue', color.B3.hex, color.B3.rgba, color.B3.useContrastText),\n    Magenta: new Color('Magenta', color.M4.hex, color.M4.rgba, color.M4.useContrastText),\n    Purple: new Color('Purple', color.P4.hex, color.P4.rgba, color.P4.useContrastText),\n    Green: new Color('Green', color.G4.hex, color.G4.rgba, color.G4.useContrastText),\n} as const satisfies Record<string, Color>;\n\n// use to convert a set of color ids top their hex values\n// e.g. SequenceColors = ColorsIdsToHexVals(['N1', 'N3', 'N5', 'N7', 'N9']);\nexport const colorsIdsToHexVals = (colorIds: Array<keyof typeof color>) =>\n    colorIds.map((k) => color[k].hex);\nexport const colorMapToHexVals = (\n    colorMap: typeof darkCategoricalColor | typeof lightCategoricalColor | typeof color\n) => Object.values(colorMap).map((v) => v.hex);\n","import type { PaletteModes } from '@allenai/varnish-theme/mui';\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport { type Theme } from '@mui/material';\nimport type { TypographyVariant } from '@mui/material/styles';\n\n// importing from @mui/system directly seems to get us around some client component issues in Next\nimport { getContrastRatio } from '@mui/system/colorManipulator';\n\n// Used to convert style object to css for typographic elements like h1...h6\nexport const getTypographyStyle = (\n    theme: Omit<Theme, 'components'>,\n    key: TypographyVariant,\n    includeKey: boolean = true\n) => {\n    const typography = (\n        theme.typography as unknown as Record<string, Record<string, string | number | undefined>>\n    )[key];\n    return `\n    ${includeKey ? `${key} {` : ''}\n      color: ${typography.color};\n      font-family: ${typography.fontFamily};\n      font-weight:  ${typography.fontWeight};\n      font-size:  ${typography.fontSize};\n      line-height:  ${typography.lineHeight};\n      margin:  ${typography.margin};\n    ${includeKey ? '}' : ''}\n  `;\n};\n\nexport const getThemeObjectTokens = <T extends { [index: string]: { value: string | number } }>(\n    themeObject: T,\n    properties: (keyof T)[] = Object.keys(themeObject)\n) => {\n    type RecordOfT = Record<keyof T, string>;\n\n    return properties.reduce((acc: RecordOfT, attribute: keyof T) => {\n        acc[attribute] = themeObject[attribute].value.toString();\n        return acc;\n    }, {} as RecordOfT);\n};\n\ninterface ColorWithContrastRatio {\n    color: string;\n    contrastRatio: number;\n}\nconst getColorWithContrastRatio = (baseColor: string, color: string): ColorWithContrastRatio => {\n    return {\n        color,\n        contrastRatio: getContrastRatio(baseColor, color),\n    };\n};\n\n/**\n *\n * @param backgroundColor The color you want to get the contrast color for\n * @param mode 'light' or 'dark', this determines which palette we pull text colors from\n * @returns The primary or reversed value for the palette mode selected, chosen based on whichever has the better contrast ratio\n */\nexport const getContrastText = (\n    backgroundColor: string,\n    mode: PaletteModes = 'light',\n    desiredContrastRatio = 4.5\n) => {\n    const primaryText = getColorWithContrastRatio(\n        backgroundColor,\n        varnishTokens.palette[mode].text.primary.default.value\n    );\n\n    const reversedText = getColorWithContrastRatio(\n        backgroundColor,\n        varnishTokens.palette[mode].text.primary.reversed.value\n    );\n\n    const secondaryText = getColorWithContrastRatio(\n        backgroundColor,\n        varnishTokens.palette[mode].text.secondary.default.value\n    );\n\n    // HACK: dark-green will always have better contrast than ai2-green. This lets us keep using ai2-green if it's above the contrast ratio we're looking for\n    if (primaryText.contrastRatio >= desiredContrastRatio) {\n        return primaryText.color;\n    }\n\n    // We want the color with the highest contrast ratio at the first index\n    const colorsOrderedByContrastRatio = [primaryText, reversedText, secondaryText].sort(\n        (a, b) => b.contrastRatio - a.contrastRatio\n    );\n\n    return colorsOrderedByContrastRatio[0].color;\n};\n\nexport const isThemeColor = (theme: Theme, key: string): key is keyof typeof theme.color => {\n    return key in theme.color;\n};\n","/**\n * Button component overrides: buttons, icon buttons, FABs, toggle buttons.\n * @see https://mui.com/material-ui/components/buttons/\n * @see https://mui.com/material-ui/components/button-group/\n * @see https://mui.com/material-ui/components/toggle-button/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const buttonComponents: Components<Omit<Theme, 'components'>> = {\n    MuiButton: {\n        defaultProps: {\n            disableElevation: true,\n        },\n        styleOverrides: {\n            root: {\n                textTransform: 'none',\n                lineHeight: '1',\n            },\n            sizeSmall: {\n                padding: '10px 14px',\n                fontSize: '0.75rem',\n            },\n            sizeMedium: {\n                padding: '11px 16px',\n                fontSize: varnishTokens.font.size.sm.value,\n            },\n            sizeLarge: {\n                padding: '16px 18px',\n                fontSize: varnishTokens.font.size.md.value,\n            },\n        },\n        variants: [\n            {\n                props: { variant: 'outlined' },\n                style: {\n                    border: '1px solid',\n                },\n            },\n            // Padding compensates for 1px border: visual size = padding + border\n            {\n                props: { variant: 'outlined', size: 'small' },\n                style: {\n                    padding: '9px 13px',\n                },\n            },\n            {\n                props: { variant: 'outlined', size: 'medium' },\n                style: {\n                    padding: '10px 15px',\n                },\n            },\n            {\n                props: { variant: 'outlined', size: 'large' },\n                style: {\n                    padding: '15px 17px',\n                },\n            },\n            {\n                props: { variant: 'contained', color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.tertiary.main,\n                        color: palette.tertiary.contrastText,\n                        '&:hover': { backgroundColor: palette.tertiary.hovered?.fill },\n                    };\n                },\n            },\n            {\n                props: { variant: 'outlined', color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.tertiary.main,\n                        borderColor: palette.tertiary.main,\n                        '&:hover': {\n                            borderColor: palette.tertiary.hovered?.stroke,\n                        },\n                    };\n                },\n            },\n            {\n                props: { variant: 'text' },\n                style: ({ theme }) => ({\n                    '&:hover': {\n                        backgroundColor: (theme.vars ?? theme).palette.button.text.hovered.fill,\n                    },\n                }),\n            },\n            {\n                props: { variant: 'text', color: 'tertiary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.tertiary.main }),\n            },\n            {\n                props: { variant: 'contained', color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.default.main,\n                        color: palette.default.contrastText,\n                        '&:hover': { backgroundColor: palette.default.hovered?.fill },\n                    };\n                },\n            },\n            {\n                props: { variant: 'outlined', color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.default.main,\n                        borderColor: palette.default.main,\n                        '&:hover': {\n                            borderColor: palette.default.hovered?.stroke,\n                        },\n                    };\n                },\n            },\n            {\n                props: { variant: 'text', color: 'default' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.default.main }),\n            },\n            {\n                props: { shape: 'rounded' },\n                style: { borderRadius: varnishTokens.radii.full.value },\n            },\n        ],\n    },\n    MuiIconButton: {\n        styleOverrides: {\n            root: ({ ownerState, theme }) => {\n                const variant = ownerState.variant;\n                const colorKey = ownerState.color || 'default';\n                const themeWithVars = theme.vars ?? theme;\n                const p = themeWithVars.palette[colorKey as keyof typeof themeWithVars.palette] as\n                    | { main?: string; contrastText?: string; hovered?: { fill?: string } }\n                    | undefined;\n\n                return {\n                    ...(['tertiary', 'default'].includes(colorKey) &&\n                        (!variant || variant === 'text') && { color: p?.main }),\n                    ...(variant === 'contained' &&\n                        p?.main && {\n                            backgroundColor: p.main,\n                            color: p.contrastText,\n                            '&:hover': { backgroundColor: p.hovered?.fill ?? p.main },\n                        }),\n                    ...(variant === 'outlined' &&\n                        p?.main && {\n                            borderColor: p.main,\n                            color: p.main,\n                        }),\n                };\n            },\n            // padding is 1px smaller to compensate for border\n            sizeSmall: {\n                padding: '6px',\n                fontSize: '1.25rem',\n            },\n            sizeMedium: {\n                padding: '6px',\n                fontSize: varnishTokens.sizes.icon.sm.value,\n            },\n            sizeLarge: {\n                padding: '8px',\n                fontSize: varnishTokens.sizes.icon.lg.value,\n            },\n        },\n        variants: [\n            {\n                props: { variant: 'outlined', size: 'small' },\n                style: {\n                    padding: '5px',\n                },\n            },\n            {\n                props: { variant: 'outlined', size: 'medium' },\n                style: {\n                    padding: '5px',\n                },\n            },\n            {\n                props: { variant: 'outlined', size: 'large' },\n                style: {\n                    padding: '8px',\n                },\n            },\n            {\n                props: { shape: 'rounded' },\n                style: { borderRadius: varnishTokens.radii.full.value },\n            },\n        ],\n    },\n};\n","/**\n * Data display component overrides: avatars, badges, chips, ratings, tables.\n * @see https://mui.com/material-ui/components/avatars/\n * @see https://mui.com/material-ui/components/badges/\n * @see https://mui.com/material-ui/components/chips/\n * @see https://mui.com/material-ui/components/rating/\n * @see https://mui.com/material-ui/components/tables/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const dataDisplayComponents: Components<Omit<Theme, 'components'>> = {\n    MuiAvatar: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    width: '2rem',\n                    height: '2rem',\n                    fontSize: varnishTokens.font.size.md.value,\n                    cursor: 'pointer',\n                    backgroundColor: palette.default.main,\n                    color: palette.default.contrastText,\n                };\n            },\n            rounded: {\n                borderRadius: varnishTokens.radii.sm.value,\n            },\n        },\n        variants: [\n            {\n                props: { size: 'small' },\n                // we don't have a font size this small in the theme, consider adding xs? .75rem\n                style: { width: '1.5rem', height: '1.5rem', fontSize: '0.75rem' },\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    width: '2.25rem',\n                    height: '2.25rem',\n                    fontSize: varnishTokens.font.size.lg.value,\n                },\n            },\n            {\n                props: { shape: 'square' },\n                style: { borderRadius: varnishTokens.radii.sm.value },\n            },\n            {\n                props: { shape: 'circle' },\n                style: ({ theme }) => ({\n                    borderRadius: theme.shape.borderRadiusFull,\n                }),\n            },\n            {\n                props: { color: 'primary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.primary.main,\n                        color: palette.primary.contrastText,\n                    };\n                },\n            },\n            {\n                props: { color: 'secondary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.secondary.main,\n                        color: palette.secondary.contrastText,\n                    };\n                },\n            },\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.tertiary.main,\n                        color: palette.tertiary.contrastText,\n                    };\n                },\n            },\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.default.main,\n                        color: palette.default.contrastText,\n                    };\n                },\n            },\n        ],\n    },\n    MuiBadge: {\n        styleOverrides: {\n            root: { textTransform: 'none' },\n        },\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => ({\n                    span: { color: (theme.vars ?? theme).palette.tertiary.main },\n                }),\n            },\n        ],\n    },\n    MuiChip: {\n        styleOverrides: {\n            root: {\n                borderRadius: varnishTokens.radii.full.value,\n                // Transparent border on all chips so filled and outlined share identical dimensions\n                border: '1px solid transparent',\n                '&.Mui-disabled': {\n                    cursor: 'not-allowed',\n                    pointerEvents: 'auto',\n                },\n            },\n            labelSmall: { padding: '0 13px' },\n            labelMedium: { padding: '0 15px' },\n            deleteIcon: { fontSize: varnishTokens.sizes.icon.sm.value },\n            sizeSmall: {\n                height: '2rem',\n                fontSize: varnishTokens.font.size.sm.value,\n            },\n            sizeMedium: {\n                height: '2.25rem',\n                fontSize: varnishTokens.font.size.sm.value,\n            },\n        },\n        variants: [\n            {\n                props: { variant: 'filled', color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.tertiary.main,\n                        color: palette.tertiary.contrastText,\n                        '&:hover': { backgroundColor: palette.tertiary.hovered?.fill },\n                    };\n                },\n            },\n            {\n                props: { variant: 'outlined', color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.tertiary.main,\n                        borderColor: palette.tertiary.main,\n                        '&:hover': { borderColor: palette.tertiary.hovered?.stroke },\n                    };\n                },\n            },\n            {\n                props: { variant: 'filled', color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        backgroundColor: palette.default.main,\n                        color: palette.default.contrastText,\n                        '&:hover': { backgroundColor: palette.default.hovered?.fill },\n                    };\n                },\n            },\n            {\n                props: { variant: 'outlined', color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.default.main,\n                        borderColor: palette.default.main,\n                        '&:hover': { borderColor: palette.default.hovered?.stroke },\n                    };\n                },\n            },\n            {\n                props: { size: 'xsmall' },\n                style: {\n                    height: '1.5rem',\n                    fontSize: '12px', // we don't have a font size this small in the theme, consider adding xs? .75rem\n                    '& .MuiChip-label': { padding: '0 7px' },\n                    '& .MuiChip-deleteIcon': { fontSize: varnishTokens.sizes.icon.xs.value },\n                },\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    height: '3rem',\n                    fontSize: varnishTokens.font.size.md.value,\n                    '& .MuiChip-label': { padding: '0 21px' },\n                    '& .MuiChip-deleteIcon': { fontSize: varnishTokens.sizes.icon.lg.value },\n                },\n            },\n            {\n                props: { shape: 'box' },\n                style: { borderRadius: varnishTokens.radii.sm.value },\n            },\n        ],\n    },\n    MuiRating: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                color: (theme.vars ?? theme).palette.primary.main,\n            }),\n        },\n    },\n    MuiTableCell: {\n        styleOverrides: {\n            root: { fontSize: varnishTokens.font.size.sm.value },\n        },\n    },\n    MuiTableContainer: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                borderRadius: varnishTokens.radii.sm.value,\n                backgroundColor: (theme.vars ?? theme).palette.background.default,\n            }),\n        },\n    },\n};\n","/**\n * Feedback component overrides: alerts, dialogs, snackbars, tooltips.\n * @see https://mui.com/material-ui/components/alert/\n * @see https://mui.com/material-ui/components/dialog/\n * @see https://mui.com/material-ui/components/snackbar/\n * @see https://mui.com/material-ui/components/tooltip/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const feedbackComponents: Components<Omit<Theme, 'components'>> = {\n    MuiAlert: {\n        styleOverrides: {\n            root: {\n                borderRadius: varnishTokens.radii.sm.value,\n                padding: '8px',\n                fontSize: varnishTokens.font.size.sm.value,\n                gap: '4px',\n            },\n            icon: {\n                fontSize: '22px',\n                padding: 0,\n                marginRight: 0,\n            },\n            message: { padding: 0 },\n        },\n        // MUI's filled Alert ignores palette.*.contrastText and re-computes via\n        // getContrastText(). Override here to match varnish-theme element contrast tokens.\n        variants: [\n            {\n                props: { variant: 'filled', severity: 'info' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.info.contrastText,\n                        '& .MuiAlert-icon': { color: palette.info.contrastText },\n                    };\n                },\n            },\n            {\n                props: { variant: 'filled', severity: 'success' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.success.contrastText,\n                        '& .MuiAlert-icon': { color: palette.success.contrastText },\n                    };\n                },\n            },\n            {\n                props: { variant: 'filled', severity: 'warning' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.warning.contrastText,\n                        '& .MuiAlert-icon': { color: palette.warning.contrastText },\n                    };\n                },\n            },\n            {\n                props: { variant: 'filled', severity: 'error' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.error.contrastText,\n                        '& .MuiAlert-icon': { color: palette.error.contrastText },\n                    };\n                },\n            },\n        ],\n    },\n    MuiDialogActions: {\n        styleOverrides: {\n            root: {\n                padding: `0 ${varnishTokens.spacing[2].value} ${varnishTokens.spacing[2].value}`,\n            },\n        },\n    },\n    MuiDialogContent: {\n        styleOverrides: {\n            root: {\n                padding: `0 ${varnishTokens.spacing[2].value} ${varnishTokens.spacing[2].value}`,\n            },\n        },\n    },\n    MuiDialogTitle: {\n        styleOverrides: {\n            root: {\n                padding: varnishTokens.spacing[2].value,\n            },\n        },\n    },\n    MuiSnackbarContent: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    backgroundColor: palette.background.reversed,\n                    color: palette.text.reversed,\n                };\n            },\n            message: {\n                overflow: 'hidden',\n                whiteSpace: 'nowrap',\n                textOverflow: 'ellipsis',\n            },\n            action: {\n                marginLeft: 'auto',\n                gap: varnishTokens.spacing[1].value,\n            },\n        },\n        variants: [\n            {\n                props: { shape: 'rounded' },\n                style: { borderRadius: varnishTokens.radii.full.value },\n            },\n        ],\n    },\n    MuiTooltip: {\n        defaultProps: {\n            shape: 'box',\n        },\n        styleOverrides: {\n            tooltip: ({ theme, ownerState }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    backgroundColor: palette.background.reversed,\n                    color: palette.text.reversed,\n                    padding: '6px 12px',\n                    fontSize: varnishTokens.font.size.sm.value,\n                    borderRadius: varnishTokens.radii.sm.value,\n                    ...(ownerState.shape === 'rounded' && {\n                        borderRadius: varnishTokens.radii.full.value,\n                        padding: '6px 18px',\n                    }),\n                };\n            },\n            arrow: ({ theme }) => ({\n                color: (theme.vars ?? theme).palette.background.reversed,\n            }),\n        },\n    },\n};\n","/**\n * Input component overrides: text fields, selects, checkboxes, radios, sliders, switches.\n * @see https://mui.com/material-ui/components/text-fields/\n * @see https://mui.com/material-ui/components/selects/\n * @see https://mui.com/material-ui/components/checkboxes/\n * @see https://mui.com/material-ui/components/radio-buttons/\n * @see https://mui.com/material-ui/components/slider/\n * @see https://mui.com/material-ui/components/switches/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const inputComponents: Components<Omit<Theme, 'components'>> = {\n    MuiAutocomplete: {\n        styleOverrides: {\n            paper: ({ theme }) => ({\n                borderRadius: varnishTokens.radii.sm.value,\n                backgroundColor: (theme.vars ?? theme).palette.elements.overlay.background,\n            }),\n            option: { fontSize: varnishTokens.font.size.sm.value },\n            clearIndicator: { borderRadius: varnishTokens.radii.sm.value },\n            popupIndicator: { borderRadius: varnishTokens.radii.sm.value },\n        },\n    },\n    MuiCheckbox: {\n        styleOverrides: {\n            root: ({ ownerState, theme }) => {\n                const { palette } = theme.vars ?? theme;\n                const colorKey = ownerState.color || 'primary';\n                const p = palette[colorKey as keyof typeof palette] as\n                    | { contrastText?: string }\n                    | undefined;\n                return {\n                    padding: 0,\n                    borderRadius: varnishTokens.radii.xs.value,\n                    '& .MuiSvgIcon-root': { borderRadius: varnishTokens.radii.xs.value },\n                    // Set background on checked SVG so the checkmark cutout shows the contrast color.\n                    // The MUI checkbox SVG path is inset ~12.5% from the viewBox edges (path starts\n                    // at 3/24), so we clip the background to the checkbox shape area to avoid a\n                    // visible border around the checkbox.\n                    '&.Mui-checked .MuiSvgIcon-root': p?.contrastText\n                        ? { backgroundColor: p.contrastText, clipPath: 'inset(12.5% round 8.33%)' }\n                        : {},\n                };\n            },\n            sizeSmall: {\n                '& .MuiSvgIcon-root': { fontSize: varnishTokens.font.size.md.value },\n            },\n            sizeMedium: {\n                '& .MuiSvgIcon-root': { fontSize: varnishTokens.font.size.xl.value },\n            },\n        },\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.tertiary.main,\n                        '&.Mui-checked': { color: palette.tertiary.main },\n                    };\n                },\n            },\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.form.checkbox.stroke,\n                        '&.Mui-checked': { color: palette.form.checkbox.checked.fill },\n                        '&.Mui-checked .MuiSvgIcon-root': {\n                            backgroundColor: palette.form.checkbox.checked.contrast,\n                            clipPath: 'inset(12.5% round 8.33%)',\n                        },\n                        '&.Mui-disabled': { color: palette.form.checkbox.disabled.stroke },\n                        '&.Mui-disabled.Mui-checked': {\n                            color: palette.form.checkbox.disabled.fill,\n                        },\n                        '&.Mui-error': { color: palette.form.checkbox.error.stroke },\n                    };\n                },\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    '& .MuiSvgIcon-root': {\n                        fontSize: '1.75rem', // we don't have a font size this size in the theme, consider adding?\n                    },\n                },\n            },\n        ],\n    },\n    MuiFilledInput: {\n        defaultProps: {\n            disableUnderline: true,\n        },\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    borderRadius: varnishTokens.radii.sm.value,\n                    border: '1px solid transparent',\n                    backgroundColor: palette.form.input.fill,\n                    '&:hover': {\n                        backgroundColor: palette.form.input.hovered.fill,\n                        borderColor: palette.form.input.hovered.stroke,\n                    },\n                    '&.Mui-focused': { backgroundColor: palette.form.input.fill },\n                    '&.Mui-error': { borderColor: palette.form.input.error.stroke },\n                    '&.Mui-disabled': {\n                        backgroundColor: palette.form.input.disabled.fill,\n                        borderColor: palette.form.input.disabled.stroke,\n                        cursor: 'not-allowed',\n                    },\n                    // Multiline (TextArea) padding on root\n                    // Padding compensates for 1px border: visual size = padding + border\n                    '&.MuiInputBase-multiline': { padding: '7px 11px' },\n                    '&.MuiInputBase-multiline.MuiInputBase-sizeSmall': { padding: '11px' },\n                };\n            },\n            // Padding compensates for 1px border: visual size = padding + border\n            input: { padding: '7px 11px' },\n            sizeSmall: { '& .MuiInputBase-input': { padding: '11px' } },\n            multiline: {\n                '& .MuiInputBase-input': {\n                    padding: 0,\n                    resize: 'none',\n                    scrollbarWidth: 'none',\n                    '&::-webkit-scrollbar': { display: 'none' },\n                    '&:hover, &:focus': {\n                        scrollbarWidth: 'thin',\n                        '&::-webkit-scrollbar': { display: 'block' },\n                    },\n                },\n            },\n        },\n    },\n    MuiFormControlLabel: {\n        styleOverrides: {\n            root: {\n                gap: varnishTokens.spacing[1].value,\n                marginLeft: 0,\n                marginRight: 0,\n            },\n        },\n    },\n    MuiFormHelperText: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    fontSize: varnishTokens.font.size.sm.value,\n                    marginTop: '4px',\n                    '&.Mui-error': { color: palette.form.input.error.contrast },\n                    '&.Mui-disabled': { color: palette.form.input.disabled.contrast },\n                };\n            },\n            sizeSmall: {\n                fontSize: '12px', // we don't have a font size this small in the theme, consider adding xs? .75rem\n            },\n            // @ts-expect-error — augmentation not visible to tsup DTS build\n            sizeLarge: { fontSize: varnishTokens.font.size.md.value },\n        },\n    },\n    MuiInput: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                '&:hover:not(.Mui-disabled):before': {\n                    borderBottomColor: (theme.vars ?? theme).palette.form.input.hovered.stroke,\n                },\n            }),\n            input: { padding: '7px 0' },\n            sizeSmall: { '& .MuiInputBase-input': { padding: '5px 0' } },\n        },\n    },\n    MuiInputBase: {\n        styleOverrides: {\n            root: {\n                lineHeight: varnishTokens.lineHeight[3].value,\n            },\n            sizeSmall: {\n                fontSize: '12px', // we don't have a font size this small in the theme, consider adding xs? .75rem\n                lineHeight: varnishTokens.lineHeight[2].value,\n            },\n        },\n    },\n    MuiInputLabel: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    position: 'relative',\n                    transform: 'none',\n                    marginBottom: '4px',\n                    fontSize: varnishTokens.font.size.sm.value,\n                    color: palette.text.secondary,\n                    '&.Mui-focused': { color: palette.text.secondary },\n                    '&.Mui-error': { color: palette.form.input.error.contrast },\n                    '&.Mui-disabled': { color: palette.form.input.disabled.contrast },\n                };\n            },\n            sizeSmall: {\n                fontSize: '12px', // we don't have a font size this small in the theme, consider adding xs? .75rem\n            },\n            // @ts-expect-error — augmentation not visible to tsup DTS build\n            sizeLarge: { fontSize: varnishTokens.font.size.md.value },\n        },\n    },\n    MuiOutlinedInput: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    borderRadius: varnishTokens.radii.sm.value,\n                    '& .MuiOutlinedInput-notchedOutline': {\n                        borderWidth: '1px',\n                        borderColor: palette.form.input.stroke,\n                    },\n                    '&:hover .MuiOutlinedInput-notchedOutline': {\n                        borderColor: palette.form.input.hovered.stroke,\n                    },\n                    // Multiline (TextArea) padding on root\n                    // Padding compensates for 1px border: visual size = padding + border\n                    '&.MuiInputBase-multiline': { padding: '7px 11px' },\n                    '&.MuiInputBase-multiline.MuiInputBase-sizeSmall': { padding: '11px' },\n                    '&.Mui-error .MuiOutlinedInput-notchedOutline': {\n                        borderColor: palette.form.input.error.stroke,\n                    },\n                    '&.Mui-disabled .MuiOutlinedInput-notchedOutline': {\n                        borderColor: palette.form.input.disabled.stroke,\n                    },\n                    '&.Mui-disabled': { cursor: 'not-allowed' },\n                };\n            },\n            notchedOutline: {\n                // Hide the legend/notch since label is now above\n                '& legend': { display: 'none' },\n            },\n            // Padding compensates for 1px border: visual size = padding + border\n            input: { padding: '7px 11px' },\n            sizeSmall: { '& .MuiInputBase-input': { padding: '11px' } },\n            multiline: {\n                '& .MuiInputBase-input': {\n                    padding: 0,\n                    resize: 'none',\n                    // Hide scrollbar until hover/focus\n                    scrollbarWidth: 'none',\n                    '&::-webkit-scrollbar': { display: 'none' },\n                    '&:hover, &:focus': {\n                        scrollbarWidth: 'thin',\n                        '&::-webkit-scrollbar': { display: 'block' },\n                    },\n                },\n            },\n        },\n    },\n    MuiRadio: {\n        defaultProps: {\n            color: 'default',\n        },\n        styleOverrides: {\n            root: {\n                padding: 0,\n                // Default (medium) icon size — MUI doesn't add a sizeMedium class\n                // for the default size, so we set it here and let sizeSmall override.\n                '& .MuiSvgIcon-root': { fontSize: varnishTokens.font.size.sm.value },\n            },\n            sizeSmall: {\n                '& .MuiSvgIcon-root': {\n                    fontSize: '0.75rem', // we don't have a font size this small in the theme, consider adding xs? .75rem\n                },\n            },\n        },\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.tertiary.main,\n                        '&.Mui-checked': { color: palette.tertiary.main },\n                    };\n                },\n            },\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.form.radio.stroke,\n                        '&.Mui-checked': { color: palette.form.radio.checked.fill },\n                        '&.Mui-disabled': { color: palette.form.radio.disabled.stroke },\n                        '&.Mui-error': { color: palette.form.radio.error.stroke },\n                    };\n                },\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    '& .MuiSvgIcon-root': { fontSize: varnishTokens.font.size.xl.value },\n                },\n            },\n        ],\n    },\n    MuiSelect: {\n        styleOverrides: {\n            root: {\n                fontWeight: varnishTokens.font.weight.medium.value,\n                borderRadius: varnishTokens.radii.sm.value,\n                // Medium (default) select padding\n                '& .MuiSelect-select': {\n                    padding: '8px 24px',\n                    fontSize: varnishTokens.font.size.sm.value,\n                },\n                // Small select padding\n                '&.MuiInputBase-sizeSmall .MuiSelect-select': {\n                    padding: '8px 20px',\n                    fontSize: '12px', // we don't have a font size this small in the theme, consider adding xs? .75rem\n                },\n                // Large select padding\n                '&.MuiInputBase-sizeLarge .MuiSelect-select': {\n                    padding: '16px 24px',\n                    fontSize: varnishTokens.font.size.md.value,\n                },\n            },\n        },\n        variants: [\n            {\n                props: { shape: 'rounded' },\n                style: {\n                    borderRadius: varnishTokens.radii.full.value,\n                    '& .MuiOutlinedInput-notchedOutline': {\n                        borderRadius: varnishTokens.radii.full.value,\n                    },\n                },\n            },\n        ],\n    },\n    MuiSlider: {\n        styleOverrides: {\n            thumb: {\n                width: 14,\n                height: 14,\n            },\n            track: {\n                height: 4,\n                borderRadius: varnishTokens.radii.full.value,\n                border: 'none',\n            },\n            rail: ({ theme }) => ({\n                height: 4,\n                borderRadius: varnishTokens.radii.full.value,\n                backgroundColor: (theme.vars ?? theme).palette.form.slider.stroke,\n            }),\n            // Vertical: swap thickness to width, restore height\n            root: {\n                '&.MuiSlider-vertical .MuiSlider-track': { height: 'auto', width: 4 },\n                '&.MuiSlider-vertical .MuiSlider-rail': { height: '100%', width: 4 },\n            },\n            sizeSmall: {\n                '& .MuiSlider-thumb': { width: 12, height: 12 },\n            },\n        },\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.tertiary.main }),\n            },\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.default.main }),\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    '& .MuiSlider-thumb': { width: 20, height: 20 },\n                    '& .MuiSlider-track': { height: 6 },\n                    '& .MuiSlider-rail': { height: 6 },\n                    // Vertical large: use width for thickness\n                    '&.MuiSlider-vertical .MuiSlider-track': { height: 'auto', width: 6 },\n                    '&.MuiSlider-vertical .MuiSlider-rail': { height: '100%', width: 6 },\n                },\n            },\n        ],\n    },\n    MuiSwitch: {\n        defaultProps: {\n            disableRipple: true,\n            color: 'default',\n        },\n        styleOverrides: {\n            root: ({ ownerState, theme }) => {\n                const { palette } = theme.vars ?? theme;\n                const colorKey = ownerState.color || 'primary';\n                const p = palette[colorKey as keyof typeof palette] as\n                    | { contrastText?: string }\n                    | undefined;\n                return {\n                    padding: 0,\n                    // Override checked thumb color to use contrastText\n                    '& .MuiSwitch-switchBase.Mui-checked': p?.contrastText\n                        ? { color: p.contrastText, '&:hover': { backgroundColor: 'transparent' } }\n                        : {},\n                    // Checked track: full opacity, no border\n                    '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': {\n                        opacity: 1,\n                        borderColor: 'transparent',\n                    },\n                    // Disabled state\n                    '& .MuiSwitch-switchBase.Mui-disabled': {\n                        color: palette.form.switch.disabled.stroke,\n                        '& + .MuiSwitch-track': {\n                            backgroundColor: palette.form.switch.disabled.fill,\n                            borderColor: palette.form.switch.disabled.stroke,\n                            opacity: 1,\n                        },\n                    },\n                    '& .MuiSwitch-switchBase.Mui-disabled.Mui-checked': {\n                        color: palette.form.switch.disabled.contrast,\n                        '& + .MuiSwitch-track': { borderColor: 'transparent' },\n                    },\n                    // Error state\n                    '& .MuiSwitch-switchBase.Mui-error': {\n                        color: palette.form.switch.error.stroke,\n                        '& + .MuiSwitch-track': {\n                            backgroundColor: palette.form.switch.error.fill,\n                            borderColor: palette.form.switch.error.stroke,\n                        },\n                    },\n                    '& .MuiSwitch-switchBase.Mui-error.Mui-checked': {\n                        color: palette.form.switch.error.contrast,\n                    },\n                };\n            },\n            switchBase: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    padding: '2px',\n                    color: palette.form.switch.stroke,\n                    '&:hover': { backgroundColor: 'transparent' },\n                };\n            },\n            thumb: { boxShadow: 'none' },\n            track: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    borderRadius: varnishTokens.radii.full.value,\n                    border: '1px solid',\n                    borderColor: palette.form.switch.stroke,\n                    backgroundColor: palette.form.switch.fill,\n                    opacity: 1,\n                };\n            },\n            sizeSmall: {\n                width: '1.375rem',\n                height: '0.75rem',\n                '& .MuiSwitch-switchBase': {\n                    padding: '2px',\n                    '&.Mui-checked': { transform: 'translateX(10px)' },\n                },\n                '& .MuiSwitch-thumb': { width: '0.5rem', height: '0.5rem' },\n            },\n            sizeMedium: {\n                width: '1.625rem',\n                height: '0.875rem',\n                '& .MuiSwitch-switchBase': {\n                    padding: '2px',\n                    '&.Mui-checked': { transform: 'translateX(12px)' },\n                },\n                '& .MuiSwitch-thumb': { width: '0.625rem', height: '0.625rem' },\n            },\n        },\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        '& .MuiSwitch-switchBase.Mui-checked': {\n                            color: palette.tertiary.contrastText,\n                            '& + .MuiSwitch-track': { backgroundColor: palette.tertiary.main },\n                        },\n                    };\n                },\n            },\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        '& .MuiSwitch-switchBase.Mui-checked': {\n                            color: palette.form.switch.checked.contrast,\n                            '& + .MuiSwitch-track': {\n                                backgroundColor: palette.form.switch.checked.fill,\n                            },\n                        },\n                    };\n                },\n            },\n            {\n                props: { size: 'large' },\n                style: {\n                    width: '2.3125rem',\n                    height: '1.25rem',\n                    '& .MuiSwitch-switchBase': {\n                        padding: '3px',\n                        '&.Mui-checked': { transform: 'translateX(17px)' },\n                    },\n                    '& .MuiSwitch-thumb': { width: '0.875rem', height: '0.875rem' },\n                },\n            },\n        ],\n    },\n    MuiTextField: {\n        defaultProps: {\n            slotProps: { inputLabel: { shrink: true } },\n        },\n        variants: [\n            {\n                props: { size: 'large' },\n                style: {\n                    '& .MuiInputBase-root': {\n                        fontSize: varnishTokens.font.size.lg.value,\n                        lineHeight: varnishTokens.lineHeight[2].value,\n                    },\n                    '& .MuiInputBase-input': { padding: '15px' },\n                    // Multiline large: padding on root only\n                    '& .MuiInputBase-root.MuiInputBase-multiline': { padding: '15px' },\n                    '& .MuiInputBase-inputMultiline': { padding: 0 },\n                    '& .MuiInputLabel-root': { fontSize: varnishTokens.font.size.md.value },\n                },\n            },\n            {\n                props: { shape: 'rounded' },\n                style: {\n                    '& .MuiInputBase-root': {\n                        // No matching radii token for 28px — flag for design review\n                        borderRadius: '28px',\n                    },\n                    '& .MuiOutlinedInput-notchedOutline': { borderWidth: '2px' },\n                    '& .MuiInputBase-input': { paddingInline: '24px' },\n                    // Multiline rounded: padding on root only\n                    '& .MuiInputBase-root.MuiInputBase-multiline': { paddingInline: '24px' },\n                    '& .MuiInputBase-inputMultiline': { paddingInline: 0 },\n                },\n            },\n        ],\n    },\n};\n","/**\n * Navigation component overrides: tabs, breadcrumbs, links, menus, lists, steppers.\n * @see https://mui.com/material-ui/components/tabs/\n * @see https://mui.com/material-ui/components/breadcrumbs/\n * @see https://mui.com/material-ui/components/links/\n * @see https://mui.com/material-ui/components/menus/\n * @see https://mui.com/material-ui/components/lists/\n * @see https://mui.com/material-ui/components/steppers/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const navigationComponents: Components<Omit<Theme, 'components'>> = {\n    MuiBreadcrumbs: {\n        styleOverrides: {\n            root: { fontSize: varnishTokens.font.size.sm.value },\n        },\n    },\n    MuiLink: {\n        defaultProps: {\n            underline: 'none',\n        },\n        styleOverrides: {\n            root: { fontWeight: varnishTokens.font.weight.medium.value },\n        },\n        variants: [\n            {\n                props: { color: 'default' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.links.default,\n                        '&:hover': { color: palette.links.hovered.default },\n                    };\n                },\n            },\n            {\n                props: { color: 'reversed' },\n                style: ({ theme }) => {\n                    const { palette } = theme.vars ?? theme;\n                    return {\n                        color: palette.links.reversed,\n                        '&:hover': { color: palette.links.hovered.reversed },\n                    };\n                },\n            },\n            {\n                props: { color: 'text' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.default.main }),\n            },\n            {\n                props: { color: 'primary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.primary.main }),\n            },\n            {\n                props: { color: 'secondary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.secondary.main }),\n            },\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.tertiary.main }),\n            },\n            {\n                props: { size: 'small' },\n                style: { fontSize: varnishTokens.font.size.sm.value },\n            },\n            {\n                props: { size: 'medium' },\n                style: { fontSize: varnishTokens.font.size.md.value },\n            },\n            {\n                props: { size: 'large' },\n                style: { fontSize: varnishTokens.font.size.lg.value },\n            },\n        ],\n    },\n    MuiListItemButton: {\n        styleOverrides: {\n            root: {\n                fontSize: varnishTokens.font.size.sm.value,\n            },\n        },\n    },\n    MuiListSubheader: {\n        styleOverrides: {\n            root: { fontSize: varnishTokens.font.size.sm.value },\n        },\n    },\n    MuiMenu: {\n        styleOverrides: {\n            paper: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    backgroundColor: palette.elements.overlay.background,\n                    border: '1px solid',\n                    borderColor: palette.divider,\n                    padding: theme.spacing(0.5),\n                };\n            },\n            list: { padding: 0 },\n        },\n    },\n    MuiMenuList: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                padding: theme.spacing(0.5),\n            }),\n        },\n    },\n    MuiMenuItem: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    '&:hover': { backgroundColor: palette.action.hover },\n                    '&.Mui-selected': {\n                        backgroundColor: palette.action.selected,\n                        '&:hover': { backgroundColor: palette.action.selected },\n                    },\n                    '&.Mui-disabled': { color: palette.text.disabled },\n                };\n            },\n        },\n    },\n    MuiStepLabel: {\n        styleOverrides: {\n            label: { fontSize: varnishTokens.font.size.sm.value },\n        },\n    },\n    MuiTab: {\n        styleOverrides: {\n            root: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    textTransform: 'none',\n                    padding: '8px 16px',\n                    fontSize: varnishTokens.font.size.sm.value,\n                    minHeight: 'unset',\n                    color: palette.text.primary,\n                    '&:hover:not(.Mui-disabled)': { color: palette.primary.main },\n                    '&.Mui-selected:not(.Mui-disabled)': { color: palette.primary.main },\n                    '&.Mui-disabled': { color: palette.text.disabled },\n                };\n            },\n        },\n    },\n    MuiTabs: {\n        styleOverrides: {\n            flexContainer: { gap: varnishTokens.spacing[1].value },\n        },\n    },\n};\n","/**\n * Surface component overrides: paper, accordion, app bar, containers, progress indicators.\n * @see https://mui.com/material-ui/components/paper/\n * @see https://mui.com/material-ui/components/accordion/\n * @see https://mui.com/material-ui/components/app-bar/\n * @see https://mui.com/material-ui/components/progress/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { Components, Theme } from '@mui/material';\n\nexport const surfaceComponents: Components<Omit<Theme, 'components'>> = {\n    MuiAccordion: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                backgroundColor: (theme.vars ?? theme).palette.elements.overlay.contentContrastHigh,\n            }),\n        },\n    },\n    MuiAccordionSummary: {\n        styleOverrides: {\n            root: { fontSize: varnishTokens.font.size.sm.value },\n        },\n    },\n    MuiAppBar: {\n        defaultProps: {\n            color: 'default',\n        },\n        styleOverrides: {\n            colorDefault: ({ theme }) => {\n                const { palette } = theme.vars ?? theme;\n                return {\n                    backgroundColor: palette.background.reversed,\n                    color: palette.text.reversed,\n                };\n            },\n        },\n    },\n    MuiHeader: {\n        defaultProps: {\n            position: 'sticky',\n            shape: 'box',\n        },\n    },\n    MuiCircularProgress: {\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.tertiary.main }),\n            },\n        ],\n    },\n    MuiContainer: {\n        styleOverrides: {\n            root: ({ theme }) => ({\n                backgroundColor: (theme.vars ?? theme).palette.background.default,\n            }),\n        },\n        defaultProps: {\n            disableGutters: true,\n        },\n    },\n    MuiLinearProgress: {\n        variants: [\n            {\n                props: { color: 'tertiary' },\n                style: ({ theme }) => ({ color: (theme.vars ?? theme).palette.tertiary.main }),\n            },\n        ],\n    },\n    MuiPaper: {\n        defaultProps: {\n            elevation: 0,\n        },\n    },\n};\n","/**\n * Merges all component category overrides into a single components object for createTheme().\n * @see https://mui.com/material-ui/customization/theme-components/\n */\nimport type { Components, Theme } from '@mui/material';\n\nimport { buttonComponents } from './buttons';\nimport { dataDisplayComponents } from './data-display';\nimport { feedbackComponents } from './feedback';\nimport { inputComponents } from './inputs';\nimport { navigationComponents } from './navigation';\nimport { surfaceComponents } from './surfaces';\n\nexport const components: Components<Omit<Theme, 'components'>> = {\n    ...inputComponents,\n    ...buttonComponents,\n    ...navigationComponents,\n    ...feedbackComponents,\n    ...dataDisplayComponents,\n    ...surfaceComponents,\n};\n","/**\n * Palette builder: maps varnish-theme design tokens to MUI palette options for light/dark modes.\n * @see https://mui.com/material-ui/customization/palette/\n */\nimport varnishTokens, { type PaletteModes } from '@allenai/varnish-theme/mui';\nimport { createTheme } from '@mui/material';\n\nexport const buildPalette = (mode: PaletteModes) => {\n    // augmentColor generates light/dark variants for custom palette entries (tertiary, default)\n    const { augmentColor } = createTheme().palette;\n    const palette = varnishTokens.palette[mode];\n    return {\n        mode,\n        primary: {\n            main: palette.accent.primary.value,\n            contrastText: palette.elements.primary.contrast.value,\n            hovered: {\n                fill: palette.elements.primary.hovered.fill.value,\n                stroke: palette.elements.primary.hovered.stroke.value,\n            },\n            stroke: palette.elements.primary.stroke.value,\n            contrastReversed: palette.elements.primary['contrast-reversed'].value,\n            text: palette.elements.primary.text.value,\n        },\n        secondary: {\n            main: palette.accent.secondary.value,\n            contrastText: palette.elements.secondary.contrast.value,\n            hovered: {\n                fill: palette.elements.secondary.hovered.fill.value,\n                stroke: palette.elements.secondary.hovered.stroke.value,\n            },\n            stroke: palette.elements.secondary.stroke.value,\n            contrastReversed: palette.elements.secondary['contrast-reversed'].value,\n        },\n        tertiary: {\n            ...augmentColor({\n                color: {\n                    main: palette.accent.tertiary.value,\n                    contrastText: palette.elements.tertiary.contrast.value,\n                },\n            }),\n            hovered: {\n                fill: palette.elements.tertiary.hovered.fill.value,\n                stroke: palette.elements.tertiary.hovered.stroke.value,\n            },\n            stroke: palette.elements.tertiary.stroke.value,\n            contrastReversed: palette.elements.tertiary['contrast-reversed'].value,\n        },\n        default: {\n            ...augmentColor({\n                color: {\n                    main: palette.elements.default.fill.value,\n                    contrastText: palette.elements.default.contrast.value,\n                },\n            }),\n            hovered: {\n                fill: palette.elements.default.hovered.fill.value,\n                stroke: palette.elements.default.hovered.stroke.value,\n            },\n            stroke: palette.elements.default.stroke.value,\n            contrastReversed: palette.elements.default['contrast-reversed'].value,\n        },\n        error: {\n            main: palette.alert.error.value,\n            contrastText: palette.elements.error.contrast.value,\n            hovered: {\n                fill: palette.elements.error.hovered.fill.value,\n                stroke: palette.elements.error.hovered.stroke.value,\n            },\n            stroke: palette.elements.error.stroke.value,\n            contrastReversed: palette.elements.error['contrast-reversed'].value,\n        },\n        warning: {\n            main: palette.alert.warning.value,\n            contrastText: palette.elements.warning.contrast.value,\n            hovered: {\n                fill: palette.elements.warning.hovered.fill.value,\n                stroke: palette.elements.warning.hovered.stroke.value,\n            },\n            stroke: palette.elements.warning.stroke.value,\n            contrastReversed: palette.elements.warning['contrast-reversed'].value,\n        },\n        info: {\n            main: palette.alert.information.value,\n            contrastText: palette.elements.information.contrast.value,\n            hovered: {\n                fill: palette.elements.information.hovered.fill.value,\n                stroke: palette.elements.information.hovered.stroke.value,\n            },\n            stroke: palette.elements.information.stroke.value,\n            contrastReversed: palette.elements.information['contrast-reversed'].value,\n        },\n        success: {\n            main: palette.alert.confirmation.value,\n            contrastText: palette.elements.confirmation.contrast.value,\n            hovered: {\n                fill: palette.elements.confirmation.hovered.fill.value,\n                stroke: palette.elements.confirmation.hovered.stroke.value,\n            },\n            stroke: palette.elements.confirmation.stroke.value,\n            contrastReversed: palette.elements.confirmation['contrast-reversed'].value,\n        },\n        grey: {\n            50: varnishTokens.color['gray-10'].value,\n            100: varnishTokens.color['gray-10'].value,\n            200: varnishTokens.color['gray-30'].value,\n            300: varnishTokens.color['gray-30'].value,\n            400: varnishTokens.color['gray-50'].value,\n            500: varnishTokens.color['gray-50'].value,\n            600: varnishTokens.color['gray-50'].value,\n            700: varnishTokens.color['gray-80'].value,\n            800: varnishTokens.color['gray-80'].value,\n            900: varnishTokens.color['gray-80'].value,\n            A100: varnishTokens.color['gray-10'].value,\n            A200: varnishTokens.color['gray-30'].value,\n            A400: varnishTokens.color['gray-50'].value,\n            A700: varnishTokens.color['gray-80'].value,\n        },\n        text: {\n            primary: palette.text.primary.default.value,\n            reversed: palette.text.primary.reversed.value,\n            placeholder: palette.text.placeholder.value,\n            placeholder55: palette.text['placeholder-55'].value,\n            disabled: palette.text.disabled.value,\n            error: palette.text.error.value,\n        },\n        divider: palette.stroke['opacity-20'].default.value,\n        background: {\n            default: palette.background.default.value,\n            paper: palette.background.default.value,\n            reversed: palette.background.reversed.value,\n            opacity4: {\n                default: palette.background['opacity-4'].default.value,\n                reversed: palette.background['opacity-4'].reversed.value,\n            },\n            opacity10: {\n                default: palette.background['opacity-10'].default.value,\n                reversed: palette.background['opacity-10'].reversed.value,\n            },\n            opacity20: {\n                default: palette.background['opacity-20'].default.value,\n                reversed: palette.background['opacity-20'].reversed.value,\n            },\n            opacity30: {\n                default: palette.background['opacity-30'].default.value,\n                reversed: palette.background['opacity-30'].reversed.value,\n            },\n            opacity40: {\n                default: palette.background['opacity-40'].default.value,\n                reversed: palette.background['opacity-40'].reversed.value,\n            },\n            opacity50: {\n                default: palette.background['opacity-50'].default.value,\n                reversed: palette.background['opacity-50'].reversed.value,\n            },\n            opacity60: {\n                default: palette.background['opacity-60'].default.value,\n                reversed: palette.background['opacity-60'].reversed.value,\n            },\n            opacity70: {\n                default: palette.background['opacity-70'].default.value,\n                reversed: palette.background['opacity-70'].reversed.value,\n            },\n            opacity80: {\n                default: palette.background['opacity-80'].default.value,\n                reversed: palette.background['opacity-80'].reversed.value,\n            },\n            opacity90: {\n                default: palette.background['opacity-90'].default.value,\n                reversed: palette.background['opacity-90'].reversed.value,\n            },\n        },\n        common: {\n            white: varnishTokens.color.white.value,\n            black: varnishTokens.color.black.value,\n        },\n        stroke: {\n            opacity4: {\n                default: palette.stroke['opacity-4'].default.value,\n                reversed: palette.stroke['opacity-4'].reversed.value,\n            },\n            opacity10: {\n                default: palette.stroke['opacity-10'].default.value,\n                reversed: palette.stroke['opacity-10'].reversed.value,\n            },\n            opacity20: {\n                default: palette.stroke['opacity-20'].default.value,\n                reversed: palette.stroke['opacity-20'].reversed.value,\n            },\n            opacity30: {\n                default: palette.stroke['opacity-30'].default.value,\n                reversed: palette.stroke['opacity-30'].reversed.value,\n            },\n            opacity40: {\n                default: palette.stroke['opacity-40'].default.value,\n                reversed: palette.stroke['opacity-40'].reversed.value,\n            },\n            opacity50: {\n                default: palette.stroke['opacity-50'].default.value,\n                reversed: palette.stroke['opacity-50'].reversed.value,\n            },\n            opacity60: {\n                default: palette.stroke['opacity-60'].default.value,\n                reversed: palette.stroke['opacity-60'].reversed.value,\n            },\n            opacity70: {\n                default: palette.stroke['opacity-70'].default.value,\n                reversed: palette.stroke['opacity-70'].reversed.value,\n            },\n            opacity80: {\n                default: palette.stroke['opacity-80'].default.value,\n                reversed: palette.stroke['opacity-80'].reversed.value,\n            },\n            opacity90: {\n                default: palette.stroke['opacity-90'].default.value,\n                reversed: palette.stroke['opacity-90'].reversed.value,\n            },\n            opacity100: {\n                default: palette.stroke['opacity-100'].default.value,\n                reversed: palette.stroke['opacity-100'].reversed.value,\n            },\n            disabled: {\n                default: palette.stroke.disabled.default.value,\n            },\n        },\n        icon: {\n            default: palette.icon.default.value,\n            reversed: palette.icon.reversed.value,\n            disabled: palette.icon.disabled.value,\n            error: palette.icon.error.value,\n            opacity50: palette.icon['opacity-50'].value,\n            on: palette.icon.on.value,\n            opacity30: palette.icon['opacity-30'].value,\n            // opacity-55 only exists in light mode tokens; cast needed because TS can't narrow the union type.\n            // TODO: add opacity-55 to dark mode in varnish-theme so this conditional spread can be removed.\n            ...('opacity-55' in palette.icon && {\n                opacity55: (palette.icon as Record<string, { value: string }>)['opacity-55'].value,\n            }),\n        },\n        links: {\n            default: palette.links.default.value,\n            reversed: palette.links.reversed.value,\n            hovered: {\n                default: palette.links.hovered.default.value,\n                reversed: palette.links.hovered.reversed.value,\n            },\n        },\n        elements: {\n            disabled: {\n                fill: palette.elements.disabled.fill.value,\n                hovered: {\n                    fill: palette.elements.disabled.hovered.fill.value,\n                    stroke: palette.elements.disabled.hovered.stroke.value,\n                },\n                contrast: palette.elements.disabled.contrast.value,\n                stroke: palette.elements.disabled.stroke.value,\n                contrastReversed: palette.elements.disabled['contrast-reversed'].value,\n            },\n            default: {\n                fill: palette.elements.default.fill.value,\n                hovered: {\n                    fill: palette.elements.default.hovered.fill.value,\n                    stroke: palette.elements.default.hovered.stroke.value,\n                },\n                contrast: palette.elements.default.contrast.value,\n                stroke: palette.elements.default.stroke.value,\n                contrastReversed: palette.elements.default['contrast-reversed'].value,\n            },\n            faded: {\n                fill: palette.elements.faded.fill.value,\n                hovered: {\n                    fill: palette.elements.faded.hovered.fill.value,\n                    stroke: palette.elements.faded.hovered.stroke.value,\n                },\n                contrast: palette.elements.faded.contrast.value,\n                stroke: palette.elements.faded.stroke.value,\n                contrastReversed: palette.elements.faded['contrast-reversed'].value,\n            },\n            reversed: {\n                fill: palette.elements.reversed.fill.value,\n                hovered: {\n                    fill: palette.elements.reversed.hovered.fill.value,\n                    stroke: palette.elements.reversed.hovered.stroke.value,\n                },\n                contrast: palette.elements.reversed.contrast.value,\n                stroke: palette.elements.reversed.stroke.value,\n                contrastReversed: palette.elements.reversed['contrast-reversed'].value,\n            },\n            overlay: {\n                background: palette.elements.overlay.background.value,\n                header: palette.elements.overlay.header.value,\n                footer: palette.elements.overlay.footer.value,\n                contentContrastMed: palette.elements.overlay['content-contrast-med'].value,\n                contentContrastHigh: palette.elements.overlay['content-contrast-high'].value,\n                contentContrastLow: palette.elements.overlay['content-contrast-low'].value,\n                contentContrastHighGradient:\n                    palette.elements.overlay['content-contrast-high-gradient'].value,\n            },\n        },\n        form: {\n            checkbox: {\n                stroke: palette.elements.overrides.form.checkbox.stroke.value,\n                fill: palette.elements.overrides.form.checkbox.fill.value,\n                hovered: {\n                    fill: palette.elements.overrides.form.checkbox.hovered.fill.value,\n                    stroke: palette.elements.overrides.form.checkbox.hovered.stroke.value,\n                },\n                error: {\n                    fill: palette.elements.overrides.form.checkbox.error.fill.value,\n                    stroke: palette.elements.overrides.form.checkbox.error.stroke.value,\n                    contrast: palette.elements.overrides.form.checkbox.error.contrast.value,\n                },\n                checked: {\n                    fill: palette.elements.overrides.form.checkbox.checked.fill.value,\n                    contrast: palette.elements.overrides.form.checkbox.checked.contrast.value,\n                },\n                disabled: {\n                    fill: palette.elements.overrides.form.checkbox.disabled.fill.value,\n                    stroke: palette.elements.overrides.form.checkbox.disabled.stroke.value,\n                    contrast: palette.elements.overrides.form.checkbox.disabled.contrast.value,\n                },\n            },\n            input: {\n                stroke: palette.elements.overrides.form.input.stroke.value,\n                fill: palette.elements.overrides.form.input.fill.value,\n                contrast: palette.elements.overrides.form.input.contrast.value,\n                hovered: {\n                    fill: palette.elements.overrides.form.input.hovered.fill.value,\n                    stroke: palette.elements.overrides.form.input.hovered.stroke.value,\n                },\n                error: {\n                    fill: palette.elements.overrides.form.input.error.fill.value,\n                    stroke: palette.elements.overrides.form.input.error.stroke.value,\n                    contrast: palette.elements.overrides.form.input.error.contrast.value,\n                },\n                disabled: {\n                    fill: palette.elements.overrides.form.input.disabled.fill.value,\n                    stroke: palette.elements.overrides.form.input.disabled.stroke.value,\n                    contrast: palette.elements.overrides.form.input.disabled.contrast.value,\n                },\n            },\n            radio: {\n                stroke: palette.elements.overrides.form.radio.stroke.value,\n                fill: palette.elements.overrides.form.radio.fill.value,\n                hovered: {\n                    fill: palette.elements.overrides.form.radio.hovered.fill.value,\n                    stroke: palette.elements.overrides.form.radio.hovered.stroke.value,\n                },\n                error: {\n                    fill: palette.elements.overrides.form.radio.error.fill.value,\n                    stroke: palette.elements.overrides.form.radio.error.stroke.value,\n                    contrast: palette.elements.overrides.form.radio.error.contrast.value,\n                },\n                checked: {\n                    fill: palette.elements.overrides.form.radio.checked.fill.value,\n                    contrast: palette.elements.overrides.form.radio.checked.contrast.value,\n                },\n                disabled: {\n                    fill: palette.elements.overrides.form.radio.disabled.fill.value,\n                    stroke: palette.elements.overrides.form.radio.disabled.stroke.value,\n                    contrast: palette.elements.overrides.form.radio.disabled.contrast.value,\n                },\n            },\n            switch: {\n                stroke: palette.elements.overrides.form.switch.stroke.value,\n                fill: palette.elements.overrides.form.switch.fill.value,\n                hovered: {\n                    fill: palette.elements.overrides.form.switch.hovered.fill.value,\n                    stroke: palette.elements.overrides.form.switch.hovered.stroke.value,\n                },\n                error: {\n                    fill: palette.elements.overrides.form.switch.error.fill.value,\n                    stroke: palette.elements.overrides.form.switch.error.stroke.value,\n                    contrast: palette.elements.overrides.form.switch.error.contrast.value,\n                },\n                checked: {\n                    fill: palette.elements.overrides.form.switch.checked.fill.value,\n                    contrast: palette.elements.overrides.form.switch.checked.contrast.value,\n                },\n                disabled: {\n                    fill: palette.elements.overrides.form.switch.disabled.fill.value,\n                    stroke: palette.elements.overrides.form.switch.disabled.stroke.value,\n                    contrast: palette.elements.overrides.form.switch.disabled.contrast.value,\n                },\n            },\n            slider: {\n                stroke: palette.elements.overrides.form.slider.stroke.value,\n                fill: palette.elements.overrides.form.slider.fill.value,\n                hover: {\n                    fill: palette.elements.overrides.form.slider.hover.fill.value,\n                    stroke: palette.elements.overrides.form.slider.hover.stroke.value,\n                },\n            },\n        },\n        button: {\n            text: {\n                hovered: {\n                    fill: palette.elements.overrides.button.text.hovered.fill.value,\n                },\n            },\n        },\n    };\n};\n","/**\n * Typography configuration: maps varnish-theme font tokens to MUI typography options.\n * @see https://mui.com/material-ui/customization/typography/\n */\nimport varnishTokens from '@allenai/varnish-theme/mui';\nimport type { TypographyVariantsOptions } from '@mui/material/styles';\n\nexport const typography = {\n    fontFamily: varnishTokens.font.family.body.value,\n    fontWeightLight: varnishTokens.font.weight.light.value,\n    fontWeightRegular: varnishTokens.font.weight.regular.value,\n    fontWeightMedium: varnishTokens.font.weight.medium.value,\n    fontWeightSemiBold: varnishTokens.font.weight.semiBold.value,\n    fontWeightBold: varnishTokens.font.weight.bold.value,\n    h1: varnishTokens.typography.h1.value,\n    h2: varnishTokens.typography.h2.value,\n    h3: varnishTokens.typography.h3.value,\n    h4: varnishTokens.typography.h4.value,\n    h5: varnishTokens.typography.h5.value,\n    h6: varnishTokens.typography.h6.value,\n    subtitle1: varnishTokens.typography.subtitle1.value,\n    subtitle2: varnishTokens.typography.subtitle2.value,\n    body1: varnishTokens.typography.body1.value,\n    body2: varnishTokens.typography.body2.value,\n    caption: varnishTokens.typography.caption.value,\n    overline: varnishTokens.typography.overline.value,\n    monospace: varnishTokens.typography.monospace.value,\n    button: {\n        textTransform: 'none',\n    },\n} satisfies TypographyVariantsOptions;\n","import { type ShapeOptions } from '@mui/material/styles';\n\nimport varnishTokens from '@allenai/varnish-theme';\n\nimport './muiThemeOverride.d';\n\nexport const shape: ShapeOptions = {\n    // default: 4px\n    borderRadius: 4,\n    // additional Sizes\n    borderRadiusXs: varnishTokens.radii.xs.value,\n    borderRadiusSm: varnishTokens.radii.sm.value,\n    borderRadiusMd: varnishTokens.radii.md.value,\n    borderRadiusLg: varnishTokens.radii.lg.value,\n    borderRadiusXl: varnishTokens.radii.xl.value,\n    // Fully rounded\n    borderRadiusFull: varnishTokens.radii.full.value,\n};\n"],"mappings":"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","names":["varnishTheme","import_mui","color","varnishTokens","color","varnishTheme","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","import_mui","varnishTokens","varnishTokens","varnishTheme"]}