@xyo-network/react-appbar 3.0.0 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +16 -16
- package/src/components/AppBar/Application.stories.tsx +1 -1
- package/src/components/AppBar/Application.tsx +5 -3
- package/src/components/CollapsibleDrawer/CollapseDrawer.stories.tsx +1 -1
- package/src/components/CollapsibleDrawer/CollapseToggle.tsx +2 -1
- package/src/components/CollapsibleDrawer/CollapsibleDrawer.tsx +3 -2
- package/src/components/CollapsibleDrawer/storyExampleMenuData.tsx +1 -1
- package/src/components/MobileSystemControls/SystemControls.stories.tsx +1 -1
- package/src/components/MobileSystemControls/SystemControls.tsx +1 -1
- package/src/components/MobileSystemControls/SystemControlsRoot.tsx +2 -1
- package/src/components/MobileSystemControls/SystemControlsUnstyled.tsx +4 -2
- package/src/components/MobileSystemControls/controls/SystemControl.tsx +5 -3
- package/src/components/MobileSystemControls/controls/SystemControlText.tsx +2 -1
- package/src/components/SearchBar/SearchBar.tsx +2 -1
- package/src/components/SiteMenu/Menu.tsx +2 -1
- package/src/components/SiteMenu/MenuListItem/MenuListItemContainer.stories.tsx +3 -2
- package/src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx +3 -2
- package/src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx +2 -1
- package/src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx +4 -2
- package/src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx +3 -2
- package/src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx +4 -3
- package/src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx +4 -2
- package/src/components/SiteMenu/MenuSection.tsx +4 -2
- package/src/components/SiteMenu/hooks/useMenuItemsShared.tsx +1 -1
- package/src/components/SiteMenu/lib/NavListItemProps.ts +3 -3
- package/src/components/Toolbar/Context/ContextToolbar.stories.tsx +1 -1
- package/src/components/Toolbar/Context/ContextToolbar.tsx +3 -2
- package/src/components/Toolbar/Context/LogoLinkEx.tsx +2 -1
- package/src/components/Toolbar/System/SystemToolbar.stories.tsx +3 -2
- package/src/components/Toolbar/System/SystemToolbar.tsx +8 -4
- package/src/contexts/Collapsible/State.ts +2 -2
- package/src/contexts/Collapsible/context.ts +1 -1
- package/src/contexts/Collapsible/provider.tsx +1 -1
- package/xy.config.ts +1 -1
@@ -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.ts","../../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 React, { ReactElement } from 'react'\n\nimport { ContextToolbar, SystemToolbar } from '../Toolbar/index.ts'\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 React from 'react'\nimport { To } from 'react-router-dom'\n\nimport { LogoLinkEx } from './LogoLinkEx.tsx'\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'\nimport React from 'react'\n\nimport { Logo } from './Logo.tsx'\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 ? (\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 )\n : null}\n </FlexRow>\n </LinkEx>\n )\n}\n","import { useTheme } from '@mui/material'\nimport React from 'react'\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 React, { ReactNode } from 'react'\n\nimport { SiteMenu, SiteMenuProps } from '../../SiteMenu/index.ts'\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\n ? null\n : (\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/index.ts'\nimport { MenuListItemProps } from '../MenuListItem/index.ts'\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 React, { useEffect, useState } from 'react'\n\nimport { CollapsibleContext } from './context.ts'\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 // eslint-disable-next-line @eslint-react/no-unstable-context-value\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.ts'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleContext } from './context.ts'\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 React, { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem/index.ts'\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 React, { useState } from 'react'\n\nimport { useCollapsible } from '../../../contexts/index.ts'\nimport { MenuListItemBase, NavListItemProps } from '../lib/index.ts'\nimport { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components/index.ts'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav/index.ts'\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 ? (\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 )\n : null}\n </>\n )\n}\n","import { Tooltip, TooltipProps } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n// eslint-disable-next-line import-x/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 React, { 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'\nimport React from 'react'\n\nimport { MenuListItemBase } from '../../lib/index.ts'\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'\nimport React from 'react'\n\nimport { NavListItemProps } from '../../lib/index.ts'\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 React, { Dispatch, SetStateAction, SyntheticEvent } from 'react'\n// eslint-disable-next-line import-x/no-internal-modules\nimport { VscChevronDown } from 'react-icons/vsc'\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'\nimport React from 'react'\n\nimport { MenuListItemContainer, MenuListItemProps } from './MenuListItem/index.ts'\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 React, { useState } from 'react'\n// eslint-disable-next-line import-x/no-internal-modules\nimport { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc'\n\nimport { useCollapsible } from '../../contexts/index.ts'\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'\nimport React from 'react'\n\nimport { useCollapsible } from '../../contexts/index.ts'\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'\nimport React from 'react'\n\nimport { SystemControlsRoot } from './SystemControlsRoot.tsx'\nimport { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'\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.ts'\nimport { SystemControlsUnstyled, SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'\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'\nimport React from 'react'\n\nimport { SystemControl } from './controls/index.ts'\nimport { SystemControlsType } from './SystemControlsType.ts'\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 ? (\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 )\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 React, { useState } from 'react'\n\nimport { SystemControlsType } from '../SystemControlsType.ts'\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 React, { 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","React","Toolbar","React","Typography","useTheme","FlexRow","LinkEx","React","useTheme","React","Logo","props","theme","useTheme","logoUrl","palette","mode","img","src","LogoLinkEx","to","version","props","theme","useTheme","React","LinkEx","FlexRow","paddingX","Logo","height","width","Typography","position","borderRadius","right","color","palette","getContrastText","text","primary","bottom","bgcolor","lineHeight","variant","border","main","ContextToolbar","logoTo","version","props","React","Toolbar","LogoLinkEx","to","Paper","Toolbar","FlexRow","DarkModeIconButton","NetworkSelectEx","React","useMemo","React","useEffect","useState","createContextEx","CollapsibleContext","CollapsibleProvider","defaultCollapse","defaultCollapseEnd","children","collapse","setCollapse","useState","collapseEnd","setCollapseEnd","useEffect","React","CollapsibleContext","Provider","value","provided","useContextEx","useCollapsible","useContextEx","CollapsibleContext","useMenuItemsShared","collapse","collapseEnd","setCollapse","setCollapseEnd","useCollapsible","onMenuItemToggle","open","previous","defaultSiteMenuListItemProps","useMemo","dense","iconOnly","sx","px","Menu","MenuIcon","Settings","SettingsIcon","IconButton","List","SwipeableDrawer","FlexRow","React","useEffect","useState","ListItemText","useTheme","FlexRow","LinkEx","React","useState","Tooltip","FlexCol","React","VscInfo","ListItemTooltip","title","props","React","Tooltip","placement","div","FlexCol","justifyContent","VscInfo","color","Typography","React","MenuIcon","icon","props","React","Typography","display","ListItem","React","MenuListItem","iconOnly","collapseEnd","sx","children","dense","props","listItemSx","borderRadius","display","flexGrow","width","spacingSx","columnGap","paddingSx","px","React","ListItem","Collapse","List","React","SubNavListItemsCollapse","collapse","openSubNav","children","props","React","Collapse","in","List","IconButton","useTheme","React","VscChevronDown","SubNavToggleIconButton","setOpenSubNav","openSubNav","theme","useTheme","React","IconButton","onClick","event","stopPropagation","sx","marginRight","spacing","VscChevronDown","fontSize","MenuListItemContainer","style","icon","iconMenuTextSpacing","iconOnly","onButtonClick","primary","subNavListItems","sx","tooltip","to","props","dense","theme","useTheme","collapse","useCollapsible","openSubNav","setOpenSubNav","useState","hovered","setHovered","resolvedIconMenuTextSpacing","spacing","React","MenuListItem","disableGutters","onClick","justifyContent","whiteSpace","LinkEx","onMouseEnter","onMouseLeave","color","cursor","textDecoration","FlexRow","MenuIcon","paddingRight","ListItemText","marginLeft","SubNavToggleIconButton","ListItemTooltip","title","SubNavListItemsCollapse","map","item","index","pl","key","SiteMenu","children","onMenuToggle","side","props","open","setOpen","useState","useEffect","React","FlexRow","alignItems","IconButton","size","color","onClick","MenuIcon","fontSize","SwipeableDrawer","anchor","onKeyDown","onClose","onOpen","List","MenuListItemContainer","primary","icon","SettingsIcon","to","Collapse","ListSubheader","FlexCol","React","MenuSection","iconMenuTextSpacing","listItems","showTitle","title","props","React","FlexCol","alignItems","Collapse","in","timeout","ListSubheader","map","item","index","MenuListItemContainer","key","SystemToolbar","children","darkModeButton","hideNetworkSelect","menuItems","networkSelectProps","onMenuToggle","precedingChildren","props","React","Toolbar","FlexRow","marginX","Paper","variant","NetworkSelectEx","fullWidth","DarkModeIconButton","color","SiteMenu","ApplicationAppBar","systemToolbar","contextToolbar","responsive","props","React","AppBarEx","SystemToolbar","ContextToolbar","position","Icon","useTheme","FlexRow","React","useState","VscArrowSmallLeft","VscArrowSmallRight","CollapseToggleFlex","props","collapse","setCollapse","setCollapseEnd","useCollapsible","hover","setHover","useState","theme","useTheme","handleCollapseToggle","previous","React","FlexRow","mt","py","justifyContent","Icon","onClick","onMouseEnter","onMouseLeave","fontSize","sx","color","palette","secondary","main","cursor","VscArrowSmallRight","VscArrowSmallLeft","Collapse","styled","useTheme","React","CollapsibleDrawer","children","sx","props","collapse","setCollapseEnd","useCollapsible","theme","useTheme","collapsedSize","spacing","React","CollapsibleFlexInner","in","orientation","onExited","alignItems","display","height","styled","Collapse","flexDirection","FlexCol","React","styled","SystemControlsType","Paper","useMediaQuery","FlexCol","FlexRow","NetworkSelectEx","React","Collapse","FlexCol","FlexRow","React","useState","SystemControl","children","controlElement","systemControlsType","SystemControlsType","WindowShade","props","toggleControls","setToggleControls","useState","orientation","Left","React","FlexRow","className","Collapse","in","timeout","bgcolor","FlexCol","style","cursor","onClick","SystemControlsUnstyled","visible","systemControlsType","SystemControlsType","WindowShade","props","isSmall","useMediaQuery","theme","breakpoints","down","React","FlexCol","className","SystemControl","controlElement","FlexRow","Paper","variant","elevation","NetworkSelectEx","responsive","SystemControlsRoot","styled","SystemControlsUnstyled","name","slot","theme","backgroundColor","palette","primary","main","SystemControlsType","WindowShade","borderRadius","flexDirection","flexGrow","justifyContent","padding","spacing","alignItems","Left","marginBottom","writingMode","SystemControls","props","React","FlexCol","SystemControlsRoot","Search","SearchIcon","Paper","TextField","ButtonEx","FlexRow","React","useState","SearchBar","defaultValue","onSearch","props","term","setTerm","useState","React","FlexRow","alignItems","Paper","variant","elevation","style","display","overflow","width","TextField","InputProps","color","borderBottomRightRadius","borderTopRightRadius","borderWidth","size","fullWidth","onChange","event","target","value","onKeyDown","key","ButtonEx","borderRadius","borderTopLeftRadius","onClick","SearchIcon"]}
|
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.ts","../../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 type { ToolbarProps } from '@mui/material'\nimport type { AppBarExProps } from '@xylabs/react-appbar'\nimport { AppBarEx } from '@xylabs/react-appbar'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nimport { ContextToolbar, SystemToolbar } from '../Toolbar/index.ts'\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 type { ToolbarProps } from '@mui/material'\nimport { Toolbar } from '@mui/material'\nimport React from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { LogoLinkEx } from './LogoLinkEx.tsx'\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 type { LinkExProps } from '@xylabs/react-link'\nimport { LinkEx } from '@xylabs/react-link'\nimport React from 'react'\n\nimport { Logo } from './Logo.tsx'\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 ? (\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 )\n : null}\n </FlexRow>\n </LinkEx>\n )\n}\n","import { useTheme } from '@mui/material'\nimport React from 'react'\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 type { ToolbarProps } from '@mui/material'\nimport { Paper, Toolbar } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DarkModeIconButton } from '@xyo-network/react-app-settings'\nimport type { NetworkSelectExProps } from '@xyo-network/react-network'\nimport { NetworkSelectEx } from '@xyo-network/react-network'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport type { SiteMenuProps } from '../../SiteMenu/index.ts'\nimport { SiteMenu } from '../../SiteMenu/index.ts'\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\n ? null\n : (\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/index.ts'\nimport type { MenuListItemProps } from '../MenuListItem/index.ts'\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 type { WithChildren } from '@xylabs/react-shared'\nimport React, { useEffect, useState } from 'react'\n\nimport { CollapsibleContext } from './context.ts'\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 // eslint-disable-next-line @eslint-react/no-unstable-context-value\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 type { CollapsibleState } from './State.ts'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleContext } from './context.ts'\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem/index.ts'\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 type { ListItemProps } from '@mui/material'\nimport { ListItemText, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport React, { useState } from 'react'\n\nimport { useCollapsible } from '../../../contexts/index.ts'\nimport type { MenuListItemBase, NavListItemProps } from '../lib/index.ts'\nimport { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components/index.ts'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav/index.ts'\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 ? (\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 )\n : null}\n </>\n )\n}\n","import type { TooltipProps } from '@mui/material'\nimport { Tooltip } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n// eslint-disable-next-line import-x/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 type { TypographyProps } 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\nexport const MenuIcon: React.FC<MenuIconProps> = ({ icon, ...props }) => {\n return (\n <Typography display=\"flex\" {...props}>\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> = ({ 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 type { CollapseProps } from '@mui/material'\nimport { Collapse, List } from '@mui/material'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport type { NavListItemProps } from '../../lib/index.ts'\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 type { IconButtonProps } from '@mui/material'\nimport { IconButton, useTheme } from '@mui/material'\nimport type { Dispatch, SetStateAction, SyntheticEvent } from 'react'\nimport React from 'react'\n// eslint-disable-next-line import-x/no-internal-modules\nimport { VscChevronDown } from 'react-icons/vsc'\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { MenuListItemProps } from './MenuListItem/index.ts'\nimport { MenuListItemContainer } from './MenuListItem/index.ts'\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n// eslint-disable-next-line import-x/no-internal-modules\nimport { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc'\n\nimport { useCollapsible } from '../../contexts/index.ts'\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 type { CollapseProps } from '@mui/material'\nimport { Collapse, styled, useTheme } from '@mui/material'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport { useCollapsible } from '../../contexts/index.ts'\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'\nimport React from 'react'\n\nimport { SystemControlsRoot } from './SystemControlsRoot.tsx'\nimport type { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'\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.ts'\nimport type { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'\nimport { SystemControlsUnstyled } from './SystemControlsUnstyled.tsx'\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 type { Theme } from '@mui/material'\nimport { Paper, useMediaQuery } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NetworkSelectEx } from '@xyo-network/react-network'\nimport React from 'react'\n\nimport { SystemControl } from './controls/index.ts'\nimport { SystemControlsType } from './SystemControlsType.ts'\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 ? (\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 )\n : <FlexCol />\n}\n\nexport type { SystemControlsUnstyledProps }\nexport { SystemControlsUnstyled }\n","import type { CollapseProps } from '@mui/material'\nimport { Collapse } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport React, { useState } from 'react'\n\nimport { SystemControlsType } from '../SystemControlsType.ts'\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 type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React, { 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","React","Toolbar","React","Typography","useTheme","FlexRow","LinkEx","React","useTheme","React","Logo","props","theme","useTheme","logoUrl","palette","mode","img","src","LogoLinkEx","to","version","props","theme","useTheme","React","LinkEx","FlexRow","paddingX","Logo","height","width","Typography","position","borderRadius","right","color","palette","getContrastText","text","primary","bottom","bgcolor","lineHeight","variant","border","main","ContextToolbar","logoTo","version","props","React","Toolbar","LogoLinkEx","to","Paper","Toolbar","FlexRow","DarkModeIconButton","NetworkSelectEx","React","useMemo","React","useEffect","useState","createContextEx","CollapsibleContext","CollapsibleProvider","defaultCollapse","defaultCollapseEnd","children","collapse","setCollapse","useState","collapseEnd","setCollapseEnd","useEffect","React","CollapsibleContext","Provider","value","provided","useContextEx","useCollapsible","useContextEx","CollapsibleContext","useMenuItemsShared","collapse","collapseEnd","setCollapse","setCollapseEnd","useCollapsible","onMenuItemToggle","open","previous","defaultSiteMenuListItemProps","useMemo","dense","iconOnly","sx","px","Menu","MenuIcon","Settings","SettingsIcon","IconButton","List","SwipeableDrawer","FlexRow","React","useEffect","useState","ListItemText","useTheme","FlexRow","LinkEx","React","useState","Tooltip","FlexCol","React","VscInfo","ListItemTooltip","title","props","React","Tooltip","placement","div","FlexCol","justifyContent","VscInfo","color","Typography","React","MenuIcon","icon","props","React","Typography","display","ListItem","React","MenuListItem","iconOnly","collapseEnd","sx","children","dense","props","listItemSx","borderRadius","display","flexGrow","width","spacingSx","columnGap","paddingSx","px","React","ListItem","Collapse","List","React","SubNavListItemsCollapse","collapse","openSubNav","children","props","React","Collapse","in","List","IconButton","useTheme","React","VscChevronDown","SubNavToggleIconButton","setOpenSubNav","openSubNav","theme","useTheme","React","IconButton","onClick","event","stopPropagation","sx","marginRight","spacing","VscChevronDown","fontSize","MenuListItemContainer","style","icon","iconMenuTextSpacing","iconOnly","onButtonClick","primary","subNavListItems","sx","tooltip","to","props","dense","theme","useTheme","collapse","useCollapsible","openSubNav","setOpenSubNav","useState","hovered","setHovered","resolvedIconMenuTextSpacing","spacing","React","MenuListItem","disableGutters","onClick","justifyContent","whiteSpace","LinkEx","onMouseEnter","onMouseLeave","color","cursor","textDecoration","FlexRow","MenuIcon","paddingRight","ListItemText","marginLeft","SubNavToggleIconButton","ListItemTooltip","title","SubNavListItemsCollapse","map","item","index","pl","key","SiteMenu","children","onMenuToggle","side","props","open","setOpen","useState","useEffect","React","FlexRow","alignItems","IconButton","size","color","onClick","MenuIcon","fontSize","SwipeableDrawer","anchor","onKeyDown","onClose","onOpen","List","MenuListItemContainer","primary","icon","SettingsIcon","to","Collapse","ListSubheader","FlexCol","React","MenuSection","iconMenuTextSpacing","listItems","showTitle","title","props","React","FlexCol","alignItems","Collapse","in","timeout","ListSubheader","map","item","index","MenuListItemContainer","key","SystemToolbar","children","darkModeButton","hideNetworkSelect","menuItems","networkSelectProps","onMenuToggle","precedingChildren","props","React","Toolbar","FlexRow","marginX","Paper","variant","NetworkSelectEx","fullWidth","DarkModeIconButton","color","SiteMenu","ApplicationAppBar","systemToolbar","contextToolbar","responsive","props","React","AppBarEx","SystemToolbar","ContextToolbar","position","Icon","useTheme","FlexRow","React","useState","VscArrowSmallLeft","VscArrowSmallRight","CollapseToggleFlex","props","collapse","setCollapse","setCollapseEnd","useCollapsible","hover","setHover","useState","theme","useTheme","handleCollapseToggle","previous","React","FlexRow","mt","py","justifyContent","Icon","onClick","onMouseEnter","onMouseLeave","fontSize","sx","color","palette","secondary","main","cursor","VscArrowSmallRight","VscArrowSmallLeft","Collapse","styled","useTheme","React","CollapsibleDrawer","children","sx","props","collapse","setCollapseEnd","useCollapsible","theme","useTheme","collapsedSize","spacing","React","CollapsibleFlexInner","in","orientation","onExited","alignItems","display","height","styled","Collapse","flexDirection","FlexCol","React","styled","SystemControlsType","Paper","useMediaQuery","FlexCol","FlexRow","NetworkSelectEx","React","Collapse","FlexCol","FlexRow","React","useState","SystemControl","children","controlElement","systemControlsType","SystemControlsType","WindowShade","props","toggleControls","setToggleControls","useState","orientation","Left","React","FlexRow","className","Collapse","in","timeout","bgcolor","FlexCol","style","cursor","onClick","SystemControlsUnstyled","visible","systemControlsType","SystemControlsType","WindowShade","props","isSmall","useMediaQuery","theme","breakpoints","down","React","FlexCol","className","SystemControl","controlElement","FlexRow","Paper","variant","elevation","NetworkSelectEx","responsive","SystemControlsRoot","styled","SystemControlsUnstyled","name","slot","theme","backgroundColor","palette","primary","main","SystemControlsType","WindowShade","borderRadius","flexDirection","flexGrow","justifyContent","padding","spacing","alignItems","Left","marginBottom","writingMode","SystemControls","props","React","FlexCol","SystemControlsRoot","Search","SearchIcon","Paper","TextField","ButtonEx","FlexRow","React","useState","SearchBar","defaultValue","onSearch","props","term","setTerm","useState","React","FlexRow","alignItems","Paper","variant","elevation","style","display","overflow","width","TextField","InputProps","color","borderBottomRightRadius","borderTopRightRadius","borderWidth","size","fullWidth","onChange","event","target","value","onKeyDown","key","ButtonEx","borderRadius","borderTopLeftRadius","onClick","SearchIcon"]}
|
package/package.json
CHANGED
@@ -7,25 +7,25 @@
|
|
7
7
|
},
|
8
8
|
"bugs": {
|
9
9
|
"email": "support@xyo.network",
|
10
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
10
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
11
11
|
},
|
12
12
|
"dependencies": {
|
13
|
-
"@xylabs/react-appbar": "^4.0.
|
14
|
-
"@xylabs/react-button": "^4.0.
|
15
|
-
"@xylabs/react-flexbox": "^4.0.
|
16
|
-
"@xylabs/react-link": "^4.0.
|
17
|
-
"@xylabs/react-shared": "^4.0.
|
18
|
-
"@xyo-network/react-app-settings": "^3.0.
|
19
|
-
"@xyo-network/react-network": "^3.0.
|
20
|
-
"@xyo-network/react-shared": "^3.0.
|
21
|
-
"react-router-dom": "^6.26.
|
13
|
+
"@xylabs/react-appbar": "^4.0.3",
|
14
|
+
"@xylabs/react-button": "^4.0.3",
|
15
|
+
"@xylabs/react-flexbox": "^4.0.3",
|
16
|
+
"@xylabs/react-link": "^4.0.3",
|
17
|
+
"@xylabs/react-shared": "^4.0.3",
|
18
|
+
"@xyo-network/react-app-settings": "^3.0.2",
|
19
|
+
"@xyo-network/react-network": "^3.0.2",
|
20
|
+
"@xyo-network/react-shared": "^3.0.2",
|
21
|
+
"react-router-dom": "^6.26.1"
|
22
22
|
},
|
23
23
|
"devDependencies": {
|
24
24
|
"@storybook/react": "^8.2.9",
|
25
|
-
"@xylabs/ts-scripts-yarn3": "^4.0.0-rc.
|
26
|
-
"@xylabs/tsconfig-react": "^4.0.0-rc.
|
27
|
-
"@xyo-network/react-storybook": "^3.0.
|
28
|
-
"@xyo-network/react-wallet": "^3.0.
|
25
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.0-rc.20",
|
26
|
+
"@xylabs/tsconfig-react": "^4.0.0-rc.20",
|
27
|
+
"@xyo-network/react-storybook": "^3.0.2",
|
28
|
+
"@xyo-network/react-wallet": "^3.0.2",
|
29
29
|
"typescript": "^5.5.4"
|
30
30
|
},
|
31
31
|
"peerDependencies": {
|
@@ -63,7 +63,7 @@
|
|
63
63
|
},
|
64
64
|
"repository": {
|
65
65
|
"type": "git",
|
66
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
66
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
67
67
|
},
|
68
68
|
"scripts": {
|
69
69
|
"lint-pkg": "npmPkgJsonLint .",
|
@@ -71,6 +71,6 @@
|
|
71
71
|
},
|
72
72
|
"sideEffects": false,
|
73
73
|
"types": "dist/browser/index.d.ts",
|
74
|
-
"version": "3.0.
|
74
|
+
"version": "3.0.2",
|
75
75
|
"type": "module"
|
76
76
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { List, Paper } from '@mui/material'
|
2
|
-
import { Meta, StoryFn } from '@storybook/react'
|
2
|
+
import type { Meta, StoryFn } from '@storybook/react'
|
3
3
|
import { FlexGrowCol } from '@xylabs/react-flexbox'
|
4
4
|
import { NetworkMemoryProvider } from '@xyo-network/react-network'
|
5
5
|
import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
|
@@ -1,6 +1,8 @@
|
|
1
|
-
import { ToolbarProps } from '@mui/material'
|
2
|
-
import {
|
3
|
-
import
|
1
|
+
import type { ToolbarProps } from '@mui/material'
|
2
|
+
import type { AppBarExProps } from '@xylabs/react-appbar'
|
3
|
+
import { AppBarEx } from '@xylabs/react-appbar'
|
4
|
+
import type { ReactElement } from 'react'
|
5
|
+
import React from 'react'
|
4
6
|
|
5
7
|
import { ContextToolbar, SystemToolbar } from '../Toolbar/index.ts'
|
6
8
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Divider, useTheme } from '@mui/material'
|
2
|
-
import { Decorator, Meta, StoryFn } from '@storybook/react'
|
2
|
+
import type { Decorator, Meta, StoryFn } from '@storybook/react'
|
3
3
|
import { FlexCol, FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'
|
4
4
|
import React from 'react'
|
5
5
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Icon, useTheme } from '@mui/material'
|
2
|
-
import { FlexBoxProps
|
2
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
3
|
+
import { FlexRow } from '@xylabs/react-flexbox'
|
3
4
|
import React, { useState } from 'react'
|
4
5
|
// eslint-disable-next-line import-x/no-internal-modules
|
5
6
|
import { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc'
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { CollapseProps } from '@mui/material'
|
2
|
+
import { Collapse, styled, useTheme } from '@mui/material'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
import { useCollapsible } from '../../contexts/index.ts'
|
@@ -15,7 +15,7 @@ import {
|
|
15
15
|
// eslint-disable-next-line import-x/no-internal-modules
|
16
16
|
} from 'react-icons/vsc'
|
17
17
|
|
18
|
-
import { MenuListItemProps } from '../SiteMenu/index.ts'
|
18
|
+
import type { MenuListItemProps } from '../SiteMenu/index.ts'
|
19
19
|
|
20
20
|
export const menuDataTop: MenuListItemProps[] = [
|
21
21
|
{
|
@@ -2,7 +2,7 @@ import { FlexCol } from '@xylabs/react-flexbox'
|
|
2
2
|
import React from 'react'
|
3
3
|
|
4
4
|
import { SystemControlsRoot } from './SystemControlsRoot.tsx'
|
5
|
-
import { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'
|
5
|
+
import type { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'
|
6
6
|
|
7
7
|
const SystemControls: React.FC<SystemControlsUnstyledProps> = (props) => {
|
8
8
|
return (
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { styled } from '@mui/material'
|
2
2
|
|
3
3
|
import { SystemControlsType } from './SystemControlsType.ts'
|
4
|
-
import {
|
4
|
+
import type { SystemControlsUnstyledProps } from './SystemControlsUnstyled.tsx'
|
5
|
+
import { SystemControlsUnstyled } from './SystemControlsUnstyled.tsx'
|
5
6
|
|
6
7
|
const SystemControlsRoot = styled(SystemControlsUnstyled, { name: 'SystemControls', slot: 'Root' })<SystemControlsUnstyledProps>(({ theme }) => ({
|
7
8
|
// shared defaults
|
@@ -1,5 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { Theme } from '@mui/material'
|
2
|
+
import { Paper, useMediaQuery } from '@mui/material'
|
3
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
4
|
+
import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
|
3
5
|
import { NetworkSelectEx } from '@xyo-network/react-network'
|
4
6
|
import React from 'react'
|
5
7
|
|
@@ -1,6 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import {
|
1
|
+
import type { CollapseProps } from '@mui/material'
|
2
|
+
import { Collapse } from '@mui/material'
|
3
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
4
|
+
import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
|
5
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
4
6
|
import React, { useState } from 'react'
|
5
7
|
|
6
8
|
import { SystemControlsType } from '../SystemControlsType.ts'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Typography } from '@mui/material'
|
2
|
-
import { FlexBoxProps
|
2
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
3
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
interface SystemControlTextProps extends FlexBoxProps {
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { Search as SearchIcon } from '@mui/icons-material'
|
2
2
|
import { Paper, TextField } from '@mui/material'
|
3
3
|
import { ButtonEx } from '@xylabs/react-button'
|
4
|
-
import { FlexBoxProps
|
4
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
5
|
+
import { FlexRow } from '@xylabs/react-flexbox'
|
5
6
|
import React, { useState } from 'react'
|
6
7
|
|
7
8
|
export interface SearchBarProps extends FlexBoxProps {
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Menu as MenuIcon, Settings as SettingsIcon } from '@mui/icons-material'
|
2
2
|
import { IconButton, List, SwipeableDrawer } from '@mui/material'
|
3
|
-
import { FlexBoxProps
|
3
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
4
|
+
import { FlexRow } from '@xylabs/react-flexbox'
|
4
5
|
import React, { useEffect, useState } from 'react'
|
5
6
|
|
6
7
|
import { MenuListItemContainer } from './MenuListItem/index.ts'
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { List } from '@mui/material'
|
2
|
-
import { Meta, StoryFn } from '@storybook/react'
|
2
|
+
import type { Meta, StoryFn } from '@storybook/react'
|
3
3
|
import React from 'react'
|
4
4
|
// eslint-disable-next-line import-x/no-internal-modules
|
5
5
|
import { FaGlobeAmericas } from 'react-icons/fa'
|
6
6
|
import { BrowserRouter } from 'react-router-dom'
|
7
7
|
|
8
|
-
import {
|
8
|
+
import type { MenuListItemProps } from './MenuListItemContainer.tsx'
|
9
|
+
import { MenuListItemContainer } from './MenuListItemContainer.tsx'
|
9
10
|
|
10
11
|
const StorybookEntry = {
|
11
12
|
argTypes: {},
|
@@ -1,10 +1,11 @@
|
|
1
|
-
import { ListItemProps
|
1
|
+
import type { ListItemProps } from '@mui/material'
|
2
|
+
import { ListItemText, useTheme } from '@mui/material'
|
2
3
|
import { FlexRow } from '@xylabs/react-flexbox'
|
3
4
|
import { LinkEx } from '@xylabs/react-link'
|
4
5
|
import React, { useState } from 'react'
|
5
6
|
|
6
7
|
import { useCollapsible } from '../../../contexts/index.ts'
|
7
|
-
import { MenuListItemBase, NavListItemProps } from '../lib/index.ts'
|
8
|
+
import type { MenuListItemBase, NavListItemProps } from '../lib/index.ts'
|
8
9
|
import { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components/index.ts'
|
9
10
|
import { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav/index.ts'
|
10
11
|
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import type { TooltipProps } from '@mui/material'
|
2
|
+
import { Tooltip } from '@mui/material'
|
2
3
|
import { FlexCol } from '@xylabs/react-flexbox'
|
3
4
|
import React from 'react'
|
4
5
|
// eslint-disable-next-line import-x/no-internal-modules
|
@@ -1,5 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import
|
1
|
+
import type { TypographyProps } from '@mui/material'
|
2
|
+
import { Typography } from '@mui/material'
|
3
|
+
import type { ReactNode } from 'react'
|
4
|
+
import React from 'react'
|
3
5
|
|
4
6
|
export interface MenuIconProps extends TypographyProps {
|
5
7
|
icon?: ReactNode
|
@@ -1,7 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import type { ListItemProps } from '@mui/material'
|
2
|
+
import { ListItem } from '@mui/material'
|
2
3
|
import React from 'react'
|
3
4
|
|
4
|
-
import { MenuListItemBase } from '../../lib/index.ts'
|
5
|
+
import type { MenuListItemBase } from '../../lib/index.ts'
|
5
6
|
|
6
7
|
export interface ListItemExProps extends MenuListItemBase, ListItemProps {}
|
7
8
|
|
@@ -1,8 +1,9 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { CollapseProps } from '@mui/material'
|
2
|
+
import { Collapse, List } from '@mui/material'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
|
-
import { NavListItemProps } from '../../lib/index.ts'
|
6
|
+
import type { NavListItemProps } from '../../lib/index.ts'
|
6
7
|
|
7
8
|
export interface SubNavListItemsCollapseProps extends WithChildren, CollapseProps {
|
8
9
|
collapse?: boolean
|
@@ -1,5 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import
|
1
|
+
import type { IconButtonProps } from '@mui/material'
|
2
|
+
import { IconButton, useTheme } from '@mui/material'
|
3
|
+
import type { Dispatch, SetStateAction, SyntheticEvent } from 'react'
|
4
|
+
import React from 'react'
|
3
5
|
// eslint-disable-next-line import-x/no-internal-modules
|
4
6
|
import { VscChevronDown } from 'react-icons/vsc'
|
5
7
|
export interface SubNavToggleIconButtonProps extends IconButtonProps {
|
@@ -1,8 +1,10 @@
|
|
1
1
|
import { Collapse, ListSubheader } from '@mui/material'
|
2
|
-
import { FlexBoxProps
|
2
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
3
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
|
-
import {
|
6
|
+
import type { MenuListItemProps } from './MenuListItem/index.ts'
|
7
|
+
import { MenuListItemContainer } from './MenuListItem/index.ts'
|
6
8
|
|
7
9
|
export interface MenuSectionProps extends FlexBoxProps {
|
8
10
|
iconMenuTextSpacing?: string
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { useMemo } from 'react'
|
2
2
|
|
3
3
|
import { useCollapsible } from '../../../contexts/index.ts'
|
4
|
-
import { MenuListItemProps } from '../MenuListItem/index.ts'
|
4
|
+
import type { MenuListItemProps } from '../MenuListItem/index.ts'
|
5
5
|
|
6
6
|
export type DefaultSiteMenuListItemProps = Pick<MenuListItemProps, 'collapseEnd' | 'dense' | 'iconOnly' | 'sx'>
|
7
7
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { ListItemProps, ListItemTextProps } from '@mui/material'
|
2
|
-
import { ReactNode } from 'react'
|
3
|
-
import { To } from 'react-router-dom'
|
1
|
+
import type { ListItemProps, ListItemTextProps } from '@mui/material'
|
2
|
+
import type { ReactNode } from 'react'
|
3
|
+
import type { To } from 'react-router-dom'
|
4
4
|
|
5
5
|
export interface NavListItemProps {
|
6
6
|
href?: string
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import type { ToolbarProps } from '@mui/material'
|
2
|
+
import { Toolbar } from '@mui/material'
|
2
3
|
import React from 'react'
|
3
|
-
import { To } from 'react-router-dom'
|
4
|
+
import type { To } from 'react-router-dom'
|
4
5
|
|
5
6
|
import { LogoLinkEx } from './LogoLinkEx.tsx'
|
6
7
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Typography, useTheme } from '@mui/material'
|
2
2
|
import { FlexRow } from '@xylabs/react-flexbox'
|
3
|
-
import {
|
3
|
+
import type { LinkExProps } from '@xylabs/react-link'
|
4
|
+
import { LinkEx } from '@xylabs/react-link'
|
4
5
|
import React from 'react'
|
5
6
|
|
6
7
|
import { Logo } from './Logo.tsx'
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { List } from '@mui/material'
|
2
|
-
import { Meta, StoryFn } from '@storybook/react'
|
2
|
+
import type { Meta, StoryFn } from '@storybook/react'
|
3
3
|
import { NetworkMemoryProvider } from '@xyo-network/react-network'
|
4
4
|
import { TypographyEx } from '@xyo-network/react-shared'
|
5
|
-
import
|
5
|
+
import type { SyntheticEvent } from 'react'
|
6
|
+
import React from 'react'
|
6
7
|
import { BrowserRouter } from 'react-router-dom'
|
7
8
|
|
8
9
|
import { MenuListItemContainer } from '../../SiteMenu/index.ts'
|
@@ -1,10 +1,14 @@
|
|
1
|
-
import {
|
1
|
+
import type { ToolbarProps } from '@mui/material'
|
2
|
+
import { Paper, Toolbar } from '@mui/material'
|
2
3
|
import { FlexRow } from '@xylabs/react-flexbox'
|
3
4
|
import { DarkModeIconButton } from '@xyo-network/react-app-settings'
|
4
|
-
import {
|
5
|
-
import
|
5
|
+
import type { NetworkSelectExProps } from '@xyo-network/react-network'
|
6
|
+
import { NetworkSelectEx } from '@xyo-network/react-network'
|
7
|
+
import type { ReactNode } from 'react'
|
8
|
+
import React from 'react'
|
6
9
|
|
7
|
-
import {
|
10
|
+
import type { SiteMenuProps } from '../../SiteMenu/index.ts'
|
11
|
+
import { SiteMenu } from '../../SiteMenu/index.ts'
|
8
12
|
|
9
13
|
export interface SystemToolbarProps extends ToolbarProps {
|
10
14
|
darkModeButton?: boolean
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ContextExState } from '@xyo-network/react-shared'
|
2
|
-
import { Dispatch, SetStateAction } from 'react'
|
1
|
+
import type { ContextExState } from '@xyo-network/react-shared'
|
2
|
+
import type { Dispatch, SetStateAction } from 'react'
|
3
3
|
|
4
4
|
export interface CollapsibleState extends ContextExState {
|
5
5
|
collapse?: boolean
|
package/xy.config.ts
CHANGED