import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import { PolymorphicRefForwardingComponent } from '../../helpers'
export interface CListGroupProps extends HTMLAttributes {
/**
* Component used for the root node. Either a string to use a HTML element or a component.
*/
as?: ElementType
/**
* A string of all className you want applied to the component.
*/
className?: string
/**
* Remove some borders and rounded corners to render list group items edge-to-edge in a parent component (e.g., ``).
*/
flush?: boolean
/**
* Specify a layout type.
*/
layout?:
| 'horizontal'
| 'horizontal-sm'
| 'horizontal-md'
| 'horizontal-lg'
| 'horizontal-xl'
| 'horizontal-xxl'
}
export const CListGroup: PolymorphicRefForwardingComponent<'ul', CListGroupProps> = forwardRef<
HTMLDivElement | HTMLUListElement,
CListGroupProps
>(({ children, as: Component = 'ul', className, flush, layout, ...rest }, ref) => {
return (
{children}
)
})
CListGroup.propTypes = {
as: PropTypes.elementType,
children: PropTypes.node,
className: PropTypes.string,
flush: PropTypes.bool,
layout: PropTypes.oneOf([
'horizontal',
'horizontal-sm',
'horizontal-md',
'horizontal-lg',
'horizontal-xl',
'horizontal-xxl',
]),
}
CListGroup.displayName = 'CListGroup'