@xyo-network/react-card 5.0.4 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"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 | 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 alpha, Card, CardActions, CardContent, CardMedia, Grid, IconButton, Typography, useTheme, Zoom,\n} from '@mui/material'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\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 = useIsMobile()\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': alpha(theme.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 item 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 item xs={12} md={5}>\n <Typography variant=\"body1\" fontWeight={400} textAlign=\"left\">\n {desc}\n </Typography>\n </Grid>\n <Grid item 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 alpha, CardActions, CardContent, CardMedia, IconButton, Typography, useTheme,\n} from '@mui/material'\nimport { FlexCol, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\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 isMobile = useIsMobile()\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': alpha(theme.palette.primary.light, 0.05),\n ...sx,\n }}\n onMouseEnter={() =>\n isMobile\n ? null\n : interactionVariant == 'button'\n ? setRaised(true)\n : null}\n onMouseLeave={() =>\n isMobile\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":["CardContent","styled","useShareForwardedRef","React","useEffect","CardContentExRoot","styled","CardContent","name","shouldForwardProp","prop","includes","slot","variant","removePadding","paddingBottom","overflow","paddingTop","padding","CardContentExWithRef","ref","scrollToTop","refreshRef","props","sharedRef","useShareForwardedRef","useEffect","current","scroll","behavior","top","displayName","CardContentEx","Card","useGradientStyles","React","CardExWithRef","ref","style","gradient","props","styles","useGradientStyles","gradientStyle","border","background","React","Card","displayName","CardEx","ArrowForwardRounded","ArrowForwardRoundedIcon","alpha","Card","CardActions","CardContent","CardMedia","Grid","IconButton","Typography","useTheme","Zoom","FlexGrowCol","useIsMobile","React","useState","useNavigate","FullWidthCard","cardIsButton","desc","href","media","name","small","to","props","theme","useTheme","raised","setRaised","useState","navigate","useNavigate","isMobile","useIsMobile","localRouteChange","externalRouteChange","window","open","React","Card","elevation","style","height","width","sx","cursor","alpha","palette","primary","light","onMouseEnter","onMouseLeave","onClick","CardMedia","component","image","alt","CardContent","Grid","container","alignItems","paddingY","paddingX","item","xs","md","Typography","fontWeight","variant","textAlign","paddingBottom","display","justifyContent","Zoom","in","IconButton","color","size","disableFocusRipple","disableRipple","disableTouchRipple","ArrowForwardRoundedIcon","fontSize","CardActions","FlexGrowCol","Refresh","RefreshIcon","CardHeader","IconButton","TypographyEx","React","PageCardWithRef","ref","subheader","title","onRefresh","children","action","style","props","React","CardEx","backgroundColor","position","elevation","CardHeader","TypographyEx","variant","gutterBottom","IconButton","onClick","RefreshIcon","displayName","PageCard","ArrowForwardRounded","ArrowForwardRoundedIcon","alpha","CardActions","CardContent","CardMedia","IconButton","Typography","useTheme","FlexCol","FlexGrowCol","useIsMobile","React","useState","useNavigate","SimpleCard","children","desc","iconImage","interactionVariant","headline","href","media","small","subtitle","sx","to","props","theme","useTheme","raised","setRaised","useState","navigate","useNavigate","isMobile","useIsMobile","localRouteChange","externalRouteChange","window","open","React","CardEx","elevation","cursor","alpha","palette","primary","light","onMouseEnter","onMouseLeave","onClick","CardMedia","component","height","image","alt","CardContent","FlexCol","width","alignItems","img","src","style","paddingBottom","Typography","variant","textAlign","gutterBottom","CardActions","FlexGrowCol","IconButton","color","size","disableFocusRipple","disableRipple","disableTouchRipple","ArrowForwardRoundedIcon","fontSize"]}
1
+ {"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 alpha, Card, CardActions, CardContent, CardMedia, Grid, IconButton, Typography, useTheme, Zoom,\n} from '@mui/material'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\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 = useIsMobile()\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': alpha(theme.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 item 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 item xs={12} md={5}>\n <Typography variant=\"body1\" fontWeight={400} textAlign=\"left\">\n {desc}\n </Typography>\n </Grid>\n <Grid item 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 alpha, CardActions, CardContent, CardMedia, IconButton, Typography, useTheme,\n} from '@mui/material'\nimport { FlexCol, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\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 isMobile = useIsMobile()\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': alpha(theme.palette.primary.light, 0.05),\n ...sx,\n }}\n onMouseEnter={() =>\n isMobile\n ? null\n : interactionVariant == 'button'\n ? setRaised(true)\n : null}\n onMouseLeave={() =>\n isMobile\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":["CardContent","styled","useShareForwardedRef","React","useEffect","CardContentExRoot","styled","CardContent","name","shouldForwardProp","prop","includes","slot","variant","removePadding","paddingBottom","overflow","paddingTop","padding","CardContentExWithRef","ref","scrollToTop","refreshRef","props","sharedRef","useShareForwardedRef","useEffect","current","scroll","behavior","top","displayName","CardContentEx","Card","useGradientStyles","React","CardExWithRef","ref","style","gradient","props","styles","useGradientStyles","gradientStyle","border","background","React","Card","displayName","CardEx","ArrowForwardRounded","ArrowForwardRoundedIcon","alpha","Card","CardActions","CardContent","CardMedia","Grid","IconButton","Typography","useTheme","Zoom","FlexGrowCol","useIsMobile","React","useState","useNavigate","FullWidthCard","cardIsButton","desc","href","media","name","small","to","props","theme","useTheme","raised","setRaised","useState","navigate","useNavigate","isMobile","useIsMobile","localRouteChange","externalRouteChange","window","open","React","Card","elevation","style","height","width","sx","cursor","alpha","palette","primary","light","onMouseEnter","onMouseLeave","onClick","CardMedia","component","image","alt","CardContent","Grid","container","alignItems","paddingY","paddingX","item","xs","md","Typography","fontWeight","variant","textAlign","paddingBottom","display","justifyContent","Zoom","in","IconButton","color","size","disableFocusRipple","disableRipple","disableTouchRipple","ArrowForwardRoundedIcon","fontSize","CardActions","FlexGrowCol","Refresh","RefreshIcon","CardHeader","IconButton","TypographyEx","React","PageCardWithRef","ref","subheader","title","onRefresh","children","action","style","props","React","CardEx","backgroundColor","position","elevation","CardHeader","TypographyEx","variant","gutterBottom","IconButton","onClick","RefreshIcon","displayName","PageCard","ArrowForwardRounded","ArrowForwardRoundedIcon","alpha","CardActions","CardContent","CardMedia","IconButton","Typography","useTheme","FlexCol","FlexGrowCol","useIsMobile","React","useState","useNavigate","SimpleCard","children","desc","iconImage","interactionVariant","headline","href","media","small","subtitle","sx","to","props","theme","useTheme","raised","setRaised","useState","navigate","useNavigate","isMobile","useIsMobile","localRouteChange","externalRouteChange","window","open","React","CardEx","elevation","cursor","alpha","palette","primary","light","onMouseEnter","onMouseLeave","onClick","CardMedia","component","height","image","alt","CardContent","FlexCol","width","alignItems","img","src","style","paddingBottom","Typography","variant","textAlign","gutterBottom","CardActions","FlexGrowCol","IconButton","color","size","disableFocusRipple","disableRipple","disableTouchRipple","ArrowForwardRoundedIcon","fontSize"]}
@@ -8,13 +8,13 @@ export type CardContentExProps = CardContentProps & {
8
8
  };
