{"version":3,"file":"FeatureItem.mjs","names":["Flexbox"],"sources":["../../../src/awesome/Features/FeatureItem.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type CSSProperties, memo, useMemo } from 'react';\n\nimport A from '@/A';\nimport { Center, Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Img from '@/Img';\nimport Text from '@/Text';\n\nimport { styles } from './style';\nimport type { FeatureItemProps } from './type';\n\nconst Image = memo<{ className?: string; image: string; style?: CSSProperties; title: string }>(\n  ({ image, className, title, style }) => {\n    return image.startsWith('http') ? (\n      <Img alt={title} className={className} src={image} style={style} />\n    ) : (\n      <Center className={className} style={style}>\n        {image}\n      </Center>\n    );\n  },\n);\n\nconst Item = memo<FeatureItemProps>(\n  ({\n    style,\n    className,\n    row,\n    column,\n    description,\n    image,\n    title,\n    link,\n    icon,\n    imageStyle,\n    openExternal,\n    ...rest\n  }) => {\n    const rowNumber = row || 7;\n    const hasLink = Boolean(link);\n\n    const cssVariables = useMemo<Record<string, string>>(\n      () => ({\n        '--features-row-num': String(rowNumber),\n        '--features-title-hover-size': hasLink ? '14px' : '20px',\n      }),\n      [rowNumber, hasLink],\n    );\n\n    return (\n      <div\n        className={cx(hasLink ? styles.containerHasLink : styles.container, className)}\n        style={{\n          ...cssVariables,\n          gridColumn: `span ${column || 1}`,\n          gridRow: `span ${rowNumber}`,\n          ...style,\n        }}\n        {...rest}\n      >\n        <div className={styles.cell}>\n          {image ||\n            (icon && (\n              <Center className={styles.imgContainer} style={imageStyle}>\n                {icon && <Icon className={styles.img} icon={icon} />}\n                {image && <Image className={styles.img} image={image} title={title} />}\n              </Center>\n            ))}\n          {title && (\n            <Flexbox horizontal align={'center'} as={'h3'} className={styles.title} gap={8}>\n              {title}\n            </Flexbox>\n          )}\n          {description && (\n            <Text\n              className={styles.desc}\n              ellipsis={{\n                rows: 4,\n              }}\n            >\n              {description}\n            </Text>\n          )}\n          {link && (\n            <div className={styles.link}>\n              <A href={link} rel=\"noreferrer\" target={openExternal ? '_blank' : undefined}>\n                Read More\n              </A>\n            </div>\n          )}\n        </div>\n      </div>\n    );\n  },\n);\n\nItem.displayName = 'FeatureItem';\n\nexport default Item;\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,QAAQ,MACX,EAAE,OAAO,WAAW,OAAO,YAAY;AACtC,QAAO,MAAM,WAAW,OAAO,GAC7B,oBAAC,KAAD;EAAK,KAAK;EAAkB;EAAW,KAAK;EAAc;EAAS,CAAA,GAEnE,oBAAC,QAAD;EAAmB;EAAkB;YAClC;EACM,CAAA;EAGd;AAED,MAAM,OAAO,MACV,EACC,OACA,WACA,KACA,QACA,aACA,OACA,OACA,MACA,MACA,YACA,cACA,GAAG,WACC;CACJ,MAAM,YAAY,OAAO;CACzB,MAAM,UAAU,QAAQ,KAAK;CAE7B,MAAM,eAAe,eACZ;EACL,sBAAsB,OAAO,UAAU;EACvC,+BAA+B,UAAU,SAAS;EACnD,GACD,CAAC,WAAW,QAAQ,CACrB;AAED,QACE,oBAAC,OAAD;EACE,WAAW,GAAG,UAAU,OAAO,mBAAmB,OAAO,WAAW,UAAU;EAC9E,OAAO;GACL,GAAG;GACH,YAAY,QAAQ,UAAU;GAC9B,SAAS,QAAQ;GACjB,GAAG;GACJ;EACD,GAAI;YAEJ,qBAAC,OAAD;GAAK,WAAW,OAAO;aAAvB;IACG,SACE,QACC,qBAAC,QAAD;KAAQ,WAAW,OAAO;KAAc,OAAO;eAA/C,CACG,QAAQ,oBAAC,MAAD;MAAM,WAAW,OAAO;MAAW;MAAQ,CAAA,EACnD,SAAS,oBAAC,OAAD;MAAO,WAAW,OAAO;MAAY;MAAc;MAAS,CAAA,CAC/D;;IAEZ,SACC,oBAACA,mBAAD;KAAS,YAAA;KAAW,OAAO;KAAU,IAAI;KAAM,WAAW,OAAO;KAAO,KAAK;eAC1E;KACO,CAAA;IAEX,eACC,oBAAC,MAAD;KACE,WAAW,OAAO;KAClB,UAAU,EACR,MAAM,GACP;eAEA;KACI,CAAA;IAER,QACC,oBAAC,OAAD;KAAK,WAAW,OAAO;eACrB,oBAAC,GAAD;MAAG,MAAM;MAAM,KAAI;MAAa,QAAQ,eAAe,WAAW,KAAA;gBAAW;MAEzE,CAAA;KACA,CAAA;IAEJ;;EACF,CAAA;EAGX;AAED,KAAK,cAAc"}