@xyo-network/react-appbar 2.78.0 → 2.78.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/AppBar/Application.tsx","../../src/components/Toolbar/Context/ContextToolbar.tsx","../../src/components/Toolbar/Context/LogoLinkEx.tsx","../../src/components/Toolbar/Context/Logo.tsx","../../src/components/Toolbar/System/SystemToolbar.tsx","../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx","../../src/contexts/Collapsible/provider.tsx","../../src/contexts/Collapsible/context.ts","../../src/contexts/Collapsible/use.tsx","../../src/components/SiteMenu/Menu.tsx","../../src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx","../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx","../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx","../../src/components/SiteMenu/MenuSection.tsx","../../src/components/CollapsibleDrawer/CollapseToggle.tsx","../../src/components/CollapsibleDrawer/CollapsibleDrawer.tsx","../../src/components/MobileSystemControls/SystemControls.tsx","../../src/components/MobileSystemControls/SystemControlsRoot.tsx","../../src/components/MobileSystemControls/SystemControlsType.ts","../../src/components/MobileSystemControls/SystemControlsUnstyled.tsx","../../src/components/MobileSystemControls/controls/SystemControl.tsx","../../src/components/SearchBar/SearchBar.tsx"],"sourcesContent":["import { ToolbarProps } from '@mui/material'\nimport { AppBarEx, AppBarExProps } from '@xylabs/react-appbar'\nimport { ReactElement } from 'react'\n\nimport { ContextToolbar, SystemToolbar } from '../Toolbar'\n\nexport interface ApplicationAppBarProps extends AppBarExProps {\n contextToolbar?: ReactElement<ToolbarProps>\n responsive?: boolean\n systemToolbar?: ReactElement<ToolbarProps>\n}\n\nexport const ApplicationAppBar: React.FC<ApplicationAppBarProps> = ({ systemToolbar, contextToolbar, responsive = true, ...props }) => {\n return (\n <AppBarEx\n systemToolbar={systemToolbar ?? <SystemToolbar />}\n contextToolbar={contextToolbar ?? <ContextToolbar />}\n position=\"sticky\"\n responsive={responsive}\n {...props}\n />\n )\n}\n","import { Toolbar, ToolbarProps } from '@mui/material'\nimport { To } from 'react-router-dom'\n\nimport { LogoLinkEx } from './LogoLinkEx'\n\nexport interface ContextToolbarProps extends ToolbarProps {\n logoTo?: To\n version?: boolean\n}\n\nexport const ContextToolbar: React.FC<ContextToolbarProps> = ({ logoTo = '/', version = false, ...props }) => {\n return (\n <Toolbar {...props}>\n <LogoLinkEx version={version} to={logoTo} />\n </Toolbar>\n )\n}\n","import { Typography, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx, LinkExProps } from '@xylabs/react-link'\n\nimport { Logo } from './Logo'\n\nexport interface LogoLinkExProps extends LinkExProps {\n version?: boolean | string\n}\n\nexport const LogoLinkEx: React.FC<LogoLinkExProps> = ({ to = '/', version = false, ...props }) => {\n const theme = useTheme()\n return (\n <LinkEx to={to} {...props}>\n <FlexRow paddingX=\"4px\">\n <Logo height=\"40\" width=\"43\" />\n {version ?\n <Typography\n position=\"absolute\"\n borderRadius={1}\n right={6}\n color={theme.palette.getContrastText(theme.palette.text.primary)}\n bottom={0}\n bgcolor={theme.palette.text.primary}\n paddingX=\"2px\"\n lineHeight={1}\n variant=\"caption\"\n border={`1px ${theme.palette.getContrastText(theme.palette.primary.main)} solid`}\n >\n {typeof version === 'string' ? version : '2.1'}\n </Typography>\n : null}\n </FlexRow>\n </LinkEx>\n )\n}\n","import { useTheme } from '@mui/material'\n\nexport const Logo: React.FC<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>> = (props) => {\n const theme = useTheme()\n const logoUrl =\n theme.palette.mode === 'dark' ?\n 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n : 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n return <img src={logoUrl} {...props} />\n}\n","import { Paper, Toolbar, ToolbarProps } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DarkModeIconButton } from '@xyo-network/react-app-settings'\nimport { NetworkSelectEx, NetworkSelectExProps } from '@xyo-network/react-network'\nimport { ReactNode } from 'react'\n\nimport { SiteMenu, SiteMenuProps } from '../../SiteMenu'\n\nexport interface SystemToolbarProps extends ToolbarProps {\n darkModeButton?: boolean\n developerMode?: boolean\n hideNetworkSelect?: boolean\n menuItems?: ReactNode\n networkSelectProps?: NetworkSelectExProps\n onMenuToggle?: SiteMenuProps['onMenuToggle']\n precedingChildren?: ReactNode\n}\n\nexport const SystemToolbar: React.FC<SystemToolbarProps> = ({\n children,\n darkModeButton = false,\n hideNetworkSelect,\n menuItems,\n networkSelectProps,\n onMenuToggle,\n precedingChildren,\n ...props\n}) => {\n return (\n <Toolbar {...props}>\n {precedingChildren}\n {hideNetworkSelect ? null : (\n <FlexRow marginX={0.5}>\n <Paper variant=\"elevation\">\n <NetworkSelectEx fullWidth {...networkSelectProps} />\n </Paper>\n </FlexRow>\n )}\n {children}\n {darkModeButton ?\n <DarkModeIconButton color=\"inherit\" />\n : null}\n {menuItems ?\n <SiteMenu onMenuToggle={onMenuToggle}>{menuItems}</SiteMenu>\n : null}\n </Toolbar>\n )\n}\n","import { useMemo } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemProps } from '../MenuListItem'\n\nexport type DefaultSiteMenuListItemProps = Pick<MenuListItemProps, 'collapseEnd' | 'dense' | 'iconOnly' | 'sx'>\n\nexport const useMenuItemsShared = () => {\n const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible()\n\n const onMenuItemToggle = (open?: boolean) => {\n setCollapse?.((previous) => (open ? false : previous))\n setCollapseEnd?.((previous) => (open ? false : previous))\n }\n\n const defaultSiteMenuListItemProps: DefaultSiteMenuListItemProps = useMemo(\n () => ({\n collapseEnd,\n dense: true,\n iconOnly: collapse,\n sx: {\n px: '8px',\n },\n }),\n [collapse, collapseEnd],\n )\n\n return { defaultSiteMenuListItemProps, onMenuItemToggle }\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nimport { CollapsibleContext } from './context'\n\nexport interface CollapsibleProviderProps extends WithChildren {\n defaultCollapse?: boolean\n defaultCollapseEnd?: boolean\n}\n\nexport const CollapsibleProvider: React.FC<CollapsibleProviderProps> = ({ defaultCollapse = false, defaultCollapseEnd = false, children }) => {\n const [collapse, setCollapse] = useState(defaultCollapse)\n const [collapseEnd, setCollapseEnd] = useState(defaultCollapseEnd)\n\n useEffect(() => {\n setCollapse(defaultCollapse)\n }, [defaultCollapse])\n\n useEffect(() => {\n setCollapseEnd(defaultCollapseEnd)\n }, [defaultCollapseEnd])\n\n return (\n <CollapsibleContext.Provider value={{ collapse, collapseEnd, provided: true, setCollapse, setCollapseEnd }}>\n {children}\n </CollapsibleContext.Provider>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleState } from './State'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleContext } from './context'\n\nexport const useCollapsible = () => useContextEx(CollapsibleContext, 'Collapsible', false)\n","import { Menu as MenuIcon, Settings as SettingsIcon } from '@mui/icons-material'\nimport { IconButton, List, SwipeableDrawer } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem'\n\nexport interface SiteMenuProps extends FlexBoxProps {\n hideSettingsMenuItem?: boolean\n onMenuToggle?: (state?: boolean) => void\n side?: 'left' | 'right' | 'top' | 'bottom'\n}\n\nexport const SiteMenu: React.FC<SiteMenuProps> = ({ children, onMenuToggle, side = 'right', ...props }) => {\n const [open, setOpen] = useState(false)\n\n useEffect(() => {\n onMenuToggle?.(open)\n }, [onMenuToggle, open])\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\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 { ListItemProps, ListItemText, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { useState } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemBase, NavListItemProps } from '../lib'\nimport { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav'\n\nexport interface MenuListItemProps extends NavListItemProps, MenuListItemBase, ListItemProps {\n iconMenuTextSpacing?: string\n iconOnly?: boolean\n subNavListItems?: NavListItemProps[]\n subNavOpen?: boolean\n}\n\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 <LinkEx\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n color=\"inherit\"\n to={to}\n sx={{\n '& :hover': {\n cursor: 'pointer',\n textDecoration: 'underline',\n },\n }}\n >\n <FlexRow>\n <MenuIcon icon={icon} paddingRight={resolvedIconMenuTextSpacing} color={hovered ? 'secondary' : 'inherit'} />\n <ListItemText primary={primary} />\n </FlexRow>\n </LinkEx>\n <FlexRow style={{ marginLeft: theme.spacing(1) }}>\n {subNavListItems ?\n <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} />\n : null}\n {tooltip ?\n <ListItemTooltip title={tooltip} />\n : null}\n </FlexRow>\n </MenuListItem>\n {subNavListItems ?\n <SubNavListItemsCollapse openSubNav={openSubNav} collapse={collapse}>\n {subNavListItems?.map((item, index) => <MenuListItemContainer dense={dense} sx={{ pl: theme.spacing(1) }} key={index} {...item} />)}\n </SubNavListItemsCollapse>\n : null}\n </>\n )\n}\n","import { Tooltip, TooltipProps } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscInfo } from 'react-icons/vsc'\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 justifyContent=\"center\">\n <VscInfo color=\"grey\" />\n </FlexCol>\n </div>\n </Tooltip>\n )\n}\n","import { Typography, TypographyProps } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface MenuIconProps extends TypographyProps {\n icon?: ReactNode\n}\n\nexport const MenuIcon: React.FC<MenuIconProps> = ({ icon, ...props }) => {\n return (\n <Typography display=\"flex\" {...props}>\n {icon}\n </Typography>\n )\n}\n","import { ListItem, ListItemProps } from '@mui/material'\n\nimport { MenuListItemBase } from '../../lib'\n\nexport interface ListItemExProps extends MenuListItemBase, ListItemProps {}\n\nexport const MenuListItem: React.FC<ListItemExProps> = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {\n const listItemSx = iconOnly ? { borderRadius: '50%', display: 'inline-flex', flexGrow: 0, width: 'auto' } : { width: '100%' }\n // wait till collapseEnds to remove the spacing between items\n const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 }\n // adjusts to the paddingY value which does NOT scale along the theme.spacing\n const paddingSx = dense ? { px: '8px' } : { px: '12px' }\n return (\n <ListItem sx={{ ...listItemSx, ...spacingSx, ...paddingSx, ...sx }} {...props}>\n {children}\n </ListItem>\n )\n}\n","import { Collapse, CollapseProps, List } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { NavListItemProps } from '../../lib'\n\nexport interface SubNavListItemsCollapseProps extends WithChildren, CollapseProps {\n collapse?: boolean\n openSubNav?: boolean\n subNavListItems?: NavListItemProps[]\n}\n\nexport const SubNavListItemsCollapse: React.FC<SubNavListItemsCollapseProps> = ({ collapse, openSubNav, children, ...props }) => {\n return (\n <Collapse in={collapse == true ? false : openSubNav} {...props}>\n <List>{children}</List>\n </Collapse>\n )\n}\n","import { IconButton, IconButtonProps, useTheme } from '@mui/material'\nimport { Dispatch, SetStateAction, SyntheticEvent } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscChevronDown } from 'react-icons/vsc'\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)\n }}\n sx={{ marginRight: theme.spacing(0.5) }}\n >\n <VscChevronDown fontSize=\"16px\" />\n </IconButton>\n )\n}\n","import { Collapse, ListSubheader } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\n\nimport { MenuListItemContainer, MenuListItemProps } from './MenuListItem'\n\nexport interface MenuSectionProps extends FlexBoxProps {\n iconMenuTextSpacing?: string\n listItems: MenuListItemProps[]\n showTitle?: boolean\n title: string\n}\n\nexport const MenuSection: React.FC<MenuSectionProps> = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Collapse in={showTitle} timeout={700}>\n <ListSubheader>{title}</ListSubheader>\n </Collapse>\n\n {listItems.map((item, index) => (\n <MenuListItemContainer key={index} iconMenuTextSpacing={iconMenuTextSpacing} {...item}></MenuListItemContainer>\n ))}\n </FlexCol>\n )\n}\n","import { Icon, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapseToggleFlex: React.FC<FlexBoxProps> = (props) => {\n const { collapse, setCollapse, setCollapseEnd } = useCollapsible()\n const [hover, setHover] = useState(false)\n const theme = useTheme()\n\n const handleCollapseToggle = () => {\n setCollapse?.(!collapse)\n setCollapseEnd?.((previous) => (previous ? false : previous))\n }\n\n return (\n <FlexRow mt={2} py={2} justifyContent={collapse ? 'start' : 'center'} {...props}>\n <Icon\n onClick={handleCollapseToggle}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n fontSize={'large'}\n sx={{ color: hover ? theme.palette.secondary.main : 'inherit', cursor: 'pointer' }}\n >\n {collapse ?\n <VscArrowSmallRight />\n : <VscArrowSmallLeft />}\n </Icon>\n </FlexRow>\n )\n}\n","import { Collapse, CollapseProps, styled, useTheme } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapsibleDrawer: React.FC<WithChildren<CollapseProps>> = ({ children, sx, ...props }) => {\n const { collapse, setCollapseEnd } = useCollapsible()\n const theme = useTheme()\n\n const collapsedSize = props.collapsedSize ?? theme.spacing(5)\n\n return (\n <CollapsibleFlexInner\n in={!collapse}\n orientation=\"horizontal\"\n collapsedSize={collapsedSize}\n onExited={() => setCollapseEnd?.(true)}\n sx={{\n alignItems: 'start',\n display: 'flex',\n height: '100%',\n ...sx,\n }}\n {...props}\n >\n {children}\n </CollapsibleFlexInner>\n )\n}\n\nconst CollapsibleFlexInner = styled(Collapse)(() => ({\n '& .MuiCollapse-wrapperInner': {\n display: 'flex',\n flexDirection: 'column',\n },\n}))\n","import { FlexCol } from '@xylabs/react-flexbox'\n\nimport { SystemControlsRoot } from './SystemControlsRoot'\nimport { SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControls: React.FC<SystemControlsUnstyledProps> = (props) => {\n return (\n <FlexCol>\n <SystemControlsRoot {...props} />\n </FlexCol>\n )\n}\n\nexport { SystemControls }\n","import { styled } from '@mui/material'\n\nimport { SystemControlsType } from './SystemControlsType'\nimport { SystemControlsUnstyled, SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControlsRoot = styled(SystemControlsUnstyled, { name: 'SystemControls', slot: 'Root' })<SystemControlsUnstyledProps>(({ theme }) => ({\n // shared defaults\n ['&']: {\n '.toggle': {\n backgroundColor: theme.palette.primary.main,\n },\n alignItems: 'start',\n zIndex: 1,\n },\n // WindowShade System Controls styles\n [`&.system-controls-type-${SystemControlsType.WindowShade}`]: {\n '.control': {\n borderRadius: '0 0 5px 5px',\n flexDirection: 'row',\n flexGrow: 1,\n justifyContent: 'space-around',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.controls': {\n alignItems: 'stretch',\n flexDirection: 'column',\n flexGrow: 1,\n },\n '.toggle': {\n borderRadius: '0 0 5px 5px',\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n },\n flexDirection: 'row',\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n // Left System Control styles\n [`&.system-controls-type-${SystemControlsType.Left}`]: {\n '.control': {\n alignItems: 'start',\n flexDirection: 'column',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.control-wrap': {\n marginBottom: `${theme.spacing(2)}`,\n },\n '.toggle': {\n borderRadius: '0 5px 5px 0',\n padding: `${theme.spacing(1)} ${theme.spacing(0.5)}`,\n writingMode: 'vertical-rl',\n },\n flexDirection: 'column',\n left: 0,\n position: 'fixed',\n top: '30vh',\n width: 'auto',\n },\n}))\n\nexport { SystemControlsRoot }\n","export enum SystemControlsType {\n Left = 'Left',\n Right = 'Right',\n WindowShade = 'WindowShade',\n}\n","import { Paper, Theme, useMediaQuery } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NetworkSelectEx } from '@xyo-network/react-network'\n\nimport { SystemControl } from './controls'\nimport { SystemControlsType } from './SystemControlsType'\n\ninterface SystemControlsUnstyledProps extends FlexBoxProps {\n systemControlsType?: SystemControlsType\n visible?: boolean\n}\n\nconst SystemControlsUnstyled: React.FC<SystemControlsUnstyledProps> = ({\n visible,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const isSmall = useMediaQuery<Theme>((theme) => theme.breakpoints.down('sm'))\n\n return visible || isSmall ?\n <FlexCol {...props} className={`${props.className} system-controls-type-${systemControlsType}`}>\n <SystemControl\n systemControlsType={systemControlsType}\n controlElement={\n <>\n <FlexRow className={'control-wrap'}>\n <Paper variant=\"elevation\" elevation={0}>\n <NetworkSelectEx responsive={false} className=\"network-ex\" />\n </Paper>\n </FlexRow>\n </>\n }\n />\n </FlexCol>\n : <FlexCol />\n}\n\nexport type { SystemControlsUnstyledProps }\nexport { SystemControlsUnstyled }\n","import { Collapse, CollapseProps } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useState } from 'react'\n\nimport { SystemControlsType } from '../SystemControlsType'\n\ninterface SystemControlProps extends FlexBoxProps {\n controlElement: React.ReactNode\n systemControlsType?: SystemControlsType\n}\n\nconst SystemControl: React.FC<WithChildren<SystemControlProps>> = ({\n children,\n controlElement,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const [toggleControls, setToggleControls] = useState(false)\n\n let orientation: CollapseProps['orientation'] = 'vertical'\n\n switch (systemControlsType) {\n case SystemControlsType.Left: {\n orientation = 'horizontal'\n break\n }\n }\n\n return (\n <FlexRow className=\"controls\" {...props}>\n <Collapse in={toggleControls} orientation={orientation} timeout={500}>\n <FlexRow bgcolor=\"primary.main\" className=\"control\">\n {controlElement}\n </FlexRow>\n </Collapse>\n <FlexCol style={{ cursor: 'pointer' }} onClick={() => setToggleControls(!toggleControls)}>\n {children}\n </FlexCol>\n </FlexRow>\n )\n}\n\nexport { SystemControl }\n","import { Search as SearchIcon } from '@mui/icons-material'\nimport { Paper, TextField } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n\nexport interface SearchBarProps extends FlexBoxProps {\n onSearch?: (term?: string) => void\n}\n\nexport const SearchBar: React.FC<SearchBarProps> = ({ defaultValue, onSearch, ...props }) => {\n const [term, setTerm] = useState<string>()\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\n <Paper variant=\"elevation\" elevation={0} style={{ display: 'flex', overflow: 'hidden', width: '100%' }}>\n <TextField\n InputProps={{ color: 'secondary', style: { borderBottomRightRadius: 0, borderTopRightRadius: 0, borderWidth: 0 } }}\n variant=\"outlined\"\n size=\"small\"\n defaultValue={defaultValue}\n fullWidth\n onChange={(event) => setTerm(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') onSearch?.(term)\n }}\n />\n <ButtonEx variant=\"contained\" style={{ borderRadius: 0, borderTopLeftRadius: 0 }} color=\"secondary\" onClick={() => onSearch?.(term)}>\n <SearchIcon />\n </ButtonEx>\n </Paper>\n </FlexRow>\n )\n}\n"],"mappings":"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","names":["AppBarEx","Toolbar","Typography","useTheme","FlexRow","LinkEx","useTheme","jsx","Logo","props","logoUrl","jsx","jsxs","LogoLinkEx","to","version","props","theme","useTheme","LinkEx","FlexRow","Logo","Typography","jsx","ContextToolbar","logoTo","version","props","Toolbar","LogoLinkEx","Paper","Toolbar","FlexRow","DarkModeIconButton","NetworkSelectEx","useMemo","useEffect","useState","createContextEx","CollapsibleContext","jsx","CollapsibleProvider","defaultCollapse","defaultCollapseEnd","children","collapse","setCollapse","useState","collapseEnd","setCollapseEnd","useEffect","CollapsibleContext","useContextEx","useCollapsible","useContextEx","CollapsibleContext","useMenuItemsShared","collapse","collapseEnd","setCollapse","setCollapseEnd","useCollapsible","onMenuItemToggle","open","previous","useMemo","MenuIcon","SettingsIcon","IconButton","List","SwipeableDrawer","FlexRow","useEffect","useState","ListItemText","useTheme","FlexRow","LinkEx","useState","Tooltip","FlexCol","VscInfo","jsx","ListItemTooltip","title","props","Typography","jsx","MenuIcon","icon","props","ListItem","jsx","MenuListItem","iconOnly","collapseEnd","sx","children","dense","props","Collapse","List","jsx","SubNavListItemsCollapse","collapse","openSubNav","children","props","IconButton","useTheme","VscChevronDown","jsx","SubNavToggleIconButton","setOpenSubNav","openSubNav","theme","event","Fragment","jsx","jsxs","MenuListItemContainer","style","icon","iconMenuTextSpacing","iconOnly","onButtonClick","primary","subNavListItems","sx","tooltip","to","props","dense","theme","useTheme","collapse","useCollapsible","openSubNav","setOpenSubNav","useState","hovered","setHovered","resolvedIconMenuTextSpacing","MenuListItem","LinkEx","FlexRow","MenuIcon","ListItemText","SubNavToggleIconButton","ListItemTooltip","SubNavListItemsCollapse","item","index","jsx","jsxs","SiteMenu","children","onMenuToggle","side","props","open","setOpen","useState","useEffect","FlexRow","IconButton","MenuIcon","SwipeableDrawer","List","MenuListItemContainer","SettingsIcon","Collapse","ListSubheader","FlexCol","jsx","jsxs","MenuSection","iconMenuTextSpacing","listItems","showTitle","title","props","FlexCol","Collapse","ListSubheader","item","index","MenuListItemContainer","jsx","jsxs","SystemToolbar","children","darkModeButton","hideNetworkSelect","menuItems","networkSelectProps","onMenuToggle","precedingChildren","props","Toolbar","FlexRow","Paper","NetworkSelectEx","DarkModeIconButton","SiteMenu","jsx","ApplicationAppBar","systemToolbar","contextToolbar","responsive","props","AppBarEx","SystemToolbar","ContextToolbar","Icon","useTheme","FlexRow","useState","VscArrowSmallLeft","VscArrowSmallRight","jsx","CollapseToggleFlex","props","collapse","setCollapse","setCollapseEnd","useCollapsible","hover","setHover","useState","theme","useTheme","FlexRow","Icon","previous","VscArrowSmallRight","VscArrowSmallLeft","Collapse","styled","useTheme","jsx","CollapsibleDrawer","children","sx","props","collapse","setCollapseEnd","useCollapsible","theme","useTheme","collapsedSize","CollapsibleFlexInner","styled","Collapse","FlexCol","styled","SystemControlsType","Paper","useMediaQuery","FlexCol","FlexRow","NetworkSelectEx","Collapse","FlexCol","FlexRow","useState","jsx","jsxs","SystemControl","children","controlElement","systemControlsType","props","toggleControls","setToggleControls","useState","orientation","FlexRow","Collapse","FlexCol","Fragment","jsx","SystemControlsUnstyled","visible","systemControlsType","props","isSmall","useMediaQuery","theme","FlexCol","SystemControl","FlexRow","Paper","NetworkSelectEx","SystemControlsRoot","styled","SystemControlsUnstyled","theme","jsx","SystemControls","props","FlexCol","SystemControlsRoot","SearchIcon","Paper","TextField","ButtonEx","FlexRow","useState","jsx","jsxs","SearchBar","defaultValue","onSearch","props","term","setTerm","event"]}
1
+ {"version":3,"sources":["../../src/components/AppBar/Application.tsx","../../src/components/Toolbar/Context/ContextToolbar.tsx","../../src/components/Toolbar/Context/LogoLinkEx.tsx","../../src/components/Toolbar/Context/Logo.tsx","../../src/components/Toolbar/System/SystemToolbar.tsx","../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx","../../src/contexts/Collapsible/provider.tsx","../../src/contexts/Collapsible/context.ts","../../src/contexts/Collapsible/use.tsx","../../src/components/SiteMenu/Menu.tsx","../../src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx","../../src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx","../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx","../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx","../../src/components/SiteMenu/MenuSection.tsx","../../src/components/CollapsibleDrawer/CollapseToggle.tsx","../../src/components/CollapsibleDrawer/CollapsibleDrawer.tsx","../../src/components/MobileSystemControls/SystemControls.tsx","../../src/components/MobileSystemControls/SystemControlsRoot.tsx","../../src/components/MobileSystemControls/SystemControlsType.ts","../../src/components/MobileSystemControls/SystemControlsUnstyled.tsx","../../src/components/MobileSystemControls/controls/SystemControl.tsx","../../src/components/SearchBar/SearchBar.tsx"],"sourcesContent":["import { ToolbarProps } from '@mui/material'\nimport { AppBarEx, AppBarExProps } from '@xylabs/react-appbar'\nimport { ReactElement } from 'react'\n\nimport { ContextToolbar, SystemToolbar } from '../Toolbar'\n\nexport interface ApplicationAppBarProps extends AppBarExProps {\n contextToolbar?: ReactElement<ToolbarProps>\n responsive?: boolean\n systemToolbar?: ReactElement<ToolbarProps>\n}\n\nexport const ApplicationAppBar: React.FC<ApplicationAppBarProps> = ({ systemToolbar, contextToolbar, responsive = true, ...props }) => {\n return (\n <AppBarEx\n systemToolbar={systemToolbar ?? <SystemToolbar />}\n contextToolbar={contextToolbar ?? <ContextToolbar />}\n position=\"sticky\"\n responsive={responsive}\n {...props}\n />\n )\n}\n","import { Toolbar, ToolbarProps } from '@mui/material'\nimport { To } from 'react-router-dom'\n\nimport { LogoLinkEx } from './LogoLinkEx'\n\nexport interface ContextToolbarProps extends ToolbarProps {\n logoTo?: To\n version?: boolean\n}\n\nexport const ContextToolbar: React.FC<ContextToolbarProps> = ({ logoTo = '/', version = false, ...props }) => {\n return (\n <Toolbar {...props}>\n <LogoLinkEx version={version} to={logoTo} />\n </Toolbar>\n )\n}\n","import { Typography, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx, LinkExProps } from '@xylabs/react-link'\n\nimport { Logo } from './Logo'\n\nexport interface LogoLinkExProps extends LinkExProps {\n version?: boolean | string\n}\n\nexport const LogoLinkEx: React.FC<LogoLinkExProps> = ({ to = '/', version = false, ...props }) => {\n const theme = useTheme()\n return (\n <LinkEx to={to} {...props}>\n <FlexRow paddingX=\"4px\">\n <Logo height=\"40\" width=\"43\" />\n {version ?\n <Typography\n position=\"absolute\"\n borderRadius={1}\n right={6}\n color={theme.palette.getContrastText(theme.palette.text.primary)}\n bottom={0}\n bgcolor={theme.palette.text.primary}\n paddingX=\"2px\"\n lineHeight={1}\n variant=\"caption\"\n border={`1px ${theme.palette.getContrastText(theme.palette.primary.main)} solid`}\n >\n {typeof version === 'string' ? version : '2.1'}\n </Typography>\n : null}\n </FlexRow>\n </LinkEx>\n )\n}\n","import { useTheme } from '@mui/material'\n\nexport const Logo: React.FC<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>> = (props) => {\n const theme = useTheme()\n const logoUrl =\n theme.palette.mode === 'dark' ?\n 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n : 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n return <img src={logoUrl} {...props} />\n}\n","import { Paper, Toolbar, ToolbarProps } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DarkModeIconButton } from '@xyo-network/react-app-settings'\nimport { NetworkSelectEx, NetworkSelectExProps } from '@xyo-network/react-network'\nimport { ReactNode } from 'react'\n\nimport { SiteMenu, SiteMenuProps } from '../../SiteMenu'\n\nexport interface SystemToolbarProps extends ToolbarProps {\n darkModeButton?: boolean\n developerMode?: boolean\n hideNetworkSelect?: boolean\n menuItems?: ReactNode\n networkSelectProps?: NetworkSelectExProps\n onMenuToggle?: SiteMenuProps['onMenuToggle']\n precedingChildren?: ReactNode\n}\n\nexport const SystemToolbar: React.FC<SystemToolbarProps> = ({\n children,\n darkModeButton = false,\n hideNetworkSelect,\n menuItems,\n networkSelectProps,\n onMenuToggle,\n precedingChildren,\n ...props\n}) => {\n return (\n <Toolbar {...props}>\n {precedingChildren}\n {hideNetworkSelect ? null : (\n <FlexRow marginX={0.5}>\n <Paper variant=\"elevation\">\n <NetworkSelectEx fullWidth {...networkSelectProps} />\n </Paper>\n </FlexRow>\n )}\n {children}\n {darkModeButton ?\n <DarkModeIconButton color=\"inherit\" />\n : null}\n {menuItems ?\n <SiteMenu onMenuToggle={onMenuToggle}>{menuItems}</SiteMenu>\n : null}\n </Toolbar>\n )\n}\n","import { useMemo } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemProps } from '../MenuListItem'\n\nexport type DefaultSiteMenuListItemProps = Pick<MenuListItemProps, 'collapseEnd' | 'dense' | 'iconOnly' | 'sx'>\n\nexport const useMenuItemsShared = () => {\n const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible()\n\n const onMenuItemToggle = (open?: boolean) => {\n setCollapse?.((previous) => (open ? false : previous))\n setCollapseEnd?.((previous) => (open ? false : previous))\n }\n\n const defaultSiteMenuListItemProps: DefaultSiteMenuListItemProps = useMemo(\n () => ({\n collapseEnd,\n dense: true,\n iconOnly: collapse,\n sx: {\n px: '8px',\n },\n }),\n [collapse, collapseEnd],\n )\n\n return { defaultSiteMenuListItemProps, onMenuItemToggle }\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nimport { CollapsibleContext } from './context'\n\nexport interface CollapsibleProviderProps extends WithChildren {\n defaultCollapse?: boolean\n defaultCollapseEnd?: boolean\n}\n\nexport const CollapsibleProvider: React.FC<CollapsibleProviderProps> = ({ defaultCollapse = false, defaultCollapseEnd = false, children }) => {\n const [collapse, setCollapse] = useState(defaultCollapse)\n const [collapseEnd, setCollapseEnd] = useState(defaultCollapseEnd)\n\n useEffect(() => {\n setCollapse(defaultCollapse)\n }, [defaultCollapse])\n\n useEffect(() => {\n setCollapseEnd(defaultCollapseEnd)\n }, [defaultCollapseEnd])\n\n return (\n <CollapsibleContext.Provider value={{ collapse, collapseEnd, provided: true, setCollapse, setCollapseEnd }}>\n {children}\n </CollapsibleContext.Provider>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleState } from './State'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleContext } from './context'\n\nexport const useCollapsible = () => useContextEx(CollapsibleContext, 'Collapsible', false)\n","import { Menu as MenuIcon, Settings as SettingsIcon } from '@mui/icons-material'\nimport { IconButton, List, SwipeableDrawer } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem'\n\nexport interface SiteMenuProps extends FlexBoxProps {\n hideSettingsMenuItem?: boolean\n onMenuToggle?: (state?: boolean) => void\n side?: 'left' | 'right' | 'top' | 'bottom'\n}\n\nexport const SiteMenu: React.FC<SiteMenuProps> = ({ children, onMenuToggle, side = 'right', ...props }) => {\n const [open, setOpen] = useState(false)\n\n useEffect(() => {\n onMenuToggle?.(open)\n }, [onMenuToggle, open])\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\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 { ListItemProps, ListItemText, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { useState } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemBase, NavListItemProps } from '../lib'\nimport { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav'\n\nexport interface MenuListItemProps extends NavListItemProps, MenuListItemBase, ListItemProps {\n iconMenuTextSpacing?: string\n iconOnly?: boolean\n subNavListItems?: NavListItemProps[]\n subNavOpen?: boolean\n}\n\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 <LinkEx\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n color=\"inherit\"\n to={to}\n sx={{\n '& :hover': {\n cursor: 'pointer',\n textDecoration: 'underline',\n },\n }}\n >\n <FlexRow>\n <MenuIcon icon={icon} paddingRight={resolvedIconMenuTextSpacing} color={hovered ? 'secondary' : 'inherit'} />\n <ListItemText primary={primary} />\n </FlexRow>\n </LinkEx>\n <FlexRow style={{ marginLeft: theme.spacing(1) }}>\n {subNavListItems ?\n <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} />\n : null}\n {tooltip ?\n <ListItemTooltip title={tooltip} />\n : null}\n </FlexRow>\n </MenuListItem>\n {subNavListItems ?\n <SubNavListItemsCollapse openSubNav={openSubNav} collapse={collapse}>\n {subNavListItems?.map((item, index) => <MenuListItemContainer dense={dense} sx={{ pl: theme.spacing(1) }} key={index} {...item} />)}\n </SubNavListItemsCollapse>\n : null}\n </>\n )\n}\n","import { Tooltip, TooltipProps } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscInfo } from 'react-icons/vsc'\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 justifyContent=\"center\">\n <VscInfo color=\"grey\" />\n </FlexCol>\n </div>\n </Tooltip>\n )\n}\n","import { Typography, TypographyProps } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface MenuIconProps extends TypographyProps {\n icon?: ReactNode\n}\n\nexport const MenuIcon: React.FC<MenuIconProps> = ({ icon, ...props }) => {\n return (\n <Typography display=\"flex\" {...props}>\n {icon}\n </Typography>\n )\n}\n","import { ListItem, ListItemProps } from '@mui/material'\n\nimport { MenuListItemBase } from '../../lib'\n\nexport interface ListItemExProps extends MenuListItemBase, ListItemProps {}\n\nexport const MenuListItem: React.FC<ListItemExProps> = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {\n const listItemSx = iconOnly ? { borderRadius: '50%', display: 'inline-flex', flexGrow: 0, width: 'auto' } : { width: '100%' }\n // wait till collapseEnds to remove the spacing between items\n const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 }\n // adjusts to the paddingY value which does NOT scale along the theme.spacing\n const paddingSx = dense ? { px: '8px' } : { px: '12px' }\n return (\n <ListItem sx={{ ...listItemSx, ...spacingSx, ...paddingSx, ...sx }} {...props}>\n {children}\n </ListItem>\n )\n}\n","import { Collapse, CollapseProps, List } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { NavListItemProps } from '../../lib'\n\nexport interface SubNavListItemsCollapseProps extends WithChildren, CollapseProps {\n collapse?: boolean\n openSubNav?: boolean\n subNavListItems?: NavListItemProps[]\n}\n\nexport const SubNavListItemsCollapse: React.FC<SubNavListItemsCollapseProps> = ({ collapse, openSubNav, children, ...props }) => {\n return (\n <Collapse in={collapse == true ? false : openSubNav} {...props}>\n <List>{children}</List>\n </Collapse>\n )\n}\n","import { IconButton, IconButtonProps, useTheme } from '@mui/material'\nimport { Dispatch, SetStateAction, SyntheticEvent } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscChevronDown } from 'react-icons/vsc'\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)\n }}\n sx={{ marginRight: theme.spacing(0.5) }}\n >\n <VscChevronDown fontSize=\"16px\" />\n </IconButton>\n )\n}\n","import { Collapse, ListSubheader } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\n\nimport { MenuListItemContainer, MenuListItemProps } from './MenuListItem'\n\nexport interface MenuSectionProps extends FlexBoxProps {\n iconMenuTextSpacing?: string\n listItems: MenuListItemProps[]\n showTitle?: boolean\n title: string\n}\n\nexport const MenuSection: React.FC<MenuSectionProps> = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Collapse in={showTitle} timeout={700}>\n <ListSubheader>{title}</ListSubheader>\n </Collapse>\n\n {listItems.map((item, index) => (\n <MenuListItemContainer key={index} iconMenuTextSpacing={iconMenuTextSpacing} {...item}></MenuListItemContainer>\n ))}\n </FlexCol>\n )\n}\n","import { Icon, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapseToggleFlex: React.FC<FlexBoxProps> = (props) => {\n const { collapse, setCollapse, setCollapseEnd } = useCollapsible()\n const [hover, setHover] = useState(false)\n const theme = useTheme()\n\n const handleCollapseToggle = () => {\n setCollapse?.(!collapse)\n setCollapseEnd?.((previous) => (previous ? false : previous))\n }\n\n return (\n <FlexRow mt={2} py={2} justifyContent={collapse ? 'start' : 'center'} {...props}>\n <Icon\n onClick={handleCollapseToggle}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n fontSize={'large'}\n sx={{ color: hover ? theme.palette.secondary.main : 'inherit', cursor: 'pointer' }}\n >\n {collapse ?\n <VscArrowSmallRight />\n : <VscArrowSmallLeft />}\n </Icon>\n </FlexRow>\n )\n}\n","import { Collapse, CollapseProps, styled, useTheme } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapsibleDrawer: React.FC<WithChildren<CollapseProps>> = ({ children, sx, ...props }) => {\n const { collapse, setCollapseEnd } = useCollapsible()\n const theme = useTheme()\n\n const collapsedSize = props.collapsedSize ?? theme.spacing(5)\n\n return (\n <CollapsibleFlexInner\n in={!collapse}\n orientation=\"horizontal\"\n collapsedSize={collapsedSize}\n onExited={() => setCollapseEnd?.(true)}\n sx={{\n alignItems: 'start',\n display: 'flex',\n height: '100%',\n ...sx,\n }}\n {...props}\n >\n {children}\n </CollapsibleFlexInner>\n )\n}\n\nconst CollapsibleFlexInner = styled(Collapse)(() => ({\n '& .MuiCollapse-wrapperInner': {\n display: 'flex',\n flexDirection: 'column',\n },\n}))\n","import { FlexCol } from '@xylabs/react-flexbox'\n\nimport { SystemControlsRoot } from './SystemControlsRoot'\nimport { SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControls: React.FC<SystemControlsUnstyledProps> = (props) => {\n return (\n <FlexCol>\n <SystemControlsRoot {...props} />\n </FlexCol>\n )\n}\n\nexport { SystemControls }\n","import { styled } from '@mui/material'\n\nimport { SystemControlsType } from './SystemControlsType'\nimport { SystemControlsUnstyled, SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControlsRoot = styled(SystemControlsUnstyled, { name: 'SystemControls', slot: 'Root' })<SystemControlsUnstyledProps>(({ theme }) => ({\n // shared defaults\n ['&']: {\n '.toggle': {\n backgroundColor: theme.palette.primary.main,\n },\n alignItems: 'start',\n zIndex: 1,\n },\n // WindowShade System Controls styles\n [`&.system-controls-type-${SystemControlsType.WindowShade}`]: {\n '.control': {\n borderRadius: '0 0 5px 5px',\n flexDirection: 'row',\n flexGrow: 1,\n justifyContent: 'space-around',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.controls': {\n alignItems: 'stretch',\n flexDirection: 'column',\n flexGrow: 1,\n },\n '.toggle': {\n borderRadius: '0 0 5px 5px',\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n },\n flexDirection: 'row',\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n // Left System Control styles\n [`&.system-controls-type-${SystemControlsType.Left}`]: {\n '.control': {\n alignItems: 'start',\n flexDirection: 'column',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.control-wrap': {\n marginBottom: `${theme.spacing(2)}`,\n },\n '.toggle': {\n borderRadius: '0 5px 5px 0',\n padding: `${theme.spacing(1)} ${theme.spacing(0.5)}`,\n writingMode: 'vertical-rl',\n },\n flexDirection: 'column',\n left: 0,\n position: 'fixed',\n top: '30vh',\n width: 'auto',\n },\n}))\n\nexport { SystemControlsRoot }\n","export enum SystemControlsType {\n Left = 'Left',\n Right = 'Right',\n WindowShade = 'WindowShade',\n}\n","import { Paper, Theme, useMediaQuery } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NetworkSelectEx } from '@xyo-network/react-network'\n\nimport { SystemControl } from './controls'\nimport { SystemControlsType } from './SystemControlsType'\n\ninterface SystemControlsUnstyledProps extends FlexBoxProps {\n systemControlsType?: SystemControlsType\n visible?: boolean\n}\n\nconst SystemControlsUnstyled: React.FC<SystemControlsUnstyledProps> = ({\n visible,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const isSmall = useMediaQuery<Theme>((theme) => theme.breakpoints.down('sm'))\n\n return visible || isSmall ?\n <FlexCol {...props} className={`${props.className} system-controls-type-${systemControlsType}`}>\n <SystemControl\n systemControlsType={systemControlsType}\n controlElement={\n <>\n <FlexRow className={'control-wrap'}>\n <Paper variant=\"elevation\" elevation={0}>\n <NetworkSelectEx responsive={false} className=\"network-ex\" />\n </Paper>\n </FlexRow>\n </>\n }\n />\n </FlexCol>\n : <FlexCol />\n}\n\nexport type { SystemControlsUnstyledProps }\nexport { SystemControlsUnstyled }\n","import { Collapse, CollapseProps } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useState } from 'react'\n\nimport { SystemControlsType } from '../SystemControlsType'\n\ninterface SystemControlProps extends FlexBoxProps {\n controlElement: React.ReactNode\n systemControlsType?: SystemControlsType\n}\n\nconst SystemControl: React.FC<WithChildren<SystemControlProps>> = ({\n children,\n controlElement,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const [toggleControls, setToggleControls] = useState(false)\n\n let orientation: CollapseProps['orientation'] = 'vertical'\n\n switch (systemControlsType) {\n case SystemControlsType.Left: {\n orientation = 'horizontal'\n break\n }\n }\n\n return (\n <FlexRow className=\"controls\" {...props}>\n <Collapse in={toggleControls} orientation={orientation} timeout={500}>\n <FlexRow bgcolor=\"primary.main\" className=\"control\">\n {controlElement}\n </FlexRow>\n </Collapse>\n <FlexCol style={{ cursor: 'pointer' }} onClick={() => setToggleControls(!toggleControls)}>\n {children}\n </FlexCol>\n </FlexRow>\n )\n}\n\nexport { SystemControl }\n","import { Search as SearchIcon } from '@mui/icons-material'\nimport { Paper, TextField } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n\nexport interface SearchBarProps extends FlexBoxProps {\n onSearch?: (term?: string) => void\n}\n\nexport const SearchBar: React.FC<SearchBarProps> = ({ defaultValue, onSearch, ...props }) => {\n const [term, setTerm] = useState<string>()\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\n <Paper variant=\"elevation\" elevation={0} style={{ display: 'flex', overflow: 'hidden', width: '100%' }}>\n <TextField\n InputProps={{ color: 'secondary', style: { borderBottomRightRadius: 0, borderTopRightRadius: 0, borderWidth: 0 } }}\n variant=\"outlined\"\n size=\"small\"\n defaultValue={defaultValue}\n fullWidth\n onChange={(event) => setTerm(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') onSearch?.(term)\n }}\n />\n <ButtonEx variant=\"contained\" style={{ borderRadius: 0, borderTopLeftRadius: 0 }} color=\"secondary\" onClick={() => onSearch?.(term)}>\n <SearchIcon />\n </ButtonEx>\n </Paper>\n </FlexRow>\n )\n}\n"],"mappings":"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","names":["useTheme","jsx","useTheme","jsx","Toolbar","FlexRow","jsx","MenuIcon","IconButton","List","FlexRow","useEffect","useState","useTheme","FlexRow","LinkEx","useState","jsx","Typography","jsx","jsx","jsx","useTheme","jsx","jsx","jsxs","useTheme","useState","LinkEx","FlexRow","jsx","jsxs","useState","useEffect","FlexRow","IconButton","MenuIcon","List","Collapse","FlexCol","jsx","jsxs","FlexCol","Collapse","jsx","jsxs","Toolbar","FlexRow","jsx","useTheme","FlexRow","useState","jsx","useState","useTheme","FlexRow","Collapse","useTheme","jsx","useTheme","Collapse","FlexCol","styled","SystemControlsType","Paper","FlexCol","FlexRow","NetworkSelectEx","Collapse","FlexCol","FlexRow","useState","jsx","jsxs","useState","FlexRow","Collapse","FlexCol","Fragment","jsx","FlexCol","FlexRow","Paper","NetworkSelectEx","styled","jsx","FlexCol","Paper","FlexRow","useState","jsx","jsxs"]}