{
  "version": 3,
  "sources": ["../../src/modules/app-settings/contexts/AppSettings/Context.ts", "../../src/modules/app-settings/contexts/AppSettings/Slug.ts", "../../src/modules/app-settings/contexts/AppSettings/appSettingDefault.ts", "../../src/modules/app-settings/contexts/AppSettings/Provider.tsx", "../../src/modules/app-settings/contexts/AppSettings/StorageBase.ts", "../../src/modules/app-settings/contexts/AppSettings/Storage.ts", "../../src/modules/app-settings/contexts/AppSettings/useAppSettings.ts", "../../src/modules/app-settings/components/Developer.tsx", "../../src/modules/appbar/AppBarEx.tsx", "../../src/modules/appbar/Toolbar/Context/ContextToolbar.tsx", "../../src/modules/appbar/Toolbar/Context/LogoLinkEx.tsx", "../../src/modules/link/LinkEx.tsx", "../../src/modules/link/LinkToEx.tsx", "../../src/modules/link/LinkExProps.tsx", "../../src/modules/appbar/Toolbar/Context/Logo.tsx", "../../src/modules/appbar/Toolbar/System/SystemToolbar.tsx", "../../src/modules/appbar/SiteMenu/hooks/useMenuItemsShared.tsx", "../../src/modules/appbar/SiteMenu/Menu.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/MenuListItemContainer.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx", "../../src/modules/appbar/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx", "../../src/modules/appbar/SiteMenu/MenuSection.tsx", "../../src/modules/appbar/AppBar/Application.tsx", "../../src/modules/base-page/components/BasePage/BasePage.tsx", "../../src/modules/scroll-to-top/ScrollToTop.tsx", "../../src/modules/scroll-to-top/ScrollToTopButton.tsx", "../../src/modules/base-page/contexts/LoadStatus/Context.ts", "../../src/modules/base-page/contexts/LoadStatus/Provider.tsx", "../../src/modules/base-page/components/BasePage/DynamicSharePage.tsx", "../../src/modules/base-page/components/BasePage/LiveSharePage.tsx", "../../src/modules/base-page/components/BasePage/PermaSharePage.tsx", "../../src/modules/error/components/ErrorBoundary/ThrownErrorBoundary.tsx", "../../src/modules/error/contexts/ErrorReporter/Provider.tsx", "../../src/modules/error/contexts/ErrorReporter/Context.ts", "../../src/modules/error/contexts/ErrorReporter/useErrorReporter.tsx", "../../src/modules/error/components/ErrorQuickTipButton.tsx", "../../src/modules/hooks/useUniversalRedirect.ts", "../../src/modules/webapp/components/Body.tsx", "../../src/modules/webapp/components/lib/cssValues.ts", "../../src/modules/webapp/components/Chrome.tsx", "../../src/modules/webapp/components/ErrorPage.tsx", "../../src/modules/webapp/components/Page.tsx", "../../src/modules/webapp/components/NotFoundPage/Page.tsx"],
  "sourcesContent": ["import { createContext } from 'react'\n\nimport type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\n\n/** Properties accepted by the app settings context component. */\nexport interface AppSettingsContextProps {\n  /** Change max accounts used by the app settings context props. */\n  changeMaxAccounts?: (value: number) => void\n  /** Change navigation collapsed used by the app settings context props. */\n  changeNavigationCollapsed?: (value: boolean) => void\n  /** Change navigation type used by the app settings context props. */\n  changeNavigationType?: (value: WebAppNavigationType) => void\n  /** Change seed phrase used by the app settings context props. */\n  changeSeedPhrase?: (value: string) => void\n  /** Developer mode used by the app settings context props. */\n  developerMode?: boolean\n  /** Enable dark mode used by the app settings context props. */\n  enableDarkMode?: (value: boolean) => void\n  /** Enable developer mode used by the app settings context props. */\n  enableDeveloperMode?: (value: boolean) => void\n  /** Max accounts used by the app settings context props. */\n  maxAccounts?: number\n  /** Navigation collapsed used by the app settings context props. */\n  navigationCollapsed?: boolean\n  /** Navigation type used by the app settings context props. */\n  navigationType?: WebAppNavigationType\n  /** Seed phrase used by the app settings context props. */\n  seedPhrase?: string\n}\n\n/** React context containing the current app settings and update operations. */\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n", "import type { EnumValue } from '@ariestools/sdk'\nimport { Enum } from '@ariestools/sdk'\n\n/** Stable application-setting keys used for persistence and URL parameters. */\nexport const AppSettingSlug = Enum({\n  Developer: 'developer',\n  NavigationType: 'navigationType',\n  NavigationCollapsed: 'navigationCollapsed',\n  SeedPhrase: 'seedPhrase',\n  MaxAccounts: 'maxAccounts',\n})\n\ntype AppSettingSlug = EnumValue<typeof AppSettingSlug>\n", "import { AppSettingSlug } from './Slug.ts'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n  return {\n    [AppSettingSlug.Developer]: false,\n    [AppSettingSlug.NavigationType]: 'menu',\n    [AppSettingSlug.NavigationCollapsed]: false,\n    [AppSettingSlug.SeedPhrase]: '',\n    [AppSettingSlug.MaxAccounts]: 1,\n  }\n}\n", "import type { PropsWithChildren, ProviderProps } from 'react'\nimport React, {\n  useCallback, useMemo, useState,\n} from 'react'\n\nimport type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport type { AppSettingsContextProps } from './Context.ts'\nimport { AppSettingsContext } from './Context.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorage } from './Storage.ts'\n\n/** Properties accepted by the app settings provider component. */\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n  /** Storage used by the app settings provider props. */\n  storage?: AppSettingsStorage\n}\n\n/** Provides app settings state to descendant components. */\nexport const AppSettingsProvider: React.FC<PropsWithChildren<AppSettingsProviderProps>> = ({\n  storage,\n  value,\n  children,\n  ...props\n}) => {\n  const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [storage])\n  const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode)\n  const [navigationType, setNavigationType] = useState(storageMemo.navigationType)\n  const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed)\n  const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase)\n  const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts)\n\n  const enableDeveloperMode = useCallback((value: boolean) => {\n    storageMemo.setBoolean(AppSettingSlug.Developer, value)\n    setDeveloperMode(value)\n  }, [storageMemo])\n\n  const changeNavigationType = useCallback((value: WebAppNavigationType) => {\n    storageMemo.setString(AppSettingSlug.NavigationType, value)\n    setNavigationType(value)\n  }, [storageMemo])\n\n  const changeNavigationCollapsed = useCallback((value: boolean) => {\n    storageMemo.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n    setNavigationCollapsed(value)\n  }, [storageMemo])\n\n  const changeSeedPhrase = useCallback((value: string) => {\n    storageMemo.setString(AppSettingSlug.SeedPhrase, value)\n    setSeedPhrase(value)\n  }, [storageMemo])\n\n  const changeMaxAccounts = useCallback((value: number) => {\n    storageMemo.setNumber(AppSettingSlug.MaxAccounts, value)\n    setMaxAccounts(value)\n  }, [storageMemo])\n\n  const providerValue = useMemo(() => {\n    return {\n      changeMaxAccounts,\n      changeNavigationCollapsed,\n      changeNavigationType,\n      changeSeedPhrase,\n      developerMode,\n      enableDeveloperMode,\n      maxAccounts,\n      navigationCollapsed,\n      navigationType,\n      seedPhrase,\n      ...value,\n    }\n  }, [changeMaxAccounts,\n    changeNavigationCollapsed,\n    changeNavigationType,\n    changeSeedPhrase,\n    developerMode,\n    enableDeveloperMode,\n    maxAccounts,\n    navigationCollapsed,\n    navigationType,\n    seedPhrase,\n    value])\n\n  return (\n    <AppSettingsContext\n      value={providerValue}\n      {...props}\n    >\n      {children}\n    </AppSettingsContext>\n  )\n}\n", "import {\n  assertDefinedEx, assertEx, isString,\n} from '@ariestools/sdk'\n\n/** Base storage contract for reading, writing, and observing app settings. */\nexport class AppSettingsStorageBase {\n  private defaults: Record<string, unknown>\n  private prefix: string\n  /** Initializes the storage adapter with its setting schema and defaults. */\n  constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n    this.prefix = prefix\n    this.defaults = defaults ?? {}\n  }\n\n  /** Returns boolean from the current app-settings state. */\n  getBoolean(name: string): boolean {\n    const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n    if (!isString(storedValue)) {\n      assertEx(typeof this.defaults[name] === 'boolean', () => 'Default value is not boolean')\n      const defaultValue = this.defaults[name] as boolean\n      assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n      return defaultValue\n    }\n    return storedValue !== 'false'\n  }\n\n  /** Returns number from the current app-settings state. */\n  getNumber(name: string): number {\n    const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n    if (!isString(storedValue)) {\n      assertEx(typeof this.defaults[name] === 'number', () => 'Default value is not a number')\n      const defaultValue = this.defaults[name] as number\n      assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n      return defaultValue\n    }\n    return Number(storedValue)\n  }\n\n  /** Returns object from the current app-settings state. */\n  getObject<T>(name: string): T {\n    const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n    const parsedStoredValue = isString(storedValue) ? JSON.parse(storedValue) as unknown : null\n    if (parsedStoredValue === null) {\n      assertEx(typeof this.defaults[name] === 'object', () => 'Default value is not object')\n      return assertEx(this.defaults[name] as T, () => `Missing Default for ${name}`)\n    }\n    return parsedStoredValue as T\n  }\n\n  /** Returns string from the current app-settings state. */\n  getString(name: string) {\n    const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n    if (!isString(storedValue)) {\n      assertDefinedEx(typeof this.defaults[name] === 'string', () => 'Default value is not string')\n      const defaultValue = this.defaults[name] as string\n      assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n      return defaultValue\n    }\n    return storedValue\n  }\n\n  /** Returns string array from the current app-settings state. */\n  getStringArray(name: string) {\n    const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n    if (!storedValue) {\n      assertDefinedEx(Array.isArray(this.defaults[name]), () => 'Default value is not array')\n      const defaultValue = this.defaults[name] as string[]\n      assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n      return defaultValue\n    }\n    return storedValue\n  }\n\n  /** Updates boolean in the current app-settings state. */\n  setBoolean(name: string, value: boolean) {\n    localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n  }\n\n  /** Updates number in the current app-settings state. */\n  setNumber(name: string, value: number) {\n    localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n  }\n\n  /** Updates object in the current app-settings state. */\n  setObject<T>(name: string, value: T) {\n    localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n  }\n\n  /** Updates string in the current app-settings state. */\n  setString(name: string, value: string) {\n    localStorage.setItem(`${this.prefix}|${name}`, value)\n  }\n\n  /** Updates string array in the current app-settings state. */\n  setStringArray(name: string, value: string[]) {\n    localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n  }\n}\n", "import type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorageBase } from './StorageBase.ts'\n\n/** Local-storage-backed app settings store. */\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n  /** Creates a local-storage-backed settings store using the app defaults. */\n  constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n    super(prefix, { ...appSettingDefault(), ...defaults })\n  }\n\n  /** Returns the current developer mode value. */\n  get developerMode() {\n    return this.getBoolean(AppSettingSlug.Developer)\n  }\n\n  /** Updates the current developer mode value. */\n  set developerMode(value: boolean) {\n    this.setBoolean(AppSettingSlug.Developer, value)\n  }\n\n  /** Returns the current max accounts value. */\n  get maxAccounts() {\n    return this.getNumber(AppSettingSlug.MaxAccounts)\n  }\n\n  /** Updates the current max accounts value. */\n  set maxAccounts(value: number) {\n    this.setNumber(AppSettingSlug.MaxAccounts, value)\n  }\n\n  /** Returns the current navigation collapsed value. */\n  get navigationCollapsed() {\n    return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n  }\n\n  /** Updates the current navigation collapsed value. */\n  set navigationCollapsed(value: boolean) {\n    this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n  }\n\n  /** Returns the current navigation type value. */\n  get navigationType() {\n    return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n  }\n\n  /** Updates the current navigation type value. */\n  set navigationType(value: WebAppNavigationType) {\n    this.setString(AppSettingSlug.NavigationType, value)\n  }\n\n  /** Returns the current seed phrase value. */\n  get seedPhrase() {\n    return this.getString(AppSettingSlug.SeedPhrase)\n  }\n\n  /** Updates the current seed phrase value. */\n  set seedPhrase(value: string) {\n    this.setString(AppSettingSlug.SeedPhrase, value)\n  }\n}\n", "import { use } from 'react'\n\nimport { AppSettingsContext } from './Context.ts'\n\n/** Returns the current app settings context and requires its provider. */\nexport const useAppSettings = () => {\n  return use(AppSettingsContext)\n}\n", "import type { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\n/** Displays app settings intended for developer inspection and control. */\nexport const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {\n  const { developerMode } = useAppSettings()\n\n  return developerMode === true ? children : null\n}\n", "import { isDefinedNotNull, isString } from '@ariestools/sdk'\nimport { FlexGrowRow, FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport {\n  AppBar, Container, Toolbar, useMediaQuery, useTheme,\n} from '@mui/material'\nimport React from 'react'\n\nimport type { AppBarExProps } from './AppBarExProps.tsx'\n\nconst AppBarExInner: React.FC<AppBarExProps> = ({\n  children, menu, contextToolbar, systemToolbar, responsive, ...props\n}) => {\n  const { breakpoints } = useTheme()\n  const belowSm = useMediaQuery(breakpoints.down('sm'))\n  return (\n    <>\n      <FlexRow\n        {...props}\n        sx={{\n          flexWrap: 'nowrap',\n          justifyContent: 'flex-start',\n        }}\n      >\n        {contextToolbar ?? <Toolbar />}\n        <FlexGrowRow>{belowSm && responsive === true ? null : children}</FlexGrowRow>\n        {systemToolbar ?? <Toolbar />}\n        {menu}\n      </FlexRow>\n      {belowSm && isDefinedNotNull(children) && responsive === true\n        ? <Toolbar>{children}</Toolbar>\n        : null}\n    </>\n  )\n}\n\n/** Renders a responsive app bar with optional system and context toolbars. */\nexport const AppBarEx: React.FC<AppBarExProps> = ({\n  container, children, menu, contextToolbar, systemToolbar, responsive, ...props\n}) => {\n  return (\n    <AppBar position=\"static\" {...props}>\n      {isString(container)\n        ? (\n            <Container maxWidth={container}>\n              <AppBarExInner {...{\n                contextToolbar, menu, responsive, systemToolbar,\n              }}\n              >\n                {children}\n              </AppBarExInner>\n            </Container>\n          )\n        : (\n            <AppBarExInner {...{\n              contextToolbar, menu, responsive, systemToolbar,\n            }}\n            >\n              {children}\n            </AppBarExInner>\n          )}\n    </AppBar>\n  )\n}\n", "import type { ToolbarProps } from '@mui/material'\nimport { Toolbar } from '@mui/material'\nimport React from 'react'\nimport type { To } from 'react-router'\n\nimport { LogoLinkEx } from './LogoLinkEx.tsx'\n\n/** Properties accepted by the context toolbar component. */\nexport interface ContextToolbarProps extends ToolbarProps {\n  /** Logo used by the context toolbar props. */\n  logo?: React.ReactNode\n  /** Logo to used by the context toolbar props. */\n  logoTo?: To\n  /** Version used by the context toolbar props. */\n  version?: boolean | string\n}\n\n/** Renders page-context actions and branding in the app toolbar. */\nexport const ContextToolbar: React.FC<ContextToolbarProps> = ({\n  children, logo, logoTo = '/', version = false, ...props\n}) => {\n  return (\n    <Toolbar {...props}>\n      <LogoLinkEx logo={logo} version={version} to={logoTo} />\n      {children}\n    </Toolbar>\n  )\n}\n", "import { assertEx, isString } from '@ariestools/sdk'\nimport { FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport { Typography, useTheme } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { LinkExProps } from '#link'\nimport { LinkEx } from '#link'\n\nimport { Logo } from './Logo.tsx'\n\nexport type LogoLinkExProps = LinkExProps & {\n  logo?: ReactNode\n  version?: boolean | string\n}\n\nexport const LogoLinkEx: React.FC<LogoLinkExProps> = ({\n  logo, to = '/', href, version = false, ...props\n}) => {\n  const theme = useTheme()\n  assertEx(href === undefined, () => 'href is not supported')\n  return (\n    <LinkEx to={to} {...props}>\n      <FlexRow sx={{ paddingX: '4px' }}>\n        {logo ?? (\n          <Logo sx={{\n            color: theme.vars.palette.primary.contrastText, height: '40px', width: '40px',\n          }}\n          />\n        )}\n        {(isString(version) || (version === true))\n          ? (\n              <Typography\n                color={theme.vars.palette.primary.contrastText}\n                variant=\"caption\"\n                sx={{\n                  position: 'absolute',\n                  borderRadius: 1,\n                  right: 6,\n                  bottom: 0,\n                  bgcolor: theme.vars.palette.text.primary,\n                  paddingX: '2px',\n                  lineHeight: 1,\n                  border: `1px ${theme.vars.palette.primary.contrastText} solid`,\n                }}\n              >\n                {typeof version === 'string' ? version : '1.0'}\n              </Typography>\n            )\n          : null}\n      </FlexRow>\n    </LinkEx>\n  )\n}\n", "import { toPromise } from '@ariestools/sdk'\nimport { useUserEvents } from '@ariestools/sdk-react-foundation/user-events'\nimport { Link } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\n\nimport type { LinkExProps } from './LinkExProps.tsx'\nimport { LinkToEx } from './LinkToEx.tsx'\n\n/** Renders a link that supports either an external `href` or app navigation target. */\nexport const LinkEx = ({\n  ref, onClick, disableUserEvents, funnel, intent, placement, target, href, to, toOptions, ...props\n}: LinkExProps & { ref?: React.RefObject<HTMLAnchorElement | null> }) => {\n  const userEvents = useUserEvents()\n  const localOnClick = (event: MouseEvent<HTMLAnchorElement>) => {\n    // we do this crazy navigate thing so that we can set it up outside the promise so that safari does not block it\n    const windowToNavigate = () => (target !== undefined && target.length > 0 && href !== undefined && href.length > 0) ? window.open('', target) ?? globalThis : globalThis\n    const callOnClickAndFollowHref = (windowToNav = windowToNavigate()) => {\n      onClick?.(event)\n      if (href !== undefined && href.length > 0) {\n        windowToNav.location.href = href\n      }\n    }\n    if (disableUserEvents !== true && userEvents) {\n      const elementName = props['aria-label'] ?? event.currentTarget.textContent\n      event.preventDefault()\n      const windowToNav = windowToNavigate()\n      void (async () => {\n        try {\n          await toPromise(userEvents.userClick({\n            elementName, funnel, intent, placement,\n          }))\n          callOnClickAndFollowHref(windowToNav)\n        } catch (ex) {\n          console.error('User event failed', elementName, funnel, placement, ex)\n          callOnClickAndFollowHref(windowToNav)\n        }\n      })()\n    } else {\n      callOnClickAndFollowHref()\n    }\n  }\n  return to === undefined\n    ? <Link ref={ref} href={href} target={target} onClick={localOnClick} {...props} />\n    : <LinkToEx ref={ref} to={to} toOptions={toOptions} target={target} onClick={onClick} {...props} />\n}\n\nLinkEx.displayName = 'LinkExXYLabs'\n", "import { toPromise } from '@ariestools/sdk'\nimport { useUserEvents } from '@ariestools/sdk-react-foundation/user-events'\nimport { Link } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport { Link as RouterLink, useNavigate } from 'react-router'\n\nimport type { LinkExProps } from './LinkExProps.tsx'\n\n/** Renders an application-navigation link while preserving the configured link behavior. */\nexport const LinkToEx = ({\n  ref, intent, funnel, onClick, to, toOptions, placement, disableUserEvents, ...props\n}: LinkExProps & { ref?: React.RefObject<HTMLAnchorElement | null> }) => {\n  const userEvents = useUserEvents()\n  const navigate = useNavigate()\n  const localOnClick = (event: MouseEvent<HTMLAnchorElement>) => {\n    if (disableUserEvents !== true && userEvents) {\n      const elementName = props['aria-label'] ?? event.currentTarget.textContent\n      const callOnClickAndNavigate = () => {\n        try {\n          onClick?.(event)\n        } catch (ex) {\n          console.error('onClick threw', elementName, funnel, placement, ex)\n        }\n        if (to !== undefined && toOptions !== undefined) {\n          void navigate(to, toOptions)\n        }\n      }\n      void (async () => {\n        try {\n          await toPromise(userEvents.userClick({\n            elementName, funnel, intent, placement,\n          }))\n          callOnClickAndNavigate()\n        } catch (ex) {\n          console.error('User event failed', elementName, funnel, placement, ex)\n          callOnClickAndNavigate()\n        }\n      })()\n    } else {\n      onClick?.(event)\n    }\n  }\n\n  return <Link ref={ref} rel=\"noopener noreferrer\" to={toOptions === undefined ? to : undefined} component={RouterLink} onClick={localOnClick} {...props} />\n}\n\nLinkToEx.displayName = 'LinkToExXYLabs'\n", "import type { LinkProps } from '@mui/material'\nimport type { NavigateOptions, To } from 'react-router'\n\n/** Properties accepted by the link only href component. */\nexport interface LinkOnlyHrefProps {\n  /** Href used by the link only href props. */\n  href?: string\n  /** To used by the link only href props. */\n  to?: never\n  /** To options used by the link only href props. */\n  toOptions?: never\n}\n\n/** Properties accepted by the link only to component. */\nexport interface LinkOnlyToProps {\n  /** Href used by the link only to props. */\n  href?: never\n  /** To used by the link only to props. */\n  to?: To\n  /** To options used by the link only to props. */\n  toOptions?: NavigateOptions\n}\n\n/** Properties accepted by the link no to or href component. */\nexport interface LinkNoToOrHrefProps {\n  /** Href used by the link no to or href props. */\n  href?: never\n  /** To used by the link no to or href props. */\n  to?: never\n  /** To options used by the link no to or href props. */\n  toOptions?: never\n}\n\n/** Properties accepted by the link href or to or no component. */\nexport type LinkHrefOrToOrNoProps = LinkOnlyHrefProps | LinkOnlyToProps | LinkNoToOrHrefProps\n\n/** Properties accepted by the link href and to component. */\nexport interface LinkHrefAndToProps {\n  /** Href used by the link href and to props. */\n  href?: string\n  /** To used by the link href and to props. */\n  to?: To\n  /** To options used by the link href and to props. */\n  toOptions?: NavigateOptions\n}\n\n/** As link href or to props used by the link public API. */\nexport const asLinkHrefOrToProps = (props: LinkHrefAndToProps): LinkHrefOrToOrNoProps => {\n  if (props.href !== undefined && props.href.length > 0 && (props.to !== undefined || props.toOptions !== undefined)) {\n    throw new Error('LinkExProps: cannot have both href and to')\n  }\n  if (props.href !== undefined && props.href.length > 0) {\n    return { href: props.href }\n  }\n  return props.to === undefined ? {} : { to: props.to, toOptions: props.toOptions }\n}\n\n/** Properties accepted by the link ex base component. */\nexport interface LinkExBaseProps extends Omit<LinkProps, 'ref' | 'href'> {\n  /** Disable user events used by the link ex base props. */\n  disableUserEvents?: boolean\n  /** Funnel used by the link ex base props. */\n  funnel?: string\n  /** Intent used by the link ex base props. */\n  intent?: string\n  /** Placement used by the link ex base props. */\n  placement?: string\n}\n\n/** Properties accepted by the link ex component. */\nexport type LinkExProps = LinkExBaseProps & LinkHrefOrToOrNoProps\n", "import { useIsDark } from '@ariestools/sdk-react-ui/theme'\nimport { LogoDevOutlined, LogoDevRounded } from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport React from 'react'\n\nexport const Logo: React.FC<SvgIconProps> = (props) => {\n  const dark = useIsDark()\n  return dark\n    ? <LogoDevRounded {...props} />\n    : <LogoDevOutlined {...props} />\n}\n", "import { isDefinedNotNull } from '@ariestools/sdk'\nimport { ColorSchemeButton } from '@ariestools/sdk-react-ui/theme'\nimport type { ToolbarProps } from '@mui/material'\nimport { Toolbar } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { SiteMenuProps } from '../../SiteMenu/index.ts'\nimport { SiteMenu } from '../../SiteMenu/index.ts'\n\n/** Properties accepted by the system toolbar component. */\nexport interface SystemToolbarProps extends ToolbarProps {\n  /** Dark mode button used by the system toolbar props. */\n  darkModeButton?: boolean\n  /** Developer mode used by the system toolbar props. */\n  developerMode?: boolean\n  /** Menu items used by the system toolbar props. */\n  menuItems?: ReactNode\n  /** On menu toggle used by the system toolbar props. */\n  onMenuToggle?: SiteMenuProps['onMenuToggle']\n  /** Preceding children used by the system toolbar props. */\n  precedingChildren?: ReactNode\n}\n\n/** Renders system-level controls in the app toolbar. */\nexport const SystemToolbar: React.FC<SystemToolbarProps> = ({\n  children,\n  darkModeButton = false,\n  menuItems,\n  onMenuToggle,\n  precedingChildren,\n  ...props\n}) => {\n  return (\n    <Toolbar {...props}>\n      {precedingChildren}\n      {children}\n      {darkModeButton\n        ? <ColorSchemeButton />\n        : null}\n      {isDefinedNotNull(menuItems)\n        ? <SiteMenu onMenuToggle={onMenuToggle}>{menuItems}</SiteMenu>\n        : null}\n    </Toolbar>\n  )\n}\n", "import { useCollapsible } from '@ariestools/sdk-react-foundation/shared'\nimport { useMemo } from 'react'\n\nimport type { MenuListItemProps } from '../MenuListItem/index.ts'\n\n/** Properties accepted by the default site menu list item component. */\nexport type DefaultSiteMenuListItemProps = Pick<MenuListItemProps, 'collapseEnd' | 'dense' | 'iconOnly' | 'sx'>\n\n/** Normalizes shared site-menu item properties for rendering. */\nexport const useMenuItemsShared = () => {\n  const {\n    collapse, collapseEnd, setCollapse, setCollapseEnd,\n  } = useCollapsible()\n\n  const onMenuItemToggle = (open?: boolean) => {\n    setCollapse?.(previous => open !== true && previous)\n    setCollapseEnd?.(previous => open !== true && previous)\n  }\n\n  const defaultSiteMenuListItemProps: DefaultSiteMenuListItemProps = useMemo(\n    () => ({\n      collapseEnd,\n      dense: true,\n      iconOnly: collapse,\n      sx: { px: '8px' },\n    }),\n    [collapse, collapseEnd],\n  )\n\n  return { defaultSiteMenuListItemProps, onMenuItemToggle }\n}\n", "import type { FlexBoxProps } from '@ariestools/sdk-react-foundation/flexbox'\nimport { FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport { Menu as MenuIcon, Settings as SettingsIcon } from '@mui/icons-material'\nimport {\n  IconButton, List, SwipeableDrawer,\n} from '@mui/material'\nimport React, { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem/index.ts'\n\n/** Properties accepted by the site menu component. */\nexport interface SiteMenuProps extends FlexBoxProps {\n  /** Hide settings menu item used by the site menu props. */\n  hideSettingsMenuItem?: boolean\n  /** On menu toggle used by the site menu props. */\n  onMenuToggle?: (state?: boolean) => void\n  /** Side used by the site menu props. */\n  side?: 'left' | 'right' | 'top' | 'bottom'\n}\n\n/** Renders the configured site-navigation sections and menu items. */\nexport const SiteMenu: React.FC<SiteMenuProps> = ({\n  children, onMenuToggle, side = 'right', ...props\n}) => {\n  const [open, setOpen] = useState(false)\n\n  useEffect(() => {\n    onMenuToggle?.(open)\n  }, [onMenuToggle, open])\n\n  return (\n    <FlexRow\n      {...props}\n      sx={{ alignItems: 'stretch' }}\n    >\n      <IconButton\n        size=\"small\"\n        color=\"inherit\"\n        onClick={() => {\n          setOpen(!open)\n        }}\n      >\n        <MenuIcon fontSize=\"large\" />\n      </IconButton>\n      <SwipeableDrawer\n        anchor={side}\n        open={open}\n        onClick={() => setOpen(false)}\n        onKeyDown={() => setOpen(false)}\n        onClose={() => setOpen(false)}\n        onOpen={() => setOpen(true)}\n      >\n        {children ?? (\n          <List>\n            <MenuListItemContainer primary=\"Settings\" icon={<SettingsIcon />} to=\"/settings\" />\n          </List>\n        )}\n      </SwipeableDrawer>\n    </FlexRow>\n  )\n}\n", "import { isString } from '@ariestools/sdk'\nimport { FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport { useCollapsible } from '@ariestools/sdk-react-foundation/shared'\nimport type { ListItemProps } from '@mui/material'\nimport { ListItemText, useTheme } from '@mui/material'\nimport React, { useState } from 'react'\nimport { createPath, NavLink } from 'react-router'\n\nimport type { MenuListItemBase, NavListItemProps } from '../lib/index.ts'\nimport {\n  ListItemTooltip, MenuIcon, MenuListItem,\n} from './list-item-components/index.ts'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav/index.ts'\n\n/** Properties accepted by the menu list item component. */\nexport interface MenuListItemProps extends NavListItemProps, MenuListItemBase, ListItemProps {\n  /** Icon menu text spacing used by the menu list item props. */\n  iconMenuTextSpacing?: string\n  /** Icon only used by the menu list item props. */\n  iconOnly?: boolean\n  /** Sub nav list items used by the menu list item props. */\n  subNavListItems?: NavListItemProps[]\n  /** Sub nav open used by the menu list item props. */\n  subNavOpen?: boolean\n}\n\nconst getNavListItemKey = (item: NavListItemProps) => {\n  if (item.href !== undefined && item.href !== '') {\n    return item.href\n  }\n  if (typeof item.to === 'string') {\n    return item.to\n  }\n  return item.to ? createPath(item.to) : undefined\n}\n\n/** Renders a navigation item with optional nested navigation and collapse controls. */\nexport const MenuListItemContainer: React.FC<MenuListItemProps> = ({\n  style,\n  icon,\n  iconMenuTextSpacing,\n  iconOnly,\n  onButtonClick,\n  primary,\n  subNavListItems,\n  sx,\n  tooltip,\n  to,\n  ...props\n}) => {\n  const { dense } = props\n  const theme = useTheme()\n  const { collapse } = useCollapsible()\n  const [openSubNav, setOpenSubNav] = useState(false)\n  const [hovered, setHovered] = useState(false)\n  const resolvedIconMenuTextSpacing = iconMenuTextSpacing ?? theme.spacing(1)\n\n  return (\n    <>\n      <MenuListItem\n        disableGutters\n        iconOnly={iconOnly}\n        onClick={onButtonClick}\n        dense={dense}\n        sx={{ justifyContent: 'space-between', ...sx }}\n        style={{ whiteSpace: 'nowrap', ...style }}\n        {...props}\n      >\n\n        <NavLink\n          className=\"site-menu-nav-link\"\n          onMouseEnter={(e) => {\n            const el = e.currentTarget\n            el.style.cursor = 'pointer'\n            el.style.textDecoration = 'underline'\n            el.style.filter = 'brightness(75%)'\n            setHovered(true)\n          }}\n          onMouseLeave={(e) => {\n            const el = e.currentTarget\n            el.style.cursor = 'default'\n            el.style.textDecoration = 'none'\n            el.style.filter = ''\n            setHovered(false)\n          }}\n          color=\"inherit\"\n          to={to ?? ''}\n          viewTransition\n          style={{\n            color: 'inherit', textDecoration: 'none', display: 'flex', alignItems: 'center',\n          }}\n        >\n          <MenuIcon icon={icon} sx={{ paddingRight: resolvedIconMenuTextSpacing }} color={hovered ? 'secondary' : 'inherit'} />\n          <ListItemText primary={primary} />\n        </NavLink>\n        <FlexRow style={{ marginLeft: theme.spacing(1) }}>\n          {subNavListItems\n            ? <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} />\n            : null}\n          {isString(tooltip)\n            ? <ListItemTooltip title={tooltip} />\n            : null}\n        </FlexRow>\n      </MenuListItem>\n      {subNavListItems\n        ? (\n            <SubNavListItemsCollapse openSubNav={openSubNav} collapse={collapse}>\n              {subNavListItems?.map(item =>\n                <MenuListItemContainer dense={dense} sx={{ pl: theme.spacing(1) }} key={getNavListItemKey(item)} {...item} />)}\n            </SubNavListItemsCollapse>\n          )\n        : null}\n    </>\n  )\n}\n", "import { FlexCol } from '@ariestools/sdk-react-foundation/flexbox'\nimport { InfoOutlined } from '@mui/icons-material'\nimport type { TooltipProps } from '@mui/material'\nimport { Tooltip } from '@mui/material'\nimport React from 'react'\n\nexport interface ListItemTooltipProps extends Omit<TooltipProps, 'children'> {\n  title: string\n}\n\nexport const ListItemTooltip: React.FC<ListItemTooltipProps> = ({ title, ...props }) => {\n  return (\n    <Tooltip title={title} placement=\"right\" {...props}>\n      {/* Needs div so it can work, the hovering doesn't work with a FlexCol */}\n      <div>\n        <FlexCol sx={{ justifyContent: 'center' }}>\n          <InfoOutlined sx={{ color: 'grey' }} />\n        </FlexCol>\n      </div>\n    </Tooltip>\n  )\n}\n", "import type {\n  SxProps, Theme, TypographyProps,\n} from '@mui/material'\nimport { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nexport interface MenuIconProps extends TypographyProps {\n  icon?: ReactNode\n}\n\ntype SxArrayItem = Extract<NonNullable<SxProps<Theme>>, readonly unknown[]>[number]\n\nconst isSxArray = (sx: SxProps<Theme> | undefined): sx is readonly SxArrayItem[] => Array.isArray(sx)\n\nconst toSxArray = (sx: SxProps<Theme> | undefined): readonly SxArrayItem[] => (\n  sx === undefined\n    ? []\n    : isSxArray(sx)\n      ? sx\n      : [sx]\n)\n\nexport const MenuIcon: React.FC<MenuIconProps> = ({ icon, ...props }) => {\n  return (\n    <Typography\n      {...props}\n      sx={[{ display: 'flex' }, ...toSxArray(props.sx)]}\n    >\n      {icon}\n    </Typography>\n  )\n}\n", "import type { ListItemProps } from '@mui/material'\nimport { ListItem } from '@mui/material'\nimport React from 'react'\n\nimport type { MenuListItemBase } from '../../lib/index.ts'\n\nexport interface ListItemExProps extends MenuListItemBase, ListItemProps {}\n\nexport const MenuListItem: React.FC<ListItemExProps> = ({\n  iconOnly, collapseEnd, sx, children, dense, ...props\n}) => {\n  const listItemSx = iconOnly === true\n    ? {\n        borderRadius: '50%', display: 'inline-flex', flexGrow: 0, width: 'auto',\n      }\n    : { width: '100%' }\n  // wait till collapseEnds to remove the spacing between items\n  const spacingSx = { columnGap: collapseEnd === true ? 0 : 1.5 }\n  // adjusts to the paddingY value which does NOT scale along the theme.spacing\n  const paddingSx = { px: dense === true ? '8px' : '12px' }\n  return (\n    <ListItem\n      sx={{\n        ...listItemSx, ...spacingSx, ...paddingSx, ...sx,\n      }}\n      {...props}\n    >\n      {children}\n    </ListItem>\n  )\n}\n", "import type { CollapseProps } from '@mui/material'\nimport { Collapse, List } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport type { NavListItemProps } from '../../lib/index.ts'\n\nexport interface SubNavListItemsCollapseProps extends PropsWithChildren, CollapseProps {\n  collapse?: boolean\n  openSubNav?: boolean\n  subNavListItems?: NavListItemProps[]\n}\n\nexport const SubNavListItemsCollapse: React.FC<SubNavListItemsCollapseProps> = ({\n  collapse, openSubNav, children, ...props\n}) => {\n  return (\n    <Collapse in={collapse !== true && openSubNav} {...props}>\n      <List>{children}</List>\n    </Collapse>\n  )\n}\n", "import { ExpandMore } from '@mui/icons-material'\nimport type { IconButtonProps } from '@mui/material'\nimport { IconButton, useTheme } from '@mui/material'\nimport type {\n  Dispatch, SetStateAction, SyntheticEvent,\n} from 'react'\nimport React from 'react'\n\nexport interface SubNavToggleIconButtonProps extends IconButtonProps {\n  openSubNav?: boolean\n  setOpenSubNav?: Dispatch<SetStateAction<boolean>>\n}\n\nexport const SubNavToggleIconButton: React.FC<SubNavToggleIconButtonProps> = ({ setOpenSubNav, openSubNav }) => {\n  const theme = useTheme()\n  return (\n    <IconButton\n      onClick={(event: SyntheticEvent) => {\n        event.stopPropagation()\n        setOpenSubNav?.(openSubNav !== true)\n      }}\n      sx={{ marginRight: theme.spacing(0.5) }}\n    >\n      <ExpandMore />\n    </IconButton>\n  )\n}\n", "import type { FlexBoxProps } from '@ariestools/sdk-react-foundation/flexbox'\nimport { FlexCol } from '@ariestools/sdk-react-foundation/flexbox'\nimport { Collapse, ListSubheader } from '@mui/material'\nimport React from 'react'\n\nimport type { MenuListItemProps } from './MenuListItem/index.ts'\nimport { MenuListItemContainer } from './MenuListItem/index.ts'\n\n/** Properties accepted by the menu section component. */\nexport interface MenuSectionProps extends FlexBoxProps {\n  /** Icon menu text spacing used by the menu section props. */\n  iconMenuTextSpacing?: string\n  /** List items used by the menu section props. */\n  listItems: MenuListItemProps[]\n  /** Show title used by the menu section props. */\n  showTitle?: boolean\n  /** Title used by the menu section props. */\n  title: string\n}\n\n/** Renders a labeled group of site-navigation items. */\nexport const MenuSection: React.FC<MenuSectionProps> = ({\n  iconMenuTextSpacing, listItems, showTitle = true, title, ...props\n}) => {\n  return (\n    <FlexCol\n      {...props}\n      sx={{ alignItems: 'stretch' }}\n    >\n      <Collapse in={showTitle} timeout={700}>\n        <ListSubheader>{title}</ListSubheader>\n      </Collapse>\n      {listItems.map(item => (\n        <MenuListItemContainer key={item.href} iconMenuTextSpacing={iconMenuTextSpacing} {...item}></MenuListItemContainer>\n      ))}\n    </FlexCol>\n  )\n}\n", "import type { ToolbarProps } from '@mui/material'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nimport { AppBarEx } from '../AppBarEx.tsx'\nimport type { AppBarExProps } from '../AppBarExProps.tsx'\nimport { ContextToolbar, SystemToolbar } from '../Toolbar/index.ts'\n\n/** Properties accepted by the app app bar component. */\nexport interface ApplicationAppBarProps extends AppBarExProps {\n  /** Context toolbar used by the app app bar props. */\n  contextToolbar?: ReactElement<ToolbarProps>\n  /** Logo used by the app app bar props. */\n  logo?: React.ReactNode\n  /** Responsive used by the app app bar props. */\n  responsive?: boolean\n  /** System toolbar used by the app app bar props. */\n  systemToolbar?: ReactElement<ToolbarProps>\n}\n\n/** Renders the application-level app bar with navigation and toolbar content. */\nexport const ApplicationAppBar: React.FC<ApplicationAppBarProps> = ({\n  logo, systemToolbar, contextToolbar, responsive = true, ...props\n}) => {\n  return (\n    <AppBarEx\n      systemToolbar={systemToolbar ?? <SystemToolbar />}\n      contextToolbar={contextToolbar ?? <ContextToolbar logo={logo} />}\n      position=\"sticky\"\n      responsive={responsive}\n      {...props}\n    />\n  )\n}\n", "import { isString } from '@ariestools/sdk'\nimport { FlexCol, FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport { CookieConsent } from '@ariestools/sdk-react-ui/cookie-consent'\nimport { KeyboardArrowUp as KeyboardArrowUpIcon } from '@mui/icons-material'\nimport {\n  Container, Fab, Typography,\n} from '@mui/material'\nimport React, { use } from 'react'\n\nimport { ScrollToTop, ScrollToTopButton } from '#scroll-to-top'\n\nimport { LoadStatusContext } from '../../contexts/index.ts'\nimport type { BasePageProps } from './BasePageProps.ts'\n\nconst xyoOgMetaName = 'xyo:og:image'\n\n/** Provides the shared loading, error, and layout shell used by base pages. */\nconst BasePage: React.FC<BasePageProps> = ({\n  disableGutters,\n  children,\n  beta,\n  container,\n  hideFooter,\n  appFooter,\n  appBar,\n  cookieConsent,\n  description: _description,\n  hideAppBar,\n  metaServer,\n  noindex: _noindex = false,\n  scrollToTopButton = false,\n  title: _titleProp,\n  ...props\n}) => {\n  const { status, setStatus } = use(LoadStatusContext)\n  const scrollToTopAnchorId = 'scroll-to-top-anchor'\n  const {\n    pageCompleteMetaName = xyoOgMetaName, shareImage, shareMode = 'static',\n  } = metaServer ?? {}\n\n  if (shareMode === 'static' && status !== 'done') {\n    setStatus('done')\n  } else if ((xyoOgMetaName === pageCompleteMetaName) && isString(shareImage) && status !== 'done') {\n    setStatus('done')\n  }\n\n  return (\n    <FlexCol\n      {...props}\n      sx={{\n        justifyContent: 'flex-start',\n        alignItems: 'stretch',\n        width: '100%',\n        maxWidth: '100vw',\n        minHeight: '100vh',\n      }}\n    >\n      <ScrollToTop />\n      {scrollToTopButton\n        ? <div id={scrollToTopAnchorId} />\n        : null}\n      {hideAppBar === true ? null : appBar}\n      {beta === true\n        ? (\n            <FlexRow\n              sx={{\n                margin: 1,\n                width: '100%',\n                opacity: 0.5,\n              }}\n            >\n              <Typography\n                variant=\"body2\"\n                sx={{\n                  bgcolor: '#cccccc88',\n                  padding: 0.5,\n                }}\n              >\n                Important: This page is a Beta page. It is possible that some information may not be correct.\n              </Typography>\n            </FlexRow>\n          )\n        : null}\n      {isString(container)\n        ? (\n            <Container\n              style={{\n                alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1,\n              }}\n              maxWidth={container}\n              disableGutters={disableGutters}\n            >\n              {children}\n            </Container>\n          )\n        : children}\n      {hideFooter === true ? null : <footer>{appFooter}</footer>}\n      {cookieConsent ?? (\n        <CookieConsent />\n      )}\n      {scrollToTopButton\n        ? (\n            <ScrollToTopButton anchorId={scrollToTopAnchorId}>\n              <Fab aria-label=\"scroll to top\" color=\"secondary\" size=\"small\">\n                <KeyboardArrowUpIcon />\n              </Fab>\n            </ScrollToTopButton>\n          )\n        : null}\n    </FlexCol>\n  )\n}\n\nexport { BasePage }\n", "import { useEffect } from 'react'\nimport { useLocation } from 'react-router'\n\n// The point of this component it to return to the top of the page on any router navigate\n\n/** Scrolls the browser viewport to the top when the current route changes. */\nexport const ScrollToTop = () => {\n  const { pathname } = useLocation()\n  useEffect(() => {\n    window.scrollTo(0, 0)\n  }, [pathname])\n\n  return null\n}\n", "import type { ZoomProps } from '@mui/material'\nimport {\n  Box, useScrollTrigger, useTheme, Zoom,\n} from '@mui/material'\nimport React from 'react'\n\n/** Properties accepted by the scroll to top button component. */\nexport interface ScrollToTopButtonProps extends ZoomProps {\n  /** Anchor id used by the scroll to top button props. */\n  anchorId: string\n}\n\n/** Button that scrolls the browser viewport to the top. */\nexport const ScrollToTopButton: React.FC<ScrollToTopButtonProps> = ({\n  children, anchorId, ...props\n}) => {\n  const trigger = useScrollTrigger({\n    disableHysteresis: true,\n    threshold: 100,\n  })\n\n  const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n    const divElement = event.target as HTMLElement\n    const anchor = (divElement.ownerDocument ?? document).querySelector(`#${anchorId}`)\n\n    if (anchor) {\n      anchor.scrollIntoView({ behavior: 'smooth', block: 'center' })\n    }\n  }\n\n  const theme = useTheme()\n\n  return (\n    <Zoom in={trigger} {...props}>\n      <Box\n        onClick={handleClick}\n        role=\"presentation\"\n        sx={{\n          zIndex: 10,\n          position: 'fixed',\n          right: theme.spacing(2),\n          bottom: theme.spacing(2),\n        }}\n      >\n        {children}\n      </Box>\n    </Zoom>\n  )\n}\n", "import { createContext } from 'react'\n\nimport type { LoadStatusContextState } from './State.ts'\n\n/** React context containing load status state. */\nexport const LoadStatusContext = createContext<LoadStatusContextState>({\n  status: 'done', setStatus: () => void 0, setError: () => void 0,\n})\n", "import type { PropsWithChildren } from 'react'\nimport React, {\n  useEffect, useMemo, useState,\n} from 'react'\n\nimport { LoadStatusContext } from './Context.ts'\n\n/** Properties accepted by the load status provider component. */\nexport type LoadStatusProviderProps = PropsWithChildren<{\n  timeout?: number\n}>\n\n/** Provides load status state to descendant components. */\nexport const LoadStatusProvider: React.FC<LoadStatusProviderProps> = ({ timeout = 5000, children }) => {\n  const [error, setError] = useState<Error | undefined>()\n  const [status, setStatus] = useState<'done' | 'error' | 'loading'>('loading')\n\n  useEffect(() => {\n    if (timeout === 0 || timeout === Infinity) {\n      return\n    }\n    const id = setTimeout(() => {\n      setStatus('error')\n      setError(new Error('Timeout after ' + timeout + 'ms'))\n    }, timeout)\n    return () => {\n      clearTimeout(id)\n    }\n  }, [timeout])\n  const value = useMemo(() => {\n    return {\n      status,\n      setStatus,\n      setError,\n      error,\n    }\n  }, [status, setStatus, error, setError])\n  return <LoadStatusContext value={value}>{children}</LoadStatusContext>\n}\n", "import type { FC } from 'react'\nimport React from 'react'\n\nimport { BasePage } from './BasePage.tsx'\nimport type { BasePageProps } from './BasePageProps.ts'\n\n/** Renders a share page whose content can change after publication. */\nexport const DynamicSharePage: FC<BasePageProps> = ({ metaServer, ...props }) => {\n  return <BasePage {...props} metaServer={{ ...metaServer, shareMode: 'dynamic' }} />\n}\n", "import type { FC } from 'react'\nimport React from 'react'\n\nimport { BasePage } from './BasePage.tsx'\nimport type { BasePageProps } from './BasePageProps.ts'\n\n/** Renders a share page backed by live content. */\nexport const LiveSharePage: FC<BasePageProps> = ({ metaServer, ...props }) => {\n  return <BasePage {...props} metaServer={{ ...metaServer, shareMode: 'live' }} />\n}\n", "import type { FC } from 'react'\nimport React from 'react'\n\nimport { BasePage } from './BasePage.tsx'\nimport type { BasePageProps } from './BasePageProps.ts'\n\n/** Renders a share page backed by permanent content. */\nexport const PermaSharePage: FC<BasePageProps> = ({ metaServer, ...props }) => {\n  return <BasePage {...props} metaServer={{ ...metaServer, shareMode: 'permanent' }} />\n}\n", "import type { ErrorEx, ErrorReporter } from '@ariestools/sdk-react-ui/error'\nimport { ErrorRender } from '@ariestools/sdk-react-ui/error'\nimport type { ErrorInfo, ReactNode } from 'react'\nimport React, { Component } from 'react'\n\nimport { useErrorReporter } from '../../contexts/index.ts'\n\n/** Properties accepted by the thrown error boundary component. */\nexport interface ThrownErrorBoundaryProps<T = void> {\n  /** Boundary name used by the thrown error boundary props. */\n  boundaryName?: string\n  /** Children used by the thrown error boundary props. */\n  children: ReactNode\n  /** Error component used by the thrown error boundary props. */\n  errorComponent?: (e: ErrorEx<T>, boundaryName?: string) => ReactNode\n  /** Rethrow used by the thrown error boundary props. */\n  rethrow?: boolean\n  /** Rollbar used by the thrown error boundary props. */\n  rollbar?: ErrorReporter\n  /** Scope used by the thrown error boundary props. */\n  scope?: string\n  /** Title used by the thrown error boundary props. */\n  title?: string\n}\n\n/** Error state maintained by the thrown-error boundary. */\nexport interface ThrownErrorBoundaryState<T = void> {\n  /** Error ex used by the thrown error boundary state. */\n  errorEx: ErrorEx<T> | undefined\n  /** Has error used by the thrown error boundary state. */\n  hasError?: boolean\n  /** Xyo error used by the thrown error boundary state. */\n  xyoError?: T\n}\n\n/** Class boundary that captures descendant errors and renders an error view or custom fallback. */\nexport class ThrownErrorBoundaryInner<T> extends Component<ThrownErrorBoundaryProps<T>, ThrownErrorBoundaryState<T>> {\n  /** State used by the thrown error boundary inner. */\n  override state: ThrownErrorBoundaryState<T> = { errorEx: undefined }\n\n  /** Returns derived state from error from the current error state. */\n  static getDerivedStateFromError<T = void>(error: ErrorEx<T>) {\n    // React calls this method unbound, so `this` is undefined here.\n    // eslint-disable-next-line unicorn/class-reference-in-static-methods\n    const xyoError = ThrownErrorBoundaryInner.normalizeError<T>(error)\n    const thrownErrorBoundaryState: ThrownErrorBoundaryState<T> = {\n      hasError: true, errorEx: error, xyoError,\n    }\n    return thrownErrorBoundaryState\n  }\n\n  /** Converts the captured error into the boundary's generic error payload. */\n  static normalizeError<T>(error: ErrorEx<T>): T {\n    return error as T\n  }\n\n  /** Reports the captured error and optionally rethrows it after logging. */\n  override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n    const { rethrow, rollbar } = this.props\n    const { errorEx } = this.state\n\n    rollbar?.error(error)\n\n    console.error('Error:', errorEx, errorInfo)\n    if (rethrow === true) {\n      throw error\n    }\n  }\n\n  /** Renders children until an error is captured, then renders the configured error view. */\n  override render() {\n    const { errorEx } = this.state\n    const {\n      children, boundaryName, errorComponent, scope, title,\n    } = this.props\n\n    // TODO - support custom error renderer for xyoErrors\n    if (errorEx) {\n      return errorComponent ? errorComponent(errorEx, boundaryName) : <ErrorRender<T> error={errorEx} errorContext={`${boundaryName} Boundary`} scope={scope} title={title} />\n    }\n\n    return children\n  }\n}\n\n// calling the hook outside of the component since only can be called in functional component\n/** Catches descendant render errors and renders the configured fallback. */\nexport function ThrownErrorBoundary<T = void>({ rollbar, ...props }: ThrownErrorBoundaryProps<T>): React.JSX.Element {\n  const { rollbar: rollbarErrorReporter } = useErrorReporter()\n  return <ThrownErrorBoundaryInner<T> rollbar={rollbar ?? rollbarErrorReporter ?? globalThis.rollbar} {...props} />\n}\n", "import type { ErrorReporter } from '@ariestools/sdk-react-ui/error'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { ErrorReporterContext } from './Context.ts'\n\n/** Properties accepted by the error reporter provider component. */\nexport interface ErrorReporterProviderProps {\n  /** Rollbar used by the error reporter provider props. */\n  rollbar: ErrorReporter\n}\n\n/** Provides error reporter state to descendant components. */\nconst ErrorReporterProvider: React.FC<PropsWithChildren<ErrorReporterProviderProps>> = ({ children, rollbar: rollbarProp }) => {\n  if (rollbarProp === undefined && globalThis.rollbar === undefined) {\n    throw new Error('ErrorReporterProvider unable to find a Rollbar instance either passed as prop or from Provider')\n  }\n\n  const rollbar = rollbarProp ?? globalThis.rollbar\n\n  const value = useMemo(() => ({ rollbar }), [rollbar])\n\n  return <ErrorReporterContext value={value}>{children}</ErrorReporterContext>\n}\n\nexport { ErrorReporterProvider }\n", "import { createContext } from 'react'\n\nimport type { ErrorReporterContextState } from './State.ts'\n\nexport const ErrorReporterContext = createContext<ErrorReporterContextState>({})\n", "import { use } from 'react'\n\nimport { ErrorReporterContext } from './Context.ts'\n\n/** Returns the error reporter supplied by the nearest provider. */\nexport const useErrorReporter = () => {\n  const context = use(ErrorReporterContext)\n  if (context === undefined) {\n    console.warn('useErrorReporter must be used within a ErrorReporterContext')\n  }\n\n  return context ?? {}\n}\n", "import { isDefined } from '@ariestools/sdk'\nimport { FlexCol } from '@ariestools/sdk-react-foundation/flexbox'\nimport { ErrorRender } from '@ariestools/sdk-react-ui/error'\nimport type { QuickTipButtonProps } from '@ariestools/sdk-react-ui/quick-tip-button'\nimport { QuickTipButton } from '@ariestools/sdk-react-ui/quick-tip-button'\nimport { CancelRounded as CancelRoundedIcon, CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon } from '@mui/icons-material'\nimport { type SvgIconProps, Typography } from '@mui/material'\nimport React from 'react'\n\nconst InvalidIcon = ({ ref, ...props }: SvgIconProps\n  & { ref?: React.Ref<SVGSVGElement | null> }) => <CancelRoundedIcon color=\"error\" ref={ref} {...props} />\nInvalidIcon.displayName = 'InvalidIcon'\n\n/** Properties accepted by the error quick tip button component. */\nexport interface ErrorQuickTipButtonProps extends QuickTipButtonProps {\n  /** Bound witness type used by the error quick tip button props. */\n  boundWitnessType?: string\n  /** Errors used by the error quick tip button props. */\n  errors?: Error[]\n  /** Icon colors used by the error quick tip button props. */\n  iconColors?: boolean\n  /** Validate error used by the error quick tip button props. */\n  validateError?: Error\n}\n\n/** Opens a quick-tip dialog containing details about an app error. */\nexport const ErrorQuickTipButton: React.FC<ErrorQuickTipButtonProps> = ({\n  boundWitnessType = 'Bound Witness', errors, iconColors, validateError, ...props\n}) => {\n  const hasErrors = isDefined(errors) && errors.length > 0\n  return (\n    <QuickTipButton\n      Icon={hasErrors\n        ? ({ ref, ...props }) => {\n            return <InvalidIcon color={iconColors === true ? 'error' : undefined} ref={ref} {...props} />\n          }\n        : ({ ref, ...props }) => {\n            return <CheckCircleOutlineRoundedIcon color={iconColors === true ? 'success' : undefined} ref={ref} {...props} />\n          }}\n      hoverText={hasErrors ? `Invalid ${boundWitnessType}` : 'Valid'}\n      {...props}\n    >\n      {hasErrors\n        ? (\n            <FlexCol\n              sx={{\n                flexWrap: 'wrap',\n                alignItems: 'start',\n              }}\n            >\n              <ErrorRender error={validateError} scope=\"VerificationError\" />\n              {errors.map((error) => {\n                return <Typography key={error.name}>{error.toString()}</Typography>\n              })}\n            </FlexCol>\n          )\n        : <Typography>No Errors</Typography>}\n    </QuickTipButton>\n  )\n}\n", "import { useEffect } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\n\nconst DEFAULT_NAME = 'universalRedirect|to' as const\n\n/** Returns a callback that persists a redirect target for a later app load. */\nexport const useSetUniversalRedirect = (name: string = DEFAULT_NAME) => {\n  const location = useLocation()\n  return (to?: string) => {\n    localStorage.setItem(name, to ?? location.pathname)\n  }\n}\n\n/** Consumes and clears a persisted redirect target when one is available. */\nexport const useCheckUniversalRedirect = (name: string = DEFAULT_NAME) => {\n  const navigate = useNavigate()\n\n  useEffect(() => {\n    const pendingTo = localStorage.getItem(name)\n    if (pendingTo === null) {\n      return\n    }\n\n    localStorage.removeItem(name)\n    void navigate(pendingTo)\n  }, [navigate, name])\n}\n", "import type { FlexBoxProps } from '@ariestools/sdk-react-foundation/flexbox'\nimport { FlexGrowCol, FlexRow } from '@ariestools/sdk-react-foundation/flexbox'\nimport type { Breakpoint } from '@mui/material'\nimport { styled } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { fixedContent, scrollableContent } from './lib/index.ts'\n\nconst WebAppBodyName = 'WebAppBody'\nconst propsNotForwarded = new Set(['mobileScrollingBreakpoint', 'variant', 'spacing', 'disableBreadcrumbGutter'])\nconst defaultStyledOptions = { shouldForwardProp: (prop: string) => !propsNotForwarded.has(prop) }\n\nconst WebAppBodyRoot = styled(FlexGrowCol, {\n  ...defaultStyledOptions,\n  name: WebAppBodyName,\n  slot: 'Root',\n})<WebAppBodyProps>(({\n  spacing, theme, mobileScrollingBreakpoint = 'sm', variant,\n}) => {\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)]: { overflowY: 'scroll' },\n  })\n})\n\nconst WebAppBodyBreadcrumb = styled(FlexRow, {\n  ...defaultStyledOptions,\n  name: WebAppBodyName,\n  slot: 'Breadcrumb',\n})<WebAppBodyProps>(({\n  theme, disableBreadcrumbGutter, spacing,\n}) =>\n  theme.unstable_sx({\n    justifyContent: 'start',\n    marginX: disableBreadcrumbGutter === true ? 0 : spacing,\n  }))\n\nconst WebAppBodyScrollableWrapper = styled(FlexGrowCol, {\n  name: WebAppBodyName,\n  slot: 'ScrollableWrapper',\n})<WebAppBodyProps>(() => ({ alignItems: 'stretch' }))\n\nconst WebAppBodyScrollable = styled(FlexGrowCol, {\n  ...defaultStyledOptions,\n  name: WebAppBodyName,\n  slot: 'Scrollable',\n})<WebAppBodyProps>(({\n  theme, mobileScrollingBreakpoint = 'sm', variant,\n}) => {\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\n/** Properties accepted by the web app body component. */\nexport interface WebAppBodyProps extends FlexBoxProps {\n  /** Breadcrumbs used by the web app body props. */\n  breadcrumbs?: ReactNode\n  /** Disable breadcrumb gutter used by the web app body props. */\n  disableBreadcrumbGutter?: boolean\n  /** Mobile scrolling breakpoint used by the web app body props. */\n  mobileScrollingBreakpoint?: Breakpoint\n  /** Spacing used by the web app body props. */\n  spacing?: string | number\n  /** Variant used by the web app body props. */\n  variant?: 'scrollable' | 'fixed'\n}\n\n/** Lays out the routed app body beneath the persistent chrome. */\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 !== undefined && breadcrumbs !== null\n        ? (\n            <WebAppBodyBreadcrumb disableBreadcrumbGutter={disableBreadcrumbGutter} spacing={spacing}>\n              {breadcrumbs}\n            </WebAppBodyBreadcrumb>\n          )\n        : null}\n      <WebAppBodyScrollableWrapper>\n        <WebAppBodyScrollable mobileScrollingBreakpoint={mobileScrollingBreakpoint} variant={variant}>\n          {children}\n        </WebAppBodyScrollable>\n      </WebAppBodyScrollableWrapper>\n    </WebAppBodyRoot>\n  )\n}\n", "import type { 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 = { ...fixedWrap } as const\n\nexport const fixedContent: CSSProperties = { ...scrollableWrap } as const\n", "import type { FlexBoxProps } from '@ariestools/sdk-react-foundation/flexbox'\nimport {\n  FlexCol, FlexGrowCol, FlexGrowRow,\n} from '@ariestools/sdk-react-foundation/flexbox'\nimport { ErrorBoundary } from '@ariestools/sdk-react-ui/error'\nimport { Divider, Paper } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { WebAppNavigationType } from '#app-settings'\nimport { ApplicationAppBar, SystemToolbar } from '#appbar'\n\nimport { WebAppErrorPage } from './ErrorPage.tsx'\n\n/** Properties accepted by the web app chrome component. */\nexport interface WebAppChromeProps extends FlexBoxProps {\n  /**\n   * @deprecated react-helmet removed; this prop is retained for compile compatibility and no longer affects the document head.\n   */\n  appName?: string\n  /** Appbar used by the web app chrome props. */\n  appbar?: ReactNode\n  /** Error boundary used by the web app chrome props. */\n  errorBoundary?: boolean\n  /** Error page used by the web app chrome props. */\n  errorPage?: ReactNode\n  /** Footer used by the web app chrome props. */\n  footer?: ReactNode\n  /** Footer elevation used by the web app chrome props. */\n  footerElevation?: number\n  /** Menu items used by the web app chrome props. */\n  menuItems?: ReactNode\n  /** Navigation type used by the web app chrome props. */\n  navigationType?: WebAppNavigationType\n}\n\n/** Composes the persistent app chrome around routed page content. */\nexport const WebAppChrome = ({\n  ref, appName: _appName, appbar, children, errorBoundary, errorPage, footer, footerElevation = 4, menuItems, navigationType = 'menu', sx, ...props\n}: WebAppChromeProps) => {\n  return (\n    <FlexCol\n      id=\"web-chrome-flex\"\n      ref={ref}\n      sx={{\n        alignItems: 'stretch',\n        overflow: 'hidden',\n        height: '100vh',\n        ...sx,\n      }}\n      {...props}\n    >\n      {appbar ?? <ApplicationAppBar systemToolbar={<SystemToolbar menuItems={navigationType === 'menu' ? menuItems : undefined} />} />}\n      <FlexGrowRow\n        id=\"sidebar-nav-flex\"\n        sx={{\n          overflow: 'hidden',\n          alignItems: 'stretch',\n        }}\n      >\n        {navigationType === 'menu'\n          ? null\n          : (\n              <>\n                {menuItems}\n                <Divider orientation=\"vertical\" />\n              </>\n            )}\n        <FlexGrowCol\n          id=\"main-flex\"\n          sx={{\n            justifyContent: 'flex-start',\n            alignItems: 'stretch',\n          }}\n        >\n          {errorBoundary === true\n            ? (\n                <ErrorBoundary\n                  fallbackWithError={(error) => {\n                    return errorPage ?? <WebAppErrorPage error={error} />\n                  }}\n                >\n                  {children}\n                </ErrorBoundary>\n              )\n            : children}\n        </FlexGrowCol>\n      </FlexGrowRow>\n      <FlexCol\n        id=\"footer-flex\"\n        sx={{ alignItems: 'stretch' }}\n      >\n        <Paper elevation={footerElevation} square>\n          {footer}\n        </Paper>\n      </FlexCol>\n    </FlexCol>\n  )\n}\n\nWebAppChrome.displayName = 'WebAppChrome'\n", "import { ButtonEx } from '@ariestools/sdk-react-ui/button'\nimport React from 'react'\n\nimport type { WebAppPageProps } from './Page.tsx'\nimport { WebAppPage } from './Page.tsx'\n\n/** Properties accepted by the web app error page component. */\nexport interface WebAppErrorPageProps extends WebAppPageProps {\n  /** Error used by the web app error page props. */\n  error?: Error\n}\n\n/** Renders the standard web-application error page for a supplied failure. */\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>{String(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 { isDefined } from '@ariestools/sdk'\nimport { useAsyncEffect } from '@ariestools/sdk-react-foundation/async-effect'\nimport type { FlexBoxProps } from '@ariestools/sdk-react-foundation/flexbox'\nimport { FlexGrowCol } from '@ariestools/sdk-react-foundation/flexbox'\nimport { useUserEvents } from '@ariestools/sdk-react-foundation/user-events'\nimport type { ContainerProps } from '@mui/material'\nimport { Container, styled } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\nimport { useLocation } from 'react-router'\n\nimport type { WebAppBodyProps } from './Body.tsx'\nimport { WebAppBody } from './Body.tsx'\nimport { fixedWrap, scrollableWrap } from './lib/index.ts'\n\nconst WebAppPageRoot = styled(FlexGrowCol, {\n  name: 'WebAppPage',\n  shouldForwardProp: propName => propName !== 'mobileScrollingBreakpoint' && propName !== 'variant',\n  slot: 'Root',\n})<WebAppPageProps>(({\n  theme, mobileScrollingBreakpoint = 'sm', variant,\n}) => {\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\n/** Properties accepted by the web app page component. */\nexport interface WebAppPageProps extends WebAppBodyProps, FlexBoxProps {\n  /** Container used by the web app page props. */\n  container?: ContainerProps['maxWidth'] | 'none'\n  /** Disable gutters used by the web app page props. */\n  disableGutters?: boolean\n}\n\n/** Provides the standard layout and metadata wrapper for a web-application page. */\nexport const WebAppPage: React.FC<PropsWithChildren<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    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      {isDefined(container) && container !== 'none'\n        ? (\n            <Container\n              disableGutters={disableGutters}\n              style={{\n                alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1, justifyContent: 'flex-start',\n              }}\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          )\n        : (\n            <WebAppBody\n              disableBreadcrumbGutter={disableBreadcrumbGutter}\n              breadcrumbs={breadcrumbs}\n              mobileScrollingBreakpoint={mobileScrollingBreakpoint}\n              variant={variant}\n              {...props}\n              sx={{ paddingX: disableGutters === true ? 0 : 1 }}\n            >\n              {children}\n            </WebAppBody>\n          )}\n    </WebAppPageRoot>\n  )\n}\n\n/** @deprecated use WebAppPagePage instead */\nexport const FlexPage = WebAppPage\n", "import { NotFound } from '@ariestools/sdk-react-foundation/shared'\nimport React from 'react'\n\nimport type { WebAppPageProps } from '../Page.tsx'\nimport { WebAppPage } from '../Page.tsx'\n\n/** Renders the standard web-application page for an unmatched route. */\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": ["value", "isString", "jsx", "Toolbar", "assertEx", "isString", "FlexRow", "useTheme", "toPromise", "useUserEvents", "Link", "jsx", "jsx", "useUserEvents", "toPromise", "Link", "jsx", "jsx", "jsxs", "useTheme", "assertEx", "FlexRow", "isString", "jsx", "jsxs", "Toolbar", "isDefinedNotNull", "Toolbar", "useMemo", "FlexRow", "MenuIcon", "IconButton", "List", "useState", "isString", "FlexRow", "useCollapsible", "useTheme", "useState", "jsx", "Typography", "jsx", "jsx", "jsx", "useTheme", "jsx", "Fragment", "jsx", "jsxs", "useTheme", "useCollapsible", "useState", "FlexRow", "isString", "jsx", "jsxs", "useState", "FlexRow", "IconButton", "MenuIcon", "List", "FlexCol", "Collapse", "jsx", "jsxs", "FlexCol", "Collapse", "jsx", "jsxs", "Toolbar", "isDefinedNotNull", "jsx", "isString", "FlexCol", "FlexRow", "Container", "Typography", "use", "useEffect", "useTheme", "jsx", "createContext", "useEffect", "useMemo", "useState", "jsx", "useState", "useEffect", "useMemo", "jsx", "jsxs", "use", "isString", "FlexCol", "FlexRow", "Typography", "Container", "jsx", "jsx", "jsx", "useMemo", "createContext", "jsx", "useMemo", "use", "use", "jsx", "FlexCol", "ErrorRender", "Typography", "jsx", "jsxs", "props", "useEffect", "useLocation", "useNavigate", "location", "FlexRow", "jsx", "jsxs", "FlexRow", "FlexCol", "FlexGrowCol", "FlexGrowRow", "isDefined", "FlexGrowCol", "useUserEvents", "Container", "styled", "useLocation", "jsx", "styled", "FlexGrowCol", "useUserEvents", "useLocation", "isDefined", "Container", "jsx", "jsxs", "Fragment", "jsx", "jsxs", "FlexCol", "FlexGrowRow", "FlexGrowCol", "jsx"]
}
