import { i as ComponentResolver } from "../renderer-ab9E52Bp.mjs"; import { ElementType } from "react"; //#region src/themes/mui.d.ts /** * Element types the MUI resolver renders into. Every slot is the MUI * component the corresponding render function expects to find at the * call site; consumers wire these in once via `createMuiResolver` so * the resolver can be used in SSR and multi-tenant contexts where two * callers might inject different element types. */ interface MuiComponents { TextField: ElementType; Checkbox: ElementType; Typography: ElementType; Box: ElementType; MenuItem: ElementType; FormControlLabel: ElementType; } /** * Build a MUI-flavoured {@link ComponentResolver} bound to the supplied * element types. Each render function captures the supplied components * in a closure so two consumers can build different resolvers from the * same package without leaking element types through module-level * mutable state — making the adapter safe to use in SSR and multi-tenant * environments. * * Returns only the keys this theme actually overrides. The runtime * `mergeResolvers` call inside `` / `` * fills any unset keys from `headlessResolver`, so consumers never see * an unhandled field type even though this resolver leaves variants * like `union`, `discriminatedUnion`, `record`, `file`, and `unknown` * unset on purpose. * * @group Themes */ declare function createMuiResolver(components: MuiComponents): ComponentResolver; /** * Component resolver mapping schema field types to MUI (Material UI) * primitives — `TextField`, `Checkbox`, `Typography`, etc. * * This default export is built against minimal HTML stubs so it is * usable without wiring up `@mui/material` first — handy for tests, * stories, and tree-shaken bundles that want the resolver shape * without the runtime dependency. For production usage call * {@link createMuiResolver} with the real MUI element types. * * @group Themes * @example * ```tsx * import TextField from "@mui/material/TextField"; * import Checkbox from "@mui/material/Checkbox"; * import Typography from "@mui/material/Typography"; * import Box from "@mui/material/Box"; * import MenuItem from "@mui/material/MenuItem"; * import FormControlLabel from "@mui/material/FormControlLabel"; * import { createMuiResolver } from "schema-components/themes/mui"; * * const muiResolver = createMuiResolver({ * TextField, Checkbox, Typography, Box, MenuItem, FormControlLabel, * }); * * * * * ``` */ declare const muiResolver: ComponentResolver; //#endregion export { MuiComponents, createMuiResolver, muiResolver };