@xyo-network/react-appbar 2.64.0 → 2.64.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/dist/browser/components/AppBar/Application.js +252 -6
  2. package/dist/browser/components/AppBar/Application.js.map +1 -1
  3. package/dist/browser/components/AppBar/index.js +264 -1
  4. package/dist/browser/components/AppBar/index.js.map +1 -1
  5. package/dist/browser/components/CollapsibleDrawer/CollapseToggle.js +13 -3
  6. package/dist/browser/components/CollapsibleDrawer/CollapseToggle.js.map +1 -1
  7. package/dist/browser/components/CollapsibleDrawer/CollapsibleDrawer.js +14 -4
  8. package/dist/browser/components/CollapsibleDrawer/CollapsibleDrawer.js.map +1 -1
  9. package/dist/browser/components/CollapsibleDrawer/index.js +72 -2
  10. package/dist/browser/components/CollapsibleDrawer/index.js.map +1 -1
  11. package/dist/browser/components/CollapsibleDrawer/storyExampleMenuData.js +4 -3
  12. package/dist/browser/components/CollapsibleDrawer/storyExampleMenuData.js.map +1 -1
  13. package/dist/browser/components/MobileSystemControls/SystemControls.js +117 -5
  14. package/dist/browser/components/MobileSystemControls/SystemControls.js.map +1 -1
  15. package/dist/browser/components/MobileSystemControls/SystemControlsRoot.js +57 -5
  16. package/dist/browser/components/MobileSystemControls/SystemControlsRoot.js.map +1 -1
  17. package/dist/browser/components/MobileSystemControls/SystemControlsType.js +1 -0
  18. package/dist/browser/components/MobileSystemControls/SystemControlsType.js.map +1 -1
  19. package/dist/browser/components/MobileSystemControls/SystemControlsUnstyled.js +35 -9
  20. package/dist/browser/components/MobileSystemControls/SystemControlsUnstyled.js.map +1 -1
  21. package/dist/browser/components/MobileSystemControls/controls/SystemControl.js +5 -5
  22. package/dist/browser/components/MobileSystemControls/controls/SystemControl.js.map +1 -1
  23. package/dist/browser/components/MobileSystemControls/controls/SystemControlText.js +3 -2
  24. package/dist/browser/components/MobileSystemControls/controls/SystemControlText.js.map +1 -1
  25. package/dist/browser/components/MobileSystemControls/controls/index.js +36 -2
  26. package/dist/browser/components/MobileSystemControls/controls/index.js.map +1 -1
  27. package/dist/browser/components/MobileSystemControls/index.js +131 -3
  28. package/dist/browser/components/MobileSystemControls/index.js.map +1 -1
  29. package/dist/browser/components/SearchBar/SearchBar.js +3 -2
  30. package/dist/browser/components/SearchBar/SearchBar.js.map +1 -1
  31. package/dist/browser/components/SearchBar/index.js +31 -1
  32. package/dist/browser/components/SearchBar/index.js.map +1 -1
  33. package/dist/browser/components/SiteMenu/Menu.js +144 -13
  34. package/dist/browser/components/SiteMenu/Menu.js.map +1 -1
  35. package/dist/browser/components/SiteMenu/MenuListItem/MenuListItemContainer.js +73 -13
  36. package/dist/browser/components/SiteMenu/MenuListItem/MenuListItemContainer.js.map +1 -1
  37. package/dist/browser/components/SiteMenu/MenuListItem/index.js +131 -1
  38. package/dist/browser/components/SiteMenu/MenuListItem/index.js.map +1 -1
  39. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.js +3 -2
  40. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.js.map +1 -1
  41. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.js +3 -2
  42. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.js.map +1 -1
  43. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.js +3 -2
  44. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.js.map +1 -1
  45. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/index.js +30 -3
  46. package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/index.js.map +1 -1
  47. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.js +3 -2
  48. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.js.map +1 -1
  49. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.js +3 -2
  50. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.js.map +1 -1
  51. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/index.js +29 -2
  52. package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/index.js.map +1 -1
  53. package/dist/browser/components/SiteMenu/MenuSection.js +138 -7
  54. package/dist/browser/components/SiteMenu/MenuSection.js.map +1 -1
  55. package/dist/browser/components/SiteMenu/hooks/index.js +34 -1
  56. package/dist/browser/components/SiteMenu/hooks/index.js.map +1 -1
  57. package/dist/browser/components/SiteMenu/hooks/useMenuItemsShared.js +12 -2
  58. package/dist/browser/components/SiteMenu/hooks/useMenuItemsShared.js.map +1 -1
  59. package/dist/browser/components/SiteMenu/index.js +209 -5
  60. package/dist/browser/components/SiteMenu/index.js.map +1 -1
  61. package/dist/browser/components/SiteMenu/lib/index.js +0 -2
  62. package/dist/browser/components/SiteMenu/lib/index.js.map +1 -1
  63. package/dist/browser/components/Toolbar/Context/ContextToolbar.js +45 -4
  64. package/dist/browser/components/Toolbar/Context/ContextToolbar.js.map +1 -1
  65. package/dist/browser/components/Toolbar/Context/Logo.js +3 -2
  66. package/dist/browser/components/Toolbar/Context/Logo.js.map +1 -1
  67. package/dist/browser/components/Toolbar/Context/LogoLinkEx.js +18 -7
  68. package/dist/browser/components/Toolbar/Context/LogoLinkEx.js.map +1 -1
  69. package/dist/browser/components/Toolbar/Context/index.js +50 -1
  70. package/dist/browser/components/Toolbar/Context/index.js.map +1 -1
  71. package/dist/browser/components/Toolbar/System/SystemToolbar.js +179 -8
  72. package/dist/browser/components/Toolbar/System/SystemToolbar.js.map +1 -1
  73. package/dist/browser/components/Toolbar/System/index.js +198 -1
  74. package/dist/browser/components/Toolbar/System/index.js.map +1 -1
  75. package/dist/browser/components/Toolbar/index.js +247 -2
  76. package/dist/browser/components/Toolbar/index.js.map +1 -1
  77. package/dist/browser/components/index.js +526 -6
  78. package/dist/browser/components/index.js.map +1 -1
  79. package/dist/browser/contexts/Collapsible/context.js +2 -1
  80. package/dist/browser/contexts/Collapsible/context.js.map +1 -1
  81. package/dist/browser/contexts/Collapsible/index.js +28 -3
  82. package/dist/browser/contexts/Collapsible/index.js.map +1 -1
  83. package/dist/browser/contexts/Collapsible/provider.js +9 -3
  84. package/dist/browser/contexts/Collapsible/provider.js.map +1 -1
  85. package/dist/browser/contexts/Collapsible/use.js +8 -2
  86. package/dist/browser/contexts/Collapsible/use.js.map +1 -1
  87. package/dist/browser/contexts/index.js +28 -1
  88. package/dist/browser/contexts/index.js.map +1 -1
  89. package/dist/browser/index.js +545 -2
  90. package/dist/browser/index.js.map +1 -1
  91. package/dist/docs.json +91 -91
  92. package/package.json +13 -13
