@helpwave/hightide
Version:
helpwave's component and theming library
1 lines • 2.53 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/components/layout/Tile.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport Image from 'next/image'\nimport clsx from 'clsx'\n\nexport type TileProps = {\n title: { value: string, className?: string },\n description?: { value: string, className?: string },\n prefix?: ReactNode,\n suffix?: ReactNode,\n className?: string,\n}\n\n/**\n * A component for creating a tile similar to the flutter ListTile\n */\nexport const Tile = ({\n title,\n description,\n prefix,\n suffix,\n className\n}: TileProps) => {\n return (\n <div className={clsx('row gap-x-4 w-full items-center', className)}>\n {prefix}\n <div className=\"col w-full\">\n <span className={clsx(title.className)}>{title.value}</span>\n {!!description &&\n <span className={clsx(description.className ?? 'textstyle-description')}>{description.value}</span>}\n </div>\n {suffix}\n </div>\n )\n}\n\ntype ImageLocation = 'prefix' | 'suffix'\ntype ImageSize = {\n width: number,\n height: number,\n}\n\nexport type TileWithImageProps = Omit<TileProps, 'suffix' | 'prefix'> & {\n url: string,\n imageLocation?: ImageLocation,\n imageSize?: ImageSize,\n imageClassName?: string,\n}\n\n/**\n * A Tile with an image as prefix or suffix\n */\nexport const TileWithImage = ({\n url,\n imageLocation = 'prefix',\n imageSize = { width: 24, height: 24 },\n imageClassName = '',\n ...tileProps\n}: TileWithImageProps) => {\n const image = <Image src={url} alt=\"\" {...imageSize} className={clsx(imageClassName)}/>\n return (\n <Tile\n {...tileProps}\n prefix={imageLocation === 'prefix' ? image : undefined}\n suffix={imageLocation === 'suffix' ? image : undefined}\n />\n )\n}\n"],"mappings":";AACA,OAAO,WAAW;AAClB,OAAO,UAAU;AAuBX,SACE,KADF;AAVC,IAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAiB;AACf,SACE,qBAAC,SAAI,WAAW,KAAK,mCAAmC,SAAS,GAC9D;AAAA;AAAA,IACD,qBAAC,SAAI,WAAU,cACb;AAAA,0BAAC,UAAK,WAAW,KAAK,MAAM,SAAS,GAAI,gBAAM,OAAM;AAAA,MACpD,CAAC,CAAC,eACD,oBAAC,UAAK,WAAW,KAAK,YAAY,aAAa,uBAAuB,GAAI,sBAAY,OAAM;AAAA,OAChG;AAAA,IACC;AAAA,KACH;AAEJ;AAkBO,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY,EAAE,OAAO,IAAI,QAAQ,GAAG;AAAA,EACpC,iBAAiB;AAAA,EACjB,GAAG;AACL,MAA0B;AACxB,QAAM,QAAQ,oBAAC,SAAM,KAAK,KAAK,KAAI,IAAI,GAAG,WAAW,WAAW,KAAK,cAAc,GAAE;AACrF,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,QAAQ,kBAAkB,WAAW,QAAQ;AAAA,MAC7C,QAAQ,kBAAkB,WAAW,QAAQ;AAAA;AAAA,EAC/C;AAEJ;","names":[]}