@xyo-network/react-webapp 2.78.0 → 2.78.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/Body.tsx","../../src/components/lib/cssValues.ts","../../src/components/Chrome.tsx","../../src/components/ErrorPage.tsx","../../src/components/Page.tsx","../../src/components/NotFoundPage/Page.tsx"],"sourcesContent":["export * from './components'\n","import { Breakpoint, styled } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { ReactNode } from 'react'\n\nimport { fixedContent, scrollableContent } from './lib'\n\nconst WebAppBodyName = 'WebAppBody'\nconst propsNotForwarded = new Set(['mobileScrollingBreakpoint', 'variant', 'spacing', 'disableBreadcrumbGutter'])\nconst defaultStyledOptions = {\n shouldForwardProp: (prop: string) => !propsNotForwarded.has(prop),\n}\n\nconst WebAppBodyRoot = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Root',\n})<WebAppBodyProps>(({ spacing, theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const scrollable = variant === 'scrollable'\n return theme.unstable_sx({\n alignItems: 'stretch',\n gap: 1,\n justifyContent: 'flex-start',\n overflowX: 'visible',\n overflowY: scrollable ? 'scroll' : 'hidden',\n paddingY: spacing,\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n overflowY: 'scroll',\n },\n })\n})\n\nconst WebAppBodyBreadcrumb = styled(FlexRow, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Breadcrumb',\n})<WebAppBodyProps>(({ theme, disableBreadcrumbGutter, spacing }) =>\n theme.unstable_sx({\n justifyContent: 'start',\n marginX: disableBreadcrumbGutter ? 0 : spacing,\n }),\n)\n\nconst WebAppBodyScrollableWrapper = styled(FlexGrowCol, {\n name: WebAppBodyName,\n slot: 'ScrollableWrapper',\n})<WebAppBodyProps>(() => ({\n alignItems: 'stretch',\n}))\n\nconst WebAppBodyScrollable = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Scrollable',\n})<WebAppBodyProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableContent : fixedContent\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 'unset',\n position: 'relative',\n },\n }\n})\n\nexport interface WebAppBodyProps extends FlexBoxProps {\n breadcrumbs?: ReactNode\n disableBreadcrumbGutter?: boolean\n mobileScrollingBreakpoint?: Breakpoint\n spacing?: string | number\n variant?: 'scrollable' | 'fixed'\n}\n\nexport const WebAppBody: React.FC<WebAppBodyProps> = ({\n children,\n breadcrumbs,\n disableBreadcrumbGutter,\n mobileScrollingBreakpoint,\n spacing = 1,\n variant,\n ...props\n}) => {\n return (\n <WebAppBodyRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} spacing={spacing} variant={variant} {...props}>\n {breadcrumbs ?\n <WebAppBodyBreadcrumb disableBreadcrumbGutter={disableBreadcrumbGutter} spacing={spacing}>\n {breadcrumbs}\n </WebAppBodyBreadcrumb>\n : null}\n <WebAppBodyScrollableWrapper>\n <WebAppBodyScrollable mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant}>\n {children}\n </WebAppBodyScrollable>\n </WebAppBodyScrollableWrapper>\n </WebAppBodyRoot>\n )\n}\n","import { CSSProperties } from 'react'\n\nexport const scrollableWrap: CSSProperties = {\n inset: 0,\n position: 'absolute',\n} as const\n\nexport const fixedWrap: CSSProperties = {\n inset: 'unset',\n position: 'relative',\n} as const\n\n// Making a scrollable vs fixed wrapper and content is an inversion of the wrap and content styles\nexport const scrollableContent: CSSProperties = {\n ...fixedWrap,\n} as const\n\nexport const fixedContent: CSSProperties = {\n ...scrollableWrap,\n} as const\n","import { Divider, Paper } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { WebAppNavigationType } from '@xyo-network/react-app-settings'\nimport { ApplicationAppBar, SystemToolbar } from '@xyo-network/react-appbar'\nimport { Footer } from '@xyo-network/react-footer'\nimport { ErrorBoundary } from '@xyo-network/react-shared'\nimport { forwardRef, ReactNode } from 'react'\nimport { Helmet } from 'react-helmet'\n\nimport { WebAppErrorPage } from './ErrorPage'\n\nexport interface WebAppChromeProps extends FlexBoxProps {\n appName: string\n appbar?: ReactNode\n errorBoundary?: boolean\n errorPage?: ReactNode\n footer?: ReactNode\n footerElevation?: number\n menuItems?: ReactNode\n navigationType?: WebAppNavigationType\n}\n\nexport const WebAppChrome = forwardRef<HTMLDivElement, WebAppChromeProps>(\n ({ appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = 'menu', ...props }, ref) => {\n return (\n <FlexCol id=\"web-chrome-flex\" alignItems=\"stretch\" overflow=\"hidden\" height=\"100vh\" ref={ref} {...props}>\n <Helmet defaultTitle={appName} titleTemplate={`%s | ${appName}`}>\n <meta content=\"website\" property=\"og:type\" />\n </Helmet>\n {appbar ?? <ApplicationAppBar systemToolbar={<SystemToolbar menuItems={navigationType === 'menu' ? menuItems : undefined} />} />}\n <FlexGrowRow id=\"sidebar-nav-flex\" overflow=\"hidden\" alignItems=\"stretch\">\n {navigationType === 'menu' ? null : (\n <>\n {menuItems}\n <Divider orientation=\"vertical\" />\n </>\n )}\n <FlexGrowCol id=\"main-flex\" justifyContent=\"flex-start\" alignItems=\"stretch\">\n {errorBoundary ?\n <ErrorBoundary\n fallbackWithError={(error) => {\n return errorPage ?? <WebAppErrorPage error={error} />\n }}\n >\n {children}\n </ErrorBoundary>\n : children}\n </FlexGrowCol>\n </FlexGrowRow>\n <FlexCol id=\"footer-flex\" alignItems=\"stretch\">\n <Paper elevation={footerElevation} square>\n {footer ?? <Footer dynamicHeight />}\n </Paper>\n </FlexCol>\n </FlexCol>\n )\n },\n)\n\nWebAppChrome.displayName = 'WebAppChrome'\n","import { ButtonEx } from '@xylabs/react-button'\n\nimport { WebAppPage, WebAppPageProps } from './Page'\n\nexport interface WebAppErrorPageProps extends WebAppPageProps {\n error?: Error\n}\n\nexport const WebAppErrorPage: React.FC<WebAppErrorPageProps> = ({ error, ...props }) => (\n <WebAppPage title=\"Oops! Something went wrong\" {...props}>\n <h1>Oops! Something went wrong!</h1>\n <p>{`${error}`}</p>\n <ButtonEx href=\"/\" variant=\"contained\">\n Homepage\n </ButtonEx>\n </WebAppPage>\n)\n\n/** @deprecated use WebAppErrorPage instead */\nexport const ErrorPage = WebAppErrorPage\n","import { Container, ContainerProps, styled } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Helmet } from 'react-helmet'\nimport { useLocation } from 'react-router-dom'\n\nimport { WebAppBody, WebAppBodyProps } from './Body'\nimport { fixedWrap, scrollableWrap } from './lib'\n\nconst WebAppPageRoot = styled(FlexGrowCol, {\n name: 'WebAppPage',\n shouldForwardProp: (propName) => propName !== 'mobileScrollingBreakpoint' && propName !== 'variant',\n slot: 'Root',\n})<WebAppPageProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableWrap : fixedWrap\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n maxWidth: '100vw',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 0,\n position: 'absolute',\n },\n }\n})\n\nexport interface WebAppPageProps extends WebAppBodyProps, FlexBoxProps {\n container?: ContainerProps['maxWidth'] | 'none'\n disableGutters?: boolean\n}\n\nexport const WebAppPage: React.FC<WithChildren<WebAppPageProps>> = ({\n disableGutters,\n disableBreadcrumbGutter,\n title,\n container,\n children,\n breadcrumbs,\n mobileScrollingBreakpoint,\n variant = 'scrollable',\n ...props\n}) => {\n const userEvents = useUserEvents()\n const { pathname } = useLocation()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n await userEvents?.viewContent({ name: title ?? 'NodeBasePage', path: location.pathname })\n },\n [pathname, title, userEvents],\n )\n\n return (\n <WebAppPageRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant} {...props}>\n <Helmet title={title} />\n {container && container !== 'none' ?\n <Container\n disableGutters={disableGutters}\n style={{ alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, justifyContent: 'flex-start' }}\n maxWidth={container}\n >\n <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n </Container>\n : <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n paddingX={disableGutters ? 0 : 1}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n }\n </WebAppPageRoot>\n )\n}\n\n/** @deprecated use WebAppPagePage instead */\nexport const FlexPage = WebAppPage\n","import { NotFound } from '@xyo-network/react-shared'\n\nimport { WebAppPage, WebAppPageProps } from '../Page'\n\nexport const WebAppNotFoundPage: React.FC<WebAppPageProps> = ({ title, ...props }) => (\n <WebAppPage title={title ?? 'Sorry! Page Not Found'} {...props}>\n <NotFound />\n </WebAppPage>\n)\n\n/** @deprecated use WebAppNotFoundPage instead */\nexport const NotFoundPage = WebAppNotFoundPage\n"],"mappings":"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","names":["src_exports","__export","ErrorPage","FlexPage","NotFoundPage","WebAppBody","WebAppChrome","WebAppErrorPage","WebAppNotFoundPage","WebAppPage","__toCommonJS","import_material","import_react_flexbox","scrollableWrap","fixedWrap","scrollableContent","fixedContent","import_jsx_runtime","WebAppBodyName","propsNotForwarded","defaultStyledOptions","prop","WebAppBodyRoot","spacing","theme","mobileScrollingBreakpoint","variant","scrollable","WebAppBodyBreadcrumb","disableBreadcrumbGutter","WebAppBodyScrollableWrapper","WebAppBodyScrollable","scrollableContent","fixedContent","WebAppBody","children","breadcrumbs","props","import_material","import_react_flexbox","import_react_appbar","import_react_footer","import_react_shared","import_react","import_react_helmet","import_react_button","import_material","import_react_async_effect","import_react_flexbox","import_react_pixel","import_react_helmet","import_react_router_dom","import_jsx_runtime","WebAppPageRoot","propName","theme","mobileScrollingBreakpoint","variant","scrollableWrap","fixedWrap","WebAppPage","disableGutters","disableBreadcrumbGutter","title","container","children","breadcrumbs","props","userEvents","pathname","WebAppBody","FlexPage","import_jsx_runtime","WebAppErrorPage","error","props","WebAppPage","ErrorPage","import_jsx_runtime","WebAppChrome","appName","appbar","children","errorBoundary","errorPage","footer","footerElevation","menuItems","navigationType","props","ref","error","WebAppErrorPage","import_react_shared","import_jsx_runtime","WebAppNotFoundPage","title","props","WebAppPage","NotFoundPage"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/Body.tsx","../../src/components/lib/cssValues.ts","../../src/components/Chrome.tsx","../../src/components/ErrorPage.tsx","../../src/components/Page.tsx","../../src/components/NotFoundPage/Page.tsx"],"sourcesContent":["export * from './components'\n","import { Breakpoint, styled } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { ReactNode } from 'react'\n\nimport { fixedContent, scrollableContent } from './lib'\n\nconst WebAppBodyName = 'WebAppBody'\nconst propsNotForwarded = new Set(['mobileScrollingBreakpoint', 'variant', 'spacing', 'disableBreadcrumbGutter'])\nconst defaultStyledOptions = {\n shouldForwardProp: (prop: string) => !propsNotForwarded.has(prop),\n}\n\nconst WebAppBodyRoot = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Root',\n})<WebAppBodyProps>(({ spacing, theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const scrollable = variant === 'scrollable'\n return theme.unstable_sx({\n alignItems: 'stretch',\n gap: 1,\n justifyContent: 'flex-start',\n overflowX: 'visible',\n overflowY: scrollable ? 'scroll' : 'hidden',\n paddingY: spacing,\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n overflowY: 'scroll',\n },\n })\n})\n\nconst WebAppBodyBreadcrumb = styled(FlexRow, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Breadcrumb',\n})<WebAppBodyProps>(({ theme, disableBreadcrumbGutter, spacing }) =>\n theme.unstable_sx({\n justifyContent: 'start',\n marginX: disableBreadcrumbGutter ? 0 : spacing,\n }),\n)\n\nconst WebAppBodyScrollableWrapper = styled(FlexGrowCol, {\n name: WebAppBodyName,\n slot: 'ScrollableWrapper',\n})<WebAppBodyProps>(() => ({\n alignItems: 'stretch',\n}))\n\nconst WebAppBodyScrollable = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Scrollable',\n})<WebAppBodyProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableContent : fixedContent\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 'unset',\n position: 'relative',\n },\n }\n})\n\nexport interface WebAppBodyProps extends FlexBoxProps {\n breadcrumbs?: ReactNode\n disableBreadcrumbGutter?: boolean\n mobileScrollingBreakpoint?: Breakpoint\n spacing?: string | number\n variant?: 'scrollable' | 'fixed'\n}\n\nexport const WebAppBody: React.FC<WebAppBodyProps> = ({\n children,\n breadcrumbs,\n disableBreadcrumbGutter,\n mobileScrollingBreakpoint,\n spacing = 1,\n variant,\n ...props\n}) => {\n return (\n <WebAppBodyRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} spacing={spacing} variant={variant} {...props}>\n {breadcrumbs ?\n <WebAppBodyBreadcrumb disableBreadcrumbGutter={disableBreadcrumbGutter} spacing={spacing}>\n {breadcrumbs}\n </WebAppBodyBreadcrumb>\n : null}\n <WebAppBodyScrollableWrapper>\n <WebAppBodyScrollable mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant}>\n {children}\n </WebAppBodyScrollable>\n </WebAppBodyScrollableWrapper>\n </WebAppBodyRoot>\n )\n}\n","import { CSSProperties } from 'react'\n\nexport const scrollableWrap: CSSProperties = {\n inset: 0,\n position: 'absolute',\n} as const\n\nexport const fixedWrap: CSSProperties = {\n inset: 'unset',\n position: 'relative',\n} as const\n\n// Making a scrollable vs fixed wrapper and content is an inversion of the wrap and content styles\nexport const scrollableContent: CSSProperties = {\n ...fixedWrap,\n} as const\n\nexport const fixedContent: CSSProperties = {\n ...scrollableWrap,\n} as const\n","import { Divider, Paper } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { WebAppNavigationType } from '@xyo-network/react-app-settings'\nimport { ApplicationAppBar, SystemToolbar } from '@xyo-network/react-appbar'\nimport { Footer } from '@xyo-network/react-footer'\nimport { ErrorBoundary } from '@xyo-network/react-shared'\nimport { forwardRef, ReactNode } from 'react'\nimport { Helmet } from 'react-helmet'\n\nimport { WebAppErrorPage } from './ErrorPage'\n\nexport interface WebAppChromeProps extends FlexBoxProps {\n appName: string\n appbar?: ReactNode\n errorBoundary?: boolean\n errorPage?: ReactNode\n footer?: ReactNode\n footerElevation?: number\n menuItems?: ReactNode\n navigationType?: WebAppNavigationType\n}\n\nexport const WebAppChrome = forwardRef<HTMLDivElement, WebAppChromeProps>(\n ({ appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = 'menu', ...props }, ref) => {\n return (\n <FlexCol id=\"web-chrome-flex\" alignItems=\"stretch\" overflow=\"hidden\" height=\"100vh\" ref={ref} {...props}>\n <Helmet defaultTitle={appName} titleTemplate={`%s | ${appName}`}>\n <meta content=\"website\" property=\"og:type\" />\n </Helmet>\n {appbar ?? <ApplicationAppBar systemToolbar={<SystemToolbar menuItems={navigationType === 'menu' ? menuItems : undefined} />} />}\n <FlexGrowRow id=\"sidebar-nav-flex\" overflow=\"hidden\" alignItems=\"stretch\">\n {navigationType === 'menu' ? null : (\n <>\n {menuItems}\n <Divider orientation=\"vertical\" />\n </>\n )}\n <FlexGrowCol id=\"main-flex\" justifyContent=\"flex-start\" alignItems=\"stretch\">\n {errorBoundary ?\n <ErrorBoundary\n fallbackWithError={(error) => {\n return errorPage ?? <WebAppErrorPage error={error} />\n }}\n >\n {children}\n </ErrorBoundary>\n : children}\n </FlexGrowCol>\n </FlexGrowRow>\n <FlexCol id=\"footer-flex\" alignItems=\"stretch\">\n <Paper elevation={footerElevation} square>\n {footer ?? <Footer dynamicHeight />}\n </Paper>\n </FlexCol>\n </FlexCol>\n )\n },\n)\n\nWebAppChrome.displayName = 'WebAppChrome'\n","import { ButtonEx } from '@xylabs/react-button'\n\nimport { WebAppPage, WebAppPageProps } from './Page'\n\nexport interface WebAppErrorPageProps extends WebAppPageProps {\n error?: Error\n}\n\nexport const WebAppErrorPage: React.FC<WebAppErrorPageProps> = ({ error, ...props }) => (\n <WebAppPage title=\"Oops! Something went wrong\" {...props}>\n <h1>Oops! Something went wrong!</h1>\n <p>{`${error}`}</p>\n <ButtonEx href=\"/\" variant=\"contained\">\n Homepage\n </ButtonEx>\n </WebAppPage>\n)\n\n/** @deprecated use WebAppErrorPage instead */\nexport const ErrorPage = WebAppErrorPage\n","import { Container, ContainerProps, styled } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Helmet } from 'react-helmet'\nimport { useLocation } from 'react-router-dom'\n\nimport { WebAppBody, WebAppBodyProps } from './Body'\nimport { fixedWrap, scrollableWrap } from './lib'\n\nconst WebAppPageRoot = styled(FlexGrowCol, {\n name: 'WebAppPage',\n shouldForwardProp: (propName) => propName !== 'mobileScrollingBreakpoint' && propName !== 'variant',\n slot: 'Root',\n})<WebAppPageProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableWrap : fixedWrap\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n maxWidth: '100vw',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 0,\n position: 'absolute',\n },\n }\n})\n\nexport interface WebAppPageProps extends WebAppBodyProps, FlexBoxProps {\n container?: ContainerProps['maxWidth'] | 'none'\n disableGutters?: boolean\n}\n\nexport const WebAppPage: React.FC<WithChildren<WebAppPageProps>> = ({\n disableGutters,\n disableBreadcrumbGutter,\n title,\n container,\n children,\n breadcrumbs,\n mobileScrollingBreakpoint,\n variant = 'scrollable',\n ...props\n}) => {\n const userEvents = useUserEvents()\n const { pathname } = useLocation()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n await userEvents?.viewContent({ name: title ?? 'NodeBasePage', path: location.pathname })\n },\n [pathname, title, userEvents],\n )\n\n return (\n <WebAppPageRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant} {...props}>\n <Helmet title={title} />\n {container && container !== 'none' ?\n <Container\n disableGutters={disableGutters}\n style={{ alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, justifyContent: 'flex-start' }}\n maxWidth={container}\n >\n <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n </Container>\n : <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n paddingX={disableGutters ? 0 : 1}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n }\n </WebAppPageRoot>\n )\n}\n\n/** @deprecated use WebAppPagePage instead */\nexport const FlexPage = WebAppPage\n","import { NotFound } from '@xyo-network/react-shared'\n\nimport { WebAppPage, WebAppPageProps } from '../Page'\n\nexport const WebAppNotFoundPage: React.FC<WebAppPageProps> = ({ title, ...props }) => (\n <WebAppPage title={title ?? 'Sorry! Page Not Found'} {...props}>\n <NotFound />\n </WebAppPage>\n)\n\n/** @deprecated use WebAppNotFoundPage instead */\nexport const NotFoundPage = WebAppNotFoundPage\n"],"mappings":"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","names":["import_material","import_react_flexbox","import_react_helmet","import_material","import_react_flexbox","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react_shared","import_jsx_runtime"]}
@@ -1,2 +1,238 @@
1
- import{styled as d}from"@mui/material";import{FlexGrowCol as u,FlexRow as N}from"@xylabs/react-flexbox";var x={inset:0,position:"absolute"},W={inset:"unset",position:"relative"},w={...W},F={...x};import{jsx as g,jsxs as H}from"react/jsx-runtime";var c="WebAppBody",E=new Set(["mobileScrollingBreakpoint","variant","spacing","disableBreadcrumbGutter"]),A={shouldForwardProp:e=>!E.has(e)},G=d(u,{...A,name:c,slot:"Root"})(({spacing:e,theme:o,mobileScrollingBreakpoint:r="sm",variant:t})=>{let a=t==="scrollable";return o.unstable_sx({alignItems:"stretch",gap:1,justifyContent:"flex-start",overflowX:"visible",overflowY:a?"scroll":"hidden",paddingY:e,[o.breakpoints.down(r)]:{overflowY:"scroll"}})}),k=d(N,{...A,name:c,slot:"Breadcrumb"})(({theme:e,disableBreadcrumbGutter:o,spacing:r})=>e.unstable_sx({justifyContent:"start",marginX:o?0:r})),I=d(u,{name:c,slot:"ScrollableWrapper"})(()=>({alignItems:"stretch"})),T=d(u,{...A,name:c,slot:"Scrollable"})(({theme:e,mobileScrollingBreakpoint:o="sm",variant:r})=>({...r==="scrollable"?w:F,alignItems:"stretch",justifyContent:"start",[e.breakpoints.down(o)]:{inset:"unset",position:"relative"}})),B=({children:e,breadcrumbs:o,disableBreadcrumbGutter:r,mobileScrollingBreakpoint:t,spacing:a=1,variant:n,...s})=>H(G,{mobileScrollingBreakpoint:t,spacing:a,variant:n,...s,children:[o?g(k,{disableBreadcrumbGutter:r,spacing:a,children:o}):null,g(I,{children:g(T,{mobileScrollingBreakpoint:t,variant:n,children:e})})]});import{Divider as z,Paper as J}from"@mui/material";import{FlexCol as S,FlexGrowCol as K,FlexGrowRow as Q}from"@xylabs/react-flexbox";import{ApplicationAppBar as V,SystemToolbar as Z}from"@xyo-network/react-appbar";import{Footer as ee}from"@xyo-network/react-footer";import{ErrorBoundary as oe}from"@xyo-network/react-shared";import{forwardRef as re}from"react";import{Helmet as te}from"react-helmet";import{ButtonEx as M}from"@xylabs/react-button";import{Container as D,styled as O}from"@mui/material";import{useAsyncEffect as X}from"@xylabs/react-async-effect";import{FlexGrowCol as Y}from"@xylabs/react-flexbox";import{useUserEvents as L}from"@xylabs/react-pixel";import{Helmet as _}from"react-helmet";import{useLocation as $}from"react-router-dom";import{jsx as f,jsxs as q}from"react/jsx-runtime";var j=O(Y,{name:"WebAppPage",shouldForwardProp:e=>e!=="mobileScrollingBreakpoint"&&e!=="variant",slot:"Root"})(({theme:e,mobileScrollingBreakpoint:o="sm",variant:r})=>({...r==="scrollable"?x:W,alignItems:"stretch",justifyContent:"start",maxWidth:"100vw",[e.breakpoints.down(o)]:{inset:0,position:"absolute"}})),b=({disableGutters:e,disableBreadcrumbGutter:o,title:r,container:t,children:a,breadcrumbs:n,mobileScrollingBreakpoint:s,variant:l="scrollable",...i})=>{let m=L(),{pathname:P}=$();return X(async()=>{await(m==null?void 0:m.viewContent({name:r??"NodeBasePage",path:location.pathname}))},[P,r,m]),q(j,{mobileScrollingBreakpoint:s,variant:l,...i,children:[f(_,{title:r}),t&&t!=="none"?f(D,{disableGutters:e,style:{alignItems:"stretch",display:"flex",flexDirection:"column",flexGrow:1,justifyContent:"flex-start"},maxWidth:t,children:f(B,{disableBreadcrumbGutter:o,breadcrumbs:n,mobileScrollingBreakpoint:s,variant:l,...i,children:a})}):f(B,{disableBreadcrumbGutter:o,breadcrumbs:n,mobileScrollingBreakpoint:s,paddingX:e?0:1,variant:l,...i,children:a})]})},Se=b;import{jsx as y,jsxs as U}from"react/jsx-runtime";var h=({error:e,...o})=>U(b,{title:"Oops! Something went wrong",...o,children:[y("h1",{children:"Oops! Something went wrong!"}),y("p",{children:`${e}`}),y(M,{href:"/",variant:"contained",children:"Homepage"})]}),ke=h;import{Fragment as ae,jsx as p,jsxs as C}from"react/jsx-runtime";var pe=re(({appName:e,appbar:o,children:r,errorBoundary:t,errorPage:a,footer:n,footerElevation:s=4,menuItems:l,navigationType:i="menu",...m},P)=>C(S,{id:"web-chrome-flex",alignItems:"stretch",overflow:"hidden",height:"100vh",ref:P,...m,children:[p(te,{defaultTitle:e,titleTemplate:`%s | ${e}`,children:p("meta",{content:"website",property:"og:type"})}),o??p(V,{systemToolbar:p(Z,{menuItems:i==="menu"?l:void 0})}),C(Q,{id:"sidebar-nav-flex",overflow:"hidden",alignItems:"stretch",children:[i==="menu"?null:C(ae,{children:[l,p(z,{orientation:"vertical"})]}),p(K,{id:"main-flex",justifyContent:"flex-start",alignItems:"stretch",children:t?p(oe,{fallbackWithError:R=>a??p(h,{error:R}),children:r}):r})]}),p(S,{id:"footer-flex",alignItems:"stretch",children:p(J,{elevation:s,square:!0,children:n??p(ee,{dynamicHeight:!0})})})]}));pe.displayName="WebAppChrome";import{NotFound as ne}from"@xyo-network/react-shared";import{jsx as v}from"react/jsx-runtime";var se=({title:e,...o})=>v(b,{title:e??"Sorry! Page Not Found",...o,children:v(ne,{})}),Qe=se;export{ke as ErrorPage,Se as FlexPage,Qe as NotFoundPage,B as WebAppBody,pe as WebAppChrome,h as WebAppErrorPage,se as WebAppNotFoundPage,b as WebAppPage};
1
+ // src/components/Body.tsx
2
+ import { styled } from "@mui/material";
3
+ import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
4
+
5
+ // src/components/lib/cssValues.ts
6
+ var scrollableWrap = {
7
+ inset: 0,
8
+ position: "absolute"
9
+ };
10
+ var fixedWrap = {
11
+ inset: "unset",
12
+ position: "relative"
13
+ };
14
+ var scrollableContent = {
15
+ ...fixedWrap
16
+ };
17
+ var fixedContent = {
18
+ ...scrollableWrap
19
+ };
20
+
21
+ // src/components/Body.tsx
22
+ import { jsx, jsxs } from "react/jsx-runtime";
23
+ var WebAppBodyName = "WebAppBody";
24
+ var propsNotForwarded = /* @__PURE__ */ new Set(["mobileScrollingBreakpoint", "variant", "spacing", "disableBreadcrumbGutter"]);
25
+ var defaultStyledOptions = {
26
+ shouldForwardProp: (prop) => !propsNotForwarded.has(prop)
27
+ };
28
+ var WebAppBodyRoot = styled(FlexGrowCol, {
29
+ ...defaultStyledOptions,
30
+ name: WebAppBodyName,
31
+ slot: "Root"
32
+ })(({ spacing, theme, mobileScrollingBreakpoint = "sm", variant }) => {
33
+ const scrollable = variant === "scrollable";
34
+ return theme.unstable_sx({
35
+ alignItems: "stretch",
36
+ gap: 1,
37
+ justifyContent: "flex-start",
38
+ overflowX: "visible",
39
+ overflowY: scrollable ? "scroll" : "hidden",
40
+ paddingY: spacing,
41
+ [theme.breakpoints.down(mobileScrollingBreakpoint)]: {
42
+ overflowY: "scroll"
43
+ }
44
+ });
45
+ });
46
+ var WebAppBodyBreadcrumb = styled(FlexRow, {
47
+ ...defaultStyledOptions,
48
+ name: WebAppBodyName,
49
+ slot: "Breadcrumb"
50
+ })(
51
+ ({ theme, disableBreadcrumbGutter, spacing }) => theme.unstable_sx({
52
+ justifyContent: "start",
53
+ marginX: disableBreadcrumbGutter ? 0 : spacing
54
+ })
55
+ );
56
+ var WebAppBodyScrollableWrapper = styled(FlexGrowCol, {
57
+ name: WebAppBodyName,
58
+ slot: "ScrollableWrapper"
59
+ })(() => ({
60
+ alignItems: "stretch"
61
+ }));
62
+ var WebAppBodyScrollable = styled(FlexGrowCol, {
63
+ ...defaultStyledOptions,
64
+ name: WebAppBodyName,
65
+ slot: "Scrollable"
66
+ })(({ theme, mobileScrollingBreakpoint = "sm", variant }) => {
67
+ const props = variant === "scrollable" ? scrollableContent : fixedContent;
68
+ return {
69
+ ...props,
70
+ alignItems: "stretch",
71
+ justifyContent: "start",
72
+ [theme.breakpoints.down(mobileScrollingBreakpoint)]: {
73
+ inset: "unset",
74
+ position: "relative"
75
+ }
76
+ };
77
+ });
78
+ var WebAppBody = ({
79
+ children,
80
+ breadcrumbs,
81
+ disableBreadcrumbGutter,
82
+ mobileScrollingBreakpoint,
83
+ spacing = 1,
84
+ variant,
85
+ ...props
86
+ }) => {
87
+ return /* @__PURE__ */ jsxs(WebAppBodyRoot, { mobileScrollingBreakpoint, spacing, variant, ...props, children: [
88
+ breadcrumbs ? /* @__PURE__ */ jsx(WebAppBodyBreadcrumb, { disableBreadcrumbGutter, spacing, children: breadcrumbs }) : null,
89
+ /* @__PURE__ */ jsx(WebAppBodyScrollableWrapper, { children: /* @__PURE__ */ jsx(WebAppBodyScrollable, { mobileScrollingBreakpoint, variant, children }) })
90
+ ] });
91
+ };
92
+
93
+ // src/components/Chrome.tsx
94
+ import { Divider, Paper } from "@mui/material";
95
+ import { FlexCol, FlexGrowCol as FlexGrowCol3, FlexGrowRow } from "@xylabs/react-flexbox";
96
+ import { ApplicationAppBar, SystemToolbar } from "@xyo-network/react-appbar";
97
+ import { Footer } from "@xyo-network/react-footer";
98
+ import { ErrorBoundary } from "@xyo-network/react-shared";
99
+ import { forwardRef } from "react";
100
+ import { Helmet as Helmet2 } from "react-helmet";
101
+
102
+ // src/components/ErrorPage.tsx
103
+ import { ButtonEx } from "@xylabs/react-button";
104
+
105
+ // src/components/Page.tsx
106
+ import { Container, styled as styled2 } from "@mui/material";
107
+ import { useAsyncEffect } from "@xylabs/react-async-effect";
108
+ import { FlexGrowCol as FlexGrowCol2 } from "@xylabs/react-flexbox";
109
+ import { useUserEvents } from "@xylabs/react-pixel";
110
+ import { Helmet } from "react-helmet";
111
+ import { useLocation } from "react-router-dom";
112
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
113
+ var WebAppPageRoot = styled2(FlexGrowCol2, {
114
+ name: "WebAppPage",
115
+ shouldForwardProp: (propName) => propName !== "mobileScrollingBreakpoint" && propName !== "variant",
116
+ slot: "Root"
117
+ })(({ theme, mobileScrollingBreakpoint = "sm", variant }) => {
118
+ const props = variant === "scrollable" ? scrollableWrap : fixedWrap;
119
+ return {
120
+ ...props,
121
+ alignItems: "stretch",
122
+ justifyContent: "start",
123
+ maxWidth: "100vw",
124
+ [theme.breakpoints.down(mobileScrollingBreakpoint)]: {
125
+ inset: 0,
126
+ position: "absolute"
127
+ }
128
+ };
129
+ });
130
+ var WebAppPage = ({
131
+ disableGutters,
132
+ disableBreadcrumbGutter,
133
+ title,
134
+ container,
135
+ children,
136
+ breadcrumbs,
137
+ mobileScrollingBreakpoint,
138
+ variant = "scrollable",
139
+ ...props
140
+ }) => {
141
+ const userEvents = useUserEvents();
142
+ const { pathname } = useLocation();
143
+ useAsyncEffect(
144
+ // eslint-disable-next-line react-hooks/exhaustive-deps
145
+ async () => {
146
+ await (userEvents == null ? void 0 : userEvents.viewContent({ name: title ?? "NodeBasePage", path: location.pathname }));
147
+ },
148
+ [pathname, title, userEvents]
149
+ );
150
+ return /* @__PURE__ */ jsxs2(WebAppPageRoot, { mobileScrollingBreakpoint, variant, ...props, children: [
151
+ /* @__PURE__ */ jsx2(Helmet, { title }),
152
+ container && container !== "none" ? /* @__PURE__ */ jsx2(
153
+ Container,
154
+ {
155
+ disableGutters,
156
+ style: { alignItems: "stretch", display: "flex", flexDirection: "column", flexGrow: 1, justifyContent: "flex-start" },
157
+ maxWidth: container,
158
+ children: /* @__PURE__ */ jsx2(
159
+ WebAppBody,
160
+ {
161
+ disableBreadcrumbGutter,
162
+ breadcrumbs,
163
+ mobileScrollingBreakpoint,
164
+ variant,
165
+ ...props,
166
+ children
167
+ }
168
+ )
169
+ }
170
+ ) : /* @__PURE__ */ jsx2(
171
+ WebAppBody,
172
+ {
173
+ disableBreadcrumbGutter,
174
+ breadcrumbs,
175
+ mobileScrollingBreakpoint,
176
+ paddingX: disableGutters ? 0 : 1,
177
+ variant,
178
+ ...props,
179
+ children
180
+ }
181
+ )
182
+ ] });
183
+ };
184
+ var FlexPage = WebAppPage;
185
+
186
+ // src/components/ErrorPage.tsx
187
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
188
+ var WebAppErrorPage = ({ error, ...props }) => /* @__PURE__ */ jsxs3(WebAppPage, { title: "Oops! Something went wrong", ...props, children: [
189
+ /* @__PURE__ */ jsx3("h1", { children: "Oops! Something went wrong!" }),
190
+ /* @__PURE__ */ jsx3("p", { children: `${error}` }),
191
+ /* @__PURE__ */ jsx3(ButtonEx, { href: "/", variant: "contained", children: "Homepage" })
192
+ ] });
193
+ var ErrorPage = WebAppErrorPage;
194
+
195
+ // src/components/Chrome.tsx
196
+ import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
197
+ var WebAppChrome = forwardRef(
198
+ ({ appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = "menu", ...props }, ref) => {
199
+ return /* @__PURE__ */ jsxs4(FlexCol, { id: "web-chrome-flex", alignItems: "stretch", overflow: "hidden", height: "100vh", ref, ...props, children: [
200
+ /* @__PURE__ */ jsx4(Helmet2, { defaultTitle: appName, titleTemplate: `%s | ${appName}`, children: /* @__PURE__ */ jsx4("meta", { content: "website", property: "og:type" }) }),
201
+ appbar ?? /* @__PURE__ */ jsx4(ApplicationAppBar, { systemToolbar: /* @__PURE__ */ jsx4(SystemToolbar, { menuItems: navigationType === "menu" ? menuItems : void 0 }) }),
202
+ /* @__PURE__ */ jsxs4(FlexGrowRow, { id: "sidebar-nav-flex", overflow: "hidden", alignItems: "stretch", children: [
203
+ navigationType === "menu" ? null : /* @__PURE__ */ jsxs4(Fragment, { children: [
204
+ menuItems,
205
+ /* @__PURE__ */ jsx4(Divider, { orientation: "vertical" })
206
+ ] }),
207
+ /* @__PURE__ */ jsx4(FlexGrowCol3, { id: "main-flex", justifyContent: "flex-start", alignItems: "stretch", children: errorBoundary ? /* @__PURE__ */ jsx4(
208
+ ErrorBoundary,
209
+ {
210
+ fallbackWithError: (error) => {
211
+ return errorPage ?? /* @__PURE__ */ jsx4(WebAppErrorPage, { error });
212
+ },
213
+ children
214
+ }
215
+ ) : children })
216
+ ] }),
217
+ /* @__PURE__ */ jsx4(FlexCol, { id: "footer-flex", alignItems: "stretch", children: /* @__PURE__ */ jsx4(Paper, { elevation: footerElevation, square: true, children: footer ?? /* @__PURE__ */ jsx4(Footer, { dynamicHeight: true }) }) })
218
+ ] });
219
+ }
220
+ );
221
+ WebAppChrome.displayName = "WebAppChrome";
222
+
223
+ // src/components/NotFoundPage/Page.tsx
224
+ import { NotFound } from "@xyo-network/react-shared";
225
+ import { jsx as jsx5 } from "react/jsx-runtime";
226
+ var WebAppNotFoundPage = ({ title, ...props }) => /* @__PURE__ */ jsx5(WebAppPage, { title: title ?? "Sorry! Page Not Found", ...props, children: /* @__PURE__ */ jsx5(NotFound, {}) });
227
+ var NotFoundPage = WebAppNotFoundPage;
228
+ export {
229
+ ErrorPage,
230
+ FlexPage,
231
+ NotFoundPage,
232
+ WebAppBody,
233
+ WebAppChrome,
234
+ WebAppErrorPage,
235
+ WebAppNotFoundPage,
236
+ WebAppPage
237
+ };
2
238
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Body.tsx","../../src/components/lib/cssValues.ts","../../src/components/Chrome.tsx","../../src/components/ErrorPage.tsx","../../src/components/Page.tsx","../../src/components/NotFoundPage/Page.tsx"],"sourcesContent":["import { Breakpoint, styled } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { ReactNode } from 'react'\n\nimport { fixedContent, scrollableContent } from './lib'\n\nconst WebAppBodyName = 'WebAppBody'\nconst propsNotForwarded = new Set(['mobileScrollingBreakpoint', 'variant', 'spacing', 'disableBreadcrumbGutter'])\nconst defaultStyledOptions = {\n shouldForwardProp: (prop: string) => !propsNotForwarded.has(prop),\n}\n\nconst WebAppBodyRoot = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Root',\n})<WebAppBodyProps>(({ spacing, theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const scrollable = variant === 'scrollable'\n return theme.unstable_sx({\n alignItems: 'stretch',\n gap: 1,\n justifyContent: 'flex-start',\n overflowX: 'visible',\n overflowY: scrollable ? 'scroll' : 'hidden',\n paddingY: spacing,\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n overflowY: 'scroll',\n },\n })\n})\n\nconst WebAppBodyBreadcrumb = styled(FlexRow, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Breadcrumb',\n})<WebAppBodyProps>(({ theme, disableBreadcrumbGutter, spacing }) =>\n theme.unstable_sx({\n justifyContent: 'start',\n marginX: disableBreadcrumbGutter ? 0 : spacing,\n }),\n)\n\nconst WebAppBodyScrollableWrapper = styled(FlexGrowCol, {\n name: WebAppBodyName,\n slot: 'ScrollableWrapper',\n})<WebAppBodyProps>(() => ({\n alignItems: 'stretch',\n}))\n\nconst WebAppBodyScrollable = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Scrollable',\n})<WebAppBodyProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableContent : fixedContent\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 'unset',\n position: 'relative',\n },\n }\n})\n\nexport interface WebAppBodyProps extends FlexBoxProps {\n breadcrumbs?: ReactNode\n disableBreadcrumbGutter?: boolean\n mobileScrollingBreakpoint?: Breakpoint\n spacing?: string | number\n variant?: 'scrollable' | 'fixed'\n}\n\nexport const WebAppBody: React.FC<WebAppBodyProps> = ({\n children,\n breadcrumbs,\n disableBreadcrumbGutter,\n mobileScrollingBreakpoint,\n spacing = 1,\n variant,\n ...props\n}) => {\n return (\n <WebAppBodyRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} spacing={spacing} variant={variant} {...props}>\n {breadcrumbs ?\n <WebAppBodyBreadcrumb disableBreadcrumbGutter={disableBreadcrumbGutter} spacing={spacing}>\n {breadcrumbs}\n </WebAppBodyBreadcrumb>\n : null}\n <WebAppBodyScrollableWrapper>\n <WebAppBodyScrollable mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant}>\n {children}\n </WebAppBodyScrollable>\n </WebAppBodyScrollableWrapper>\n </WebAppBodyRoot>\n )\n}\n","import { CSSProperties } from 'react'\n\nexport const scrollableWrap: CSSProperties = {\n inset: 0,\n position: 'absolute',\n} as const\n\nexport const fixedWrap: CSSProperties = {\n inset: 'unset',\n position: 'relative',\n} as const\n\n// Making a scrollable vs fixed wrapper and content is an inversion of the wrap and content styles\nexport const scrollableContent: CSSProperties = {\n ...fixedWrap,\n} as const\n\nexport const fixedContent: CSSProperties = {\n ...scrollableWrap,\n} as const\n","import { Divider, Paper } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { WebAppNavigationType } from '@xyo-network/react-app-settings'\nimport { ApplicationAppBar, SystemToolbar } from '@xyo-network/react-appbar'\nimport { Footer } from '@xyo-network/react-footer'\nimport { ErrorBoundary } from '@xyo-network/react-shared'\nimport { forwardRef, ReactNode } from 'react'\nimport { Helmet } from 'react-helmet'\n\nimport { WebAppErrorPage } from './ErrorPage'\n\nexport interface WebAppChromeProps extends FlexBoxProps {\n appName: string\n appbar?: ReactNode\n errorBoundary?: boolean\n errorPage?: ReactNode\n footer?: ReactNode\n footerElevation?: number\n menuItems?: ReactNode\n navigationType?: WebAppNavigationType\n}\n\nexport const WebAppChrome = forwardRef<HTMLDivElement, WebAppChromeProps>(\n ({ appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = 'menu', ...props }, ref) => {\n return (\n <FlexCol id=\"web-chrome-flex\" alignItems=\"stretch\" overflow=\"hidden\" height=\"100vh\" ref={ref} {...props}>\n <Helmet defaultTitle={appName} titleTemplate={`%s | ${appName}`}>\n <meta content=\"website\" property=\"og:type\" />\n </Helmet>\n {appbar ?? <ApplicationAppBar systemToolbar={<SystemToolbar menuItems={navigationType === 'menu' ? menuItems : undefined} />} />}\n <FlexGrowRow id=\"sidebar-nav-flex\" overflow=\"hidden\" alignItems=\"stretch\">\n {navigationType === 'menu' ? null : (\n <>\n {menuItems}\n <Divider orientation=\"vertical\" />\n </>\n )}\n <FlexGrowCol id=\"main-flex\" justifyContent=\"flex-start\" alignItems=\"stretch\">\n {errorBoundary ?\n <ErrorBoundary\n fallbackWithError={(error) => {\n return errorPage ?? <WebAppErrorPage error={error} />\n }}\n >\n {children}\n </ErrorBoundary>\n : children}\n </FlexGrowCol>\n </FlexGrowRow>\n <FlexCol id=\"footer-flex\" alignItems=\"stretch\">\n <Paper elevation={footerElevation} square>\n {footer ?? <Footer dynamicHeight />}\n </Paper>\n </FlexCol>\n </FlexCol>\n )\n },\n)\n\nWebAppChrome.displayName = 'WebAppChrome'\n","import { ButtonEx } from '@xylabs/react-button'\n\nimport { WebAppPage, WebAppPageProps } from './Page'\n\nexport interface WebAppErrorPageProps extends WebAppPageProps {\n error?: Error\n}\n\nexport const WebAppErrorPage: React.FC<WebAppErrorPageProps> = ({ error, ...props }) => (\n <WebAppPage title=\"Oops! Something went wrong\" {...props}>\n <h1>Oops! Something went wrong!</h1>\n <p>{`${error}`}</p>\n <ButtonEx href=\"/\" variant=\"contained\">\n Homepage\n </ButtonEx>\n </WebAppPage>\n)\n\n/** @deprecated use WebAppErrorPage instead */\nexport const ErrorPage = WebAppErrorPage\n","import { Container, ContainerProps, styled } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Helmet } from 'react-helmet'\nimport { useLocation } from 'react-router-dom'\n\nimport { WebAppBody, WebAppBodyProps } from './Body'\nimport { fixedWrap, scrollableWrap } from './lib'\n\nconst WebAppPageRoot = styled(FlexGrowCol, {\n name: 'WebAppPage',\n shouldForwardProp: (propName) => propName !== 'mobileScrollingBreakpoint' && propName !== 'variant',\n slot: 'Root',\n})<WebAppPageProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableWrap : fixedWrap\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n maxWidth: '100vw',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 0,\n position: 'absolute',\n },\n }\n})\n\nexport interface WebAppPageProps extends WebAppBodyProps, FlexBoxProps {\n container?: ContainerProps['maxWidth'] | 'none'\n disableGutters?: boolean\n}\n\nexport const WebAppPage: React.FC<WithChildren<WebAppPageProps>> = ({\n disableGutters,\n disableBreadcrumbGutter,\n title,\n container,\n children,\n breadcrumbs,\n mobileScrollingBreakpoint,\n variant = 'scrollable',\n ...props\n}) => {\n const userEvents = useUserEvents()\n const { pathname } = useLocation()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n await userEvents?.viewContent({ name: title ?? 'NodeBasePage', path: location.pathname })\n },\n [pathname, title, userEvents],\n )\n\n return (\n <WebAppPageRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant} {...props}>\n <Helmet title={title} />\n {container && container !== 'none' ?\n <Container\n disableGutters={disableGutters}\n style={{ alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, justifyContent: 'flex-start' }}\n maxWidth={container}\n >\n <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n </Container>\n : <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n paddingX={disableGutters ? 0 : 1}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n }\n </WebAppPageRoot>\n )\n}\n\n/** @deprecated use WebAppPagePage instead */\nexport const FlexPage = WebAppPage\n","import { NotFound } from '@xyo-network/react-shared'\n\nimport { WebAppPage, WebAppPageProps } from '../Page'\n\nexport const WebAppNotFoundPage: React.FC<WebAppPageProps> = ({ title, ...props }) => (\n <WebAppPage title={title ?? 'Sorry! Page Not Found'} {...props}>\n <NotFound />\n </WebAppPage>\n)\n\n/** @deprecated use WebAppNotFoundPage instead */\nexport const NotFoundPage = WebAppNotFoundPage\n"],"mappings":"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","names":["styled","FlexGrowCol","FlexRow","scrollableWrap","fixedWrap","scrollableContent","fixedContent","jsx","jsxs","WebAppBodyName","propsNotForwarded","defaultStyledOptions","prop","WebAppBodyRoot","styled","FlexGrowCol","spacing","theme","mobileScrollingBreakpoint","variant","scrollable","WebAppBodyBreadcrumb","FlexRow","disableBreadcrumbGutter","WebAppBodyScrollableWrapper","WebAppBodyScrollable","scrollableContent","fixedContent","WebAppBody","children","breadcrumbs","props","Divider","Paper","FlexCol","FlexGrowCol","FlexGrowRow","ApplicationAppBar","SystemToolbar","Footer","ErrorBoundary","forwardRef","Helmet","ButtonEx","Container","styled","useAsyncEffect","FlexGrowCol","useUserEvents","Helmet","useLocation","jsx","jsxs","WebAppPageRoot","styled","FlexGrowCol","propName","theme","mobileScrollingBreakpoint","variant","scrollableWrap","fixedWrap","WebAppPage","disableGutters","disableBreadcrumbGutter","title","container","children","breadcrumbs","props","userEvents","useUserEvents","pathname","useLocation","useAsyncEffect","Helmet","Container","WebAppBody","FlexPage","jsx","jsxs","WebAppErrorPage","error","props","WebAppPage","ButtonEx","ErrorPage","Fragment","jsx","jsxs","WebAppChrome","forwardRef","appName","appbar","children","errorBoundary","errorPage","footer","footerElevation","menuItems","navigationType","props","ref","FlexCol","Helmet","ApplicationAppBar","SystemToolbar","FlexGrowRow","Divider","FlexGrowCol","ErrorBoundary","error","WebAppErrorPage","Paper","Footer","NotFound","jsx","WebAppNotFoundPage","title","props","WebAppPage","NotFound","NotFoundPage"]}
1
+ {"version":3,"sources":["../../src/components/Body.tsx","../../src/components/lib/cssValues.ts","../../src/components/Chrome.tsx","../../src/components/ErrorPage.tsx","../../src/components/Page.tsx","../../src/components/NotFoundPage/Page.tsx"],"sourcesContent":["import { Breakpoint, styled } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { ReactNode } from 'react'\n\nimport { fixedContent, scrollableContent } from './lib'\n\nconst WebAppBodyName = 'WebAppBody'\nconst propsNotForwarded = new Set(['mobileScrollingBreakpoint', 'variant', 'spacing', 'disableBreadcrumbGutter'])\nconst defaultStyledOptions = {\n shouldForwardProp: (prop: string) => !propsNotForwarded.has(prop),\n}\n\nconst WebAppBodyRoot = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Root',\n})<WebAppBodyProps>(({ spacing, theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const scrollable = variant === 'scrollable'\n return theme.unstable_sx({\n alignItems: 'stretch',\n gap: 1,\n justifyContent: 'flex-start',\n overflowX: 'visible',\n overflowY: scrollable ? 'scroll' : 'hidden',\n paddingY: spacing,\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n overflowY: 'scroll',\n },\n })\n})\n\nconst WebAppBodyBreadcrumb = styled(FlexRow, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Breadcrumb',\n})<WebAppBodyProps>(({ theme, disableBreadcrumbGutter, spacing }) =>\n theme.unstable_sx({\n justifyContent: 'start',\n marginX: disableBreadcrumbGutter ? 0 : spacing,\n }),\n)\n\nconst WebAppBodyScrollableWrapper = styled(FlexGrowCol, {\n name: WebAppBodyName,\n slot: 'ScrollableWrapper',\n})<WebAppBodyProps>(() => ({\n alignItems: 'stretch',\n}))\n\nconst WebAppBodyScrollable = styled(FlexGrowCol, {\n ...defaultStyledOptions,\n name: WebAppBodyName,\n slot: 'Scrollable',\n})<WebAppBodyProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableContent : fixedContent\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 'unset',\n position: 'relative',\n },\n }\n})\n\nexport interface WebAppBodyProps extends FlexBoxProps {\n breadcrumbs?: ReactNode\n disableBreadcrumbGutter?: boolean\n mobileScrollingBreakpoint?: Breakpoint\n spacing?: string | number\n variant?: 'scrollable' | 'fixed'\n}\n\nexport const WebAppBody: React.FC<WebAppBodyProps> = ({\n children,\n breadcrumbs,\n disableBreadcrumbGutter,\n mobileScrollingBreakpoint,\n spacing = 1,\n variant,\n ...props\n}) => {\n return (\n <WebAppBodyRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} spacing={spacing} variant={variant} {...props}>\n {breadcrumbs ?\n <WebAppBodyBreadcrumb disableBreadcrumbGutter={disableBreadcrumbGutter} spacing={spacing}>\n {breadcrumbs}\n </WebAppBodyBreadcrumb>\n : null}\n <WebAppBodyScrollableWrapper>\n <WebAppBodyScrollable mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant}>\n {children}\n </WebAppBodyScrollable>\n </WebAppBodyScrollableWrapper>\n </WebAppBodyRoot>\n )\n}\n","import { CSSProperties } from 'react'\n\nexport const scrollableWrap: CSSProperties = {\n inset: 0,\n position: 'absolute',\n} as const\n\nexport const fixedWrap: CSSProperties = {\n inset: 'unset',\n position: 'relative',\n} as const\n\n// Making a scrollable vs fixed wrapper and content is an inversion of the wrap and content styles\nexport const scrollableContent: CSSProperties = {\n ...fixedWrap,\n} as const\n\nexport const fixedContent: CSSProperties = {\n ...scrollableWrap,\n} as const\n","import { Divider, Paper } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { WebAppNavigationType } from '@xyo-network/react-app-settings'\nimport { ApplicationAppBar, SystemToolbar } from '@xyo-network/react-appbar'\nimport { Footer } from '@xyo-network/react-footer'\nimport { ErrorBoundary } from '@xyo-network/react-shared'\nimport { forwardRef, ReactNode } from 'react'\nimport { Helmet } from 'react-helmet'\n\nimport { WebAppErrorPage } from './ErrorPage'\n\nexport interface WebAppChromeProps extends FlexBoxProps {\n appName: string\n appbar?: ReactNode\n errorBoundary?: boolean\n errorPage?: ReactNode\n footer?: ReactNode\n footerElevation?: number\n menuItems?: ReactNode\n navigationType?: WebAppNavigationType\n}\n\nexport const WebAppChrome = forwardRef<HTMLDivElement, WebAppChromeProps>(\n ({ appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = 'menu', ...props }, ref) => {\n return (\n <FlexCol id=\"web-chrome-flex\" alignItems=\"stretch\" overflow=\"hidden\" height=\"100vh\" ref={ref} {...props}>\n <Helmet defaultTitle={appName} titleTemplate={`%s | ${appName}`}>\n <meta content=\"website\" property=\"og:type\" />\n </Helmet>\n {appbar ?? <ApplicationAppBar systemToolbar={<SystemToolbar menuItems={navigationType === 'menu' ? menuItems : undefined} />} />}\n <FlexGrowRow id=\"sidebar-nav-flex\" overflow=\"hidden\" alignItems=\"stretch\">\n {navigationType === 'menu' ? null : (\n <>\n {menuItems}\n <Divider orientation=\"vertical\" />\n </>\n )}\n <FlexGrowCol id=\"main-flex\" justifyContent=\"flex-start\" alignItems=\"stretch\">\n {errorBoundary ?\n <ErrorBoundary\n fallbackWithError={(error) => {\n return errorPage ?? <WebAppErrorPage error={error} />\n }}\n >\n {children}\n </ErrorBoundary>\n : children}\n </FlexGrowCol>\n </FlexGrowRow>\n <FlexCol id=\"footer-flex\" alignItems=\"stretch\">\n <Paper elevation={footerElevation} square>\n {footer ?? <Footer dynamicHeight />}\n </Paper>\n </FlexCol>\n </FlexCol>\n )\n },\n)\n\nWebAppChrome.displayName = 'WebAppChrome'\n","import { ButtonEx } from '@xylabs/react-button'\n\nimport { WebAppPage, WebAppPageProps } from './Page'\n\nexport interface WebAppErrorPageProps extends WebAppPageProps {\n error?: Error\n}\n\nexport const WebAppErrorPage: React.FC<WebAppErrorPageProps> = ({ error, ...props }) => (\n <WebAppPage title=\"Oops! Something went wrong\" {...props}>\n <h1>Oops! Something went wrong!</h1>\n <p>{`${error}`}</p>\n <ButtonEx href=\"/\" variant=\"contained\">\n Homepage\n </ButtonEx>\n </WebAppPage>\n)\n\n/** @deprecated use WebAppErrorPage instead */\nexport const ErrorPage = WebAppErrorPage\n","import { Container, ContainerProps, styled } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\nimport { useUserEvents } from '@xylabs/react-pixel'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { Helmet } from 'react-helmet'\nimport { useLocation } from 'react-router-dom'\n\nimport { WebAppBody, WebAppBodyProps } from './Body'\nimport { fixedWrap, scrollableWrap } from './lib'\n\nconst WebAppPageRoot = styled(FlexGrowCol, {\n name: 'WebAppPage',\n shouldForwardProp: (propName) => propName !== 'mobileScrollingBreakpoint' && propName !== 'variant',\n slot: 'Root',\n})<WebAppPageProps>(({ theme, mobileScrollingBreakpoint = 'sm', variant }) => {\n const props = variant === 'scrollable' ? scrollableWrap : fixedWrap\n return {\n ...props,\n alignItems: 'stretch',\n justifyContent: 'start',\n maxWidth: '100vw',\n [theme.breakpoints.down(mobileScrollingBreakpoint)]: {\n inset: 0,\n position: 'absolute',\n },\n }\n})\n\nexport interface WebAppPageProps extends WebAppBodyProps, FlexBoxProps {\n container?: ContainerProps['maxWidth'] | 'none'\n disableGutters?: boolean\n}\n\nexport const WebAppPage: React.FC<WithChildren<WebAppPageProps>> = ({\n disableGutters,\n disableBreadcrumbGutter,\n title,\n container,\n children,\n breadcrumbs,\n mobileScrollingBreakpoint,\n variant = 'scrollable',\n ...props\n}) => {\n const userEvents = useUserEvents()\n const { pathname } = useLocation()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async () => {\n await userEvents?.viewContent({ name: title ?? 'NodeBasePage', path: location.pathname })\n },\n [pathname, title, userEvents],\n )\n\n return (\n <WebAppPageRoot mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant} {...props}>\n <Helmet title={title} />\n {container && container !== 'none' ?\n <Container\n disableGutters={disableGutters}\n style={{ alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, justifyContent: 'flex-start' }}\n maxWidth={container}\n >\n <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n </Container>\n : <WebAppBody\n disableBreadcrumbGutter={disableBreadcrumbGutter}\n breadcrumbs={breadcrumbs}\n mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n paddingX={disableGutters ? 0 : 1}\n variant={variant}\n {...props}\n >\n {children}\n </WebAppBody>\n }\n </WebAppPageRoot>\n )\n}\n\n/** @deprecated use WebAppPagePage instead */\nexport const FlexPage = WebAppPage\n","import { NotFound } from '@xyo-network/react-shared'\n\nimport { WebAppPage, WebAppPageProps } from '../Page'\n\nexport const WebAppNotFoundPage: React.FC<WebAppPageProps> = ({ title, ...props }) => (\n <WebAppPage title={title ?? 'Sorry! Page Not Found'} {...props}>\n <NotFound />\n </WebAppPage>\n)\n\n/** @deprecated use WebAppNotFoundPage instead */\nexport const NotFoundPage = WebAppNotFoundPage\n"],"mappings":"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","names":["FlexGrowCol","Helmet","styled","FlexGrowCol","jsx","jsxs","styled","FlexGrowCol","jsx","jsxs","jsx","jsxs","Helmet","FlexGrowCol","jsx"]}
package/package.json CHANGED
@@ -10,18 +10,18 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@mui/icons-material": "^5.15.20",
14
- "@mui/material": "^5.15.20",
15
- "@mui/styles": "^5.15.20",
13
+ "@mui/icons-material": "^5.15.21",
14
+ "@mui/material": "^5.15.21",
15
+ "@mui/styles": "^5.15.21",
16
16
  "@xylabs/react-async-effect": "^3.1.7",
