import { makeStyles } from "tss-react/mui"; import { Css, CSSObject, Cx } from "tss-react/types"; import { EdtTheme } from "./edt-theme"; /* * MakeStylesEdt is an extension that was made from makeStyles. * It does exactly the same thing except the returned theme from the function is typed as EdtTheme * that is the custom theme of the app. */ type MakeStylesParams = | { name?: string | Record; uniqId?: string; } | undefined; type MakeStyleEdt = < RuleName extends string, >( cssObjectByRuleNameOrGetCssObjectByRuleName: | Record | (( theme: EdtTheme, params: Params, classes: Record, ) => Record), ) => ( params: Params, styleOverrides?: | { props: { classes?: Record; } & Record; ownerState?: Record; } | undefined, ) => { classes: Record; theme: EdtTheme; css: Css; cx: Cx; }; const makeStylesEdt = function < Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never, >(params?: MakeStylesParams) { return makeStyles(params) as MakeStyleEdt; }; export { makeStylesEdt, EdtTheme, MakeStylesParams, MakeStyleEdt };