@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 4.54 kB
Source Map (JSON)
{"version":3,"file":"List.cjs","names":["createVarsResolver","getFontSize","getLineHeight","getSpacing","factory","useProps","useStyles","ListProvider","Box","classes","ListItem"],"sources":["../../../src/components/List/List.tsx"],"sourcesContent":["import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getFontSize,\n getLineHeight,\n getSpacing,\n MantineSize,\n MantineSpacing,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { ListProvider } from './List.context';\nimport { ListItem, ListItemStylesNames } from './ListItem/ListItem';\nimport classes from './List.module.css';\n\nexport type ListStylesNames = 'root' | ListItemStylesNames;\nexport type ListCssVariables = {\n root: '--list-fz' | '--list-lh' | '--list-spacing';\n};\n\nexport interface ListProps\n extends BoxProps, StylesApiProps<ListFactory>, ElementProps<'ol', 'type'> {\n /** `List.Item` components */\n children?: React.ReactNode;\n\n /** List type @default 'unordered' */\n type?: 'ordered' | 'unordered';\n\n /** Adds extra horizontal padding to the list, useful for nested lists @default false */\n withPadding?: boolean;\n\n /** Controls `font-size` and `line-height` @default 'md' */\n size?: MantineSize;\n\n /** Icon to replace default list markers. Applied to all items unless overridden on individual List.Item components */\n icon?: React.ReactNode;\n\n /** Key of `theme.spacing` or any valid CSS value to set spacing between items @default 0 */\n spacing?: MantineSpacing;\n\n /** Vertically centers list items with their icons @default false */\n center?: boolean;\n\n /** Controls CSS `list-style-type` property. Overrides the default list marker style based on list type */\n listStyleType?: React.CSSProperties['listStyleType'];\n\n /** Starting value for ordered list numbering (only works with type=\"ordered\") */\n start?: number;\n\n /** Reverses the order of list items (only works with type=\"ordered\") */\n reversed?: boolean;\n}\n\nexport type ListFactory = Factory<{\n props: ListProps;\n ref: HTMLUListElement;\n stylesNames: ListStylesNames;\n vars: ListCssVariables;\n staticComponents: {\n Item: typeof ListItem;\n };\n}>;\n\nconst defaultProps = {\n type: 'unordered',\n} satisfies Partial<ListProps>;\n\nconst varsResolver = createVarsResolver<ListFactory>((_, { size, spacing }) => ({\n root: {\n '--list-fz': getFontSize(size),\n '--list-lh': getLineHeight(size),\n '--list-spacing': getSpacing(spacing),\n },\n}));\n\nexport const List = factory<ListFactory>((_props) => {\n const props = useProps('List', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n children,\n type,\n withPadding,\n icon,\n spacing,\n center,\n listStyleType,\n mod,\n attributes,\n ...others\n } = props;\n\n const getStyles = useStyles<ListFactory>({\n name: 'List',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n attributes,\n vars,\n varsResolver,\n });\n\n return (\n <ListProvider value={{ center, icon, getStyles }}>\n <Box<any>\n {...getStyles('root', { style: { listStyleType } })}\n component={type === 'unordered' ? 'ul' : 'ol'}\n mod={[{ 'with-padding': withPadding, type: icon ? 'none' : listStyleType }, mod]}\n {...others}\n >\n {children}\n </Box>\n </ListProvider>\n );\n});\n\nList.classes = classes;\nList.varsResolver = varsResolver;\nList.displayName = '@mantine/core/List';\nList.Item = ListItem;\n"],"mappings":";;;;;;;;;;;;;AAoEA,MAAM,eAAe,EACnB,MAAM,aACP;AAED,MAAM,eAAeA,6BAAAA,oBAAiC,GAAG,EAAE,MAAM,eAAe,EAC9E,MAAM;CACJ,aAAaC,iBAAAA,YAAY,KAAK;CAC9B,aAAaC,iBAAAA,cAAc,KAAK;CAChC,kBAAkBC,iBAAAA,WAAW,QAAQ;CACtC,EACF,EAAE;AAEH,MAAa,OAAOC,gBAAAA,SAAsB,WAAW;CACnD,MAAM,QAAQC,kBAAAA,SAAS,QAAQ,cAAc,OAAO;CACpD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,UACA,MACA,aACA,MACA,SACA,QACA,eACA,KACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAuB;EACvC,MAAM;EACN,SAAA,oBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAACC,qBAAAA,cAAD;EAAc,OAAO;GAAE;GAAQ;GAAM;GAAW;YAC9C,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;GACE,GAAI,UAAU,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;GACnD,WAAW,SAAS,cAAc,OAAO;GACzC,KAAK,CAAC;IAAE,gBAAgB;IAAa,MAAM,OAAO,SAAS;IAAe,EAAE,IAAI;GAChF,GAAI;GAEH;GACG,CAAA;EACO,CAAA;EAEjB;AAEF,KAAK,UAAUC,oBAAAA;AACf,KAAK,eAAe;AACpB,KAAK,cAAc;AACnB,KAAK,OAAOC,iBAAAA"}