{"version":3,"file":"ListItem.cjs","sources":["../../../src/components/List/ListItem.tsx"],"sourcesContent":["import React from \"react\";\n\n// utils\nimport { twMerge } from \"tailwind-merge\";\n\n// types\nimport {\n  children,\n  className,\n  disabled,\n  propTypesChildren,\n  propTypesClassName,\n  propTypesDisabled,\n  propTypesSelected,\n  selected,\n} from \"@/components/utils/types\";\n\n// list item components\nimport { objectsToString } from \"@/components/utils\";\nimport clsx from \"clsx\";\nimport { ListItemPrefix, ListItemPrefixProps } from \"./ListItemPrefix\";\nimport { ListItemSuffix, ListItemSuffixProps } from \"./ListItemSuffix\";\nimport { list } from \"./listStyle\";\n\nexport interface ListItemProps extends React.ComponentProps<\"div\"> {\n  className?: className;\n  disabled?: disabled;\n  selected?: selected;\n  children: children;\n}\n\nexport const ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n  ({ className, disabled, selected, children, ...rest }, ref) => {\n    // 1. init\n    const { styles } = list;\n\n    // 2. set styles\n    const listItemClasses = twMerge(\n      clsx(objectsToString(styles?.base?.item?.initial), {\n        [objectsToString(styles?.base?.item?.disabled)]: disabled,\n        [objectsToString(styles?.base?.item?.selected)]: selected && !disabled,\n      }),\n      className\n    );\n\n    return (\n      <div\n        {...rest}\n        ref={ref}\n        role=\"button\"\n        tabIndex={0}\n        className={listItemClasses}\n        onMouseDown={(e) => {\n          const onMouseDown = rest?.onMouseDown;\n          return typeof onMouseDown === \"function\" && onMouseDown(e);\n        }}\n      >\n        {children}\n      </div>\n    );\n  }\n);\n\nListItem.propTypes = {\n  className: propTypesClassName,\n  selected: propTypesSelected,\n  disabled: propTypesDisabled,\n  children: propTypesChildren,\n};\n\nListItem.displayName = \"ListItem\";\n\nexport { ListItemPrefix, ListItemSuffix };\nexport type { ListItemPrefixProps, ListItemSuffixProps };\n// export default Object.assign(ListItem, {\n//   Prefix: ListItemPrefix,\n//   Suffix: ListItemSuffix,\n// });\n"],"names":["ListItem","React","forwardRef","className","disabled","selected","children","rest","ref","styles","list","listItemClasses","twMerge","clsx","objectsToString","_b","_a","base","item","initial","_d","_c","_f","_e","jsxRuntimeExports","jsx","role","tabIndex","onMouseDown","e","propTypes","propTypesClassName","propTypesSelected","propTypesDisabled","propTypesChildren","displayName"],"mappings":"yWA+BaA,EAAWC,EAAMC,YAC5B,EAAGC,UAAAA,EAAWC,SAAAA,EAAUC,SAAAA,EAAUC,SAAAA,KAAaC,GAAQC,qBAE/C,MAAAC,OAAEA,GAAWC,OAGbC,EAAkBC,EAAAA,QACtBC,OAAKC,EAAgBA,gBAAA,OAAAC,EAAA,OAAAC,EAAA,MAAAP,OAAA,EAAAA,EAAQQ,WAAM,EAAAD,EAAAE,WAAM,EAAAH,EAAAI,SAAU,CACjD,CAACL,EAAAA,gBAAgB,OAAAM,EAAA,OAAQC,EAAA,MAAAZ,OAAA,EAAAA,EAAAQ,eAAMC,WAAd,EAAAE,EAAoBhB,WAAYA,EACjD,CAACU,EAAAA,gBAAgB,OAAAQ,EAAA,OAAAC,EAAA,MAAAd,OAAA,EAAAA,EAAQQ,WAAR,EAAAM,EAAcL,WAAd,EAAAI,EAAoBjB,WAAYA,IAAaD,IAEhED,GAIA,SAAAqB,kBAAAC,IAAC,MAAA,IACKlB,EACJC,MACAkB,KAAK,SACLC,SAAU,EACVxB,UAAWQ,EACXiB,YAAcC,IACZ,MAAMD,EAAoB,MAANrB,OAAM,EAAAA,EAAAqB,YAC1B,MAA8B,mBAAhBA,GAA8BA,EAAYC,EAAC,EAG1DvB,SAAAA,GAAA,IAMTN,EAAS8B,UAAY,CACnB3B,UAAW4B,EAAAA,mBACX1B,SAAU2B,EAAAA,kBACV5B,SAAU6B,EAAAA,kBACV3B,SAAU4B,EAAAA,mBAGZlC,EAASmC,YAAc"}