@xyo-network/react-card 2.78.0 → 2.78.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/index.cjs +247 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +224 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/index.cjs +247 -1
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +224 -1
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/index.cjs +258 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +225 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +5 -5
package/dist/neutral/index.js
CHANGED
@@ -1,2 +1,225 @@
|
|
1
|
-
|
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 ?? /* @__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/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 interface CardExProps extends CardProps {\n gradient?: 'border' | 'background'\n}\n\nexport const CardExWithRef = forwardRef<HTMLDivElement, CardExProps>(({ style, gradient, ...props }, ref) => {\n const { styles } = useGradientStyles()\n const gradientStyle =\n gradient === 'border' ? styles.border\n : gradient === 'background' ? 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 { 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={() =>\n isMobile ? null\n : cardIsButton ? setRaised(true)\n : null\n }\n onMouseLeave={() =>\n isMobile ? null\n : cardIsButton ? setRaised(false)\n : null\n }\n onClick={() =>\n cardIsButton ?\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n : null\n }\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 <Typography fontWeight={700} variant=\"h2\" textAlign=\"left\" paddingBottom={1}>\n {name}\n </Typography>\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 ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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 ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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 = forwardRef<HTMLDivElement, PageCardProps>(({ 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 <>\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={() =>\n isMobile ? null\n : interactionVariant == 'button' ? setRaised(true)\n : null\n }\n onMouseLeave={() =>\n isMobile ? null\n : interactionVariant == 'button' ? setRaised(false)\n : null\n }\n onClick={() =>\n interactionVariant == 'button' ?\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n : null\n }\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 <Typography variant={small ? 'body1' : 'h6'} textAlign=\"left\" gutterBottom>\n {headline}\n </Typography>\n : headline}\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={() =>\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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":["CardContent","styled","useShareForwardedRef","forwardRef","useEffect","jsx","CardContentExRoot","prop","variant","removePadding","CardContentExWithRef","scrollToTop","refreshRef","props","ref","sharedRef","CardContentEx","Card","useGradientStyles","forwardRef","jsx","CardExWithRef","style","gradient","props","ref","styles","gradientStyle","CardEx","ArrowForwardRoundedIcon","alpha","Card","CardActions","CardContent","CardMedia","Grid","IconButton","Typography","useTheme","Zoom","FlexGrowCol","useIsMobile","useState","useNavigate","jsx","jsxs","FullWidthCard","cardIsButton","desc","href","media","name","small","to","props","theme","raised","setRaised","navigate","isMobile","localRouteChange","externalRouteChange","RefreshIcon","CardHeader","IconButton","TypographyEx","forwardRef","Fragment","jsx","jsxs","PageCardWithRef","forwardRef","subheader","title","onRefresh","children","action","style","props","ref","CardEx","CardHeader","TypographyEx","IconButton","RefreshIcon","PageCard","ArrowForwardRoundedIcon","alpha","CardActions","CardContent","CardMedia","IconButton","Typography","useTheme","FlexCol","FlexGrowCol","useIsMobile","useState","useNavigate","jsx","jsxs","SimpleCard","desc","iconImage","interactionVariant","headline","href","media","small","subtitle","sx","to","props","theme","useTheme","raised","setRaised","useState","navigate","useNavigate","isMobile","useIsMobile","localRouteChange","externalRouteChange","CardEx","alpha","CardMedia","CardContent","FlexCol","Typography","CardActions","FlexGrowCol","IconButton","ArrowForwardRoundedIcon"]}
|
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 interface CardExProps extends CardProps {\n gradient?: 'border' | 'background'\n}\n\nexport const CardExWithRef = forwardRef<HTMLDivElement, CardExProps>(({ style, gradient, ...props }, ref) => {\n const { styles } = useGradientStyles()\n const gradientStyle =\n gradient === 'border' ? styles.border\n : gradient === 'background' ? 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 { 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={() =>\n isMobile ? null\n : cardIsButton ? setRaised(true)\n : null\n }\n onMouseLeave={() =>\n isMobile ? null\n : cardIsButton ? setRaised(false)\n : null\n }\n onClick={() =>\n cardIsButton ?\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n : null\n }\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 <Typography fontWeight={700} variant=\"h2\" textAlign=\"left\" paddingBottom={1}>\n {name}\n </Typography>\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 ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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 ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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 = forwardRef<HTMLDivElement, PageCardProps>(({ 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 <>\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={() =>\n isMobile ? null\n : interactionVariant == 'button' ? setRaised(true)\n : null\n }\n onMouseLeave={() =>\n isMobile ? null\n : interactionVariant == 'button' ? setRaised(false)\n : null\n }\n onClick={() =>\n interactionVariant == 'button' ?\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n : null\n }\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 <Typography variant={small ? 'body1' : 'h6'} textAlign=\"left\" gutterBottom>\n {headline}\n </Typography>\n : headline}\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={() =>\n href ? externalRouteChange(href)\n : to ? localRouteChange(to)\n : navigate('/404')\n }\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"]}
|
package/dist/node/index.cjs
CHANGED
@@ -1,2 +1,259 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __export = (target, all) => {
|
7
|
+
for (var name in all)
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
9
|
+
};
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
12
|
+
for (let key of __getOwnPropNames(from))
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
15
|
+
}
|
16
|
+
return to;
|
17
|
+
};
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
+
|
20
|
+
// src/index.ts
|
21
|
+
var src_exports = {};
|
22
|
+
__export(src_exports, {
|
23
|
+
CardContentEx: () => CardContentEx,
|
24
|
+
CardContentExWithRef: () => CardContentExWithRef,
|
25
|
+
CardEx: () => CardEx,
|
26
|
+
CardExWithRef: () => CardExWithRef,
|
27
|
+
FullWidthCard: () => FullWidthCard,
|
28
|
+
PageCard: () => PageCard,
|
29
|
+
SimpleCard: () => SimpleCard
|
30
|
+
});
|
31
|
+
module.exports = __toCommonJS(src_exports);
|
32
|
+
|
33
|
+
// src/components/CardContentEx.tsx
|
34
|
+
var import_material = require("@mui/material");
|
35
|
+
var import_react_shared = require("@xyo-network/react-shared");
|
36
|
+
var import_react = require("react");
|
37
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
38
|
+
var CardContentExRoot = (0, import_material.styled)(import_material.CardContent, {
|
39
|
+
name: "CardContentEx",
|
40
|
+
shouldForwardProp: (prop) => !["variant", "removePadding"].includes(prop),
|
41
|
+
slot: "Root"
|
42
|
+
})(({ variant, removePadding }) => ({
|
43
|
+
...(variant === "scrollable" || removePadding) && {
|
44
|
+
[":last-child"]: {
|
45
|
+
paddingBottom: 0
|
46
|
+
},
|
47
|
+
overflow: "auto",
|
48
|
+
paddingTop: 0,
|
49
|
+
...removePadding && { padding: 0 }
|
50
|
+
}
|
51
|
+
}));
|
52
|
+
var CardContentExWithRef = (0, import_react.forwardRef)(({ scrollToTop = 0, refreshRef = 0, ...props }, ref) => {
|
53
|
+
const sharedRef = (0, import_react_shared.useShareForwardedRef)(ref, refreshRef);
|
54
|
+
(0, import_react.useEffect)(() => {
|
55
|
+
var _a;
|
56
|
+
if (sharedRef && scrollToTop) {
|
57
|
+
(_a = sharedRef.current) == null ? void 0 : _a.scroll({ behavior: "smooth", top: 0 });
|
58
|
+
}
|
59
|
+
}, [sharedRef, scrollToTop]);
|
60
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CardContentExRoot, { ref: sharedRef, ...props });
|
61
|
+
});
|
62
|
+
CardContentExWithRef.displayName = "CardContentEx";
|
63
|
+
var CardContentEx = CardContentExWithRef;
|
64
|
+
|
65
|
+
// src/components/CardEx.tsx
|
66
|
+
var import_material2 = require("@mui/material");
|
67
|
+
var import_react_shared2 = require("@xyo-network/react-shared");
|
68
|
+
var import_react2 = require("react");
|
69
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
70
|
+
var CardExWithRef = (0, import_react2.forwardRef)(({ style, gradient, ...props }, ref) => {
|
71
|
+
const { styles } = (0, import_react_shared2.useGradientStyles)();
|
72
|
+
const gradientStyle = gradient === "border" ? styles.border : gradient === "background" ? styles.background : {};
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
74
|
+
import_material2.Card,
|
75
|
+
{
|
76
|
+
style: {
|
77
|
+
...gradientStyle,
|
78
|
+
...style
|
79
|
+
},
|
80
|
+
ref,
|
81
|
+
...props
|
82
|
+
}
|
83
|
+
);
|
84
|
+
});
|
85
|
+
CardExWithRef.displayName = "CardEx";
|
86
|
+
var CardEx = CardExWithRef;
|
87
|
+
|
88
|
+
// src/components/FullWidthCard/FullWidthCard.tsx
|
89
|
+
var import_icons_material = require("@mui/icons-material");
|
90
|
+
var import_material3 = require("@mui/material");
|
91
|
+
var import_react_flexbox = require("@xylabs/react-flexbox");
|
92
|
+
var import_react_shared3 = require("@xyo-network/react-shared");
|
93
|
+
var import_react3 = require("react");
|
94
|
+
var import_react_router_dom = require("react-router-dom");
|
95
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
96
|
+
var FullWidthCard = ({ cardIsButton, desc, href, media, name, small, to, ...props }) => {
|
97
|
+
const theme = (0, import_material3.useTheme)();
|
98
|
+
const [raised, setRaised] = (0, import_react3.useState)(false);
|
99
|
+
const navigate = (0, import_react_router_dom.useNavigate)();
|
100
|
+
const isMobile = (0, import_react_shared3.useIsMobile)();
|
101
|
+
const localRouteChange = (to2) => {
|
102
|
+
to2 ? navigate(to2) : navigate("/404");
|
103
|
+
};
|
104
|
+
const externalRouteChange = (href2) => {
|
105
|
+
href2 ? window.open(href2) : navigate("/404");
|
106
|
+
};
|
107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
108
|
+
import_material3.Card,
|
109
|
+
{
|
110
|
+
elevation: raised ? 3 : 0,
|
111
|
+
style: { height: "100%", width: "100%" },
|
112
|
+
...props,
|
113
|
+
sx: {
|
114
|
+
"&:hover": {
|
115
|
+
cursor: "pointer"
|
116
|
+
},
|
117
|
+
backgroundColor: (0, import_material3.alpha)(theme.palette.primary.light, 0.05)
|
118
|
+
},
|
119
|
+
onMouseEnter: () => isMobile ? null : cardIsButton ? setRaised(true) : null,
|
120
|
+
onMouseLeave: () => isMobile ? null : cardIsButton ? setRaised(false) : null,
|
121
|
+
onClick: () => cardIsButton ? href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404") : null,
|
122
|
+
children: [
|
123
|
+
media ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.CardMedia, { component: "img", height: "100", image: media, alt: "" }) : null,
|
124
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.CardContent, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_material3.Grid, { container: true, alignItems: "center", paddingY: 2, paddingX: 2, children: [
|
125
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Grid, { item: true, xs: 12, md: 6, children: typeof name === "string" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Typography, { fontWeight: 700, variant: "h2", textAlign: "left", paddingBottom: 1, children: name }) : name }),
|
126
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Grid, { item: true, xs: 12, md: 5, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Typography, { variant: "body1", fontWeight: 400, textAlign: "left", children: desc }) }),
|
127
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Grid, { item: true, xs: 1, display: isMobile ? "none" : "flex", justifyContent: "center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.Zoom, { in: raised, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
128
|
+
import_material3.IconButton,
|
129
|
+
{
|
130
|
+
color: "primary",
|
131
|
+
size: small ? "small" : "medium",
|
132
|
+
onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
|
133
|
+
disableFocusRipple: true,
|
134
|
+
disableRipple: true,
|
135
|
+
disableTouchRipple: true,
|
136
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material.ArrowForwardRounded, { fontSize: small ? "small" : "medium" })
|
137
|
+
}
|
138
|
+
) }) })
|
139
|
+
] }) }),
|
140
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_material3.CardActions, { sx: { display: { md: isMobile ? "flex" : "none" } }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_flexbox.FlexGrowCol, { alignItems: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
141
|
+
import_material3.IconButton,
|
142
|
+
{
|
143
|
+
color: "primary",
|
144
|
+
size: small ? "small" : "medium",
|
145
|
+
onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
|
146
|
+
disableFocusRipple: true,
|
147
|
+
disableRipple: true,
|
148
|
+
disableTouchRipple: true,
|
149
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_icons_material.ArrowForwardRounded, { fontSize: small ? "small" : "medium" })
|
150
|
+
}
|
151
|
+
) }) })
|
152
|
+
]
|
153
|
+
}
|
154
|
+
);
|
155
|
+
};
|
156
|
+
|
157
|
+
// src/components/PageCard.tsx
|
158
|
+
var import_icons_material2 = require("@mui/icons-material");
|
159
|
+
var import_material4 = require("@mui/material");
|
160
|
+
var import_react_shared4 = require("@xyo-network/react-shared");
|
161
|
+
var import_react4 = require("react");
|
162
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
163
|
+
var PageCardWithRef = (0, import_react4.forwardRef)(({ subheader, title, onRefresh, children, action, style, ...props }, ref) => {
|
164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(CardEx, { style: { backgroundColor: "transparent", position: "relative", ...style }, elevation: 0, ref, ...props, children: [
|
165
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
166
|
+
import_material4.CardHeader,
|
167
|
+
{
|
168
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_shared4.TypographyEx, { variant: "h5", gutterBottom: true, children: title }),
|
169
|
+
subheader: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_shared4.TypographyEx, { variant: "subtitle1", children: subheader }),
|
170
|
+
action: action ?? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: onRefresh ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_material4.IconButton, { onClick: () => onRefresh == null ? void 0 : onRefresh(), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_icons_material2.Refresh, {}) }) : null })
|
171
|
+
}
|
172
|
+
),
|
173
|
+
children
|
174
|
+
] });
|
175
|
+
});
|
176
|
+
PageCardWithRef.displayName = "PageCard";
|
177
|
+
var PageCard = PageCardWithRef;
|
178
|
+
|
179
|
+
// src/components/SimpleCard/SimpleCard.tsx
|
180
|
+
var import_icons_material3 = require("@mui/icons-material");
|
181
|
+
var import_material5 = require("@mui/material");
|
182
|
+
var import_react_flexbox2 = require("@xylabs/react-flexbox");
|
183
|
+
var import_react_shared5 = require("@xyo-network/react-shared");
|
184
|
+
var import_react5 = require("react");
|
185
|
+
var import_react_router_dom2 = require("react-router-dom");
|
186
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
187
|
+
var SimpleCard = ({
|
188
|
+
desc,
|
189
|
+
iconImage,
|
190
|
+
interactionVariant = "card",
|
191
|
+
headline,
|
192
|
+
href,
|
193
|
+
media,
|
194
|
+
small,
|
195
|
+
subtitle,
|
196
|
+
sx,
|
197
|
+
to,
|
198
|
+
...props
|
199
|
+
}) => {
|
200
|
+
const theme = (0, import_material5.useTheme)();
|
201
|
+
const [raised, setRaised] = (0, import_react5.useState)(false);
|
202
|
+
const navigate = (0, import_react_router_dom2.useNavigate)();
|
203
|
+
const isMobile = (0, import_react_shared5.useIsMobile)();
|
204
|
+
const localRouteChange = (to2) => {
|
205
|
+
to2 ? navigate(to2) : navigate("/404");
|
206
|
+
};
|
207
|
+
const externalRouteChange = (href2) => {
|
208
|
+
href2 ? window.open(href2) : navigate("/404");
|
209
|
+
};
|
210
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
211
|
+
CardEx,
|
212
|
+
{
|
213
|
+
elevation: raised ? 3 : 0,
|
214
|
+
sx: {
|
215
|
+
"&:hover": {
|
216
|
+
cursor: interactionVariant == "button" ? "pointer" : null
|
217
|
+
},
|
218
|
+
backgroundColor: (0, import_material5.alpha)(theme.palette.primary.light, 0.05),
|
219
|
+
...sx
|
220
|
+
},
|
221
|
+
onMouseEnter: () => isMobile ? null : interactionVariant == "button" ? setRaised(true) : null,
|
222
|
+
onMouseLeave: () => isMobile ? null : interactionVariant == "button" ? setRaised(false) : null,
|
223
|
+
onClick: () => interactionVariant == "button" ? href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404") : null,
|
224
|
+
...props,
|
225
|
+
children: [
|
226
|
+
media ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.CardMedia, { component: "img", height: "100", image: media, alt: "" }) : null,
|
227
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.CardContent, { sx: { height: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_flexbox2.FlexCol, { width: "100%", alignItems: "flex-start", children: [
|
228
|
+
iconImage ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("img", { src: iconImage, height: "40px", style: { paddingBottom: "8px" } }) : null,
|
229
|
+
typeof headline === "string" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.Typography, { variant: small ? "body1" : "h6", textAlign: "left", gutterBottom: true, children: headline }) : headline,
|
230
|
+
subtitle ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.Typography, { variant: "subtitle2", textAlign: "left", gutterBottom: true, children: subtitle }) : null,
|
231
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.Typography, { variant: small ? "caption" : "body1", textAlign: "left", gutterBottom: true, children: desc })
|
232
|
+
] }) }),
|
233
|
+
interactionVariant == "button" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_material5.CardActions, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_flexbox2.FlexGrowCol, { alignItems: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
234
|
+
import_material5.IconButton,
|
235
|
+
{
|
236
|
+
color: raised ? "secondary" : "primary",
|
237
|
+
size: small ? "small" : "medium",
|
238
|
+
onClick: () => href ? externalRouteChange(href) : to ? localRouteChange(to) : navigate("/404"),
|
239
|
+
disableFocusRipple: true,
|
240
|
+
disableRipple: true,
|
241
|
+
disableTouchRipple: true,
|
242
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_icons_material3.ArrowForwardRounded, { fontSize: small ? "small" : "medium" })
|
243
|
+
}
|
244
|
+
) }) }) : null
|
245
|
+
]
|
246
|
+
}
|
247
|
+
);
|
248
|
+
};
|
249
|
+
// Annotate the CommonJS export names for ESM import in node:
|
250
|
+
0 && (module.exports = {
|
251
|
+
CardContentEx,
|
252
|
+
CardContentExWithRef,
|
253
|
+
CardEx,
|
254
|
+
CardExWithRef,
|
255
|
+
FullWidthCard,
|
256
|
+
PageCard,
|
257
|
+
SimpleCard
|
258
|
+
});
|
2
259
|
//# sourceMappingURL=index.cjs.map
|