@xyo-network/react-shared 2.64.0 → 2.64.2

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.
Files changed (147) hide show
  1. package/dist/browser/components/Ampersand.js +3 -2
  2. package/dist/browser/components/Ampersand.js.map +1 -1
  3. package/dist/browser/components/BasicHero/BasicHero.js +71 -5
  4. package/dist/browser/components/BasicHero/BasicHero.js.map +1 -1
  5. package/dist/browser/components/BasicHero/index.js +203 -1
  6. package/dist/browser/components/BasicHero/index.js.map +1 -1
  7. package/dist/browser/components/Ellipsize.js +28 -8
  8. package/dist/browser/components/Ellipsize.js.map +1 -1
  9. package/dist/browser/components/ErrorBoundary.js +4 -3
  10. package/dist/browser/components/ErrorBoundary.js.map +1 -1
  11. package/dist/browser/components/ListItemButtonEx.js +4 -3
  12. package/dist/browser/components/ListItemButtonEx.js.map +1 -1
  13. package/dist/browser/components/LoadResult.js +19 -6
  14. package/dist/browser/components/LoadResult.js.map +1 -1
  15. package/dist/browser/components/NotFound.js +3 -2
  16. package/dist/browser/components/NotFound.js.map +1 -1
  17. package/dist/browser/components/Pipe.js +3 -2
  18. package/dist/browser/components/Pipe.js.map +1 -1
  19. package/dist/browser/components/ScrollTableOnSm.js +4 -3
  20. package/dist/browser/components/ScrollTableOnSm.js.map +1 -1
  21. package/dist/browser/components/SectionSpacingRow/SectionSpacingRow.js +3 -2
  22. package/dist/browser/components/SectionSpacingRow/SectionSpacingRow.js.map +1 -1
  23. package/dist/browser/components/SectionSpacingRow/index.js +26 -1
  24. package/dist/browser/components/SectionSpacingRow/index.js.map +1 -1
  25. package/dist/browser/components/StyleGuide/AppBars.example.js +3 -2
  26. package/dist/browser/components/StyleGuide/AppBars.example.js.map +1 -1
  27. package/dist/browser/components/StyleGuide/Buttons.example.js +5 -4
  28. package/dist/browser/components/StyleGuide/Buttons.example.js.map +1 -1
  29. package/dist/browser/components/StyleGuide/Papers.example.js +3 -2
  30. package/dist/browser/components/StyleGuide/Papers.example.js.map +1 -1
  31. package/dist/browser/components/StyleGuide/StyleGuide.example.js +99 -12
  32. package/dist/browser/components/StyleGuide/StyleGuide.example.js.map +1 -1
  33. package/dist/browser/components/StyleGuide/Texts.example.js +3 -2
  34. package/dist/browser/components/StyleGuide/Texts.example.js.map +1 -1
  35. package/dist/browser/components/StyleGuide/VariantContext.example.js +2 -1
  36. package/dist/browser/components/StyleGuide/VariantContext.example.js.map +1 -1
  37. package/dist/browser/components/TableCell/AddressTableCell.js +124 -4
  38. package/dist/browser/components/TableCell/AddressTableCell.js.map +1 -1
  39. package/dist/browser/components/TableCell/EllipsisTableCell.js +98 -9
  40. package/dist/browser/components/TableCell/EllipsisTableCell.js.map +1 -1
  41. package/dist/browser/components/TableCell/EllipsisTableCellDeprecated.js +107 -6
  42. package/dist/browser/components/TableCell/EllipsisTableCellDeprecated.js.map +1 -1
  43. package/dist/browser/components/TableCell/HashTableCell.js +126 -6
  44. package/dist/browser/components/TableCell/HashTableCell.js.map +1 -1
  45. package/dist/browser/components/TableCell/findParent.js +2 -1
  46. package/dist/browser/components/TableCell/findParent.js.map +1 -1
  47. package/dist/browser/components/TableCell/getRemainingRowWidth.js +2 -1
  48. package/dist/browser/components/TableCell/getRemainingRowWidth.js.map +1 -1
  49. package/dist/browser/components/TableCell/getSmallestParentWidth.js +2 -1
  50. package/dist/browser/components/TableCell/getSmallestParentWidth.js.map +1 -1
  51. package/dist/browser/components/TableCell/index.js +160 -3
  52. package/dist/browser/components/TableCell/index.js.map +1 -1
  53. package/dist/browser/components/ThemeTokenAvatar/ThemeTokenAvatar.js +3 -2
  54. package/dist/browser/components/ThemeTokenAvatar/ThemeTokenAvatar.js.map +1 -1
  55. package/dist/browser/components/ThemeTokenAvatar/index.js +10 -1
  56. package/dist/browser/components/ThemeTokenAvatar/index.js.map +1 -1
  57. package/dist/browser/components/ThemeTokenAvatarGroup/ThemeTokenAvatarGroup.js +14 -4
  58. package/dist/browser/components/ThemeTokenAvatarGroup/ThemeTokenAvatarGroup.js.map +1 -1
  59. package/dist/browser/components/ThemeTokenAvatarGroup/index.js +19 -1
  60. package/dist/browser/components/ThemeTokenAvatarGroup/index.js.map +1 -1
  61. package/dist/browser/components/TokenBar/TokenBar.js +3 -2
  62. package/dist/browser/components/TokenBar/TokenBar.js.map +1 -1
  63. package/dist/browser/components/TokenBar/index.js +19 -1
  64. package/dist/browser/components/TokenBar/index.js.map +1 -1
  65. package/dist/browser/components/TokenData/TokenData.js +34 -17
  66. package/dist/browser/components/TokenData/TokenData.js.map +1 -1
  67. package/dist/browser/components/TokenData/img/index.js +1 -0
  68. package/dist/browser/components/TokenData/img/index.js.map +1 -1
  69. package/dist/browser/components/TokenData/index.js +153 -2
  70. package/dist/browser/components/TokenData/index.js.map +1 -1
  71. package/dist/browser/components/TokenData/useGetTokenData.js +143 -2
  72. package/dist/browser/components/TokenData/useGetTokenData.js.map +1 -1
  73. package/dist/browser/components/TokenSummary/TokenSummary.js +16 -6
  74. package/dist/browser/components/TokenSummary/TokenSummary.js.map +1 -1
  75. package/dist/browser/components/TokenSummary/index.js +29 -1
  76. package/dist/browser/components/TokenSummary/index.js.map +1 -1
  77. package/dist/browser/components/TypographyEx.js +57 -3
  78. package/dist/browser/components/TypographyEx.js.map +1 -1
  79. package/dist/browser/components/index.js +730 -18
  80. package/dist/browser/components/index.js.map +1 -1
  81. package/dist/browser/components/pluginValidation/DataMissing.js +3 -2
  82. package/dist/browser/components/pluginValidation/DataMissing.js.map +1 -1
  83. package/dist/browser/components/pluginValidation/index.js +12 -1
  84. package/dist/browser/components/pluginValidation/index.js.map +1 -1
  85. package/dist/browser/contexts/ListMode/Context.js +6 -2
  86. package/dist/browser/contexts/ListMode/Context.js.map +1 -1
  87. package/dist/browser/contexts/ListMode/Provider.js +12 -3
  88. package/dist/browser/contexts/ListMode/Provider.js.map +1 -1
  89. package/dist/browser/contexts/ListMode/index.js +44 -4
  90. package/dist/browser/contexts/ListMode/index.js.map +1 -1
  91. package/dist/browser/contexts/ListMode/use.js +19 -3
  92. package/dist/browser/contexts/ListMode/use.js.map +1 -1
  93. package/dist/browser/contexts/Pixel/Context.js +6 -2
  94. package/dist/browser/contexts/Pixel/Context.js.map +1 -1
  95. package/dist/browser/contexts/Pixel/Provider.js +12 -3
  96. package/dist/browser/contexts/Pixel/Provider.js.map +1 -1
  97. package/dist/browser/contexts/Pixel/index.js +45 -4
  98. package/dist/browser/contexts/Pixel/index.js.map +1 -1
  99. package/dist/browser/contexts/Pixel/use.js +19 -3
  100. package/dist/browser/contexts/Pixel/use.js.map +1 -1
  101. package/dist/browser/contexts/contextEx/create.js +2 -1
  102. package/dist/browser/contexts/contextEx/create.js.map +1 -1
  103. package/dist/browser/contexts/contextEx/index.js +22 -4
  104. package/dist/browser/contexts/contextEx/index.js.map +1 -1
  105. package/dist/browser/contexts/contextEx/use.js +3 -2
  106. package/dist/browser/contexts/contextEx/use.js.map +1 -1
  107. package/dist/browser/contexts/diviner/Context.js +6 -2
  108. package/dist/browser/contexts/diviner/Context.js.map +1 -1
  109. package/dist/browser/contexts/diviner/Provider.js +3 -2
  110. package/dist/browser/contexts/diviner/Provider.js.map +1 -1
  111. package/dist/browser/contexts/diviner/index.js +40 -3
  112. package/dist/browser/contexts/diviner/index.js.map +1 -1
  113. package/dist/browser/contexts/index.js +116 -4
  114. package/dist/browser/contexts/index.js.map +1 -1
  115. package/dist/browser/hooks/GradientStyles/GradientStyles.js +4 -3
  116. package/dist/browser/hooks/GradientStyles/GradientStyles.js.map +1 -1
  117. package/dist/browser/hooks/GradientStyles/index.js +56 -1
  118. package/dist/browser/hooks/GradientStyles/index.js.map +1 -1
  119. package/dist/browser/hooks/index.js +126 -7
  120. package/dist/browser/hooks/index.js.map +1 -1
  121. package/dist/browser/hooks/useDataState.js +2 -1
  122. package/dist/browser/hooks/useDataState.js.map +1 -1
  123. package/dist/browser/hooks/useIsMobile.js +7 -2
  124. package/dist/browser/hooks/useIsMobile.js.map +1 -1
  125. package/dist/browser/hooks/useMediaQuery.js +1 -0
  126. package/dist/browser/hooks/useMediaQuery.js.map +1 -1
  127. package/dist/browser/hooks/usePayloadHash.js +3 -2
  128. package/dist/browser/hooks/usePayloadHash.js.map +1 -1
  129. package/dist/browser/hooks/usePromise.js +2 -1
  130. package/dist/browser/hooks/usePromise.js.map +1 -1
  131. package/dist/browser/hooks/useShareForwardRef.js +2 -1
  132. package/dist/browser/hooks/useShareForwardRef.js.map +1 -1
  133. package/dist/browser/index.js +988 -6
  134. package/dist/browser/index.js.map +1 -1
  135. package/dist/browser/lib/assertDefinedEx.js +2 -1
  136. package/dist/browser/lib/assertDefinedEx.js.map +1 -1
  137. package/dist/browser/lib/getActualPaddingX.js +4 -3
  138. package/dist/browser/lib/getActualPaddingX.js.map +1 -1
  139. package/dist/browser/lib/index.js +101 -3
  140. package/dist/browser/lib/index.js.map +1 -1
  141. package/dist/browser/lib/networkComponents.js +5 -4
  142. package/dist/browser/lib/networkComponents.js.map +1 -1
  143. package/dist/browser/lib/xyo.js +3 -2
  144. package/dist/browser/lib/xyo.js.map +1 -1
  145. package/dist/browser/models/index.js +0 -1
  146. package/dist/browser/models/index.js.map +1 -1
  147. package/package.json +13 -13
