@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
38 lines (37 loc) • 1.68 kB
TypeScript
import { BoxProps, Factory, MantineColor, MantineSize, StylesApiProps } from '../../core';
import type { MantineLoader, MantineLoadersRecord } from './Loader.types';
export type LoaderStylesNames = 'root';
export type LoaderCssVariables = {
root: '--loader-size' | '--loader-color';
};
export interface LoaderProps extends BoxProps, StylesApiProps<LoaderFactory>, Omit<React.ComponentPropsWithoutRef<'svg'>, keyof BoxProps> {
/** Controls `width` and `height` of the loader. `Loader` has predefined `xs`-`xl` values. Numbers are converted to rem. Default value is `'md'` */
size?: MantineSize | (string & {}) | number;
/** Key of `theme.colors` or any valid CSS color, default value is `theme.primaryColor` */
color?: MantineColor;
/** Loader type, key of `loaders` prop, default value is `'oval'` */
type?: MantineLoader;
/** Object of loaders components, can be customized via default props or inline. Default value contains `bars`, `oval` and `dots` */
loaders?: MantineLoadersRecord;
/** Overrides default loader with given content */
children?: React.ReactNode;
}
export type LoaderFactory = Factory<{
props: LoaderProps;
ref: HTMLSpanElement;
stylesNames: LoaderStylesNames;
vars: LoaderCssVariables;
staticComponents: {
defaultLoaders: typeof defaultLoaders;
};
}>;
export declare const defaultLoaders: MantineLoadersRecord;
export declare const Loader: import("../../core").MantineComponent<{
props: LoaderProps;
ref: HTMLSpanElement;
stylesNames: LoaderStylesNames;
vars: LoaderCssVariables;
staticComponents: {
defaultLoaders: typeof defaultLoaders;
};
}>;