17
17
  "@xylabs/react-button": "^3.1.7",
18
18
  "@xylabs/react-flexbox": "^3.1.7",
19
19
  "@xylabs/react-pixel": "^3.1.7",
20
20
  "@xylabs/react-shared": "^3.1.7",
21
- "@xyo-network/react-app-settings": "~2.78.0",
22
- "@xyo-network/react-appbar": "~2.78.0",
23
- "@xyo-network/react-footer": "~2.78.0",
24
- "@xyo-network/react-shared": "~2.78.0",
21
+ "@xyo-network/react-app-settings": "^2.78.2",
22
+ "@xyo-network/react-appbar": "^2.78.2",
23
+ "@xyo-network/react-footer": "^2.78.2",
24
+ "@xyo-network/react-shared": "^2.78.2",
25
25
  "react": "^18.3.1",
26
26
  "react-dom": "^18.3.1",
27
27
  "react-helmet": "^6.1.0",
@@ -36,8 +36,8 @@
36
36
  "@xylabs/react-link": "^3.1.7",
37
37
  "@xylabs/react-pixel": "^3.1.7",
38
38
  "@xylabs/react-shared": "^3.1.7",
39
- "@xylabs/ts-scripts-yarn3": "^3.11.8",
40
- "@xylabs/tsconfig-react": "^3.11.8",
39
+ "@xylabs/ts-scripts-yarn3": "^3.11.12",
40
+ "@xylabs/tsconfig-react": "^3.11.12",
41
41
  "typescript": "^5.5.2"
42
42
  },
43
43
  "description": "Common React library for all XYO projects that use React",
@@ -91,6 +91,6 @@
91
91
  },
92
92
  "sideEffects": false,
93
93
  "types": "dist/browser/index.d.ts",
94
- "version": "2.78.0",
94
+ "version": "2.78.2",
95
95
  "type": "module"
96
96
  }