@@ -1,6 +1,7 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/Ampersand.tsx
2
2
  import { Typography } from "@mui/material";
3
- const Ampersand = (props) => {
3
+ import { jsx } from "react/jsx-runtime";
4
+ var Ampersand = (props) => {
4
5
  return /* @__PURE__ */ jsx(Typography, { marginX: 1, component: "span", ...props, children: "&" });
5
6
  };
6
7
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Ampersand.tsx"],"sourcesContent":["import { Typography, TypographyProps } from '@mui/material'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &amp;\n </Typography>\n )\n}\n"],"mappings":"AAII;AAJJ,SAAS,kBAAmC;AAErC,MAAM,YAAuC,CAAC,UAAU;AAC7D,SACE,oBAAC,cAAW,SAAS,GAAG,WAAU,QAAQ,GAAG,OAAO,eAEpD;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/Ampersand.tsx"],"sourcesContent":["import { Typography, TypographyProps } from '@mui/material'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &amp;\n </Typography>\n )\n}\n"],"mappings":";AAAA,SAAS,kBAAmC;AAIxC;AAFG,IAAM,YAAuC,CAAC,UAAU;AAC7D,SACE,oBAAC,cAAW,SAAS,GAAG,WAAU,QAAQ,GAAG,OAAO,eAEpD;AAEJ;","names":[]}
@@ -1,10 +1,76 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ // src/components/BasicHero/BasicHero.tsx
2
2
  import { Container, Grid, Typography } from "@mui/material";
3
3
  import { ButtonEx } from "@xylabs/react-button";
4
4
  import { FlexGrowCol, FlexGrowRow } from "@xylabs/react-flexbox";
5
5
  import { LinkEx } from "@xylabs/react-link";
6
- import { useGradientStyles, useIsMobile } from "../../hooks";
7
- const SubLinkSection = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {
6
+
7
+ // src/hooks/GradientStyles/GradientStyles.tsx
8
+ import { useTheme } from "@mui/material";
9
+ import { makeStyles } from "@mui/styles";
10
+ var colorfulGradientLightMode = () => {
11
+ return {
12
+ background: {
13
+ backgroundImage: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)"
14
+ },
15
+ border: {
16
+ borderImage: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
17
+ borderImageSlice: 1,
18
+ borderImageSource: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
19
+ borderRadius: 0,
20
+ borderStyle: "solid",
21
+ borderWidth: "2px"
22
+ },
23
+ heading: {
24
+ WebkitBackgroundClip: "text",
25
+ WebkitTextFillColor: "transparent",
26
+ background: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
27
+ display: "inline-block"
28
+ }
29
+ };
30
+ };
31
+ var colorfulGradientDarkMode = () => {
32
+ return {
33
+ background: {
34
+ backgroundImage: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)"
35
+ },
36
+ border: {
37
+ borderImage: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
38
+ borderImageSlice: 1,
39
+ borderImageSource: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
40
+ borderRadius: 0,
41
+ borderStyle: "solid",
42
+ borderWidth: "2px"
43
+ },
44
+ heading: {
45
+ WebkitBackgroundClip: "text",
46
+ WebkitTextFillColor: "transparent",
47
+ background: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
48
+ display: "inline-block"
49
+ }
50
+ };
51
+ };
52
+ var useGradientStyles = () => {
53
+ const theme = useTheme();
54
+ const styles = theme.palette.mode === "dark" ? colorfulGradientDarkMode() : colorfulGradientLightMode();
55
+ const classes = makeStyles(styles);
56
+ return { classes, styles };
57
+ };
58
+
59
+ // src/hooks/useIsMobile.ts
60
+ import { useTheme as useTheme2 } from "@mui/material";
61
+
62
+ // src/hooks/useMediaQuery.ts
63
+ import { useMediaQuery } from "@mui/material";
64
+
65
+ // src/hooks/useIsMobile.ts
66
+ var useIsMobile = () => {
67
+ const theme = useTheme2();
68
+ return useMediaQuery(theme.breakpoints.down("md"));
69
+ };
70
+
71
+ // src/components/BasicHero/BasicHero.tsx
72
+ import { jsx, jsxs } from "react/jsx-runtime";
73
+ var SubLinkSection = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {
8
74
  return /* @__PURE__ */ jsxs(
9
75
  FlexGrowRow,
10
76
  {
@@ -24,7 +90,7 @@ const SubLinkSection = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, su
24
90
  }
25
91
  );
26
92
  };
