UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 4.35 kB
{"version":3,"file":"Loader.cjs","names":["Bars","Oval","Dots","createVarsResolver","getSize","getThemeColor","factory","useProps","useStyles","Box","classes"],"sources":["../../../src/components/Loader/Loader.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getSize,\n getThemeColor,\n MantineColor,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport type { MantineLoader, MantineLoadersRecord } from './Loader.types';\nimport { Bars } from './loaders/Bars';\nimport { Dots } from './loaders/Dots';\nimport { Oval } from './loaders/Oval';\nimport classes from './Loader.module.css';\n\nexport type LoaderStylesNames = 'root';\nexport type LoaderCssVariables = {\n root: '--loader-size' | '--loader-color';\n};\n\nexport interface LoaderProps\n extends BoxProps, StylesApiProps<LoaderFactory>, ElementProps<'svg', 'display' | 'opacity'> {\n /** Controls `width` and `height` of the loader. `Loader` has predefined `xs`-`xl` values. Numbers are converted to rem. @default 'md' */\n size?: MantineSize | (string & {}) | number;\n\n /** Key of `theme.colors` or any valid CSS color @default theme.primaryColor */\n color?: MantineColor;\n\n /** Loader type, key of `loaders` prop @default 'oval' */\n type?: MantineLoader;\n\n /** Object of loaders components, can be customized via default props or inline. */\n loaders?: MantineLoadersRecord;\n\n /** Overrides default loader with given content */\n children?: React.ReactNode;\n}\n\nexport type LoaderFactory = Factory<{\n props: LoaderProps;\n ref: SVGSVGElement;\n stylesNames: LoaderStylesNames;\n vars: LoaderCssVariables;\n staticComponents: {\n defaultLoaders: typeof defaultLoaders;\n };\n}>;\n\nexport const defaultLoaders: MantineLoadersRecord = {\n bars: Bars,\n oval: Oval,\n dots: Dots,\n};\n\nconst defaultProps = {\n loaders: defaultLoaders,\n type: 'oval',\n} satisfies Partial<LoaderProps>;\n\nconst varsResolver = createVarsResolver<LoaderFactory>((theme, { size, color }) => ({\n root: {\n '--loader-size': getSize(size, 'loader-size'),\n '--loader-color': color ? getThemeColor(color, theme) : undefined,\n },\n}));\n\nexport const Loader = factory<LoaderFactory>((_props) => {\n const props = useProps('Loader', defaultProps, _props);\n const {\n size,\n color,\n type,\n vars,\n className,\n style,\n classNames,\n styles,\n unstyled,\n loaders,\n variant,\n children,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<LoaderFactory>({\n name: 'Loader',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n if (children) {\n return (\n <Box {...getStyles('root')} {...(others as any)}>\n {children}\n </Box>\n );\n }\n\n return (\n <Box\n {...getStyles('root')}\n component={loaders[type]}\n variant={variant}\n size={size}\n {...others}\n />\n );\n});\n\nLoader.defaultLoaders = defaultLoaders;\nLoader.classes = classes;\nLoader.varsResolver = varsResolver;\nLoader.displayName = '@mantine/core/Loader';\n\nexport namespace Loader {\n export type Props = LoaderProps;\n export type StylesNames = LoaderStylesNames;\n export type CssVariables = LoaderCssVariables;\n export type Factory = LoaderFactory;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsDA,MAAa,iBAAuC;CAClD,MAAMA,aAAAA;CACN,MAAMC,aAAAA;CACN,MAAMC,aAAAA;AACR;AAEA,MAAM,eAAe;CACnB,SAAS;CACT,MAAM;AACR;AAEA,MAAM,eAAeC,6BAAAA,oBAAmC,OAAO,EAAE,MAAM,aAAa,EAClF,MAAM;CACJ,iBAAiBC,iBAAAA,QAAQ,MAAM,aAAa;CAC5C,kBAAkB,QAAQC,wBAAAA,cAAc,OAAO,KAAK,IAAI,KAAA;AAC1D,EACF,EAAE;AAEF,MAAa,SAASC,gBAAAA,SAAwB,WAAW;CACvD,MAAM,QAAQC,kBAAAA,SAAS,UAAU,cAAc,MAAM;CACrD,MAAM,EACJ,MACA,OACA,MACA,MACA,WACA,OACA,YACA,QACA,UACA,SACA,SACA,UACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAyB;EACzC,MAAM;EACN;EACA,SAAA,sBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,IAAI,UACF,OACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EAAK,GAAI,UAAU,MAAM;EAAG,GAAK;EAC9B;CACE,CAAA;CAIT,OACE,iBAAA,GAAA,kBAAA,KAACA,YAAAA,KAAD;EACE,GAAI,UAAU,MAAM;EACpB,WAAW,QAAQ;EACV;EACH;EACN,GAAI;CACL,CAAA;AAEL,CAAC;AAED,OAAO,iBAAiB;AACxB,OAAO,UAAUC,sBAAAA;AACjB,OAAO,eAAe;AACtB,OAAO,cAAc"}