@xyo-network/react-card 2.64.0 → 2.64.3

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,2 +1,225 @@
1
- export * from "./components";
1
+ // src/components/CardContentEx.tsx
2
+ import { CardContent, styled } from "@mui/material";
3
+ import { useShareForwardedRef } from "@xyo-network/react-shared";
4
+ import { forwardRef, useEffect } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ var CardContentExRoot = styled(CardContent, {
7
+ name: "CardContentEx",
8
+ shouldForwardProp: (prop) => !["variant", "removePadding"].includes(prop),
9
+ slot: "Root"
10
+ })(({ variant, removePadding }) => ({
11
+ ...(variant === "scrollable" || removePadding) && {
12
+ [":last-child"]: {
13
+ paddingBottom: 0
14
+ },
15
+ overflow: "auto",
16
+ paddingTop: 0,
17
+ ...removePadding && { padding: 0 }
18
+ }
19
+ }));
20
+ var CardContentExWithRef = forwardRef(({ scrollToTop = 0, refreshRef = 0, ...props }, ref) => {
21
+ const sharedRef = useShareForwardedRef(ref, refreshRef);
22
+ useEffect(() => {
23
+ if (sharedRef && scrollToTop) {
24
+ sharedRef.current?.scroll({ behavior: "smooth", top: 0 });
25
+ }
26
+ }, [sharedRef, scrollToTop]);
27
+ return /* @__PURE__ */ jsx(CardContentExRoot, { ref: sharedRef, ...props });
28
+ });
29
+ CardContentExWithRef.displayName = "CardContentEx";
30
+ var CardContentEx = CardContentExWithRef;
31
+
32
+ // src/components/CardEx.tsx
33
+ import { Card } from "@mui/material";
34
+ import { useGradientStyles } from "@xyo-network/react-shared";
35
+ import { forwardRef as forwardRef2 } from "react";
36
+ import { jsx as jsx2 } from "react/jsx-runtime";
37
+ var CardExWithRef = forwardRef2(({ style, gradient, ...props }, ref) => {
38
+ const { styles } = useGradientStyles();
39
+ const gradientStyle = gradient === "border" ? styles.border : gradient === "background" ? styles.background : {};
40
+ return /* @__PURE__ */ jsx2(
41
+ Card,
42
+ {
43
+ style: {
44
+ ...gradientStyle,
45
+ ...style
46
+ },
47
+ ref,
48
+ ...props
49
+ }
50
+ );
51
+ });
52
+ CardExWithRef.displayName = "CardEx";
53
+ var CardEx = CardExWithRef;
54
+
55
+ // src/components/FullWidthCard/FullWidthCard.tsx
56
+ import { ArrowForwardRounded as ArrowForwardRoundedIcon } from "@mui/icons-material";
57
+ import { alpha, Card as Card2, CardActions, CardContent as CardContent2, CardMedia, Grid, IconButton, Typography, useTheme, Zoom } from "@mui/material";
58
+ import { FlexGrowCol } from "@xylabs/react-flexbox";
59
+ import { useIsMobile } from "@xyo-network/react-shared";
60
+ import { useState } from "react";
61
+ import { useNavigate } from "react-router-dom";
62
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
63
+ var FullWidthCard = ({ cardIsButton, desc, href, media, name, small, to, ...props }) => {
64
+ const theme = useTheme();
65
+ const [raised, setRaised] = useState(false);
66
+ const navigate = useNavigate();
67
+ const isMobile = useIsMobile();
68
+ const localRouteChange = (to2) => {
69
+ to2 ? navigate(to2) : navigate("/404");
70
+ };
71
+ const externalRouteChange = (href2) => {
72
+ href2 ? window.open(href2) : navigate("/404");
73
+ };
74
+ return /* @__PURE__ */ jsxs(
75
+ Card2,
76
+ {
77
+ elevation: raised ? 3 : 0,
78
+ style: { height: "100%", width: "100%" },
79
+ ...props,
80
+ sx: {
81
+ "&:hover": {
82
+ cursor: "pointer"
83
+ },
84
+ backgroundColor: alpha(theme.palette.primary.light, 0.05)
85
+ },
86
+ onMouseEnter: () => isMobile ? null : cardIsButton ? setRaised(true) : null,
87
+ onMouseLeave: () => isMobile ? null : cardIsButton ? setRaised(false) : null,
88
+ onClick: () => cardIsButton ? href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404") : null,
89
+ children: [
90
+ media ? /* @__PURE__ */ jsx3(CardMedia, { component: "img", height: "100", image: media, alt: "" }) : null,
91
+ /* @__PURE__ */ jsx3(CardContent2, { children: /* @__PURE__ */ jsxs(Grid, { container: true, alignItems: "center", paddingY: 2, paddingX: 2, children: [
92
+ /* @__PURE__ */ jsx3(Grid, { item: true, xs: 12, md: 6, children: typeof name === "string" ? /* @__PURE__ */ jsx3(Typography, { fontWeight: 700, variant: "h2", textAlign: "left", paddingBottom: 1, children: name }) : name }),
93
+ /* @__PURE__ */ jsx3(Grid, { item: true, xs: 12, md: 5, children: /* @__PURE__ */ jsx3(Typography, { variant: "body1", fontWeight: 400, textAlign: "left", children: desc }) }),
94
+ /* @__PURE__ */ jsx3(Grid, { item: true, xs: 1, display: isMobile ? "none" : "flex", justifyContent: "center", children: /* @__PURE__ */ jsx3(Zoom, { in: raised, children: /* @__PURE__ */ jsx3(
95
+ IconButton,
96
+ {
97
+ color: "primary",
98
+ size: small ? "small" : "medium",
99
+ onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
100
+ disableFocusRipple: true,
101
+ disableRipple: true,
102
+ disableTouchRipple: true,
103
+ children: /* @__PURE__ */ jsx3(ArrowForwardRoundedIcon, { fontSize: small ? "small" : "medium" })
104
+ }
105
+ ) }) })
106
+ ] }) }),
107
+ /* @__PURE__ */ jsx3(CardActions, { sx: { display: { md: isMobile ? "flex" : "none" } }, children: /* @__PURE__ */ jsx3(FlexGrowCol, { alignItems: "flex-end", children: /* @__PURE__ */ jsx3(
108
+ IconButton,
109
+ {
110
+ color: "primary",
111
+ size: small ? "small" : "medium",
112
+ onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
113
+ disableFocusRipple: true,
114
+ disableRipple: true,
115
+ disableTouchRipple: true,
116
+ children: /* @__PURE__ */ jsx3(ArrowForwardRoundedIcon, { fontSize: small ? "small" : "medium" })
117
+ }
118
+ ) }) })
119
+ ]
120
+ }
121
+ );
122
+ };
123
+
124
+ // src/components/PageCard.tsx
125
+ import { Refresh as RefreshIcon } from "@mui/icons-material";
126
+ import { CardHeader, IconButton as IconButton2 } from "@mui/material";
127
+ import { TypographyEx } from "@xyo-network/react-shared";
128
+ import { forwardRef as forwardRef3 } from "react";
129
+ import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
130
+ var PageCardWithRef = forwardRef3(({ subheader, title, onRefresh, children, action, style, ...props }, ref) => {
131
+ return /* @__PURE__ */ jsxs2(CardEx, { style: { backgroundColor: "transparent", position: "relative", ...style }, elevation: 0, ref, ...props, children: [
132
+ /* @__PURE__ */ jsx4(
133
+ CardHeader,
134
+ {
135
+ title: /* @__PURE__ */ jsx4(TypographyEx, { variant: "h5", gutterBottom: true, children: title }),
136
+ subheader: /* @__PURE__ */ jsx4(TypographyEx, { variant: "subtitle1", children: subheader }),
137
+ action: action ? action : /* @__PURE__ */ jsx4(Fragment, { children: onRefresh ? /* @__PURE__ */ jsx4(IconButton2, { onClick: () => onRefresh?.(), children: /* @__PURE__ */ jsx4(RefreshIcon, {}) }) : null })
138
+ }
139
+ ),
140
+ children
141
+ ] });
142
+ });
143
+ PageCardWithRef.displayName = "PageCard";
144
+ var PageCard = PageCardWithRef;
145
+
146
+ // src/components/SimpleCard/SimpleCard.tsx
147
+ import { ArrowForwardRounded as ArrowForwardRoundedIcon2 } from "@mui/icons-material";
148
+ import { alpha as alpha2, CardActions as CardActions2, CardContent as CardContent3, CardMedia as CardMedia2, IconButton as IconButton3, Typography as Typography2, useTheme as useTheme2 } from "@mui/material";
149
+ import { FlexCol, FlexGrowCol as FlexGrowCol2 } from "@xylabs/react-flexbox";
150
+ import { useIsMobile as useIsMobile2 } from "@xyo-network/react-shared";
151
+ import { useState as useState2 } from "react";
152
+ import { useNavigate as useNavigate2 } from "react-router-dom";
153
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
154
+ var SimpleCard = ({
155
+ desc,
156
+ iconImage,
157
+ interactionVariant = "card",
158
+ headline,
159
+ href,
160
+ media,
161
+ small,
162
+ subtitle,
163
+ sx,
164
+ to,
165
+ ...props
166
+ }) => {
167
+ const theme = useTheme2();
168
+ const [raised, setRaised] = useState2(false);
169
+ const navigate = useNavigate2();
170
+ const isMobile = useIsMobile2();
171
+ const localRouteChange = (to2) => {
172
+ to2 ? navigate(to2) : navigate("/404");
173
+ };
174
+ const externalRouteChange = (href2) => {
175
+ href2 ? window.open(href2) : navigate("/404");
176
+ };
177
+ return /* @__PURE__ */ jsxs3(
178
+ CardEx,
179
+ {
180
+ elevation: raised ? 3 : 0,
181
+ sx: {
182
+ "&:hover": {
183
+ cursor: interactionVariant == "button" ? "pointer" : null
184
+ },
185
+ backgroundColor: alpha2(theme.palette.primary.light, 0.05),
186
+ ...sx
187
+ },
188
+ onMouseEnter: () => isMobile ? null : interactionVariant == "button" ? setRaised(true) : null,
189
+ onMouseLeave: () => isMobile ? null : interactionVariant == "button" ? setRaised(false) : null,
190
+ onClick: () => interactionVariant == "button" ? href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404") : null,
191
+ ...props,
192
+ children: [
193
+ media ? /* @__PURE__ */ jsx5(CardMedia2, { component: "img", height: "100", image: media, alt: "" }) : null,
194
+ /* @__PURE__ */ jsx5(CardContent3, { sx: { height: "100%" }, children: /* @__PURE__ */ jsxs3(FlexCol, { width: "100%", alignItems: "flex-start", children: [
195
+ iconImage ? /* @__PURE__ */ jsx5("img", { src: iconImage, height: "40px", style: { paddingBottom: "8px" } }) : null,
196
+ typeof headline === "string" ? /* @__PURE__ */ jsx5(Typography2, { variant: small ? "body1" : "h6", textAlign: "left", gutterBottom: true, children: headline }) : headline,
197
+ subtitle ? /* @__PURE__ */ jsx5(Typography2, { variant: "subtitle2", textAlign: "left", gutterBottom: true, children: subtitle }) : null,
198
+ /* @__PURE__ */ jsx5(Typography2, { variant: small ? "caption" : "body1", textAlign: "left", gutterBottom: true, children: desc })
199
+ ] }) }),
200
+ interactionVariant == "button" ? /* @__PURE__ */ jsx5(CardActions2, { children: /* @__PURE__ */ jsx5(FlexGrowCol2, { alignItems: "flex-end", children: /* @__PURE__ */ jsx5(
201
+ IconButton3,
202
+ {
203
+ color: raised ? "secondary" : "primary",
204
+ size: small ? "small" : "medium",
205
+ onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
206
+ disableFocusRipple: true,
207
+ disableRipple: true,
208
+ disableTouchRipple: true,
209
+ children: /* @__PURE__ */ jsx5(ArrowForwardRoundedIcon2, { fontSize: small ? "small" : "medium" })
210
+ }
211
+ ) }) }) : null
212
+ ]
213
+ }
214
+ );
215
+ };
216
+ export {
217
+ CardContentEx,
218
+ CardContentExWithRef,
219
+ CardEx,
220
+ CardExWithRef,
221
+ FullWidthCard,
222
+ PageCard,
223
+ SimpleCard
224
+ };
2
225
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './components'\n"],"mappings":"AAAA,cAAc;","names":[]}
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 { CardContent, CardContentProps, styled } from '@mui/material'\nimport { useShareForwardedRef } from '@xyo-network/react-shared'\nimport { forwardRef, 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']: {\n paddingBottom: 0,\n },\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 = forwardRef<HTMLDivElement | null, CardContentExProps>(({ scrollToTop = 0, refreshRef = 0, ...props }, ref) => {\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 { Card, CardProps } from '@mui/material'\nimport { useGradientStyles } from '@xyo-network/react-shared'\nimport { forwardRef } from 'react'\n\nexport type CardExProps = CardProps & {\n gradient?: 'border' | 'background'\n}\n\nexport const CardExWithRef: React.FC<CardExProps> = forwardRef(({ style, gradient, ...props }, ref) => {\n const { styles } = useGradientStyles()\n const gradientStyle = gradient === 'border' ? styles.border : gradient === 'background' ? styles.background : {}\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 { alpha, Card, CardActions, CardContent, CardMedia, CardProps, Grid, IconButton, Typography, useTheme, Zoom } from '@mui/material'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\nimport { ReactNode, useState } from 'react'\nimport { To, 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> = ({ cardIsButton, desc, href, media, name, small, to, ...props }) => {\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 to ? navigate(to) : navigate('/404')\n }\n const externalRouteChange = (href: string | undefined) => {\n href ? window.open(href) : 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': {\n cursor: 'pointer',\n },\n backgroundColor: alpha(theme.palette.primary.light, 0.05),\n }}\n onMouseEnter={() => (isMobile ? null : cardIsButton ? setRaised(true) : null)}\n onMouseLeave={() => (isMobile ? null : cardIsButton ? setRaised(false) : null)}\n onClick={() => (cardIsButton ? (href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate('/404')) : null)}\n >\n {media ? <CardMedia component=\"img\" height=\"100\" image={media} alt=\"\" /> : 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 <Typography fontWeight={700} variant=\"h2\" textAlign=\"left\" paddingBottom={1}>\n {name}\n </Typography>\n ) : (\n name\n )}\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={() => (href ? externalRouteChange(href) : to ? localRouteChange(to) : 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={() => (href ? externalRouteChange(href) : to ? localRouteChange(to) : 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 { CardHeader, CardHeaderProps, IconButton } from '@mui/material'\nimport { TypographyEx } from '@xyo-network/react-shared'\nimport { forwardRef, ReactNode } from 'react'\n\nimport { CardEx, CardExProps } from './CardEx'\n\nexport interface PageCardProps extends CardExProps {\n action?: ReactNode\n onRefresh?: () => void\n subheader?: CardHeaderProps['subheader']\n}\n\nconst PageCardWithRef: React.FC<PageCardProps> = forwardRef(({ subheader, title, onRefresh, children, action, style, ...props }, ref) => {\n return (\n <CardEx style={{ backgroundColor: 'transparent', position: 'relative', ...style }} elevation={0} ref={ref} {...props}>\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 action\n ) : (\n <>\n {onRefresh ? (\n <IconButton onClick={() => onRefresh?.()}>\n <RefreshIcon />\n </IconButton>\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 { alpha, CardActions, CardContent, CardMedia, IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexCol, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useIsMobile } from '@xyo-network/react-shared'\nimport { ReactNode, useState } from 'react'\nimport { To, useNavigate } from 'react-router-dom'\n\nimport { CardEx, CardExProps } from '../CardEx'\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 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 to ? navigate(to) : navigate('/404')\n }\n const externalRouteChange = (href: string | undefined) => {\n href ? window.open(href) : navigate('/404')\n }\n return (\n <CardEx\n elevation={raised ? 3 : 0}\n sx={{\n '&:hover': {\n cursor: interactionVariant == 'button' ? 'pointer' : null,\n },\n backgroundColor: alpha(theme.palette.primary.light, 0.05),\n ...sx,\n }}\n onMouseEnter={() => (isMobile ? null : interactionVariant == 'button' ? setRaised(true) : null)}\n onMouseLeave={() => (isMobile ? null : interactionVariant == 'button' ? setRaised(false) : null)}\n onClick={() => (interactionVariant == 'button' ? (href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate('/404')) : null)}\n {...props}\n >\n {media ? <CardMedia component=\"img\" height=\"100\" image={media} alt=\"\" /> : null}\n\n <CardContent sx={{ height: '100%' }}>\n <FlexCol width=\"100%\" alignItems=\"flex-start\">\n {iconImage ? <img src={iconImage} height=\"40px\" style={{ paddingBottom: '8px' }} /> : null}\n {typeof headline === 'string' ? (\n <Typography variant={small ? 'body1' : 'h6'} textAlign=\"left\" gutterBottom>\n {headline}\n </Typography>\n ) : (\n headline\n )}\n {subtitle ? (\n <Typography variant=\"subtitle2\" textAlign=\"left\" gutterBottom>\n {subtitle}\n </Typography>\n ) : null}\n <Typography variant={small ? 'caption' : 'body1'} textAlign=\"left\" gutterBottom>\n {desc}\n </Typography>\n </FlexCol>\n </CardContent>\n {interactionVariant == 'button' ? (\n <CardActions>\n <FlexGrowCol alignItems=\"flex-end\">\n <IconButton\n color={raised ? 'secondary' : 'primary'}\n size={small ? 'small' : 'medium'}\n onClick={() => (href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate('/404'))}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n >\n <ArrowForwardRoundedIcon fontSize={small ? 'small' : 'medium'} />\n </IconButton>\n </FlexGrowCol>\n </CardActions>\n ) : null}\n </CardEx>\n )\n}\n"],"mappings":"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","names":["forwardRef","jsx","Card","CardContent","jsx","to","href","IconButton","forwardRef","jsx","jsxs","forwardRef","IconButton","ArrowForwardRoundedIcon","alpha","CardActions","CardContent","CardMedia","IconButton","Typography","useTheme","FlexGrowCol","useIsMobile","useState","useNavigate","jsx","jsxs","useTheme","useState","useNavigate","useIsMobile","to","href","alpha","CardMedia","CardContent","Typography","CardActions","FlexGrowCol","IconButton","ArrowForwardRoundedIcon"]}