{"version":3,"file":"Card.mjs","sources":["../../src/card/Card.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef, useId } from 'react';\n\nimport Body from '../body';\nimport Chevron from '../chevron';\nimport { Position, Typography } from '../common';\nimport Option from '../common/Option';\n\nexport interface CardProps {\n  'aria-label'?: string;\n  /** @default 'div' */\n  as?: React.ElementType;\n  isExpanded?: boolean;\n  title: React.ReactNode;\n  details: React.ReactNode;\n  icon?: React.ReactNode;\n  children?: React.ReactNode;\n  id?: string;\n  className?: string;\n  'data-testid'?: string;\n  onClick?: (nextIsExpanded: boolean) => void;\n}\n\n/**\n * @deprecated Use [new ListItem component](?path=/docs/content-listitem--docs) instead.\n * @see https://transferwise.atlassian.net/wiki/spaces/DS/pages/2387314550/Instructions+for+killing+expanding+cards+on+web+design+pattern\n */\nconst Card = forwardRef(function Card(\n  {\n    'aria-label': ariaLabel,\n    as: Element = 'div',\n    isExpanded,\n    title,\n    details,\n    children,\n    onClick,\n    icon,\n    id,\n    className,\n    'data-testid': dataTestId,\n  }: CardProps,\n  reference,\n) {\n  const labelId = useId();\n  const contentId = useId();\n  const isExpandable = Boolean(children);\n\n  return (\n    <Element\n      ref={reference}\n      className={clsx('np-card', className, {\n        'np-card--expanded': isExpandable && isExpanded,\n        'np-card--inactive': !children,\n        'np-card--has-icon': !!icon,\n      })}\n      id={id}\n      data-testid={dataTestId}\n    >\n      <Option\n        aria-expanded={isExpandable ? isExpanded : undefined}\n        aria-controls={isExpanded ? contentId : undefined}\n        id={labelId}\n        aria-label={ariaLabel}\n        as={isExpandable ? 'button' : 'div'}\n        className=\"np-card__button\"\n        media={icon}\n        title={title}\n        content={details}\n        showMediaAtAllSizes\n        button={\n          isExpandable ? (\n            <Chevron orientation={isExpanded ? Position.TOP : Position.BOTTOM} />\n          ) : null\n        }\n        onClick={isExpandable ? () => onClick?.(!isExpanded) : undefined}\n      />\n\n      {isExpandable && (\n        <div\n          className={clsx('np-card__divider', {\n            'np-card__divider--expanded': isExpanded,\n          })}\n        />\n      )}\n\n      {isExpandable && isExpanded && (\n        <Body\n          as=\"div\"\n          type={Typography.BODY_LARGE}\n          className={clsx('np-card__content', isExpanded ? 'd-block' : 'hide')}\n          id={contentId}\n          aria-labelledby={labelId}\n        >\n          {children}\n        </Body>\n      )}\n    </Element>\n  );\n});\n\nexport default Card;\n"],"names":["Card","forwardRef","ariaLabel","as","Element","isExpanded","title","details","children","onClick","icon","id","className","dataTestId","reference","labelId","useId","contentId","isExpandable","Boolean","_jsxs","ref","clsx","_jsx","Option","undefined","media","content","showMediaAtAllSizes","button","Chevron","orientation","Position","TOP","BOTTOM","Body","type","Typography","BODY_LARGE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAMA,IAAI,gBAAGC,UAAU,CAAC,SAASD,IAAIA,CACnC;AACE,EAAA,YAAY,EAAEE,SAAS;EACvBC,EAAE,EAAEC,OAAO,GAAG,KAAK;EACnBC,UAAU;EACVC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC,IAAI;EACJC,EAAE;EACFC,SAAS;AACT,EAAA,aAAa,EAAEC;AAAU,CACf,EACZC,SAAS,EAAA;AAET,EAAA,MAAMC,OAAO,GAAGC,KAAK,EAAE;AACvB,EAAA,MAAMC,SAAS,GAAGD,KAAK,EAAE;AACzB,EAAA,MAAME,YAAY,GAAGC,OAAO,CAACX,QAAQ,CAAC;EAEtC,oBACEY,IAAA,CAAChB,OAAO,EAAA;AACNiB,IAAAA,GAAG,EAAEP,SAAU;AACfF,IAAAA,SAAS,EAAEU,IAAI,CAAC,SAAS,EAAEV,SAAS,EAAE;MACpC,mBAAmB,EAAEM,YAAY,IAAIb,UAAU;MAC/C,mBAAmB,EAAE,CAACG,QAAQ;MAC9B,mBAAmB,EAAE,CAAC,CAACE;AACxB,KAAA,CAAE;AACHC,IAAAA,EAAE,EAAEA,EAAG;AACP,IAAA,aAAA,EAAaE,UAAW;IAAAL,QAAA,EAAA,cAExBe,GAAA,CAACC,MAAM,EAAA;AACL,MAAA,eAAA,EAAeN,YAAY,GAAGb,UAAU,GAAGoB,SAAU;AACrD,MAAA,eAAA,EAAepB,UAAU,GAAGY,SAAS,GAAGQ,SAAU;AAClDd,MAAAA,EAAE,EAAEI,OAAQ;AACZ,MAAA,YAAA,EAAYb,SAAU;AACtBC,MAAAA,EAAE,EAAEe,YAAY,GAAG,QAAQ,GAAG,KAAM;AACpCN,MAAAA,SAAS,EAAC,iBAAiB;AAC3Bc,MAAAA,KAAK,EAAEhB,IAAK;AACZJ,MAAAA,KAAK,EAAEA,KAAM;AACbqB,MAAAA,OAAO,EAAEpB,OAAQ;MACjBqB,mBAAmB,EAAA,IAAA;AACnBC,MAAAA,MAAM,EACJX,YAAY,gBACVK,GAAA,CAACO,OAAO,EAAA;QAACC,WAAW,EAAE1B,UAAU,GAAG2B,QAAQ,CAACC,GAAG,GAAGD,QAAQ,CAACE;OAAO,CAAG,GACnE,IACL;MACDzB,OAAO,EAAES,YAAY,GAAG,MAAMT,OAAO,GAAG,CAACJ,UAAU,CAAC,GAAGoB;AAAU,KAAA,CAGnE,EAACP,YAAY,iBACXK,GAAA,CAAA,KAAA,EAAA;AACEX,MAAAA,SAAS,EAAEU,IAAI,CAAC,kBAAkB,EAAE;AAClC,QAAA,4BAA4B,EAAEjB;OAC/B;KAAE,CAEN,EAEAa,YAAY,IAAIb,UAAU,iBACzBkB,GAAA,CAACY,IAAI,EAAA;AACHhC,MAAAA,EAAE,EAAC,KAAK;MACRiC,IAAI,EAAEC,UAAU,CAACC,UAAW;MAC5B1B,SAAS,EAAEU,IAAI,CAAC,kBAAkB,EAAEjB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAE;AACrEM,MAAAA,EAAE,EAAEM,SAAU;AACd,MAAA,iBAAA,EAAiBF,OAAQ;AAAAP,MAAAA,QAAA,EAExBA;AAAQ,KACL,CACP;AAAA,GACM,CAAC;AAEd,CAAC;;;;"}