{"version":3,"file":"theme.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/theme.ts"],"sourcesContent":["import {\n  accordionClasses,\n  accordionSummaryClasses,\n  checkboxClasses,\n  createTheme,\n  formControlLabelClasses,\n  inputBaseClasses,\n  listItemButtonClasses,\n  outlinedInputClasses,\n  radioClasses,\n  selectClasses,\n  Theme,\n  typographyClasses,\n} from '@mui/material';\nimport type { PartialDeep } from '@stytch/core';\nimport merge from 'lodash.merge';\nimport React from 'react';\n\nimport { AdminPortalStyleConfig } from '../AdminPortalStyleConfig';\n\nconst DEFAULT_ADMIN_PORTAL_STYLE_CONFIG = {\n  container: {\n    backgroundColor: '#FFFFFF',\n    borderColor: '#FFFFFF',\n    width: '100%',\n  },\n  colors: {\n    primary: '#000000',\n    secondary: '#5C727D',\n    success: '#005D26',\n    error: '#BB0003',\n    accent: '#ECFAFF',\n    accentText: '#000000',\n    subtle: '#EFEFEF',\n  },\n  buttons: {\n    primary: {\n      backgroundColor: '#000000',\n      textColor: '#FFFFFF',\n      borderColor: '#000000',\n    },\n    secondary: {\n      backgroundColor: '#FFFFFF',\n      textColor: '#000000',\n      borderColor: '#000000',\n    },\n    disabled: {\n      backgroundColor: '#EFEFEF',\n      textColor: '#B4B4B4',\n      borderColor: '#EFEFEF',\n    },\n  },\n  inputs: {\n    backgroundColor: '#FFFFFF',\n    borderColor: '#D9D9D9',\n    placeholderColor: '#5C727D',\n    textColor: '#000000',\n  },\n  borderRadius: '4px',\n  fontFamily: 'Arial, Helvetica, sans-serif',\n} satisfies PartialDeep<AdminPortalStyleConfig>;\n\nexport const getTheme = (styles?: PartialDeep<AdminPortalStyleConfig>): Theme => {\n  const styleConfig = merge({}, DEFAULT_ADMIN_PORTAL_STYLE_CONFIG, styles);\n\n  const resolvedConfig = {\n    ...styleConfig,\n    buttons: {\n      primary: {\n        ...styleConfig.buttons.primary,\n        borderRadius: styleConfig.buttons.primary.borderRadius ?? styleConfig.borderRadius,\n      },\n      secondary: {\n        ...styleConfig.buttons.secondary,\n        borderRadius: styleConfig.buttons.secondary.borderRadius ?? styleConfig.borderRadius,\n      },\n      disabled: {\n        ...styleConfig.buttons.disabled,\n        borderRadius: styleConfig.buttons.disabled?.borderRadius ?? styleConfig.borderRadius,\n      },\n    },\n    container: {\n      ...styleConfig.container,\n      borderRadius: styleConfig.container.borderRadius ?? styleConfig.borderRadius,\n      borderWidth: styleConfig.container.borderWidth ?? 1,\n      padding: styleConfig.container.padding ?? 48,\n    },\n    inputs: {\n      ...styleConfig.inputs,\n      borderRadius: styleConfig.inputs.borderRadius ?? styleConfig.borderRadius,\n    },\n  } satisfies AdminPortalStyleConfig;\n\n  const theme = createTheme({\n    typography: {\n      allVariants: {\n        color: resolvedConfig.colors.primary,\n      },\n      button: {\n        textTransform: 'none',\n        fontSize: 14,\n        fontWeight: 600,\n        lineHeight: '250%',\n      },\n      fontFamily: styleConfig.fontFamily,\n      h1: {\n        fontSize: 24,\n        fontWeight: 600,\n        lineHeight: '125%',\n      },\n      h2: {\n        fontSize: 20,\n        fontWeight: 600,\n        lineHeight: '125%',\n      },\n      h3: {\n        fontSize: 16,\n        fontWeight: 600,\n        lineHeight: '125%',\n      },\n      h4: {\n        fontSize: 14,\n        fontWeight: 600,\n        lineHeight: '150%',\n      },\n      h5: {\n        fontSize: 12,\n        fontWeight: 600,\n        lineHeight: '150%',\n      },\n      body1: {\n        fontSize: 14,\n        fontWeight: 400,\n        lineHeight: '150%',\n      },\n      body2: {\n        fontSize: 12,\n        fontWeight: 400,\n        lineHeight: '150%',\n      },\n      caption: {\n        fontSize: 10,\n        fontWeight: 400,\n        lineHeight: '120%',\n      },\n    },\n    styleConfig: resolvedConfig,\n  });\n\n  theme.components = {\n    MuiAccordion: {\n      styleOverrides: {\n        root: {\n          border: `1px solid ${theme.styleConfig.colors.subtle}`,\n          [`&:not(.${accordionClasses.expanded}) + *`]: {\n            borderWidth: '0 1px 1px',\n          },\n          [`&.${accordionClasses.expanded}.${accordionClasses.expanded}, &.${accordionClasses.expanded} + &.${accordionClasses.root}`]:\n            {\n              borderWidth: 1,\n            },\n          [`&.${accordionClasses.root}:before`]: {\n            display: 'none',\n          },\n          backgroundColor: theme.styleConfig.container.backgroundColor,\n        },\n      },\n    },\n    MuiAccordionDetails: {\n      styleOverrides: {\n        root: {\n          alignItems: 'stretch',\n          display: 'flex',\n          flexDirection: 'column',\n          margin: theme.spacing(3, 3, 3, 7),\n          padding: 0,\n        },\n      },\n    },\n    MuiAccordionSummary: {\n      styleOverrides: {\n        root: {\n          '&&': {\n            minHeight: 48,\n          },\n          [`& .${accordionSummaryClasses.content}, & .${accordionSummaryClasses.content}.${accordionSummaryClasses.expanded}`]:\n            {\n              alignItems: 'center',\n              display: 'flex',\n              margin: theme.spacing(1.5, 0),\n            },\n        },\n        expandIconWrapper: {\n          color: theme.styleConfig.colors.primary,\n        },\n      },\n    },\n    MuiButton: {\n      styleOverrides: {\n        contained: {\n          '&:hover': {\n            boxShadow: 'none',\n          },\n          boxShadow: 'none',\n        },\n        text: {\n          '&:hover': {\n            boxShadow: 'none',\n            color: theme.styleConfig.colors.primary,\n          },\n          boxShadow: 'none',\n        },\n      },\n    },\n    MuiButtonBase: {\n      defaultProps: {\n        // This disables the ripple effect everywhere.\n        // https://mui.com/material-ui/getting-started/faq/#how-can-i-disable-the-ripple-effect-globally\n        disableRipple: true,\n      },\n    },\n    MuiCheckbox: {\n      styleOverrides: {\n        root: {\n          padding: 0,\n          [`&:hover, &.${checkboxClasses.checked}:hover`]: {\n            backgroundColor: 'transparent',\n          },\n        },\n      },\n    },\n    MuiDialog: {\n      styleOverrides: {\n        paper: {\n          [theme.breakpoints.down('sm')]: {\n            width: '100%',\n            margin: 0,\n            borderRadius: 0,\n          },\n          backgroundColor: theme.styleConfig.container.backgroundColor,\n          borderRadius: theme.styleConfig.container.borderRadius,\n          color: theme.styleConfig.colors.primary,\n          width: '800px',\n          maxWidth: '800px',\n          margin: theme.spacing(6),\n          overflow: 'auto',\n        },\n      },\n    },\n    MuiDialogActions: {\n      styleOverrides: {\n        root: {\n          justifyContent: 'flex-start',\n          padding: theme.spacing(2, 4, 4, 4),\n        },\n        spacing: {\n          '& > :not(:first-child)': {\n            marginLeft: theme.spacing(2),\n          },\n        },\n      },\n    },\n    MuiDialogContent: {\n      styleOverrides: {\n        root: {\n          padding: theme.spacing(2, 4),\n        },\n      },\n    },\n    MuiDialogTitle: {\n      styleOverrides: {\n        root: {\n          padding: theme.spacing(4, 4, 0, 4),\n        },\n      },\n    },\n    MuiDivider: {\n      styleOverrides: {\n        root: ({ ownerState, theme }) => ({\n          ...(ownerState.orientation === 'vertical' &&\n            ownerState.variant === 'middle' && {\n              marginLeft: theme.spacing(2),\n              marginRight: theme.spacing(2),\n            }),\n        }),\n      },\n    },\n    MuiFormControlLabel: {\n      styleOverrides: {\n        label: {\n          fontSize: theme.typography.body2.fontSize,\n          [`&.${formControlLabelClasses.disabled}`]: {\n            color: 'inherit',\n          },\n        },\n      },\n    },\n    MuiFormGroup: {\n      styleOverrides: {\n        root: {\n          display: 'flex',\n          flexDirection: 'column',\n          gap: theme.spacing(0.5),\n        },\n      },\n    },\n    MuiListItemButton: {\n      styleOverrides: {\n        root: {\n          padding: theme.spacing(0.5, 3, 0.5, 1),\n          borderRadius: theme.shape.borderRadius,\n          [`&.${listItemButtonClasses.selected}`]: {\n            [`& .${typographyClasses.root}`]: {\n              fontWeight: theme.typography.fontWeightBold,\n            },\n          },\n        },\n      },\n    },\n    MuiListItemText: {\n      styleOverrides: {\n        root: {\n          margin: 0,\n        },\n      },\n    },\n    MuiListItemIcon: {\n      styleOverrides: {\n        root: {\n          minWidth: 24,\n        },\n      },\n    },\n    MuiIconButton: {\n      styleOverrides: {\n        root: {\n          color: resolvedConfig.colors.primary,\n        },\n      },\n    },\n    MuiOutlinedInput: {\n      styleOverrides: {\n        notchedOutline: {\n          borderColor: theme.styleConfig.inputs.borderColor,\n        },\n        root: {\n          padding: 0,\n          [`& .${outlinedInputClasses.notchedOutline}`]: {\n            border: `1px solid ${theme.styleConfig.inputs.borderColor}`,\n            borderRadius: 4,\n          },\n          [`&.${outlinedInputClasses.multiline}`]: {\n            padding: 0,\n          },\n          [`& [class*=\"${outlinedInputClasses.input}\"]`]: {\n            '&::placeholder': {\n              color: theme.styleConfig.inputs.placeholderColor,\n              opacity: 1,\n            },\n            padding: theme.spacing(1),\n          },\n          [`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]: {\n            borderColor: theme.styleConfig.inputs.borderColor,\n          },\n          [`&:hover :not(.${outlinedInputClasses.error}) .${outlinedInputClasses.notchedOutline}, &.${outlinedInputClasses.focused} :not(.${outlinedInputClasses.error}) .${outlinedInputClasses.notchedOutline}`]:\n            {\n              borderColor: theme.styleConfig.inputs.textColor,\n            },\n          [`&:hover .${outlinedInputClasses.notchedOutline}, &.Mui-focused .${outlinedInputClasses.notchedOutline}`]: {\n            borderWidth: 1,\n          },\n          [`&.${outlinedInputClasses.error}`]: {\n            color: theme.styleConfig.colors.error,\n          },\n        },\n        input: {\n          height: theme.spacing(2),\n          padding: theme.spacing(1),\n          [`&.${outlinedInputClasses.disabled}`]: {\n            WebkitTextFillColor: theme.styleConfig.colors.secondary,\n          },\n        },\n      },\n    },\n    MuiPaper: {\n      // For Paper (Modals, Select menus, etc.), MUI default to using the 'elevation' property to determine shadow,\n      // which de-saturates colors to give the look of \"elevation\". We just want to use our own colors,\n      // so we use the \"outlined\" variation, but hide the outline.\n      // defaultProps: {\n      //   variant: 'outlined',\n      // },\n      styleOverrides: {\n        root: {\n          backgroundColor: resolvedConfig.container.backgroundColor,\n          border: '1px solid',\n          borderColor: resolvedConfig.colors.subtle,\n          borderRadius: resolvedConfig.container.borderRadius,\n        },\n      },\n    },\n    MuiRadio: {\n      styleOverrides: {\n        root: {\n          color: resolvedConfig.colors.primary,\n          padding: 0,\n        },\n        colorPrimary: {\n          [`&.${radioClasses.checked}`]: {\n            color: resolvedConfig.colors.primary,\n          },\n          [`&.${radioClasses.disabled}`]: {\n            color: resolvedConfig.colors.secondary,\n          },\n        },\n      },\n    },\n    MuiSelect: {\n      styleOverrides: {\n        root: {\n          [`& .${inputBaseClasses.root}`]: {\n            padding: 0,\n            border: `1px solid ${theme.styleConfig.inputs.borderColor}`,\n            borderRadius: theme.styleConfig.inputs.borderRadius,\n          },\n          [`& .${inputBaseClasses.input}`]: {\n            padding: theme.spacing(1, 3, 1, 1),\n          },\n          [`& .${selectClasses.icon}`]: {\n            color: theme.styleConfig.colors.primary,\n          },\n          [`& .${selectClasses.select}`]: {\n            '&:focus': {\n              backgroundColor: 'transparent',\n            },\n          },\n          [`& > fieldset.${outlinedInputClasses.notchedOutline}`]: {\n            borderWidth: '1px !important',\n          },\n          [`&:hover, &.${selectClasses.focused}`]: {\n            [`> fieldset.${outlinedInputClasses.notchedOutline}`]: {\n              borderColor: theme.styleConfig.inputs.textColor,\n            },\n          },\n          [`&.${selectClasses.disabled}`]: {\n            [`& .${selectClasses.icon}`]: {\n              color: theme.styleConfig.colors.secondary,\n            },\n            [`&:hover > fieldset.${outlinedInputClasses.notchedOutline}`]: {\n              borderColor: theme.styleConfig.inputs.borderColor,\n            },\n            borderColor: theme.styleConfig.inputs.borderColor,\n          },\n        },\n        select: {\n          height: theme.spacing(2),\n          minHeight: theme.spacing(2),\n          // Because we override the hight, we have to override the lineHeight to match, otherwise the text will be misaligned\n          lineHeight: theme.spacing(2),\n        },\n      },\n    },\n    MuiSvgIcon: {\n      styleOverrides: {\n        fontSizeSmall: {\n          fontSize: 16,\n        },\n        fontSizeMedium: {\n          fontSize: 20,\n        },\n        fontSizeLarge: {\n          fontSize: 24,\n        },\n      },\n    },\n\n    MuiTableCell: {\n      styleOverrides: {\n        head: {\n          borderBottomColor: theme.styleConfig.colors.subtle,\n          color: theme.palette.text.secondary,\n          fontSize: 14,\n          fontWeight: theme.typography.fontWeightRegular,\n          lineHeight: '20px',\n        },\n        root: {\n          padding: theme.spacing(0.5, 1),\n          borderBottomColor: theme.styleConfig.colors.subtle,\n          minWidth: 80,\n        },\n      },\n    },\n    MuiTooltip: {\n      styleOverrides: {\n        tooltip: {\n          backgroundColor: theme.styleConfig.buttons.primary.backgroundColor,\n          padding: theme.spacing(1),\n          borderRadius: 4,\n          '& p': {\n            color: theme.styleConfig.buttons.primary.textColor,\n            '& > a': {\n              color: theme.styleConfig.buttons.primary.textColor,\n            },\n          },\n        },\n        tooltipPlacementRight: {\n          marginLeft: theme.spacing(1),\n        },\n        tooltipPlacementLeft: {\n          marginRight: theme.spacing(1),\n        },\n        popper: {\n          zIndex: 2000,\n          maxWidth: 240,\n        },\n      },\n    },\n    MuiTypography: {\n      variants: [\n        {\n          props: { color: 'primary' },\n          style: {\n            color: resolvedConfig.colors.primary,\n          },\n        },\n        {\n          props: { color: 'textSecondary' },\n          style: {\n            color: resolvedConfig.colors.secondary,\n          },\n        },\n        {\n          props: { color: 'error' },\n          style: {\n            color: resolvedConfig.colors.error,\n          },\n        },\n      ],\n    },\n  };\n\n  return theme;\n};\n\nexport const useAppTheme = (styleConfig: PartialDeep<AdminPortalStyleConfig>) =>\n  React.useMemo(() => getTheme(styleConfig), [styleConfig]);\n"],"names":["DEFAULT_ADMIN_PORTAL_STYLE_CONFIG","container","backgroundColor","borderColor","width","colors","primary","secondary","success","error","accent","accentText","subtle","buttons","textColor","disabled","inputs","placeholderColor","borderRadius","fontFamily","getTheme","styles","styleConfig","merge","resolvedConfig","borderWidth","padding","theme","createTheme","typography","allVariants","color","button","textTransform","fontSize","fontWeight","lineHeight","h1","h2","h3","h4","h5","body1","body2","caption","components","MuiAccordion","styleOverrides","root","border","accordionClasses","expanded","display","MuiAccordionDetails","alignItems","flexDirection","margin","spacing","MuiAccordionSummary","minHeight","accordionSummaryClasses","content","expandIconWrapper","MuiButton","contained","boxShadow","text","MuiButtonBase","defaultProps","disableRipple","MuiCheckbox","checkboxClasses","checked","MuiDialog","paper","breakpoints","down","maxWidth","overflow","MuiDialogActions","justifyContent","marginLeft","MuiDialogContent","MuiDialogTitle","MuiDivider","ownerState","orientation","variant","marginRight","MuiFormControlLabel","label","formControlLabelClasses","MuiFormGroup","gap","MuiListItemButton","shape","listItemButtonClasses","selected","typographyClasses","fontWeightBold","MuiListItemText","MuiListItemIcon","minWidth","MuiIconButton","MuiOutlinedInput","notchedOutline","outlinedInputClasses","multiline","input","opacity","focused","height","WebkitTextFillColor","MuiPaper","MuiRadio","colorPrimary","radioClasses","MuiSelect","inputBaseClasses","selectClasses","icon","select","MuiSvgIcon","fontSizeSmall","fontSizeMedium","fontSizeLarge","MuiTableCell","head","borderBottomColor","palette","fontWeightRegular","MuiTooltip","tooltip","tooltipPlacementRight","tooltipPlacementLeft","popper","zIndex","MuiTypography","variants","props","style"],"mappings":"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"}