{"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"}