UNPKG

@xyo-network/react-card

Version:

Common React library for all XYO projects that use React

1 lines 19.4 kB
{"version":3,"sources":["../../src/components/CardContentEx.tsx","../../src/components/CardEx.tsx","../../src/components/FullWidthCard/FullWidthCard.tsx","../../src/components/PageCard.tsx","../../src/components/SimpleCard/SimpleCard.tsx"],"sourcesContent":["import type { CardContentProps } from '@mui/material'\nimport { CardContent, styled } from '@mui/material'\nimport { useShareForwardedRef } from '@xyo-network/react-shared'\nimport React, { useEffect } from 'react'\n\nconst CardContentExRoot = styled(CardContent, {\n name: 'CardContentEx',\n shouldForwardProp: (prop: string) => !['variant', 'removePadding'].includes(prop),\n slot: 'Root',\n})<CardContentExProps>(({ variant, removePadding }) => ({\n ...((variant === 'scrollable' || removePadding) && {\n [':last-child']: { paddingBottom: 0 },\n overflow: 'auto',\n paddingTop: 0,\n ...(removePadding && { padding: 0 }),\n }),\n}))\n\nexport type CardContentExProps = CardContentProps & {\n refreshRef?: number\n removePadding?: boolean\n scrollToTop?: number\n variant?: 'scrollable' | 'normal'\n}\n\nexport const CardContentExWithRef = ({\n ref, scrollToTop = 0, refreshRef = 0, ...props\n}: CardContentExProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {\n const sharedRef = useShareForwardedRef<HTMLDivElement>(ref, refreshRef)\n\n useEffect(() => {\n if (sharedRef && scrollToTop) {\n sharedRef.current?.scroll({ behavior: 'smooth', top: 0 })\n }\n }, [sharedRef, scrollToTop])\n\n return <CardContentExRoot ref={sharedRef} {...props} />\n}\n\nCardContentExWithRef.displayName = 'CardContentEx'\n\nexport const CardContentEx = CardContentExWithRef\n","import type { CardProps } from '@mui/material'\nimport { Card } from '@mui/material'\nimport { useGradientStyles } from '@xyo-network/react-shared'\nimport React from 'react'\n\nexport interface CardExProps extends CardProps {\n gradient?: 'border' | 'background'\n}\n\nexport const CardExWithRef = ({\n ref, style, gradient, ...props\n}: CardExProps) => {\n const styles = useGradientStyles()\n const gradientStyle\n = gradient === 'border'\n ? styles.border\n : gradient === 'background'\n ? styles.background\n : {}\n return (\n <Card\n style={{\n ...gradientStyle,\n ...style,\n }}\n ref={ref}\n {...props}\n />\n )\n}\n\nCardExWithRef.displayName = 'CardEx'\n\nexport const CardEx = CardExWithRef\n","import { ArrowForwardRounded as ArrowForwardRoundedIcon } from '@mui/icons-material'\nimport type { CardProps } from '@mui/material'\nimport {\n Card, CardActions, CardContent, CardMedia, Grid, IconButton, Typography, useTheme, Zoom,\n} from '@mui/material'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport { alphaCss, useIsSmall } from '@xylabs/react-theme'\nimport type { ReactNode } from 'react'\nimport React, { useState } from 'react'\nimport type { To } from 'react-router-dom'\nimport { useNavigate } from 'react-router-dom'\n\nexport interface FullWidthCardProps extends CardProps {\n cardIsButton?: boolean\n desc?: ReactNode\n href?: string\n linkText?: string\n media?: string\n name: ReactNode\n small?: boolean\n to?: To\n}\n\nexport const FullWidthCard: React.FC<FullWidthCardProps> = ({\n cardIsButton, desc, href, media, name, small, to, ...props\n}) => {\n const theme = useTheme()\n const [raised, setRaised] = useState(false)\n const navigate = useNavigate()\n const isMobile = useIsSmall()\n\n const localRouteChange = (to: To | undefined) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n to ? void navigate(to) : void navigate('/404')\n }\n const externalRouteChange = (href: string | undefined) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n href ? void window.open(href) : void navigate('/404')\n }\n\n return (\n <Card\n elevation={raised ? 3 : 0}\n style={{ height: '100%', width: '100%' }}\n {...props}\n sx={{\n '&:hover': { cursor: 'pointer' },\n 'backgroundColor': alphaCss(theme.vars.palette.primary.light, 0.05),\n }}\n onMouseEnter={() =>\n isMobile\n ? null\n : cardIsButton\n ? setRaised(true)\n : null}\n onMouseLeave={() =>\n isMobile\n ? null\n : cardIsButton\n ? setRaised(false)\n : null}\n onClick={() =>\n cardIsButton\n ? href\n ? externalRouteChange(href)\n : to\n ? localRouteChange(to)\n : navigate('/404')\n : null}\n >\n {media\n ? <CardMedia component=\"img\" height=\"100\" image={media} alt=\"\" />\n : null}\n\n <CardContent>\n <Grid container alignItems=\"center\" paddingY={2} paddingX={2}>\n <Grid size={{ xs: 12, md: 6 }}>\n {typeof name === 'string'\n ? (\n <Typography fontWeight={700} variant=\"h2\" textAlign=\"left\" paddingBottom={1}>\n {name}\n </Typography>\n )\n : name}\n </Grid>\n <Grid size={{ xs: 12, md: 5 }}>\n <Typography variant=\"body1\" fontWeight={400} textAlign=\"left\">\n {desc}\n </Typography>\n </Grid>\n <Grid size={{ xs: 1 }} display={isMobile ? 'none' : 'flex'} justifyContent=\"center\">\n <Zoom in={raised}>\n <IconButton\n color=\"primary\"\n size={small ? 'small' : 'medium'}\n onClick={() =>\n href\n ? externalRouteChange(href)\n : to\n ? localRouteChange(to)\n : navigate('/404')}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n >\n <ArrowForwardRoundedIcon fontSize={small ? 'small' : 'medium'} />\n </IconButton>\n </Zoom>\n </Grid>\n </Grid>\n </CardContent>\n <CardActions sx={{ display: { md: isMobile ? 'flex' : 'none' } }}>\n <FlexGrowCol alignItems=\"flex-end\">\n <IconButton\n color=\"primary\"\n size={small ? 'small' : 'medium'}\n onClick={() =>\n href\n ? externalRouteChange(href)\n : to\n ? localRouteChange(to)\n : navigate('/404')}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n >\n <ArrowForwardRoundedIcon fontSize={small ? 'small' : 'medium'} />\n </IconButton>\n </FlexGrowCol>\n </CardActions>\n </Card>\n )\n}\n","import { Refresh as RefreshIcon } from '@mui/icons-material'\nimport type { CardHeaderProps } from '@mui/material'\nimport { CardHeader, IconButton } from '@mui/material'\nimport { TypographyEx } from '@xyo-network/react-shared'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { CardExProps } from './CardEx.tsx'\nimport { CardEx } from './CardEx.tsx'\n\nexport interface PageCardProps extends CardExProps {\n action?: ReactNode\n onRefresh?: () => void\n subheader?: CardHeaderProps['subheader']\n}\n\nconst PageCardWithRef = ({\n ref, subheader, title, onRefresh, children, action, style, ...props\n}: PageCardProps) => {\n return (\n <CardEx\n style={{\n backgroundColor: 'transparent', position: 'relative', ...style,\n }}\n elevation={0}\n ref={ref}\n {...props}\n >\n <CardHeader\n title={(\n <TypographyEx variant=\"h5\" gutterBottom>\n {title}\n </TypographyEx>\n )}\n subheader={<TypographyEx variant=\"subtitle1\">{subheader}</TypographyEx>}\n action={\n action ?? (\n <>\n {onRefresh\n ? (\n <IconButton onClick={() => onRefresh?.()}>\n <RefreshIcon />\n </IconButton>\n )\n : null}\n </>\n )\n }\n />\n {children}\n </CardEx>\n )\n}\n\nPageCardWithRef.displayName = 'PageCard'\n\nexport const PageCard = PageCardWithRef\n","import { ArrowForwardRounded as ArrowForwardRoundedIcon } from '@mui/icons-material'\nimport {\n CardActions, CardContent, CardMedia, IconButton, Typography, useTheme,\n} from '@mui/material'\nimport { FlexCol, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { alphaCss, useIsSmall } from '@xylabs/react-theme'\nimport type { ReactNode } from 'react'\nimport React, { useState } from 'react'\nimport type { To } from 'react-router-dom'\nimport { useNavigate } from 'react-router-dom'\n\nimport type { CardExProps } from '../CardEx.tsx'\nimport { CardEx } from '../CardEx.tsx'\n\nexport interface SimpleCardProps extends CardExProps {\n desc?: ReactNode\n headline?: ReactNode\n href?: string\n iconImage?: string\n interactionVariant?: 'button' | 'card'\n media?: string\n small?: boolean\n subtitle?: string\n to?: To\n}\n\nexport const SimpleCard: React.FC<SimpleCardProps> = ({\n children,\n desc,\n iconImage,\n interactionVariant = 'card',\n headline,\n href,\n media,\n small,\n subtitle,\n sx,\n to,\n ...props\n}) => {\n const theme = useTheme()\n const [raised, setRaised] = useState(false)\n const navigate = useNavigate()\n const isSmall = useIsSmall()\n const localRouteChange = (to: To | undefined) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n to ? void navigate(to) : void navigate('/404')\n }\n const externalRouteChange = (href: string | undefined) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n href ? void window.open(href) : void navigate('/404')\n }\n return (\n <CardEx\n elevation={raised ? 3 : 0}\n sx={{\n '&:hover': { cursor: interactionVariant == 'button' ? 'pointer' : null },\n 'backgroundColor': alphaCss(theme.vars.palette.primary.main, 0.05),\n ...sx,\n }}\n onMouseEnter={() =>\n isSmall\n ? null\n : interactionVariant == 'button'\n ? setRaised(true)\n : null}\n onMouseLeave={() =>\n isSmall\n ? null\n : interactionVariant == 'button'\n ? setRaised(false)\n : null}\n onClick={() =>\n interactionVariant == 'button'\n ? href\n ? externalRouteChange(href)\n : to\n ? localRouteChange(to)\n : navigate('/404')\n : null}\n {...props}\n >\n {media\n ? <CardMedia component=\"img\" height=\"100\" image={media} alt=\"\" />\n : null}\n\n <CardContent sx={{ height: '100%' }}>\n <FlexCol width=\"100%\" alignItems=\"flex-start\">\n {iconImage\n ? <img src={iconImage} height=\"40px\" style={{ paddingBottom: '8px' }} />\n : null}\n {typeof headline === 'string'\n ? (\n <Typography variant={small ? 'body1' : 'h6'} textAlign=\"left\" gutterBottom>\n {headline}\n </Typography>\n )\n : headline}\n {subtitle\n ? (\n <Typography variant=\"subtitle2\" textAlign=\"left\" gutterBottom>\n {subtitle}\n </Typography>\n )\n : null}\n <Typography variant={small ? 'caption' : 'body1'} textAlign=\"left\" gutterBottom>\n {desc}\n </Typography>\n </FlexCol>\n </CardContent>\n {children}\n {interactionVariant == 'button'\n ? (\n <CardActions>\n <FlexGrowCol alignItems=\"flex-end\">\n <IconButton\n color={raised ? 'secondary' : 'primary'}\n size={small ? 'small' : 'medium'}\n onClick={() =>\n href\n ? externalRouteChange(href)\n : to\n ? localRouteChange(to)\n : navigate('/404')}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n >\n <ArrowForwardRoundedIcon fontSize={small ? 'small' : 'medium'} />\n </IconButton>\n </FlexGrowCol>\n </CardActions>\n )\n : null}\n </CardEx>\n )\n}\n"],"mappings":"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","names":["jsx","Card","CardContent","jsx","to","href","IconButton","jsx","jsxs","IconButton","ArrowForwardRoundedIcon","CardActions","CardContent","CardMedia","IconButton","Typography","useTheme","FlexGrowCol","alphaCss","useIsSmall","useState","useNavigate","jsx","jsxs","useTheme","useState","useNavigate","useIsSmall","to","href","alphaCss","CardMedia","CardContent","Typography","CardActions","FlexGrowCol","IconButton","ArrowForwardRoundedIcon"]}