27
- const ButtonSection = ({ href, to, buttonText }) => {
93
+ var ButtonSection = ({ href, to, buttonText }) => {
28
94
  const isMobile = useIsMobile();
29
95
  return /* @__PURE__ */ jsx(
30
96
  ButtonEx,
@@ -45,7 +111,7 @@ const ButtonSection = ({ href, to, buttonText }) => {
45
111
  }
46
112
  );
47
113
  };
48
- const BasicHero = ({
114
+ var BasicHero = ({
49
115
  backgroundImage,
50
116
  title,
51
117
  gradientTitle,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/BasicHero/BasicHero.tsx"],"sourcesContent":["import { Container, Grid, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { ReactElement } from 'react'\n\nimport { useGradientStyles, useIsMobile } from '../../hooks'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n backgroundColor?: string\n backgroundImage?: string\n button1Href?: string\n button1Text?: string\n button1To?: string\n button2Href?: string\n button2Text?: string\n button2To?: string\n desc: string\n gradientTitle?: string\n heroImage?: string\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n sx?: Record<string, string>\n textColor?: string\n title: string\n title2?: string\n}\n\ninterface SubLinkSectionProps {\n backgroundImageAlignment?: boolean\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n}\n\ninterface ButtonSectionProps {\n buttonText?: string\n href?: string\n to?: string\n}\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{ flexDirection: { md: 'row', xs: 'column' }, justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' } }}\n >\n {subLinkIcon ? <span>{subLinkIcon}&nbsp;</span> : null}\n <Typography>{subLinkText1}&nbsp;</Typography>\n <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n <Typography>{subLinkText2}</Typography>\n </LinkEx>\n </FlexGrowRow>\n )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({ href, to, buttonText }) => {\n const isMobile = useIsMobile()\n return (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n target={href ?? '_blank'}\n to={to}\n href={href}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n}\n\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n backgroundImage,\n title,\n gradientTitle,\n backgroundColor,\n textColor,\n desc,\n heroImage,\n title2,\n subLinkText1,\n subLinkText2,\n subLinkPath,\n button1Text,\n button2Text,\n button2To,\n button1To,\n button2Href,\n button1Href,\n subLinkIcon,\n sx,\n ...props\n}) => {\n const isMobile = useIsMobile()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: { lg: 'bottom', md: 'center left', xs: 'top left' },\n minHeight: {\n md: '500px',\n sm: '400px',\n xs: '200px',\n },\n ...(sx ?? {}),\n }}\n style={{\n backgroundColor: backgroundColor ?? '',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n color: textColor ?? '',\n }}\n {...props}\n >\n <Container>\n <Grid\n container\n justifyContent=\"center\"\n alignItems=\"center\"\n sx={{\n alignItems: { xs: 'center' },\n justifyContent: { xs: 'center' },\n }}\n >\n <Grid item xs={12} sm={8} md={backgroundImage ? 6 : 8} lg={backgroundImage ? 6 : 8}>\n <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {title ? <span>{`${title} `}</span> : null}\n {gradientTitle ? <span className={classes().heading}> {` ${gradientTitle}`}</span> : null}\n {title2 ? <span>{` ${title2}`}</span> : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow sx={{ flexDirection: { lg: 'row', xs: 'column' } }} width=\"100%\" marginTop={1}>\n <ButtonSection href={button1Href} to={button1To} buttonText={button1Text} />\n <ButtonSection href={button2Href} to={button2To} buttonText={button2Text} />\n </FlexGrowRow>\n <SubLinkSection\n subLinkIcon={subLinkIcon}\n subLinkText1={subLinkText1}\n subLinkText2={subLinkText2}\n subLinkPath={subLinkPath}\n backgroundImageAlignment={backgroundImage ? true : false}\n />\n </FlexGrowCol>\n </Grid>\n <Grid item xs={12} md={6}>\n {heroImage ? <img src={heroImage} width=\"100%\" /> : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/BasicHero/BasicHero.tsx","../../../../src/hooks/GradientStyles/GradientStyles.tsx","../../../../src/hooks/useIsMobile.ts","../../../../src/hooks/useMediaQuery.ts"],"sourcesContent":["import { Container, Grid, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { ReactElement } from 'react'\n\nimport { useGradientStyles, useIsMobile } from '../../hooks'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n backgroundColor?: string\n backgroundImage?: string\n button1Href?: string\n button1Text?: string\n button1To?: string\n button2Href?: string\n button2Text?: string\n button2To?: string\n desc: string\n gradientTitle?: string\n heroImage?: string\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n sx?: Record<string, string>\n textColor?: string\n title: string\n title2?: string\n}\n\ninterface SubLinkSectionProps {\n backgroundImageAlignment?: boolean\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n}\n\ninterface ButtonSectionProps {\n buttonText?: string\n href?: string\n to?: string\n}\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{ flexDirection: { md: 'row', xs: 'column' }, justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' } }}\n >\n {subLinkIcon ? <span>{subLinkIcon}&nbsp;</span> : null}\n <Typography>{subLinkText1}&nbsp;</Typography>\n <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n <Typography>{subLinkText2}</Typography>\n </LinkEx>\n </FlexGrowRow>\n )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({ href, to, buttonText }) => {\n const isMobile = useIsMobile()\n return (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n target={href ?? '_blank'}\n to={to}\n href={href}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n}\n\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n backgroundImage,\n title,\n gradientTitle,\n backgroundColor,\n textColor,\n desc,\n heroImage,\n title2,\n subLinkText1,\n subLinkText2,\n subLinkPath,\n button1Text,\n button2Text,\n button2To,\n button1To,\n button2Href,\n button1Href,\n subLinkIcon,\n sx,\n ...props\n}) => {\n const isMobile = useIsMobile()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: { lg: 'bottom', md: 'center left', xs: 'top left' },\n minHeight: {\n md: '500px',\n sm: '400px',\n xs: '200px',\n },\n ...(sx ?? {}),\n }}\n style={{\n backgroundColor: backgroundColor ?? '',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n color: textColor ?? '',\n }}\n {...props}\n >\n <Container>\n <Grid\n container\n justifyContent=\"center\"\n alignItems=\"center\"\n sx={{\n alignItems: { xs: 'center' },\n justifyContent: { xs: 'center' },\n }}\n >\n <Grid item xs={12} sm={8} md={backgroundImage ? 6 : 8} lg={backgroundImage ? 6 : 8}>\n <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {title ? <span>{`${title} `}</span> : null}\n {gradientTitle ? <span className={classes().heading}> {` ${gradientTitle}`}</span> : null}\n {title2 ? <span>{` ${title2}`}</span> : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow sx={{ flexDirection: { lg: 'row', xs: 'column' } }} width=\"100%\" marginTop={1}>\n <ButtonSection href={button1Href} to={button1To} buttonText={button1Text} />\n <ButtonSection href={button2Href} to={button2To} buttonText={button2Text} />\n </FlexGrowRow>\n <SubLinkSection\n subLinkIcon={subLinkIcon}\n subLinkText1={subLinkText1}\n subLinkText2={subLinkText2}\n subLinkPath={subLinkPath}\n backgroundImageAlignment={backgroundImage ? true : false}\n />\n </FlexGrowCol>\n </Grid>\n <Grid item xs={12} md={6}>\n {heroImage ? <img src={heroImage} width=\"100%\" /> : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { makeStyles } from '@mui/styles'\nimport { CSSProperties } from 'react'\n\nexport interface GradientStyles {\n background: CSSProperties\n border: CSSProperties\n heading: CSSProperties\n}\n\nexport const colorfulGradientLightMode = () => {\n return {\n background: {\n backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n display: 'inline-block',\n },\n }\n}\n\nexport const colorfulGradientDarkMode = () => {\n return {\n background: {\n backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n display: 'inline-block',\n },\n }\n}\n\nexport const useGradientStyles = () => {\n const theme = useTheme()\n const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()\n const classes = makeStyles(styles)\n return { classes, styles }\n}\n","import { useTheme } from '@mui/material'\n\nimport { useMediaQuery } from './useMediaQuery'\n\nexport const useIsMobile = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n","// eslint-disable-next-line import/no-deprecated\nimport { useMediaQuery } from '@mui/material'\n\n// eslint-disable-next-line import/no-deprecated\nexport { useMediaQuery }\n\n/* This file only exists to deal with the false positve lint error */\n"],"mappings":"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","names":["useTheme","useTheme"]}
