{"version":3,"file":"ListRow.mjs","names":[],"sources":["../../../src/base-ui/List/ListRow.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { memo, type MouseEvent } from 'react';\n\nimport A from '@/A';\nimport Icon from '@/Icon';\n\nimport { styles } from './style';\nimport type { ListItemType, ListProps } from './type';\n\ninterface ListRowProps {\n  active: boolean;\n  classNames?: ListProps['classNames'];\n  item: ListItemType;\n  onSelect: (item: ListItemType, event: MouseEvent<HTMLElement>) => void;\n  styles?: ListProps['styles'];\n}\n\nconst ListRow = memo<ListRowProps>(\n  ({ active, classNames, item, onSelect, styles: customStyles }) => {\n    const { actions, avatar, danger, description, disabled, extra, href, icon, label, showAction } =\n      item;\n\n    const handleClick = (event: MouseEvent<HTMLElement>) => {\n      if (disabled) {\n        event.preventDefault();\n        return;\n      }\n      onSelect(item, event);\n    };\n\n    const rowClassName = cx(\n      styles.row,\n      active && styles.active,\n      danger && styles.danger,\n      disabled && styles.disabled,\n      classNames?.item,\n      item.className,\n    );\n    const rowStyle = { ...customStyles?.item, ...item.style };\n\n    const content = (\n      <>\n        {avatar ?? (icon ? <Icon icon={icon} size={16} /> : null)}\n        <span className={styles.body}>\n          <span className={cx(styles.label, classNames?.label)} style={customStyles?.label}>\n            {label}\n          </span>\n          {description != null && (\n            <span\n              className={cx(styles.description, classNames?.description)}\n              style={customStyles?.description}\n            >\n              {description}\n            </span>\n          )}\n        </span>\n        {extra != null && (\n          <span className={cx(styles.extra, classNames?.extra)} style={customStyles?.extra}>\n            {extra}\n          </span>\n        )}\n      </>\n    );\n\n    return (\n      <li className={cx(styles.item, showAction && styles.showAction)}>\n        {href && !disabled ? (\n          <A\n            aria-current={active ? 'page' : undefined}\n            className={rowClassName}\n            href={href}\n            style={rowStyle}\n            onClick={handleClick}\n          >\n            {content}\n          </A>\n        ) : (\n          <button\n            aria-current={active ? 'true' : undefined}\n            aria-disabled={disabled || undefined}\n            className={rowClassName}\n            style={rowStyle}\n            type=\"button\"\n            onClick={handleClick}\n          >\n            {content}\n          </button>\n        )}\n        {actions != null && (\n          <span className={cx(styles.actions, classNames?.actions)} style={customStyles?.actions}>\n            {actions}\n          </span>\n        )}\n      </li>\n    );\n  },\n);\n\nListRow.displayName = 'ListRow';\n\nexport default ListRow;\n"],"mappings":";;;;;;;;AAmBA,MAAM,UAAU,MACb,EAAE,QAAQ,YAAY,MAAM,UAAU,QAAQ,mBAAmB;CAChE,MAAM,EAAE,SAAS,QAAQ,QAAQ,aAAa,UAAU,OAAO,MAAM,MAAM,OAAO,eAChF;CAEF,MAAM,eAAe,UAAmC;EACtD,IAAI,UAAU;GACZ,MAAM,eAAe;GACrB;EACF;EACA,SAAS,MAAM,KAAK;CACtB;CAEA,MAAM,eAAe,GACnB,OAAO,KACP,UAAU,OAAO,QACjB,UAAU,OAAO,QACjB,YAAY,OAAO,UACnB,YAAY,MACZ,KAAK,SACP;CACA,MAAM,WAAW;EAAE,GAAG,cAAc;EAAM,GAAG,KAAK;CAAM;CAExD,MAAM,UACJ,qBAAA,YAAA,EAAA,UAAA;EACG,WAAW,OAAO,oBAAC,MAAD;GAAY;GAAM,MAAM;EAAK,CAAA,IAAI;EACpD,qBAAC,QAAD;GAAM,WAAW,OAAO;GAAxB,UAAA,CACE,oBAAC,QAAD;IAAM,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;IAAG,OAAO,cAAc;IACxE,UAAA;GACG,CAAA,GACL,eAAe,QACd,oBAAC,QAAD;IACE,WAAW,GAAG,OAAO,aAAa,YAAY,WAAW;IACzD,OAAO,cAAc;IAEpB,UAAA;GACG,CAAA,CAEJ;;EACL,SAAS,QACR,oBAAC,QAAD;GAAM,WAAW,GAAG,OAAO,OAAO,YAAY,KAAK;GAAG,OAAO,cAAc;GACxE,UAAA;EACG,CAAA;CAER,EAAA,CAAA;CAGJ,OACE,qBAAC,MAAD;EAAI,WAAW,GAAG,OAAO,MAAM,cAAc,OAAO,UAAU;EAA9D,UAAA,CACG,QAAQ,CAAC,WACR,oBAAC,GAAD;GACE,gBAAc,SAAS,SAAS,KAAA;GAChC,WAAW;GACL;GACN,OAAO;GACP,SAAS;GAER,UAAA;EACA,CAAA,IAEH,oBAAC,UAAD;GACE,gBAAc,SAAS,SAAS,KAAA;GAChC,iBAAe,YAAY,KAAA;GAC3B,WAAW;GACX,OAAO;GACP,MAAK;GACL,SAAS;GAER,UAAA;EACK,CAAA,GAET,WAAW,QACV,oBAAC,QAAD;GAAM,WAAW,GAAG,OAAO,SAAS,YAAY,OAAO;GAAG,OAAO,cAAc;GAC5E,UAAA;EACG,CAAA,CAEN;;AAER,CACF;AAEA,QAAQ,cAAc"}