{"version":3,"file":"index.mjs","names":["Flexbox"],"sources":["../../../src/List/ListItem/index.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Loader2, MessageSquare } from 'lucide-react';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Text from '@/Text';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport type { ListItemProps } from '../type';\nimport { styles } from './style';\nimport { getChatItemTime } from './time';\n\nconst ListItem = memo<ListItemProps>(\n  ({\n    ref,\n    active,\n    avatar,\n    loading,\n    description,\n    date,\n    title,\n    onHoverChange,\n    actions,\n    className,\n    style,\n    showAction,\n    children,\n    classNames,\n    addon,\n    pin,\n    styles: customStyles,\n    ...rest\n  }) => {\n    const loadingNode = <Icon spin icon={Loader2} />;\n\n    const pinNode = pin && (\n      <div className={cx(styles.pin, classNames?.pin)} style={customStyles?.pin}>\n        <div className={styles.triangle} />\n      </div>\n    );\n\n    const actionsNode = actions && (\n      <Flexbox\n        horizontal\n        className={cx(styles.actions, classNames?.actions)}\n        gap={4}\n        style={{ display: showAction ? undefined : 'none', ...customStyles?.actions }}\n        onClick={preventDefaultAndStopPropagation}\n      >\n        {actions}\n      </Flexbox>\n    );\n\n    const timeNode = date && (\n      <div\n        className={cx(styles.date, classNames?.date)}\n        style={{ opacity: showAction ? 0 : undefined, ...customStyles?.date }}\n      >\n        {getChatItemTime(date)}\n      </div>\n    );\n\n    return (\n      <Flexbox\n        horizontal\n        align={'flex-start'}\n        className={cx(styles.root, active && styles.active, className)}\n        distribution={'space-between'}\n        gap={8}\n        padding={12}\n        ref={ref}\n        style={style}\n        onMouseEnter={() => {\n          onHoverChange?.(true);\n        }}\n        onMouseLeave={() => {\n          onHoverChange?.(false);\n        }}\n        {...rest}\n      >\n        {pinNode}\n        <Flexbox\n          horizontal\n          align={'flex-start'}\n          className={classNames?.container}\n          flex={1}\n          gap={8}\n          style={{ overflow: 'hidden', ...customStyles?.container }}\n        >\n          {avatar ?? <Icon icon={MessageSquare} style={{ marginTop: 4 }} />}\n          <Flexbox\n            className={cx(styles.content, classNames?.content)}\n            gap={4}\n            style={customStyles?.content}\n          >\n            <Text\n              ellipsis\n              as={'h3'}\n              className={cx(styles.title, classNames?.title)}\n              style={customStyles?.title}\n            >\n              {title}\n            </Text>\n            {description && (\n              <Text\n                ellipsis\n                className={cx(styles.desc, classNames?.desc)}\n                style={customStyles?.desc}\n              >\n                {description}\n              </Text>\n            )}\n            {addon}\n          </Flexbox>\n        </Flexbox>\n        {loading ? (\n          loadingNode\n        ) : (\n          <>\n            {actionsNode}\n            {timeNode}\n          </>\n        )}\n        {children}\n      </Flexbox>\n    );\n  },\n);\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,WAAW,MACd,EACC,KACA,QACA,QACA,SACA,aACA,MACA,OACA,eACA,SACA,WACA,OACA,YACA,UACA,YACA,OACA,KACA,QAAQ,cACR,GAAG,WACC;CACJ,MAAM,cAAc,oBAAC,MAAD;EAAM,MAAA;EAAK,MAAM;EAAW,CAAA;CAEhD,MAAM,UAAU,OACd,oBAAC,OAAD;EAAK,WAAW,GAAG,OAAO,KAAK,YAAY,IAAI;EAAE,OAAO,cAAc;YACpE,oBAAC,OAAD,EAAK,WAAW,OAAO,UAAY,CAAA;EAC/B,CAAA;CAGR,MAAM,cAAc,WAClB,oBAACA,mBAAD;EACE,YAAA;EACA,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;EAClD,KAAK;EACL,OAAO;GAAE,SAAS,aAAa,KAAA,IAAY;GAAQ,GAAG,cAAc;GAAS;EAC7E,SAAS;YAER;EACO,CAAA;CAGZ,MAAM,WAAW,QACf,oBAAC,OAAD;EACE,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;EAC5C,OAAO;GAAE,SAAS,aAAa,IAAI,KAAA;GAAW,GAAG,cAAc;GAAM;YAEpE,gBAAgB,KAAK;EAClB,CAAA;AAGR,QACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,OAAO,MAAM,UAAU,OAAO,QAAQ,UAAU;EAC9D,cAAc;EACd,KAAK;EACL,SAAS;EACJ;EACE;EACP,oBAAoB;AAClB,mBAAgB,KAAK;;EAEvB,oBAAoB;AAClB,mBAAgB,MAAM;;EAExB,GAAI;YAfN;GAiBG;GACD,qBAACA,mBAAD;IACE,YAAA;IACA,OAAO;IACP,WAAW,YAAY;IACvB,MAAM;IACN,KAAK;IACL,OAAO;KAAE,UAAU;KAAU,GAAG,cAAc;KAAW;cAN3D,CAQG,UAAU,oBAAC,MAAD;KAAM,MAAM;KAAe,OAAO,EAAE,WAAW,GAAG;KAAI,CAAA,EACjE,qBAACA,mBAAD;KACE,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;KAClD,KAAK;KACL,OAAO,cAAc;eAHvB;MAKE,oBAAC,MAAD;OACE,UAAA;OACA,IAAI;OACJ,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;OAC9C,OAAO,cAAc;iBAEpB;OACI,CAAA;MACN,eACC,oBAAC,MAAD;OACE,UAAA;OACA,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;OAC5C,OAAO,cAAc;iBAEpB;OACI,CAAA;MAER;MACO;OACF;;GACT,UACC,cAEA,qBAAA,YAAA,EAAA,UAAA,CACG,aACA,SACA,EAAA,CAAA;GAEJ;GACO;;EAGf;AAED,SAAS,cAAc"}