@@ -1,2 +1,204 @@
1
- export * from "./BasicHero";
1
+ // src/components/BasicHero/BasicHero.tsx
2
+ import { Container, Grid, Typography } from "@mui/material";
3
+ import { ButtonEx } from "@xylabs/react-button";
4
+ import { FlexGrowCol, FlexGrowRow } from "@xylabs/react-flexbox";
5
+ import { LinkEx } from "@xylabs/react-link";
6
+
7
+ // src/hooks/GradientStyles/GradientStyles.tsx
8
+ import { useTheme } from "@mui/material";
9
+ import { makeStyles } from "@mui/styles";
10
+ var colorfulGradientLightMode = () => {
11
+ return {
12
+ background: {
13
+ backgroundImage: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)"
14
+ },
15
+ border: {
16
+ borderImage: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
17
+ borderImageSlice: 1,
18
+ borderImageSource: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
19
+ borderRadius: 0,
20
+ borderStyle: "solid",
21
+ borderWidth: "2px"
22
+ },
23
+ heading: {
24
+ WebkitBackgroundClip: "text",
25
+ WebkitTextFillColor: "transparent",
26
+ background: "-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)",
27
+ display: "inline-block"
28
+ }
29
+ };
30
+ };
31
+ var colorfulGradientDarkMode = () => {
32
+ return {
33
+ background: {
34
+ backgroundImage: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)"
35
+ },
36
+ border: {
37
+ borderImage: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
38
+ borderImageSlice: 1,
39
+ borderImageSource: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
40
+ borderRadius: 0,
41
+ borderStyle: "solid",
42
+ borderWidth: "2px"
43
+ },
44
+ heading: {
45
+ WebkitBackgroundClip: "text",
46
+ WebkitTextFillColor: "transparent",
47
+ background: "-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)",
48
+ display: "inline-block"
49
+ }
50
+ };
51
+ };
52
+ var useGradientStyles = () => {
53
+ const theme = useTheme();
54
+ const styles = theme.palette.mode === "dark" ? colorfulGradientDarkMode() : colorfulGradientLightMode();
55
+ const classes = makeStyles(styles);
56
+ return { classes, styles };
57
+ };
58
+
59
+ // src/hooks/useIsMobile.ts
60
+ import { useTheme as useTheme2 } from "@mui/material";
61
+
62
+ // src/hooks/useMediaQuery.ts
63
+ import { useMediaQuery } from "@mui/material";
64
+
65
+ // src/hooks/useIsMobile.ts
66
+ var useIsMobile = () => {
67
+ const theme = useTheme2();
68
+ return useMediaQuery(theme.breakpoints.down("md"));
69
+ };
70
+
71
+ // src/components/BasicHero/BasicHero.tsx
72
+ import { jsx, jsxs } from "react/jsx-runtime";
73
+ var SubLinkSection = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {
74
+ return /* @__PURE__ */ jsxs(
75
+ FlexGrowRow,
76
+ {
77
+ width: "100%",
78
+ sx: { flexDirection: { md: "row", xs: "column" }, justifyContent: { md: backgroundImageAlignment ? "flex-start" : "center", xs: "center" } },
79
+ children: [
80
+ subLinkIcon ? /* @__PURE__ */ jsxs("span", { children: [
81
+ subLinkIcon,
82
+ "\xA0"
83
+ ] }) : null,
84
+ /* @__PURE__ */ jsxs(Typography, { children: [
85
+ subLinkText1,
86
+ "\xA0"
87
+ ] }),
88
+ /* @__PURE__ */ jsx(LinkEx, { href: subLinkPath, underline: "always", target: "_blank", color: "inherit", children: /* @__PURE__ */ jsx(Typography, { children: subLinkText2 }) })
89
+ ]
90
+ }
91
+ );
92
+ };
93
+ var ButtonSection = ({ href, to, buttonText }) => {
94
+ const isMobile = useIsMobile();
95
+ return /* @__PURE__ */ jsx(
96
+ ButtonEx,
97
+ {
98
+ fullWidth: true,
99
+ marginTop: 1,
100
+ marginBottom: 1,
101
+ marginRight: isMobile ? 2 : 1,
102
+ marginLeft: isMobile ? 2 : 0,
103
+ target: href ?? "_blank",
104
+ to,
105
+ href,
106
+ color: "primary",
107
+ variant: "contained",
108
+ paddingX: 3,
109
+ sx: { display: href || to ? "flex" : "none" },
110
+ children: buttonText
111
+ }
112
+ );
113
+ };
114
+ var BasicHero = ({
115
+ backgroundImage,
116
+ title,
117
+ gradientTitle,
118
+ backgroundColor,
119
+ textColor,
120
+ desc,
121
+ heroImage,
122
+ title2,
123
+ subLinkText1,
124
+ subLinkText2,
125
+ subLinkPath,
126
+ button1Text,
127
+ button2Text,
128
+ button2To,
129
+ button1To,
130
+ button2Href,
131
+ button1Href,
132
+ subLinkIcon,
133
+ sx,
134
+ ...props
135
+ }) => {
136
+ const isMobile = useIsMobile();
137
+ const { classes } = useGradientStyles();
138
+ return /* @__PURE__ */ jsx(
139
+ FlexGrowCol,
140
+ {
141
+ sx: {
142
+ backgroundImage: `url(${backgroundImage})`,
143
+ backgroundPosition: { lg: "bottom", md: "center left", xs: "top left" },
144
+ minHeight: {
145
+ md: "500px",
146
+ sm: "400px",
147
+ xs: "200px"
148
+ },
149
+ ...sx ?? {}
150
+ },
151
+ style: {
152
+ backgroundColor: backgroundColor ?? "",
153
+ backgroundRepeat: "no-repeat",
154
+ backgroundSize: "cover",
155
+ color: textColor ?? ""
156
+ },
157
+ ...props,
158
+ children: /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsxs(
159
+ Grid,
160
+ {
161
+ container: true,
162
+ justifyContent: "center",
163
+ alignItems: "center",
164
+ sx: {
165
+ alignItems: { xs: "center" },
166
+ justifyContent: { xs: "center" }
167
+ },
168
+ children: [
169
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, sm: 8, md: backgroundImage ? 6 : 8, lg: backgroundImage ? 6 : 8, children: /* @__PURE__ */ jsxs(FlexGrowCol, { paddingY: 2, sx: { alignItems: { xs: backgroundImage && !isMobile ? "flex-start" : "center" } }, children: [
170
+ /* @__PURE__ */ jsxs(Typography, { variant: "h1", component: "h1", gutterBottom: true, textAlign: backgroundImage && !isMobile ? "left" : "center", children: [
171
+ title ? /* @__PURE__ */ jsx("span", { children: `${title} ` }) : null,
172
+ gradientTitle ? /* @__PURE__ */ jsxs("span", { className: classes().heading, children: [
173
+ " ",
174
+ ` ${gradientTitle}`
175
+ ] }) : null,
176
+ title2 ? /* @__PURE__ */ jsx("span", { children: ` ${title2}` }) : null
177
+ ] }),
178
+ /* @__PURE__ */ jsx(Typography, { variant: "body1", component: "h2", gutterBottom: true, textAlign: backgroundImage && !isMobile ? "left" : "center", children: desc }),
179
+ /* @__PURE__ */ jsxs(FlexGrowRow, { sx: { flexDirection: { lg: "row", xs: "column" } }, width: "100%", marginTop: 1, children: [
180
+ /* @__PURE__ */ jsx(ButtonSection, { href: button1Href, to: button1To, buttonText: button1Text }),
181
+ /* @__PURE__ */ jsx(ButtonSection, { href: button2Href, to: button2To, buttonText: button2Text })
182
+ ] }),
183
+ /* @__PURE__ */ jsx(
184
+ SubLinkSection,
185
+ {
186
+ subLinkIcon,
187
+ subLinkText1,
188
+ subLinkText2,
189
+ subLinkPath,
190
+ backgroundImageAlignment: backgroundImage ? true : false
191
+ }
192
+ )
193
+ ] }) }),
194
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, children: heroImage ? /* @__PURE__ */ jsx("img", { src: heroImage, width: "100%" }) : null })
195
+ ]
196
+ }
197
+ ) })
198
+ }
199
+ );
200
+ };
201
+ export {
202
+ BasicHero
203
+ };
2
204
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/BasicHero/index.ts"],"sourcesContent":["export * from './BasicHero'\n"],"mappings":"AAAA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/BasicHero/BasicHero.tsx","../../../../src/hooks/GradientStyles/GradientStyles.tsx","../../../../src/hooks/useIsMobile.ts","../../../../src/hooks/useMediaQuery.ts"],"sourcesContent":["import { Container, Grid, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { ReactElement } from 'react'\n\nimport { useGradientStyles, useIsMobile } from '../../hooks'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n backgroundColor?: string\n backgroundImage?: string\n button1Href?: string\n button1Text?: string\n button1To?: string\n button2Href?: string\n button2Text?: string\n button2To?: string\n desc: string\n gradientTitle?: string\n heroImage?: string\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n sx?: Record<string, string>\n textColor?: string\n title: string\n title2?: string\n}\n\ninterface SubLinkSectionProps {\n backgroundImageAlignment?: boolean\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n}\n\ninterface ButtonSectionProps {\n buttonText?: string\n href?: string\n to?: string\n}\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{ flexDirection: { md: 'row', xs: 'column' }, justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' } }}\n >\n {subLinkIcon ? <span>{subLinkIcon}&nbsp;</span> : null}\n <Typography>{subLinkText1}&nbsp;</Typography>\n <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n <Typography>{subLinkText2}</Typography>\n </LinkEx>\n </FlexGrowRow>\n )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({ href, to, buttonText }) => {\n const isMobile = useIsMobile()\n return (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n target={href ?? '_blank'}\n to={to}\n href={href}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n}\n\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n backgroundImage,\n title,\n gradientTitle,\n backgroundColor,\n textColor,\n desc,\n heroImage,\n title2,\n subLinkText1,\n subLinkText2,\n subLinkPath,\n button1Text,\n button2Text,\n button2To,\n button1To,\n button2Href,\n button1Href,\n subLinkIcon,\n sx,\n ...props\n}) => {\n const isMobile = useIsMobile()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: { lg: 'bottom', md: 'center left', xs: 'top left' },\n minHeight: {\n md: '500px',\n sm: '400px',\n xs: '200px',\n },\n ...(sx ?? {}),\n }}\n style={{\n backgroundColor: backgroundColor ?? '',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n color: textColor ?? '',\n }}\n {...props}\n >\n <Container>\n <Grid\n container\n justifyContent=\"center\"\n alignItems=\"center\"\n sx={{\n alignItems: { xs: 'center' },\n justifyContent: { xs: 'center' },\n }}\n >\n <Grid item xs={12} sm={8} md={backgroundImage ? 6 : 8} lg={backgroundImage ? 6 : 8}>\n <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {title ? <span>{`${title} `}</span> : null}\n {gradientTitle ? <span className={classes().heading}> {` ${gradientTitle}`}</span> : null}\n {title2 ? <span>{` ${title2}`}</span> : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow sx={{ flexDirection: { lg: 'row', xs: 'column' } }} width=\"100%\" marginTop={1}>\n <ButtonSection href={button1Href} to={button1To} buttonText={button1Text} />\n <ButtonSection href={button2Href} to={button2To} buttonText={button2Text} />\n </FlexGrowRow>\n <SubLinkSection\n subLinkIcon={subLinkIcon}\n subLinkText1={subLinkText1}\n subLinkText2={subLinkText2}\n subLinkPath={subLinkPath}\n backgroundImageAlignment={backgroundImage ? true : false}\n />\n </FlexGrowCol>\n </Grid>\n <Grid item xs={12} md={6}>\n {heroImage ? <img src={heroImage} width=\"100%\" /> : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { makeStyles } from '@mui/styles'\nimport { CSSProperties } from 'react'\n\nexport interface GradientStyles {\n background: CSSProperties\n border: CSSProperties\n heading: CSSProperties\n}\n\nexport const colorfulGradientLightMode = () => {\n return {\n background: {\n backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n display: 'inline-block',\n },\n }\n}\n\nexport const colorfulGradientDarkMode = () => {\n return {\n background: {\n backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n display: 'inline-block',\n },\n }\n}\n\nexport const useGradientStyles = () => {\n const theme = useTheme()\n const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()\n const classes = makeStyles(styles)\n return { classes, styles }\n}\n","import { useTheme } from '@mui/material'\n\nimport { useMediaQuery } from './useMediaQuery'\n\nexport const useIsMobile = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n","// eslint-disable-next-line import/no-deprecated\nimport { useMediaQuery } from '@mui/material'\n\n// eslint-disable-next-line import/no-deprecated\nexport { useMediaQuery }\n\n/* This file only exists to deal with the false positve lint error */\n"],"mappings":";AAAA,SAAS,WAAW,MAAM,kBAAkB;AAC5C,SAAS,gBAAgB;AACzB,SAAuB,aAAa,mBAAmB;AACvD,SAAS,cAAc;;;ACHvB,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AASpB,IAAM,4BAA4B,MAAM;AAC7C,SAAO;AAAA,IACL,YAAY;AAAA,MACV,iBAAiB;AAAA,IACnB;AAAA,IACA,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,aAAa;AAAA,IACf;AAAA,IACA,SAAS;AAAA,MACP,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEO,IAAM,2BAA2B,MAAM;AAC5C,SAAO;AAAA,IACL,YAAY;AAAA,MACV,iBAAiB;AAAA,IACnB;AAAA,IACA,QAAQ;AAAA,MACN,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,MACnB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,aAAa;AAAA,IACf;AAAA,IACA,SAAS;AAAA,MACP,sBAAsB;AAAA,MACtB,qBAAqB;AAAA,MACrB,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEO,IAAM,oBAAoB,MAAM;AACrC,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,MAAM,QAAQ,SAAS,SAAS,yBAAyB,IAAI,0BAA0B;AACtG,QAAM,UAAU,WAAW,MAAM;AACjC,SAAO,EAAE,SAAS,OAAO;AAC3B;;;AC3DA,SAAS,YAAAA,iBAAgB;;;ACCzB,SAAS,qBAAqB;;;ADGvB,IAAM,cAAc,MAAM;AAC/B,QAAM,QAAQC,UAAS;AACvB,SAAO,cAAc,MAAM,YAAY,KAAK,IAAI,CAAC;AACnD;;;AF0CqB,SAGb,KAHa;AANrB,IAAM,iBAAgD,CAAC,EAAE,0BAA0B,aAAa,aAAa,cAAc,aAAa,MAAM;AAC5I,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,IAAI,EAAE,eAAe,EAAE,IAAI,OAAO,IAAI,SAAS,GAAG,gBAAgB,EAAE,IAAI,2BAA2B,eAAe,UAAU,IAAI,SAAS,EAAE;AAAA,MAE1I;AAAA,sBAAc,qBAAC,UAAM;AAAA;AAAA,UAAY;AAAA,WAAM,IAAU;AAAA,QAClD,qBAAC,cAAY;AAAA;AAAA,UAAa;AAAA,WAAM;AAAA,QAChC,oBAAC,UAAO,MAAM,aAAa,WAAU,UAAS,QAAO,UAAS,OAAM,WAClE,8BAAC,cAAY,wBAAa,GAC5B;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,gBAA8C,CAAC,EAAE,MAAM,IAAI,WAAW,MAAM;AAChF,QAAM,WAAW,YAAY;AAC7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAW;AAAA,MACX,cAAc;AAAA,MACd,aAAa,WAAW,IAAI;AAAA,MAC5B,YAAY,WAAW,IAAI;AAAA,MAC3B,QAAQ,QAAQ;AAAA,MAChB;AAAA,MACA;AAAA,MACA,OAAM;AAAA,MACN,SAAQ;AAAA,MACR,UAAU;AAAA,MACV,IAAI,EAAE,SAAS,QAAQ,KAAK,SAAS,OAAO;AAAA,MAE3C;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAW,YAAY;AAC7B,QAAM,EAAE,QAAQ,IAAI,kBAAkB;AACtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,QACF,iBAAiB,OAAO,eAAe;AAAA,QACvC,oBAAoB,EAAE,IAAI,UAAU,IAAI,eAAe,IAAI,WAAW;AAAA,QACtE,WAAW;AAAA,UACT,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACN;AAAA,QACA,GAAI,MAAM,CAAC;AAAA,MACb;AAAA,MACA,OAAO;AAAA,QACL,iBAAiB,mBAAmB;AAAA,QACpC,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,OAAO,aAAa;AAAA,MACtB;AAAA,MACC,GAAG;AAAA,MAEJ,8BAAC,aACC;AAAA,QAAC;AAAA;AAAA,UACC,WAAS;AAAA,UACT,gBAAe;AAAA,UACf,YAAW;AAAA,UACX,IAAI;AAAA,YACF,YAAY,EAAE,IAAI,SAAS;AAAA,YAC3B,gBAAgB,EAAE,IAAI,SAAS;AAAA,UACjC;AAAA,UAEA;AAAA,gCAAC,QAAK,MAAI,MAAC,IAAI,IAAI,IAAI,GAAG,IAAI,kBAAkB,IAAI,GAAG,IAAI,kBAAkB,IAAI,GAC/E,+BAAC,eAAY,UAAU,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,mBAAmB,CAAC,WAAW,eAAe,SAAS,EAAE,GACzG;AAAA,mCAAC,cAAW,SAAQ,MAAK,WAAU,MAAK,cAAY,MAAC,WAAW,mBAAmB,CAAC,WAAW,SAAS,UACrG;AAAA,wBAAQ,oBAAC,UAAM,aAAG,KAAK,KAAI,IAAU;AAAA,gBACrC,gBAAgB,qBAAC,UAAK,WAAW,QAAQ,EAAE,SAAS;AAAA;AAAA,kBAAE,IAAI,aAAa;AAAA,mBAAG,IAAU;AAAA,gBACpF,SAAS,oBAAC,UAAM,cAAI,MAAM,IAAG,IAAU;AAAA,iBAC1C;AAAA,cACA,oBAAC,cAAW,SAAQ,SAAQ,WAAU,MAAK,cAAY,MAAC,WAAW,mBAAmB,CAAC,WAAW,SAAS,UACxG,gBACH;AAAA,cACA,qBAAC,eAAY,IAAI,EAAE,eAAe,EAAE,IAAI,OAAO,IAAI,SAAS,EAAE,GAAG,OAAM,QAAO,WAAW,GACvF;AAAA,oCAAC,iBAAc,MAAM,aAAa,IAAI,WAAW,YAAY,aAAa;AAAA,gBAC1E,oBAAC,iBAAc,MAAM,aAAa,IAAI,WAAW,YAAY,aAAa;AAAA,iBAC5E;AAAA,cACA;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,0BAA0B,kBAAkB,OAAO;AAAA;AAAA,cACrD;AAAA,eACF,GACF;AAAA,YACA,oBAAC,QAAK,MAAI,MAAC,IAAI,IAAI,IAAI,GACpB,sBAAY,oBAAC,SAAI,KAAK,WAAW,OAAM,QAAO,IAAK,MACtD;AAAA;AAAA;AAAA,MACF,GACF;AAAA;AAAA,EACF;AAEJ;","names":["useTheme","useTheme"]}
@@ -1,9 +1,29 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/Ellipsize.tsx
2
2
  import { Box, styled, Typography } from "@mui/material";
3
3
  import { forwardRef, useCallback, useState } from "react";
4
- import { useShareForwardedRef } from "../hooks";
5
- const ComponentName = "Ellipsize";
6
- const EllipsizeRoot = styled(Box, {
4
+
5
+ // src/hooks/useShareForwardRef.ts
6
+ import { useEffect, useRef } from "react";
7
+ var useShareForwardedRef = (forwardedRef, refresh = 0) => {
8
+ const innerRef = useRef(null);
9
+ useEffect(() => {
10
+ if (!forwardedRef) {
11
+ return;
12
+ }
13
+ if (typeof forwardedRef === "function") {
14
+ forwardedRef(innerRef.current);
15
+ return;
16
+ } else {
17
+ forwardedRef.current = innerRef.current;
18
+ }
19
+ }, [forwardedRef, refresh]);
20
+ return innerRef;
21
+ };
22
+
23
+ // src/components/Ellipsize.tsx
24
+ import { jsx } from "react/jsx-runtime";
25
+ var ComponentName = "Ellipsize";
26
+ var EllipsizeRoot = styled(Box, {
7
27
  name: ComponentName,
8
28
  shouldForwardProp: (prop) => prop !== "beforeLineHeight",
9
29
  slot: "Root"
@@ -22,13 +42,13 @@ const EllipsizeRoot = styled(Box, {
22
42
  }
23
43
  }
24
44
  }));
25
- const EllipsizeInnerWrap = styled(Box, {
45
+ var EllipsizeInnerWrap = styled(Box, {
26
46
  name: ComponentName,
27
47
  slot: "innerWrap"
28
48
  })(() => ({
29
49
  position: "relative"
30
50
  }));
31
- const EllipsizeContentWrap = styled(Typography, {
51
+ var EllipsizeContentWrap = styled(Typography, {
32
52
  name: ComponentName,
33
53
  shouldForwardProp: (prop) => prop !== "ellipsisPosition",
34
54
  slot: "contentWrap"
@@ -47,7 +67,7 @@ const EllipsizeContentWrap = styled(Typography, {
47
67
  } : {}
48
68
  });
49
69
  });
50
- const useClientHeight = () => {
70
+ var useClientHeight = () => {
51
71
  const [contentWrapHeight, setContentWrapHeight] = useState();
52
72
  const contentWrapRef = useCallback((node) => {
53
73
  if (node !== null) {
@@ -56,7 +76,7 @@ const useClientHeight = () => {
56
76
  }, []);
57
77
  return { contentWrapHeight, contentWrapRef };
58
78
  };
59
- const EllipsizeBox = forwardRef(
79
+ var EllipsizeBox = forwardRef(
60
80
  ({ children, ellipsisPosition = "start", disableSharedRef, typographyProps, ...props }, ref) => {
61
81
  const { contentWrapRef, contentWrapHeight } = useClientHeight();
62
82
  const sharedRef = useShareForwardedRef(ref);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Ellipsize.tsx"],"sourcesContent":["import { Box, BoxProps, styled, Typography, TypographyProps, TypographyTypeMap } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks'\n\n/**\n * Heavily inspired by - https://stackoverflow.com/a/30362531/2803259\n */\n\nconst ComponentName = 'Ellipsize'\n\nexport interface EllipsizeRootProps extends BoxProps {\n beforeLineHeight?: string | number\n}\n\nconst EllipsizeRoot = styled(Box, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'beforeLineHeight',\n slot: 'Root',\n})<EllipsizeRootProps>(({ beforeLineHeight }) => ({\n '&': {\n // because the cell content ends up absolutely positioned, the cell doesn't know the content height.\n // the pseudo element with a hidden character establishes the proper height of the content and hides it\n ':before': {\n content: \"'nbsp;'\",\n display: 'block',\n // take the pseudo element out of the `display: block` flow so it won't push against our actual content\n float: 'left',\n visibility: 'hidden',\n // since we are `display: block`, lineHeight is the height\n ...(beforeLineHeight && { lineHeight: beforeLineHeight }),\n },\n },\n}))\n\nconst EllipsizeInnerWrap = styled(Box, {\n name: ComponentName,\n slot: 'innerWrap',\n})(() => ({\n position: 'relative',\n}))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({ theme, ellipsisPosition, fontFamily }) => {\n return theme.unstable_sx({\n fontFamily: fontFamily ?? 'monospace',\n left: 0,\n overflow: 'hidden',\n position: 'absolute',\n right: 0,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n ...(ellipsisPosition === 'start'\n ? {\n direction: 'rtl',\n textAlign: 'left',\n }\n : {}),\n })\n})\n\nconst useClientHeight = () => {\n const [contentWrapHeight, setContentWrapHeight] = useState<string>()\n\n const contentWrapRef = useCallback((node: HTMLElement) => {\n if (node !== null) {\n setContentWrapHeight(node.clientHeight + 'px')\n }\n }, [])\n\n return { contentWrapHeight, contentWrapRef }\n}\n\n// See - https://mui.com/material-ui/guides/composition/#with-typescript\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type TypographyWithComponentProps<D extends React.ElementType = TypographyTypeMap['defaultComponent'], P = {}> = TypographyProps<D, P> & {\n ellipsisPosition?: 'start' | 'end'\n}\n\nexport interface EllipsizeBoxProps extends BoxProps {\n disableSharedRef?: boolean\n ellipsisPosition?: 'start' | 'end'\n typographyProps?: TypographyWithComponentProps\n}\n\nexport const EllipsizeBox = forwardRef<HTMLDivElement, WithChildren<EllipsizeBoxProps>>(\n ({ children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props }, ref) => {\n // Allow syncing of :before pseudo element height with contentWrapHeight\n const { contentWrapRef, contentWrapHeight } = useClientHeight()\n const sharedRef = useShareForwardedRef(ref)\n\n return (\n <EllipsizeRoot beforeLineHeight={!!sharedRef && !disableSharedRef ? contentWrapHeight : undefined} {...props} ref={ref}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n },\n)\nEllipsizeBox.displayName = 'EllipsizeBox'\n"],"mappings":"AAkGU;AAlGV,SAAS,KAAe,QAAQ,kBAAsD;AAEtF,SAAS,YAAY,aAAa,gBAAgB;AAElD,SAAS,4BAA4B;AAMrC,MAAM,gBAAgB;AAMtB,MAAM,gBAAgB,OAAO,KAAK;AAAA,EAChC,MAAM;AAAA,EACN,mBAAmB,CAAC,SAAS,SAAS;AAAA,EACtC,MAAM;AACR,CAAC,EAAsB,CAAC,EAAE,iBAAiB,OAAO;AAAA,EAChD,KAAK;AAAA;AAAA;AAAA,IAGH,WAAW;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,MAET,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAEZ,GAAI,oBAAoB,EAAE,YAAY,iBAAiB;AAAA,IACzD;AAAA,EACF;AACF,EAAE;AAEF,MAAM,qBAAqB,OAAO,KAAK;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,UAAU;AACZ,EAAE;AAEF,MAAM,uBAAuB,OAAO,YAAY;AAAA,EAC9C,MAAM;AAAA,EACN,mBAAmB,CAAC,SAAS,SAAS;AAAA,EACtC,MAAM;AACR,CAAC,EAAgC,CAAC,EAAE,OAAO,kBAAkB,WAAW,MAAM;AAC5E,SAAO,MAAM,YAAY;AAAA,IACvB,YAAY,cAAc;AAAA,IAC1B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,GAAI,qBAAqB,UACrB;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,IACb,IACA,CAAC;AAAA,EACP,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,MAAM;AAC5B,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAiB;AAEnE,QAAM,iBAAiB,YAAY,CAAC,SAAsB;AACxD,QAAI,SAAS,MAAM;AACjB,2BAAqB,KAAK,eAAe,IAAI;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,mBAAmB,eAAe;AAC7C;AAcO,MAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,UAAU,mBAAmB,SAAS,kBAAkB,iBAAiB,GAAG,MAAM,GAAG,QAAQ;AAE9F,UAAM,EAAE,gBAAgB,kBAAkB,IAAI,gBAAgB;AAC9D,UAAM,YAAY,qBAAqB,GAAG;AAE1C,WACE,oBAAC,iBAAc,kBAAkB,CAAC,CAAC,aAAa,CAAC,mBAAmB,oBAAoB,QAAY,GAAG,OAAO,KAC5G,8BAAC,sBACC,8BAAC,wBAAqB,KAAK,gBAAgB,WAAW,QAAQ,kBAAoC,SAAQ,SAAS,GAAG,iBACnH,UACH,GACF,GACF;AAAA,EAEJ;AACF;AACA,aAAa,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/Ellipsize.tsx","../../../src/hooks/useShareForwardRef.ts"],"sourcesContent":["import { Box, BoxProps, styled, Typography, TypographyProps, TypographyTypeMap } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks'\n\n/**\n * Heavily inspired by - https://stackoverflow.com/a/30362531/2803259\n */\n\nconst ComponentName = 'Ellipsize'\n\nexport interface EllipsizeRootProps extends BoxProps {\n beforeLineHeight?: string | number\n}\n\nconst EllipsizeRoot = styled(Box, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'beforeLineHeight',\n slot: 'Root',\n})<EllipsizeRootProps>(({ beforeLineHeight }) => ({\n '&': {\n // because the cell content ends up absolutely positioned, the cell doesn't know the content height.\n // the pseudo element with a hidden character establishes the proper height of the content and hides it\n ':before': {\n content: \"'nbsp;'\",\n display: 'block',\n // take the pseudo element out of the `display: block` flow so it won't push against our actual content\n float: 'left',\n visibility: 'hidden',\n // since we are `display: block`, lineHeight is the height\n ...(beforeLineHeight && { lineHeight: beforeLineHeight }),\n },\n },\n}))\n\nconst EllipsizeInnerWrap = styled(Box, {\n name: ComponentName,\n slot: 'innerWrap',\n})(() => ({\n position: 'relative',\n}))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({ theme, ellipsisPosition, fontFamily }) => {\n return theme.unstable_sx({\n fontFamily: fontFamily ?? 'monospace',\n left: 0,\n overflow: 'hidden',\n position: 'absolute',\n right: 0,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n ...(ellipsisPosition === 'start'\n ? {\n direction: 'rtl',\n textAlign: 'left',\n }\n : {}),\n })\n})\n\nconst useClientHeight = () => {\n const [contentWrapHeight, setContentWrapHeight] = useState<string>()\n\n const contentWrapRef = useCallback((node: HTMLElement) => {\n if (node !== null) {\n setContentWrapHeight(node.clientHeight + 'px')\n }\n }, [])\n\n return { contentWrapHeight, contentWrapRef }\n}\n\n// See - https://mui.com/material-ui/guides/composition/#with-typescript\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type TypographyWithComponentProps<D extends React.ElementType = TypographyTypeMap['defaultComponent'], P = {}> = TypographyProps<D, P> & {\n ellipsisPosition?: 'start' | 'end'\n}\n\nexport interface EllipsizeBoxProps extends BoxProps {\n disableSharedRef?: boolean\n ellipsisPosition?: 'start' | 'end'\n typographyProps?: TypographyWithComponentProps\n}\n\nexport const EllipsizeBox = forwardRef<HTMLDivElement, WithChildren<EllipsizeBoxProps>>(\n ({ children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props }, ref) => {\n // Allow syncing of :before pseudo element height with contentWrapHeight\n const { contentWrapRef, contentWrapHeight } = useClientHeight()\n const sharedRef = useShareForwardedRef(ref)\n\n return (\n <EllipsizeRoot beforeLineHeight={!!sharedRef && !disableSharedRef ? contentWrapHeight : undefined} {...props} ref={ref}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n },\n)\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import { ForwardedRef, useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T>, refresh = 0) => {\n // final ref that will share value with forward ref. this is the one to be attached to components\n const innerRef = useRef<T>(null)\n\n useEffect(() => {\n if (!forwardedRef) {\n return\n }\n if (typeof forwardedRef === 'function') {\n forwardedRef(innerRef.current)\n return\n } else {\n forwardedRef.current = innerRef.current\n }\n }, [forwardedRef, refresh])\n\n return innerRef\n}\n"],"mappings":";AAAA,SAAS,KAAe,QAAQ,kBAAsD;AAEtF,SAAS,YAAY,aAAa,gBAAgB;;;ACFlD,SAAuB,WAAW,cAAc;AAEzC,IAAM,uBAAuB,CAAI,cAA+B,UAAU,MAAM;AAErF,QAAM,WAAW,OAAU,IAAI;AAE/B,YAAU,MAAM;AACd,QAAI,CAAC,cAAc;AACjB;AAAA,IACF;AACA,QAAI,OAAO,iBAAiB,YAAY;AACtC,mBAAa,SAAS,OAAO;AAC7B;AAAA,IACF,OAAO;AACL,mBAAa,UAAU,SAAS;AAAA,IAClC;AAAA,EACF,GAAG,CAAC,cAAc,OAAO,CAAC;AAE1B,SAAO;AACT;;;AD+EU;AAxFV,IAAM,gBAAgB;AAMtB,IAAM,gBAAgB,OAAO,KAAK;AAAA,EAChC,MAAM;AAAA,EACN,mBAAmB,CAAC,SAAS,SAAS;AAAA,EACtC,MAAM;AACR,CAAC,EAAsB,CAAC,EAAE,iBAAiB,OAAO;AAAA,EAChD,KAAK;AAAA;AAAA;AAAA,IAGH,WAAW;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,MAET,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAEZ,GAAI,oBAAoB,EAAE,YAAY,iBAAiB;AAAA,IACzD;AAAA,EACF;AACF,EAAE;AAEF,IAAM,qBAAqB,OAAO,KAAK;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE,OAAO;AAAA,EACR,UAAU;AACZ,EAAE;AAEF,IAAM,uBAAuB,OAAO,YAAY;AAAA,EAC9C,MAAM;AAAA,EACN,mBAAmB,CAAC,SAAS,SAAS;AAAA,EACtC,MAAM;AACR,CAAC,EAAgC,CAAC,EAAE,OAAO,kBAAkB,WAAW,MAAM;AAC5E,SAAO,MAAM,YAAY;AAAA,IACvB,YAAY,cAAc;AAAA,IAC1B,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,GAAI,qBAAqB,UACrB;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,IACb,IACA,CAAC;AAAA,EACP,CAAC;AACH,CAAC;AAED,IAAM,kBAAkB,MAAM;AAC5B,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAiB;AAEnE,QAAM,iBAAiB,YAAY,CAAC,SAAsB;AACxD,QAAI,SAAS,MAAM;AACjB,2BAAqB,KAAK,eAAe,IAAI;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,mBAAmB,eAAe;AAC7C;AAcO,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,UAAU,mBAAmB,SAAS,kBAAkB,iBAAiB,GAAG,MAAM,GAAG,QAAQ;AAE9F,UAAM,EAAE,gBAAgB,kBAAkB,IAAI,gBAAgB;AAC9D,UAAM,YAAY,qBAAqB,GAAG;AAE1C,WACE,oBAAC,iBAAc,kBAAkB,CAAC,CAAC,aAAa,CAAC,mBAAmB,oBAAoB,QAAY,GAAG,OAAO,KAC5G,8BAAC,sBACC,8BAAC,wBAAqB,KAAK,gBAAgB,WAAW,QAAQ,kBAAoC,SAAQ,SAAS,GAAG,iBACnH,UACH,GACF,GACF;AAAA,EAEJ;AACF;AACA,aAAa,cAAc;","names":[]}
@@ -1,8 +1,9 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ // src/components/ErrorBoundary.tsx
2
2
  import { Typography } from "@mui/material";
3
3
  import { FlexCol } from "@xylabs/react-flexbox";
4
4
  import { Component } from "react";
5
- class ErrorBoundary extends Component {
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ var ErrorBoundary = class extends Component {
6
7
  constructor(props) {
7
8
  super(props);
8
9
  this.state = { error: void 0 };
@@ -29,7 +30,7 @@ class ErrorBoundary extends Component {
29
30
  }
30
31
  return this.props.children;
31
32
  }
32
- }
33
+ };
33
34
  export {
34
35
  ErrorBoundary
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ErrorBoundary.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { Component, ErrorInfo, ReactNode } from 'react'\n\nexport interface ErrorBoundaryProps {\n children: ReactNode\n // fallback as a static ReactNode value\n fallback?: ReactNode\n // fallback element that can receive the error as a prop\n fallbackWithError?: (error: Error) => ReactNode\n}\n\nexport interface ErrorBoundaryState {\n error?: Error\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: undefined }\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(`${error}: ${errorInfo}`)\n }\n\n override render() {\n if (this.state.error) {\n if (this.props.fallbackWithError) {\n return this.props.fallbackWithError(this.state.error)\n }\n return (\n this.props.fallback ?? (\n <FlexCol>\n <Typography variant=\"h1\">Something went wrong.</Typography>\n <Typography variant=\"body1\">[{this.state.error?.message}]</Typography>\n </FlexCol>\n )\n )\n }\n\n return this.props.children\n }\n}\n"],"mappings":"AAsCY,cACA,YADA;AAtCZ,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,iBAAuC;AAczC,MAAM,sBAAsB,UAAkD;AAAA,EACnF,YAAY,OAA2B;AACrC,UAAM,KAAK;AACX,SAAK,QAAQ,EAAE,OAAO,OAAU;AAAA,EAClC;AAAA,EAEA,OAAO,yBAAyB,OAAc;AAC5C,WAAO,EAAE,MAAM;AAAA,EACjB;AAAA,EAES,kBAAkB,OAAc,WAAsB;AAC7D,YAAQ,MAAM,GAAG,KAAK,KAAK,SAAS,EAAE;AAAA,EACxC;AAAA,EAES,SAAS;AAChB,QAAI,KAAK,MAAM,OAAO;AACpB,UAAI,KAAK,MAAM,mBAAmB;AAChC,eAAO,KAAK,MAAM,kBAAkB,KAAK,MAAM,KAAK;AAAA,MACtD;AACA,aACE,KAAK,MAAM,YACT,qBAAC,WACC;AAAA,4BAAC,cAAW,SAAQ,MAAK,mCAAqB;AAAA,QAC9C,qBAAC,cAAW,SAAQ,SAAQ;AAAA;AAAA,UAAE,KAAK,MAAM,OAAO;AAAA,UAAQ;AAAA,WAAC;AAAA,SAC3D;AAAA,IAGN;AAEA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ErrorBoundary.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { Component, ErrorInfo, ReactNode } from 'react'\n\nexport interface ErrorBoundaryProps {\n children: ReactNode\n // fallback as a static ReactNode value\n fallback?: ReactNode\n // fallback element that can receive the error as a prop\n fallbackWithError?: (error: Error) => ReactNode\n}\n\nexport interface ErrorBoundaryState {\n error?: Error\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: undefined }\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(`${error}: ${errorInfo}`)\n }\n\n override render() {\n if (this.state.error) {\n if (this.props.fallbackWithError) {\n return this.props.fallbackWithError(this.state.error)\n }\n return (\n this.props.fallback ?? (\n <FlexCol>\n <Typography variant=\"h1\">Something went wrong.</Typography>\n <Typography variant=\"body1\">[{this.state.error?.message}]</Typography>\n </FlexCol>\n )\n )\n }\n\n return this.props.children\n }\n}\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,iBAAuC;AAoCpC,cACA,YADA;AAtBL,IAAM,gBAAN,cAA4B,UAAkD;AAAA,EACnF,YAAY,OAA2B;AACrC,UAAM,KAAK;AACX,SAAK,QAAQ,EAAE,OAAO,OAAU;AAAA,EAClC;AAAA,EAEA,OAAO,yBAAyB,OAAc;AAC5C,WAAO,EAAE,MAAM;AAAA,EACjB;AAAA,EAES,kBAAkB,OAAc,WAAsB;AAC7D,YAAQ,MAAM,GAAG,KAAK,KAAK,SAAS,EAAE;AAAA,EACxC;AAAA,EAES,SAAS;AAChB,QAAI,KAAK,MAAM,OAAO;AACpB,UAAI,KAAK,MAAM,mBAAmB;AAChC,eAAO,KAAK,MAAM,kBAAkB,KAAK,MAAM,KAAK;AAAA,MACtD;AACA,aACE,KAAK,MAAM,YACT,qBAAC,WACC;AAAA,4BAAC,cAAW,SAAQ,MAAK,mCAAqB;AAAA,QAC9C,qBAAC,cAAW,SAAQ,SAAQ;AAAA;AAAA,UAAE,KAAK,MAAM,OAAO;AAAA,UAAQ;AAAA,WAAC;AAAA,SAC3D;AAAA,IAGN;AAEA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;","names":[]}
@@ -1,7 +1,8 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/ListItemButtonEx.tsx
2
2
  import { ListItemButton } from "@mui/material";
3
3
  import { useNavigate } from "react-router-dom";
4
- const ListItemButtonExTo = ({ to, toOptions, onClick, ...props }) => {
4
+ import { jsx } from "react/jsx-runtime";
5
+ var ListItemButtonExTo = ({ to, toOptions, onClick, ...props }) => {
5
6
  const navigate = useNavigate();
6
7
  const localOnClick = (event) => {
7
8
  onClick?.(event);
@@ -11,7 +12,7 @@ const ListItemButtonExTo = ({ to, toOptions, onClick, ...props }) => {
11
12
  };
12
13
  return /* @__PURE__ */ jsx(ListItemButton, { onClick: localOnClick, ...props });
13
14
  };
14
- const ListItemButtonEx = ({ to, ...props }) => {
15
+ var ListItemButtonEx = ({ to, ...props }) => {
15
16
  if (to) {
16
17
  return /* @__PURE__ */ jsx(ListItemButtonExTo, { to, ...props });
17
18
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ListItemButtonEx.tsx"],"sourcesContent":["import { ListItemButton, ListItemButtonProps } from '@mui/material'\nimport { MouseEvent } from 'react'\nimport { NavigateOptions, To, useNavigate } from 'react-router-dom'\n\nexport interface ListItemButtonExProps extends ListItemButtonProps {\n target?: string\n to?: To\n toOptions?: NavigateOptions\n}\n\nexport const ListItemButtonExTo: React.FC<ListItemButtonExProps> = ({ to, toOptions, onClick, ...props }) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n navigate(to, toOptions)\n }\n }\n\n return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n if (to) {\n return <ListItemButtonExTo to={to} {...props} />\n } else {\n return <ListItemButton {...props} />\n }\n}\n"],"mappings":"AAmBS;AAnBT,SAAS,sBAA2C;AAEpD,SAA8B,mBAAmB;AAQ1C,MAAM,qBAAsD,CAAC,EAAE,IAAI,WAAW,SAAS,GAAG,MAAM,MAAM;AAC3G,QAAM,WAAW,YAAY;AAC7B,QAAM,eAAe,CAAC,UAAsC;AAC1D,cAAU,KAAK;AACf,QAAI,IAAI;AACN,eAAS,IAAI,SAAS;AAAA,IACxB;AAAA,EACF;AAEA,SAAO,oBAAC,kBAAe,SAAS,cAAe,GAAG,OAAO;AAC3D;AAEO,MAAM,mBAAoD,CAAC,EAAE,IAAI,GAAG,MAAM,MAAM;AACrF,MAAI,IAAI;AACN,WAAO,oBAAC,sBAAmB,IAAS,GAAG,OAAO;AAAA,EAChD,OAAO;AACL,WAAO,oBAAC,kBAAgB,GAAG,OAAO;AAAA,EACpC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/ListItemButtonEx.tsx"],"sourcesContent":["import { ListItemButton, ListItemButtonProps } from '@mui/material'\nimport { MouseEvent } from 'react'\nimport { NavigateOptions, To, useNavigate } from 'react-router-dom'\n\nexport interface ListItemButtonExProps extends ListItemButtonProps {\n target?: string\n to?: To\n toOptions?: NavigateOptions\n}\n\nexport const ListItemButtonExTo: React.FC<ListItemButtonExProps> = ({ to, toOptions, onClick, ...props }) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n navigate(to, toOptions)\n }\n }\n\n return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n if (to) {\n return <ListItemButtonExTo to={to} {...props} />\n } else {\n return <ListItemButton {...props} />\n }\n}\n"],"mappings":";AAAA,SAAS,sBAA2C;AAEpD,SAA8B,mBAAmB;AAiBxC;AATF,IAAM,qBAAsD,CAAC,EAAE,IAAI,WAAW,SAAS,GAAG,MAAM,MAAM;AAC3G,QAAM,WAAW,YAAY;AAC7B,QAAM,eAAe,CAAC,UAAsC;AAC1D,cAAU,KAAK;AACf,QAAI,IAAI;AACN,eAAS,IAAI,SAAS;AAAA,IACxB;AAAA,EACF;AAEA,SAAO,oBAAC,kBAAe,SAAS,cAAe,GAAG,OAAO;AAC3D;AAEO,IAAM,mBAAoD,CAAC,EAAE,IAAI,GAAG,MAAM,MAAM;AACrF,MAAI,IAAI;AACN,WAAO,oBAAC,sBAAmB,IAAS,GAAG,OAAO;AAAA,EAChD,OAAO;AACL,WAAO,oBAAC,kBAAgB,GAAG,OAAO;AAAA,EACpC;AACF;","names":[]}
@@ -1,18 +1,31 @@
1
- import { Fragment, jsx } from "react/jsx-runtime";
1
+ // src/components/LoadResult.tsx
2
2
  import { FlexGrowRow } from "@xylabs/react-flexbox";
3
- import { NotFound } from "./NotFound";
3
+
4
+ // src/components/NotFound.tsx
5
+ import { Typography } from "@mui/material";
6
+ import { FlexGrowCol } from "@xylabs/react-flexbox";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ var NotFound = (props) => {
9
+ return /* @__PURE__ */ jsxs(FlexGrowCol, { ...props, children: [
10
+ /* @__PURE__ */ jsx(Typography, { variant: "h2", children: "Sorry!" }),
11
+ /* @__PURE__ */ jsx(Typography, { marginY: 3, variant: "body2", children: "Can't find anything here" })
12
+ ] });
13
+ };
14
+
15
+ // src/components/LoadResult.tsx
16
+ import { Fragment, jsx as jsx2 } from "react/jsx-runtime";
4
17
  function LoadResult(props) {
5
18
  const { notFound, error, searchResult, children } = props;
6
19
  if (notFound) {
7
- return /* @__PURE__ */ jsx(NotFound, {});
20
+ return /* @__PURE__ */ jsx2(NotFound, {});
8
21
  }
9
22
  if (error) {
10
- return /* @__PURE__ */ jsx(Fragment, { children });
23
+ return /* @__PURE__ */ jsx2(Fragment, { children });
11
24
  }
12
25
  if (searchResult === void 0) {
13
- return /* @__PURE__ */ jsx(FlexGrowRow, { busy: true, minHeight: "50px" });
26
+ return /* @__PURE__ */ jsx2(FlexGrowRow, { busy: true, minHeight: "50px" });
14
27
  } else {
15
- return /* @__PURE__ */ jsx(Fragment, { children });
28
+ return /* @__PURE__ */ jsx2(Fragment, { children });
16
29
  }
17
30
  }
18
31
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/LoadResult.tsx"],"sourcesContent":["import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { PropsWithChildren } from 'react'\n\nimport { NotFound } from './NotFound'\n\nexport interface LoadResultProps<T> {\n /** @deprecated - use error prop */\n apiError?: Error\n /** Defer error handling to the children and load them */\n error?: boolean\n notFound: boolean\n searchResult: T | undefined\n}\n\nexport function LoadResult<T>(props: PropsWithChildren<LoadResultProps<T>>) {\n const { notFound, error, searchResult, children } = props\n if (notFound) {\n return <NotFound />\n }\n if (error) {\n return <>{children}</>\n }\n if (searchResult === undefined) {\n return <FlexGrowRow busy minHeight=\"50px\" />\n } else {\n return <>{children}</>\n }\n}\n"],"mappings":"AAiBW,SAGA,UAHA;AAjBX,SAAS,mBAAmB;AAG5B,SAAS,gBAAgB;AAWlB,SAAS,WAAc,OAA8C;AAC1E,QAAM,EAAE,UAAU,OAAO,cAAc,SAAS,IAAI;AACpD,MAAI,UAAU;AACZ,WAAO,oBAAC,YAAS;AAAA,EACnB;AACA,MAAI,OAAO;AACT,WAAO,gCAAG,UAAS;AAAA,EACrB;AACA,MAAI,iBAAiB,QAAW;AAC9B,WAAO,oBAAC,eAAY,MAAI,MAAC,WAAU,QAAO;AAAA,EAC5C,OAAO;AACL,WAAO,gCAAG,UAAS;AAAA,EACrB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/LoadResult.tsx","../../../src/components/NotFound.tsx"],"sourcesContent":["import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { PropsWithChildren } from 'react'\n\nimport { NotFound } from './NotFound'\n\nexport interface LoadResultProps<T> {\n /** @deprecated - use error prop */\n apiError?: Error\n /** Defer error handling to the children and load them */\n error?: boolean\n notFound: boolean\n searchResult: T | undefined\n}\n\nexport function LoadResult<T>(props: PropsWithChildren<LoadResultProps<T>>) {\n const { notFound, error, searchResult, children } = props\n if (notFound) {\n return <NotFound />\n }\n if (error) {\n return <>{children}</>\n }\n if (searchResult === undefined) {\n return <FlexGrowRow busy minHeight=\"50px\" />\n } else {\n return <>{children}</>\n }\n}\n","import { Typography } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\n\nconst NotFound: React.FC<FlexBoxProps> = (props) => {\n return (\n <FlexGrowCol {...props}>\n <Typography variant=\"h2\">Sorry!</Typography>\n <Typography marginY={3} variant=\"body2\">\n {\"Can't find anything here\"}\n </Typography>\n </FlexGrowCol>\n )\n}\n\nexport { NotFound }\n"],"mappings":";AAAA,SAAS,mBAAmB;;;ACA5B,SAAS,kBAAkB;AAC3B,SAAuB,mBAAmB;AAItC,SACE,KADF;AAFJ,IAAM,WAAmC,CAAC,UAAU;AAClD,SACE,qBAAC,eAAa,GAAG,OACf;AAAA,wBAAC,cAAW,SAAQ,MAAK,oBAAM;AAAA,IAC/B,oBAAC,cAAW,SAAS,GAAG,SAAQ,SAC7B,sCACH;AAAA,KACF;AAEJ;;;ADKW,SAGA,UAHA,OAAAA,YAAA;AAHJ,SAAS,WAAc,OAA8C;AAC1E,QAAM,EAAE,UAAU,OAAO,cAAc,SAAS,IAAI;AACpD,MAAI,UAAU;AACZ,WAAO,gBAAAA,KAAC,YAAS;AAAA,EACnB;AACA,MAAI,OAAO;AACT,WAAO,gBAAAA,KAAA,YAAG,UAAS;AAAA,EACrB;AACA,MAAI,iBAAiB,QAAW;AAC9B,WAAO,gBAAAA,KAAC,eAAY,MAAI,MAAC,WAAU,QAAO;AAAA,EAC5C,OAAO;AACL,WAAO,gBAAAA,KAAA,YAAG,UAAS;AAAA,EACrB;AACF;","names":["jsx"]}
@@ -1,7 +1,8 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ // src/components/NotFound.tsx
2
2
  import { Typography } from "@mui/material";
3
3
  import { FlexGrowCol } from "@xylabs/react-flexbox";
4
- const NotFound = (props) => {
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ var NotFound = (props) => {
5
6
  return /* @__PURE__ */ jsxs(FlexGrowCol, { ...props, children: [
6
7
  /* @__PURE__ */ jsx(Typography, { variant: "h2", children: "Sorry!" }),
7
8
  /* @__PURE__ */ jsx(Typography, { marginY: 3, variant: "body2", children: "Can't find anything here" })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NotFound.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\n\nconst NotFound: React.FC<FlexBoxProps> = (props) => {\n return (\n <FlexGrowCol {...props}>\n <Typography variant=\"h2\">Sorry!</Typography>\n <Typography marginY={3} variant=\"body2\">\n {\"Can't find anything here\"}\n </Typography>\n </FlexGrowCol>\n )\n}\n\nexport { NotFound }\n"],"mappings":"AAKI,SACE,KADF;AALJ,SAAS,kBAAkB;AAC3B,SAAuB,mBAAmB;AAE1C,MAAM,WAAmC,CAAC,UAAU;AAClD,SACE,qBAAC,eAAa,GAAG,OACf;AAAA,wBAAC,cAAW,SAAQ,MAAK,oBAAM;AAAA,IAC/B,oBAAC,cAAW,SAAS,GAAG,SAAQ,SAC7B,sCACH;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/NotFound.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\n\nconst NotFound: React.FC<FlexBoxProps> = (props) => {\n return (\n <FlexGrowCol {...props}>\n <Typography variant=\"h2\">Sorry!</Typography>\n <Typography marginY={3} variant=\"body2\">\n {\"Can't find anything here\"}\n </Typography>\n </FlexGrowCol>\n )\n}\n\nexport { NotFound }\n"],"mappings":";AAAA,SAAS,kBAAkB;AAC3B,SAAuB,mBAAmB;AAItC,SACE,KADF;AAFJ,IAAM,WAAmC,CAAC,UAAU;AAClD,SACE,qBAAC,eAAa,GAAG,OACf;AAAA,wBAAC,cAAW,SAAQ,MAAK,oBAAM;AAAA,IAC/B,oBAAC,cAAW,SAAS,GAAG,SAAQ,SAC7B,sCACH;AAAA,KACF;AAEJ;","names":[]}