@@ -1,11 +1,142 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Collapse, ListSubheader } from "@mui/material";
1
+ // src/components/SiteMenu/MenuSection.tsx
2
+ import { Collapse as Collapse2, ListSubheader } from "@mui/material";
3
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
4
+
5
+ // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
6
+ import { ListItemText, useTheme as useTheme2 } from "@mui/material";
7
+ import { FlexRow } from "@xylabs/react-flexbox";
8
+ import { LinkEx } from "@xylabs/react-link";
9
+ import { useState } from "react";
10
+
11
+ // src/contexts/Collapsible/context.ts
12
+ import { createContextEx } from "@xyo-network/react-shared";
13
+ var CollapsibleContext = createContextEx();
14
+
15
+ // src/contexts/Collapsible/use.tsx
16
+ import { useContextEx } from "@xyo-network/react-shared";
17
+ var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
18
+
19
+ // src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx
20
+ import { Tooltip } from "@mui/material";
3
21
  import { FlexCol } from "@xylabs/react-flexbox";
4
- import { MenuListItemContainer } from "./MenuListItem";
5
- const MenuSection = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {
6
- return /* @__PURE__ */ jsxs(FlexCol, { alignItems: "stretch", ...props, children: [
7
- /* @__PURE__ */ jsx(Collapse, { in: showTitle, timeout: 700, children: /* @__PURE__ */ jsx(ListSubheader, { children: title }) }),
8
- listItems.map((item, index) => /* @__PURE__ */ jsx(MenuListItemContainer, { iconMenuTextSpacing, ...item }, index))
22
+ import { VscInfo } from "react-icons/vsc/index.js";
23
+ import { jsx } from "react/jsx-runtime";
24
+ var ListItemTooltip = ({ title, ...props }) => {
25
+ return /* @__PURE__ */ jsx(Tooltip, { title, placement: "right", ...props, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(FlexCol, { justifyContent: "center", children: /* @__PURE__ */ jsx(VscInfo, { color: "grey" }) }) }) });
26
+ };
27
+
28
+ // src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx
29
+ import { Typography } from "@mui/material";
30
+ import { jsx as jsx2 } from "react/jsx-runtime";
31
+ var MenuIcon = ({ icon, ...props }) => {
32
+ return /* @__PURE__ */ jsx2(Typography, { display: "flex", ...props, children: icon });
33
+ };
34
+
35
+ // src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx
36
+ import { ListItem } from "@mui/material";
37
+ import { jsx as jsx3 } from "react/jsx-runtime";
38
+ var MenuListItem = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {
39
+ const listItemSx = iconOnly ? { borderRadius: "50%", display: "inline-flex", flexGrow: 0, width: "auto" } : { width: "100%" };
40
+ const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 };
41
+ const paddingSx = dense ? { px: "8px" } : { px: "12px" };
42
+ return /* @__PURE__ */ jsx3(ListItem, { sx: { ...listItemSx, ...spacingSx, ...paddingSx, ...sx }, ...props, children });
43
+ };
44
+
45
+ // src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx
46
+ import { Collapse, List } from "@mui/material";
47
+ import { jsx as jsx4 } from "react/jsx-runtime";
48
+ var SubNavListItemsCollapse = ({ collapse, openSubNav, children, ...props }) => {
49
+ return /* @__PURE__ */ jsx4(Collapse, { in: collapse == true ? false : openSubNav, ...props, children: /* @__PURE__ */ jsx4(List, { children }) });
50
+ };
51
+
52
+ // src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx
53
+ import { IconButton, useTheme } from "@mui/material";
54
+ import { VscChevronDown } from "react-icons/vsc/index.js";
55
+ import { jsx as jsx5 } from "react/jsx-runtime";
56
+ var SubNavToggleIconButton = ({ setOpenSubNav, openSubNav }) => {
57
+ const theme = useTheme();
58
+ return /* @__PURE__ */ jsx5(
59
+ IconButton,
60
+ {
61
+ onClick: (event) => {
62
+ event.stopPropagation();
63
+ setOpenSubNav?.(!openSubNav);
64
+ },
65
+ sx: { marginRight: theme.spacing(0.5) },
66
+ children: /* @__PURE__ */ jsx5(VscChevronDown, { fontSize: "16px" })
67
+ }
68
+ );
69
+ };
70
+
71
+ // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
72
+ import { Fragment, jsx as jsx6, jsxs } from "react/jsx-runtime";
73
+ var MenuListItemContainer = ({
74
+ style,
75
+ icon,
76
+ iconMenuTextSpacing,
77
+ iconOnly,
78
+ onButtonClick,
79
+ primary,
80
+ subNavListItems,
81
+ sx,
82
+ tooltip,
83
+ to,
84
+ ...props
85
+ }) => {
86
+ const { dense } = props;
87
+ const theme = useTheme2();
88
+ const { collapse } = useCollapsible();
89
+ const [openSubNav, setOpenSubNav] = useState(false);
90
+ const [hovered, setHovered] = useState(false);
91
+ const resolvedIconMenuTextSpacing = iconMenuTextSpacing ? iconMenuTextSpacing : theme.spacing(1);
92
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
93
+ /* @__PURE__ */ jsxs(
94
+ MenuListItem,
95
+ {
96
+ disableGutters: true,
97
+ iconOnly,
98
+ onClick: onButtonClick,
99
+ dense,
100
+ sx: { justifyContent: "space-between", ...sx },
101
+ style: { whiteSpace: "nowrap", ...style },
102
+ ...props,
103
+ children: [
104
+ /* @__PURE__ */ jsx6(
105
+ LinkEx,
106
+ {
107
+ onMouseEnter: () => setHovered(true),
108
+ onMouseLeave: () => setHovered(false),
109
+ color: "inherit",
110
+ to,
111
+ sx: {
112
+ "& :hover": {
113
+ cursor: "pointer",
114
+ textDecoration: "underline"
115
+ }
116
+ },
117
+ children: /* @__PURE__ */ jsxs(FlexRow, { children: [
118
+ /* @__PURE__ */ jsx6(MenuIcon, { icon, paddingRight: resolvedIconMenuTextSpacing, color: hovered ? "secondary" : "inherit" }),
119
+ /* @__PURE__ */ jsx6(ListItemText, { primary })
120
+ ] })
121
+ }
122
+ ),
123
+ /* @__PURE__ */ jsxs(FlexRow, { style: { marginLeft: theme.spacing(1) }, children: [
124
+ subNavListItems ? /* @__PURE__ */ jsx6(SubNavToggleIconButton, { setOpenSubNav, openSubNav }) : null,
125
+ tooltip ? /* @__PURE__ */ jsx6(ListItemTooltip, { title: tooltip }) : null
126
+ ] })
127
+ ]
128
+ }
129
+ ),
130
+ subNavListItems ? /* @__PURE__ */ jsx6(SubNavListItemsCollapse, { openSubNav, collapse, children: subNavListItems?.map((item, index) => /* @__PURE__ */ jsx6(MenuListItemContainer, { dense, sx: { pl: theme.spacing(1) }, ...item }, index)) }) : null
131
+ ] });
132
+ };
133
+
134
+ // src/components/SiteMenu/MenuSection.tsx
135
+ import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
136
+ var MenuSection = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {
137
+ return /* @__PURE__ */ jsxs2(FlexCol2, { alignItems: "stretch", ...props, children: [
138
+ /* @__PURE__ */ jsx7(Collapse2, { in: showTitle, timeout: 700, children: /* @__PURE__ */ jsx7(ListSubheader, { children: title }) }),
139
+ listItems.map((item, index) => /* @__PURE__ */ jsx7(MenuListItemContainer, { iconMenuTextSpacing, ...item }, index))
9
140
  ] });
10
141
  };