9
9
  export declare const CardContentExWithRef: {
10
10
  ({ ref, scrollToTop, refreshRef, ...props }: CardContentExProps & {
11
- ref?: React.RefObject<HTMLDivElement | null | null>;
11
+ ref?: React.RefObject<HTMLDivElement | null>;
12
12
  }): import("react/jsx-runtime").JSX.Element;
13
13
  displayName: string;
14
14
  };
15
15
  export declare const CardContentEx: {
16
16
  ({ ref, scrollToTop, refreshRef, ...props }: CardContentExProps & {
17
- ref?: React.RefObject<HTMLDivElement | null | null>;
17
+ ref?: React.RefObject<HTMLDivElement | null>;
18
18
  }): import("react/jsx-runtime").JSX.Element;
19
19
  displayName: string;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CardContentEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGrD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAexC,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,oBAAoB;iDAE9B,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;KAAE;;CAU9E,CAAA;AAID,eAAO,MAAM,aAAa;iDAdvB,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;KAAE;;CAc9B,CAAA"}
1
+ {"version":3,"file":"CardContentEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGrD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAexC,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,oBAAoB;iDAE9B,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;KAAE;;CAUvE,CAAA;AAID,eAAO,MAAM,aAAa;iDAdvB,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;KAAE;;CAcvB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-card",
3
- "version": "5.0.4",
3
+ "version": "5.0.5",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -38,27 +38,23 @@
38
38
  },
39
39
  "module": "dist/browser/index.mjs",
40
40
  "types": "dist/types/index.d.ts",
41
- "scripts": {
42
- "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\"",
43
- "lint-pkg": "npmPkgJsonLint ."
44
- },
45
41
  "dependencies": {
46
- "@xylabs/react-flexbox": "^6.0.5",
47
- "@xyo-network/react-shared": "^5.0.4",
42
+ "@xylabs/react-flexbox": "^6.0.6",
43
+ "@xyo-network/react-shared": "^5.0.5",
48
44
  "react-router-dom": "^7.3.0"
49
45
  },
50
46
  "devDependencies": {
51
- "@mui/icons-material": "^6.4.7",
52
- "@mui/material": "^6.4.7",
53
- "@mui/styles": "^6.4.7",
54
- "@storybook/react": "^8.6.4",
47
+ "@mui/icons-material": "^6.4.8",
48
+ "@mui/material": "^6.4.8",
49
+ "@mui/styles": "^6.4.8",
50
+ "@storybook/react": "^8.6.7",
55
51
  "@types/react": "^19.0.10",
56
- "@xylabs/ts-scripts-yarn3": "^6.0.9",
57
- "@xylabs/tsconfig-react": "^6.0.9",
58
- "@xyo-network/react-storybook": "^5.0.4",
52
+ "@xylabs/ts-scripts-yarn3": "^6.1.4",
53
+ "@xylabs/tsconfig-react": "^6.1.4",
54
+ "@xyo-network/react-storybook": "^5.0.5",
59
55
  "react": "^19.0.0",
60
56
  "react-dom": "^19.0.0",
61
- "storybook": "^8.6.4",
57
+ "storybook": "^8.6.7",
62
58
  "typescript": "^5.8.2"
63
59
  },
64
60
  "peerDependencies": {
@@ -25,7 +25,7 @@ export type CardContentExProps = CardContentProps & {
25
25
 
26
26
  export const CardContentExWithRef = ({
27
27
  ref, scrollToTop = 0, refreshRef = 0, ...props
28
- }: CardContentExProps & { ref?: React.RefObject<HTMLDivElement | null | null> }) => {
28
+ }: CardContentExProps & { ref?: React.RefObject<HTMLDivElement | null> }) => {
29
29
  const sharedRef = useShareForwardedRef<HTMLDivElement>(ref, refreshRef)
30
30
 
31
31
  useEffect(() => {