11
142
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SiteMenu/MenuSection.tsx"],"sourcesContent":["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"],"mappings":"AAcI,SAEI,KAFJ;AAdJ,SAAS,UAAU,qBAAqB;AACxC,SAAuB,eAAe;AAEtC,SAAS,6BAAgD;AASlD,MAAM,cAA0C,CAAC,EAAE,qBAAqB,WAAW,YAAY,MAAM,OAAO,GAAG,MAAM,MAAM;AAChI,SACE,qBAAC,WAAQ,YAAW,WAAW,GAAG,OAChC;AAAA,wBAAC,YAAS,IAAI,WAAW,SAAS,KAChC,8BAAC,iBAAe,iBAAM,GACxB;AAAA,IAEC,UAAU,IAAI,CAAC,MAAM,UACpB,oBAAC,yBAAkC,qBAA2C,GAAG,QAArD,KAA2D,CACxF;AAAA,KACH;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/SiteMenu/MenuSection.tsx","../../../../src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx","../../../../src/contexts/Collapsible/context.ts","../../../../src/contexts/Collapsible/use.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"],"sourcesContent":["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 { 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 ? 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 ? <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} /> : null}\n {tooltip ? <ListItemTooltip title={tooltip} /> : 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 { 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 { 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/index.js'\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/index.js'\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"],"mappings":"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","names":["Collapse","FlexCol","useTheme","jsx","jsx","jsx","jsx","jsx","useTheme","jsx","jsxs","FlexCol","Collapse"]}
@@ -1,2 +1,35 @@
1
- export * from "./useMenuItemsShared";
1
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
2
+ import { useMemo } from "react";
3
+
4
+ // src/contexts/Collapsible/context.ts
5
+ import { createContextEx } from "@xyo-network/react-shared";
6
+ var CollapsibleContext = createContextEx();
7
+
8
+ // src/contexts/Collapsible/use.tsx
9
+ import { useContextEx } from "@xyo-network/react-shared";
10
+ var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
11
+
12
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
13
+ var useMenuItemsShared = () => {
14
+ const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible();
15
+ const onMenuItemToggle = (open) => {
16
+ setCollapse?.((previous) => open ? false : previous);
17
+ setCollapseEnd?.((previous) => open ? false : previous);
18
+ };
19
+ const defaultSiteMenuListItemProps = useMemo(
20
+ () => ({
21
+ collapseEnd,
22
+ dense: true,
23
+ iconOnly: collapse,
24
+ sx: {
25
+ px: "8px"
26
+ }
27
+ }),
28
+ [collapse, collapseEnd]
29
+ );
30
+ return { defaultSiteMenuListItemProps, onMenuItemToggle };
31
+ };
32
+ export {
33
+ useMenuItemsShared
34
+ };
2
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/SiteMenu/hooks/index.ts"],"sourcesContent":["export * from './useMenuItemsShared'\n"],"mappings":"AAAA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx","../../../../../src/contexts/Collapsible/context.ts","../../../../../src/contexts/Collapsible/use.tsx"],"sourcesContent":["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 { 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"],"mappings":";AAAA,SAAS,eAAe;;;ACAxB,SAAS,uBAAuB;AAIzB,IAAM,qBAAqB,gBAAkC;;;ACJpE,SAAS,oBAAoB;AAItB,IAAM,iBAAiB,MAAM,aAAa,oBAAoB,eAAe,KAAK;;;AFGlF,IAAM,qBAAqB,MAAM;AACtC,QAAM,EAAE,UAAU,aAAa,aAAa,eAAe,IAAI,eAAe;AAE9E,QAAM,mBAAmB,CAAC,SAAmB;AAC3C,kBAAc,CAAC,aAAc,OAAO,QAAQ,QAAS;AACrD,qBAAiB,CAAC,aAAc,OAAO,QAAQ,QAAS;AAAA,EAC1D;AAEA,QAAM,+BAA6D;AAAA,IACjE,OAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,MACV,IAAI;AAAA,QACF,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,SAAO,EAAE,8BAA8B,iBAAiB;AAC1D;","names":[]}
@@ -1,6 +1,16 @@
1
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
1
2
  import { useMemo } from "react";
2
- import { useCollapsible } from "../../../contexts";
3
- const useMenuItemsShared = () => {
3
+
4
+ // src/contexts/Collapsible/context.ts
5
+ import { createContextEx } from "@xyo-network/react-shared";
6
+ var CollapsibleContext = createContextEx();
7
+
8
+ // src/contexts/Collapsible/use.tsx
9
+ import { useContextEx } from "@xyo-network/react-shared";
10
+ var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
11
+
12
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
13
+ var useMenuItemsShared = () => {
4
14
  const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible();
5
15
  const onMenuItemToggle = (open) => {
6
16
  setCollapse?.((previous) => open ? false : previous);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx"],"sourcesContent":["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"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,sBAAsB;AAKxB,MAAM,qBAAqB,MAAM;AACtC,QAAM,EAAE,UAAU,aAAa,aAAa,eAAe,IAAI,eAAe;AAE9E,QAAM,mBAAmB,CAAC,SAAmB;AAC3C,kBAAc,CAAC,aAAc,OAAO,QAAQ,QAAS;AACrD,qBAAiB,CAAC,aAAc,OAAO,QAAQ,QAAS;AAAA,EAC1D;AAEA,QAAM,+BAA6D;AAAA,IACjE,OAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,MACV,IAAI;AAAA,QACF,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,SAAO,EAAE,8BAA8B,iBAAiB;AAC1D;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx","../../../../../src/contexts/Collapsible/context.ts","../../../../../src/contexts/Collapsible/use.tsx"],"sourcesContent":["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 { 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"],"mappings":";AAAA,SAAS,eAAe;;;ACAxB,SAAS,uBAAuB;AAIzB,IAAM,qBAAqB,gBAAkC;;;ACJpE,SAAS,oBAAoB;AAItB,IAAM,iBAAiB,MAAM,aAAa,oBAAoB,eAAe,KAAK;;;AFGlF,IAAM,qBAAqB,MAAM;AACtC,QAAM,EAAE,UAAU,aAAa,aAAa,eAAe,IAAI,eAAe;AAE9E,QAAM,mBAAmB,CAAC,SAAmB;AAC3C,kBAAc,CAAC,aAAc,OAAO,QAAQ,QAAS;AACrD,qBAAiB,CAAC,aAAc,OAAO,QAAQ,QAAS;AAAA,EAC1D;AAEA,QAAM,+BAA6D;AAAA,IACjE,OAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,MACP,UAAU;AAAA,MACV,IAAI;AAAA,QACF,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,SAAO,EAAE,8BAA8B,iBAAiB;AAC1D;","names":[]}
@@ -1,6 +1,210 @@
1
- export * from "./hooks";
2
- export * from "./lib";
3
- export * from "./Menu";
4
- export * from "./MenuListItem";
5
- export * from "./MenuSection";
1
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
2
+ import { useMemo } from "react";
3
+
4
+ // src/contexts/Collapsible/context.ts
5
+ import { createContextEx } from "@xyo-network/react-shared";
6
+ var CollapsibleContext = createContextEx();
7
+
8
+ // src/contexts/Collapsible/use.tsx
9
+ import { useContextEx } from "@xyo-network/react-shared";
10
+ var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
11
+
12
+ // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
13
+ var useMenuItemsShared = () => {
14
+ const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible();
15
+ const onMenuItemToggle = (open) => {
16
+ setCollapse?.((previous) => open ? false : previous);
17
+ setCollapseEnd?.((previous) => open ? false : previous);
18
+ };
19
+ const defaultSiteMenuListItemProps = useMemo(
20
+ () => ({
21
+ collapseEnd,
22
+ dense: true,
23
+ iconOnly: collapse,
24
+ sx: {
25
+ px: "8px"
26
+ }
27
+ }),
28
+ [collapse, collapseEnd]
29
+ );
30
+ return { defaultSiteMenuListItemProps, onMenuItemToggle };
31
+ };
32
+
33
+ // src/components/SiteMenu/Menu.tsx
34
+ import { Menu as MenuIcon2, Settings as SettingsIcon } from "@mui/icons-material";
35
+ import { IconButton as IconButton2, List as List2, SwipeableDrawer } from "@mui/material";
36
+ import { FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
37
+ import { useEffect, useState as useState2 } from "react";
38
+
39
+ // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
40
+ import { ListItemText, useTheme as useTheme2 } from "@mui/material";
41
+ import { FlexRow } from "@xylabs/react-flexbox";
42
+ import { LinkEx } from "@xylabs/react-link";
43
+ import { useState } from "react";
44
+
45
+ // src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx
46
+ import { Tooltip } from "@mui/material";
47
+ import { FlexCol } from "@xylabs/react-flexbox";
48
+ import { VscInfo } from "react-icons/vsc/index.js";
49
+ import { jsx } from "react/jsx-runtime";
50
+ var ListItemTooltip = ({ title, ...props }) => {
51
+ return /* @__PURE__ */ jsx(Tooltip, { title, placement: "right", ...props, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(FlexCol, { justifyContent: "center", children: /* @__PURE__ */ jsx(VscInfo, { color: "grey" }) }) }) });
52
+ };
53
+
54
+ // src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx
55
+ import { Typography } from "@mui/material";
56
+ import { jsx as jsx2 } from "react/jsx-runtime";
57
+ var MenuIcon = ({ icon, ...props }) => {
58
+ return /* @__PURE__ */ jsx2(Typography, { display: "flex", ...props, children: icon });
59
+ };
60
+
61
+ // src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx
62
+ import { ListItem } from "@mui/material";
63
+ import { jsx as jsx3 } from "react/jsx-runtime";
64
+ var MenuListItem = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {
65
+ const listItemSx = iconOnly ? { borderRadius: "50%", display: "inline-flex", flexGrow: 0, width: "auto" } : { width: "100%" };
66
+ const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 };
67
+ const paddingSx = dense ? { px: "8px" } : { px: "12px" };
68
+ return /* @__PURE__ */ jsx3(ListItem, { sx: { ...listItemSx, ...spacingSx, ...paddingSx, ...sx }, ...props, children });
69
+ };
70
+
71
+ // src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx
72
+ import { Collapse, List } from "@mui/material";
73
+ import { jsx as jsx4 } from "react/jsx-runtime";
74
+ var SubNavListItemsCollapse = ({ collapse, openSubNav, children, ...props }) => {
75
+ return /* @__PURE__ */ jsx4(Collapse, { in: collapse == true ? false : openSubNav, ...props, children: /* @__PURE__ */ jsx4(List, { children }) });
76
+ };
77
+
78
+ // src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx
79
+ import { IconButton, useTheme } from "@mui/material";
80
+ import { VscChevronDown } from "react-icons/vsc/index.js";
81
+ import { jsx as jsx5 } from "react/jsx-runtime";
82
+ var SubNavToggleIconButton = ({ setOpenSubNav, openSubNav }) => {
83
+ const theme = useTheme();
84
+ return /* @__PURE__ */ jsx5(
85
+ IconButton,
86
+ {
87
+ onClick: (event) => {
88
+ event.stopPropagation();
89
+ setOpenSubNav?.(!openSubNav);
90
+ },
91
+ sx: { marginRight: theme.spacing(0.5) },
92
+ children: /* @__PURE__ */ jsx5(VscChevronDown, { fontSize: "16px" })
93
+ }
94
+ );
95
+ };
96
+
97
+ // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
98
+ import { Fragment, jsx as jsx6, jsxs } from "react/jsx-runtime";
99
+ var MenuListItemContainer = ({
100
+ style,
101
+ icon,
102
+ iconMenuTextSpacing,
103
+ iconOnly,
104
+ onButtonClick,
105
+ primary,
106
+ subNavListItems,
107
+ sx,
108
+ tooltip,
109
+ to,
110
+ ...props
111
+ }) => {
112
+ const { dense } = props;
113
+ const theme = useTheme2();
114
+ const { collapse } = useCollapsible();
115
+ const [openSubNav, setOpenSubNav] = useState(false);
116
+ const [hovered, setHovered] = useState(false);
117
+ const resolvedIconMenuTextSpacing = iconMenuTextSpacing ? iconMenuTextSpacing : theme.spacing(1);
118
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
119
+ /* @__PURE__ */ jsxs(
120
+ MenuListItem,
121
+ {
122
+ disableGutters: true,
123
+ iconOnly,
124
+ onClick: onButtonClick,
125
+ dense,
126
+ sx: { justifyContent: "space-between", ...sx },
127
+ style: { whiteSpace: "nowrap", ...style },
128
+ ...props,
129
+ children: [
130
+ /* @__PURE__ */ jsx6(
131
+ LinkEx,
132
+ {
133
+ onMouseEnter: () => setHovered(true),
134
+ onMouseLeave: () => setHovered(false),
135
+ color: "inherit",
136
+ to,
137
+ sx: {
138
+ "& :hover": {
139
+ cursor: "pointer",
140
+ textDecoration: "underline"
141
+ }
142
+ },
143
+ children: /* @__PURE__ */ jsxs(FlexRow, { children: [
144
+ /* @__PURE__ */ jsx6(MenuIcon, { icon, paddingRight: resolvedIconMenuTextSpacing, color: hovered ? "secondary" : "inherit" }),
145
+ /* @__PURE__ */ jsx6(ListItemText, { primary })
146
+ ] })
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsxs(FlexRow, { style: { marginLeft: theme.spacing(1) }, children: [
150
+ subNavListItems ? /* @__PURE__ */ jsx6(SubNavToggleIconButton, { setOpenSubNav, openSubNav }) : null,
151
+ tooltip ? /* @__PURE__ */ jsx6(ListItemTooltip, { title: tooltip }) : null
152
+ ] })
153
+ ]
154
+ }
155
+ ),
156
+ subNavListItems ? /* @__PURE__ */ jsx6(SubNavListItemsCollapse, { openSubNav, collapse, children: subNavListItems?.map((item, index) => /* @__PURE__ */ jsx6(MenuListItemContainer, { dense, sx: { pl: theme.spacing(1) }, ...item }, index)) }) : null
157
+ ] });
158
+ };
159
+
160
+ // src/components/SiteMenu/Menu.tsx
161
+ import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
162
+ var SiteMenu = ({ children, onMenuToggle, side = "right", ...props }) => {
163
+ const [open, setOpen] = useState2(false);
164
+ useEffect(() => {
165
+ onMenuToggle?.(open);
166
+ }, [onMenuToggle, open]);
167
+ return /* @__PURE__ */ jsxs2(FlexRow2, { alignItems: "stretch", ...props, children: [
168
+ /* @__PURE__ */ jsx7(
169
+ IconButton2,
170
+ {
171
+ size: "small",
172
+ color: "inherit",
173
+ onClick: () => {
174
+ setOpen(!open);
175
+ },
176
+ children: /* @__PURE__ */ jsx7(MenuIcon2, { fontSize: "large" })
177
+ }
178
+ ),
179
+ /* @__PURE__ */ jsx7(
180
+ SwipeableDrawer,
181
+ {
182
+ anchor: side,
183
+ open,
184
+ onClick: () => setOpen(false),
185
+ onKeyDown: () => setOpen(false),
186
+ onClose: () => setOpen(false),
187
+ onOpen: () => setOpen(true),
188
+ children: children ?? /* @__PURE__ */ jsx7(List2, { children: /* @__PURE__ */ jsx7(MenuListItemContainer, { primary: "Settings", icon: /* @__PURE__ */ jsx7(SettingsIcon, {}), to: "/settings" }) })
189
+ }
190
+ )
191
+ ] });
192
+ };
193
+
194
+ // src/components/SiteMenu/MenuSection.tsx
195
+ import { Collapse as Collapse2, ListSubheader } from "@mui/material";
196
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
197
+ import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
198
+ var MenuSection = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {
199
+ return /* @__PURE__ */ jsxs3(FlexCol2, { alignItems: "stretch", ...props, children: [
200
+ /* @__PURE__ */ jsx8(Collapse2, { in: showTitle, timeout: 700, children: /* @__PURE__ */ jsx8(ListSubheader, { children: title }) }),
201
+ listItems.map((item, index) => /* @__PURE__ */ jsx8(MenuListItemContainer, { iconMenuTextSpacing, ...item }, index))
202
+ ] });
203
+ };
204
+ export {
205
+ MenuListItemContainer,
206
+ MenuSection,
207
+ SiteMenu,
208
+ useMenuItemsShared
209
+ };
6
210
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SiteMenu/index.ts"],"sourcesContent":["export * from './hooks'\nexport * from './lib'\nexport * from './Menu'\nexport * from './MenuListItem'\nexport * from './MenuSection'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/SiteMenu/hooks/useMenuItemsShared.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"],"sourcesContent":["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 { 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 ? 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 ? <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} /> : null}\n {tooltip ? <ListItemTooltip title={tooltip} /> : 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/index.js'\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/index.js'\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"],"mappings":"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","names":["MenuIcon","IconButton","List","FlexRow","useState","useTheme","jsx","jsx","jsx","jsx","jsx","useTheme","jsx","jsxs","useState","FlexRow","IconButton","MenuIcon","List","Collapse","FlexCol","jsx","jsxs","FlexCol","Collapse"]}
@@ -1,3 +1 @@
1
- export * from "./MenuListItemBase";
2
- export * from "./NavListItemProps";
3
1
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/SiteMenu/lib/index.ts"],"sourcesContent":["export * from './MenuListItemBase'\nexport * from './NavListItemProps'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,8 +1,49 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/Toolbar/Context/ContextToolbar.tsx
2
2
  import { Toolbar } from "@mui/material";
3
- import { LogoLinkEx } from "./LogoLinkEx";
4
- const ContextToolbar = ({ logoTo = "/", version = false, ...props }) => {
5
- return /* @__PURE__ */ jsx(Toolbar, { ...props, children: /* @__PURE__ */ jsx(LogoLinkEx, { version, to: logoTo }) });
3
+
4
+ // src/components/Toolbar/Context/LogoLinkEx.tsx
5
+ import { Typography, useTheme as useTheme2 } from "@mui/material";
6
+ import { FlexRow } from "@xylabs/react-flexbox";
7
+ import { LinkEx } from "@xylabs/react-link";
8
+
9
+ // src/components/Toolbar/Context/Logo.tsx
10
+ import { useTheme } from "@mui/material";
11
+ import { jsx } from "react/jsx-runtime";
12
+ var Logo = (props) => {
13
+ const theme = useTheme();
14
+ const logoUrl = theme.palette.mode === "dark" ? "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg" : "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg";
15
+ return /* @__PURE__ */ jsx("img", { src: logoUrl, ...props });
16
+ };
17
+
18
+ // src/components/Toolbar/Context/LogoLinkEx.tsx
19
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
20
+ var LogoLinkEx = ({ to = "/", version = false, ...props }) => {
21
+ const theme = useTheme2();
22
+ return /* @__PURE__ */ jsx2(LinkEx, { to, ...props, children: /* @__PURE__ */ jsxs(FlexRow, { paddingX: "4px", children: [
23
+ /* @__PURE__ */ jsx2(Logo, { height: "40", width: "43" }),
24
+ version ? /* @__PURE__ */ jsx2(
25
+ Typography,
26
+ {
27
+ position: "absolute",
28
+ borderRadius: 1,
29
+ right: 6,
30
+ color: theme.palette.getContrastText(theme.palette.text.primary),
31
+ bottom: 0,
32
+ bgcolor: theme.palette.text.primary,
33
+ paddingX: "2px",
34
+ lineHeight: 1,
35
+ variant: "caption",
36
+ border: `1px ${theme.palette.getContrastText(theme.palette.primary.main)} solid`,
37
+ children: typeof version === "string" ? version : "2.1"
38
+ }
39
+ ) : null
40
+ ] }) });
41
+ };
42
+
43
+ // src/components/Toolbar/Context/ContextToolbar.tsx
44
+ import { jsx as jsx3 } from "react/jsx-runtime";
45
+ var ContextToolbar = ({ logoTo = "/", version = false, ...props }) => {
46
+ return /* @__PURE__ */ jsx3(Toolbar, { ...props, children: /* @__PURE__ */ jsx3(LogoLinkEx, { version, to: logoTo }) });
6
47
  };
7
48
  export {
8
49
  ContextToolbar
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Toolbar/Context/ContextToolbar.tsx"],"sourcesContent":["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"],"mappings":"AAaM;AAbN,SAAS,eAA6B;AAGtC,SAAS,kBAAkB;AAOpB,MAAM,iBAAgD,CAAC,EAAE,SAAS,KAAK,UAAU,OAAO,GAAG,MAAM,MAAM;AAC5G,SACE,oBAAC,WAAS,GAAG,OACX,8BAAC,cAAW,SAAkB,IAAI,QAAQ,GAC5C;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/Toolbar/Context/ContextToolbar.tsx","../../../../../src/components/Toolbar/Context/LogoLinkEx.tsx","../../../../../src/components/Toolbar/Context/Logo.tsx"],"sourcesContent":["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"],"mappings":";AAAA,SAAS,eAA6B;;;ACAtC,SAAS,YAAY,YAAAA,iBAAgB;AACrC,SAAS,eAAe;AACxB,SAAS,cAA2B;;;ACFpC,SAAS,gBAAgB;AAQhB;AANF,IAAM,OAAuG,CAAC,UAAU;AAC7H,QAAM,QAAQ,SAAS;AACvB,QAAM,UACJ,MAAM,QAAQ,SAAS,SACnB,4DACA;AACN,SAAO,oBAAC,SAAI,KAAK,SAAU,GAAG,OAAO;AACvC;;;ADKM,SACE,OAAAC,MADF;AAJC,IAAM,aAAwC,CAAC,EAAE,KAAK,KAAK,UAAU,OAAO,GAAG,MAAM,MAAM;AAChG,QAAM,QAAQC,UAAS;AACvB,SACE,gBAAAD,KAAC,UAAO,IAAS,GAAG,OAClB,+BAAC,WAAQ,UAAS,OAChB;AAAA,oBAAAA,KAAC,QAAK,QAAO,MAAK,OAAM,MAAK;AAAA,IAC5B,UACC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,cAAc;AAAA,QACd,OAAO;AAAA,QACP,OAAO,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,KAAK,OAAO;AAAA,QAC/D,QAAQ;AAAA,QACR,SAAS,MAAM,QAAQ,KAAK;AAAA,QAC5B,UAAS;AAAA,QACT,YAAY;AAAA,QACZ,SAAQ;AAAA,QACR,QAAQ,OAAO,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,QAAQ,IAAI,CAAC;AAAA,QAEvE,iBAAO,YAAY,WAAW,UAAU;AAAA;AAAA,IAC3C,IACE;AAAA,KACN,GACF;AAEJ;;;ADtBM,gBAAAE,YAAA;AAHC,IAAM,iBAAgD,CAAC,EAAE,SAAS,KAAK,UAAU,OAAO,GAAG,MAAM,MAAM;AAC5G,SACE,gBAAAA,KAAC,WAAS,GAAG,OACX,0BAAAA,KAAC,cAAW,SAAkB,IAAI,QAAQ,GAC5C;AAEJ;","names":["useTheme","jsx","useTheme","jsx"]}
@@ -1,6 +1,7 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ // src/components/Toolbar/Context/Logo.tsx
2
2
  import { useTheme } from "@mui/material";
3
- const Logo = (props) => {
3
+ import { jsx } from "react/jsx-runtime";
4
+ var Logo = (props) => {
4
5
  const theme = useTheme();
5
6
  const logoUrl = theme.palette.mode === "dark" ? "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg" : "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg";
6
7
  return /* @__PURE__ */ jsx("img", { src: logoUrl, ...props });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Toolbar/Context/Logo.tsx"],"sourcesContent":["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"],"mappings":"AAQS;AART,SAAS,gBAAgB;AAElB,MAAM,OAAuG,CAAC,UAAU;AAC7H,QAAM,QAAQ,SAAS;AACvB,QAAM,UACJ,MAAM,QAAQ,SAAS,SACnB,4DACA;AACN,SAAO,oBAAC,SAAI,KAAK,SAAU,GAAG,OAAO;AACvC;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/components/Toolbar/Context/Logo.tsx"],"sourcesContent":["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"],"mappings":";AAAA,SAAS,gBAAgB;AAQhB;AANF,IAAM,OAAuG,CAAC,UAAU;AAC7H,QAAM,QAAQ,SAAS;AACvB,QAAM,UACJ,MAAM,QAAQ,SAAS,SACnB,4DACA;AACN,SAAO,oBAAC,SAAI,KAAK,SAAU,GAAG,OAAO;AACvC;","names":[]}